Skip to content

Commit 8676ce3

Browse files
committed
Fixed reference resolving for external definitions
1 parent 58a2f5e commit 8676ce3

52 files changed

Lines changed: 815 additions & 1171 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

build.gradle

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,25 @@
11
plugins {
22
id "org.jetbrains.intellij" version "0.2.13"
3+
id "org.jetbrains.kotlin.jvm" version "1.1.4-3"
34
}
45

56
apply plugin: 'org.jetbrains.intellij'
67
apply plugin: 'java'
8+
apply plugin: "kotlin"
79

810
// On travis, we don't want to deploy to Jetbrains that requires credentials
911
if (project.file('gradle.properties').exists()) {
1012
apply from: "gradle.properties"
1113
}
1214

1315
intellij {
14-
version = '2017.2'
16+
version = '2017.2.2'
1517
pluginName = 'Mathematica-IntelliJ-Plugin'
1618
updateSinceUntilBuild = false
1719
}
1820

1921
// Simple function to load change-notes.html and description.html into valid text for plugin.xml
20-
def htmlFixer = {f -> file(f).text.replace('<html>', '').replace('</html>', '')}
22+
def htmlFixer = {htmlFile -> file(htmlFile).text.replace('<html>', '').replace('</html>', '')}
2123

2224
patchPluginXml {
2325
changeNotes = htmlFixer('resources/META-INF/change-notes.html')
@@ -56,4 +58,4 @@ task wrapper(type: Wrapper) {
5658
gradleVersion = '3.5'
5759
}
5860

59-
version '2.4.4'
61+
version '2.4.5'

src/de/halirutan/mathematica/actions/PackageExportChecker.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@
3535
//import de.halirutan.mathematica.index.packageexport.PackageExportSymbol;
3636
//
3737
//import java.util.Collection;
38-
//import java.util.List;
38+
//import java.util.MList;
3939
//
4040
///**
4141
// * @author patrick (08.11.16).
@@ -52,14 +52,14 @@
5252
//
5353
// final VirtualFile currentFile = e.getDataContext().getData(DataKeys.VIRTUAL_FILE);
5454
// final FileBasedIndex fileBasedIndex = FileBasedIndex.getInstance();
55-
// final ID<Key, List<PackageExportSymbol>> indexId = MathematicaPackageExportIndex.INDEX_ID;
55+
// final ID<Key, MList<PackageExportSymbol>> indexId = MathematicaPackageExportIndex.INDEX_ID;
5656
// final Collection<Key> allKeys = fileBasedIndex.getAllKeys(indexId,project);
5757
//
5858
// for (Key next : allKeys) {
5959
// final VirtualFile file = fileBasedIndex.findFileById(project, ((FileKey) next).getFileId());
6060
// System.out.printf("\nFILE: " + file.getPresentableName() + "\n-----------------------------------------\n");
61-
// final List<List<PackageExportSymbol>> values = fileBasedIndex.getValues(indexId, next, GlobalSearchScope.allScope(project));
62-
// for (List<PackageExportSymbol> list : values) {
61+
// final MList<MList<PackageExportSymbol>> values = fileBasedIndex.getValues(indexId, next, GlobalSearchScope.allScope(project));
62+
// for (MList<PackageExportSymbol> list : values) {
6363
// for (PackageExportSymbol info : list) {
6464
// System.out.println(info.symbol + " (" + info.nameSpace +")");
6565
// }

src/de/halirutan/mathematica/codeinsight/completion/LocalDefinitionCompletionProvider.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ public boolean execute(@NotNull PsiElement element, @NotNull ResolveState state)
9494
vars = MathematicaPsiUtilities.getLocalLimitVariables(functionCall);
9595
}
9696

97-
// List<Symbol> declaredSymbols = MathematicaPsiUtilities.extractLocalizedVariables(element);
97+
// MList<Symbol> declaredSymbols = MathematicaPsiUtilities.extractLocalizedVariables(element);
9898
if (vars.size() > 0 && !vars.contains(myStartElement)) {
9999
mySymbols.addAll(vars);
100100
}

src/de/halirutan/mathematica/codeinsight/completion/VariableNameCompletion.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -94,8 +94,8 @@ protected void addCompletions(@NotNull CompletionParameters parameters, Processi
9494
}
9595
}
9696
// for (String key : allKeys) {
97-
// final List<List<PackageExportSymbol>> values = index.getValues(MathematicaPackageExportIndex.INDEX_ID, key, GlobalSearchScope.allScope(callingSymbol.getProject()));
98-
// for (List<PackageExportSymbol> value : values) {
97+
// final MList<MList<PackageExportSymbol>> values = index.getValues(MathematicaPackageExportIndex.INDEX_ID, key, GlobalSearchScope.allScope(callingSymbol.getProject()));
98+
// for (MList<PackageExportSymbol> value : values) {
9999
// for (PackageExportSymbol packageExportSymbol : value) {
100100
// //TODO: Implement adding completions
101101
//// if(packageExportSymbol.nameSpace.equals())

src/de/halirutan/mathematica/codeinsight/editoractions/smartenter/MathematicaSmartEnter.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929
import com.intellij.psi.util.PsiTreeUtil;
3030
import de.halirutan.mathematica.lang.psi.api.CompoundExpression;
3131
import de.halirutan.mathematica.lang.psi.api.FunctionCall;
32-
import de.halirutan.mathematica.lang.psi.api.lists.List;
32+
import de.halirutan.mathematica.lang.psi.api.lists.MList;
3333
import org.jetbrains.annotations.NotNull;
3434
import org.jetbrains.annotations.Nullable;
3535

@@ -62,7 +62,7 @@ protected PsiElement getStatementAtCaret(Editor editor, PsiFile psiFile) {
6262
final PsiElement expressionAtCaret = PsiTreeUtil.getParentOfType(atCaret,
6363
FunctionCall.class,
6464
CompoundExpression.class,
65-
List.class
65+
MList.class
6666
);
6767

6868
if (expressionAtCaret != null && PsiTreeUtil.hasErrorElements(expressionAtCaret)) {
@@ -78,7 +78,7 @@ protected PsiElement getStatementAtCaret(Editor editor, PsiFile psiFile) {
7878
}
7979
}
8080

81-
if (expressionAtCaret instanceof List) {
81+
if (expressionAtCaret instanceof MList) {
8282
if (atCaret.getText().equals("}") || !PsiTreeUtil.hasErrorElements(expressionAtCaret))
8383
return expressionAtCaret.getParent();
8484
}
@@ -88,7 +88,7 @@ protected PsiElement getStatementAtCaret(Editor editor, PsiFile psiFile) {
8888
PsiElement parent = PsiTreeUtil.getParentOfType(atCaret.getParent(),
8989
FunctionCall.class,
9090
CompoundExpression.class,
91-
List.class
91+
MList.class
9292
);
9393
return parent;
9494
}

src/de/halirutan/mathematica/codeinsight/editoractions/wordselection/MathematicaListSelectioner.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
import com.intellij.openapi.editor.Editor;
2626
import com.intellij.openapi.util.TextRange;
2727
import com.intellij.psi.PsiElement;
28+
import de.halirutan.mathematica.lang.psi.api.lists.MList;
2829

2930
import java.util.ArrayList;
3031
import java.util.List;
@@ -35,7 +36,7 @@
3536
public class MathematicaListSelectioner extends BasicSelectioner {
3637
@Override
3738
public boolean canSelect(PsiElement e) {
38-
return e instanceof de.halirutan.mathematica.lang.psi.api.lists.List;
39+
return e instanceof MList;
3940
}
4041

4142
@Override

src/de/halirutan/mathematica/codeinsight/formatter/MathematicaSpacingBuilderProvider.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,7 @@ static SpacingBuilder getSpacingBuilder(CommonCodeStyleSettings settings, Mathem
118118
.around(ourOtherOperations).spaceIf(mathematicaSettings.SPACE_AROUND_OTHER_OPERATIONS)
119119
.after(COMMA).spaceIf(settings.SPACE_AFTER_COMMA)
120120
.before(LEFT_BRACKET).none()
121-
.after(RIGHT_BRACKET).none();
121+
.after(RIGHT_BRACKET).none()
122+
;
122123
}
123124
}

src/de/halirutan/mathematica/codeinsight/formatter/settings/MathematicaCodeStyleConfigurable.java

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,25 +23,44 @@
2323

2424
import com.intellij.application.options.CodeStyleAbstractConfigurable;
2525
import com.intellij.application.options.CodeStyleAbstractPanel;
26+
import com.intellij.application.options.TabbedLanguageCodeStylePanel;
2627
import com.intellij.psi.codeStyle.CodeStyleSettings;
28+
import com.intellij.psi.codeStyle.LanguageCodeStyleSettingsProvider;
29+
import de.halirutan.mathematica.lang.MathematicaLanguage;
2730
import org.jetbrains.annotations.Nullable;
2831

2932
/**
3033
* @author patrick (11/1/13)
3134
*/
3235
class MathematicaCodeStyleConfigurable extends CodeStyleAbstractConfigurable {
33-
public MathematicaCodeStyleConfigurable(CodeStyleSettings settings, CodeStyleSettings originalSettings) {
36+
MathematicaCodeStyleConfigurable(CodeStyleSettings settings, CodeStyleSettings originalSettings) {
3437
super(settings, originalSettings, "Mathematica");
3538
}
3639

3740
@Override
3841
protected CodeStyleAbstractPanel createPanel(CodeStyleSettings settings) {
39-
return new MathematicaCodeStyleMainPanel(getCurrentSettings(), settings);
42+
return new MathematicaCodeStylePanel(getCurrentSettings(), settings);
4043
}
4144

4245
@Nullable
4346
@Override
4447
public String getHelpTopic() {
4548
return null;
4649
}
50+
51+
private class MathematicaCodeStylePanel extends TabbedLanguageCodeStylePanel {
52+
private MathematicaCodeStylePanel(CodeStyleSettings currentSettings, CodeStyleSettings settings) {
53+
super(MathematicaLanguage.INSTANCE, currentSettings, settings);
54+
}
55+
56+
@Override
57+
protected void initTabs(CodeStyleSettings settings) {
58+
LanguageCodeStyleSettingsProvider provider = LanguageCodeStyleSettingsProvider.forLanguage(getDefaultLanguage());
59+
addIndentOptionsTab(settings);
60+
if (provider != null) {
61+
addSpacesTab(settings);
62+
}
63+
}
64+
}
65+
4766
}

src/de/halirutan/mathematica/codeinsight/formatter/settings/MathematicaCodeStyleMainPanel.java

Lines changed: 0 additions & 35 deletions
This file was deleted.

src/de/halirutan/mathematica/codeinsight/formatter/settings/MathematicaCodeStyleSettingsProvider.java

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,12 @@
2121

2222
package de.halirutan.mathematica.codeinsight.formatter.settings;
2323

24+
import com.intellij.lang.Language;
2425
import com.intellij.openapi.options.Configurable;
2526
import com.intellij.psi.codeStyle.CodeStyleSettings;
2627
import com.intellij.psi.codeStyle.CodeStyleSettingsProvider;
2728
import com.intellij.psi.codeStyle.CustomCodeStyleSettings;
29+
import de.halirutan.mathematica.lang.MathematicaLanguage;
2830
import org.jetbrains.annotations.NotNull;
2931
import org.jetbrains.annotations.Nullable;
3032

@@ -40,13 +42,13 @@ public Configurable createSettingsPage(CodeStyleSettings settings, CodeStyleSett
4042

4143
@Nullable
4244
@Override
43-
public String getConfigurableDisplayName() {
44-
return "Mathematica";
45+
public CustomCodeStyleSettings createCustomSettings(CodeStyleSettings settings) {
46+
return new MathematicaCodeStyleSettings(settings);
4547
}
4648

4749
@Nullable
4850
@Override
49-
public CustomCodeStyleSettings createCustomSettings(CodeStyleSettings settings) {
50-
return new MathematicaCodeStyleSettings(settings);
51+
public Language getLanguage() {
52+
return MathematicaLanguage.INSTANCE;
5153
}
5254
}

0 commit comments

Comments
 (0)