Skip to content

Commit 178a066

Browse files
committed
Merge branch 'feat_dividedReverenceCache' into develop
# Conflicts: # resources/de/halirutan/mathematica/MathematicaBundle.properties
2 parents 7c8af45 + ed61bca commit 178a066

54 files changed

Lines changed: 880 additions & 600 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.

Mathematica-IntelliJ-Plugin.iml

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

build.gradle

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,9 @@ buildscript {
99
maven {
1010
url 'http://dl.bintray.com/jetbrains/intellij-plugin-service'
1111
}
12+
maven {
13+
url 'http://dl.bintray.com/kotlin/kotlin-eap-1.2'
14+
}
1215
}
1316

1417
dependencies {
@@ -72,7 +75,7 @@ task wrapper(type: Wrapper) {
7275
// Information about the plugin
7376

7477
// Plugin version number
75-
version '3.0pre1'
78+
version '3.0pre2'
7679

7780
intellij {
7881
// version = '2017.2.5'

resources/META-INF/plugin.xml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,6 @@
7878

7979
<applicationService serviceInterface="de.halirutan.mathematica.codeinsight.folding.MathematicaCodeFoldingSettingsImpl" serviceImplementation="de.halirutan.mathematica.codeinsight.folding.MathematicaCodeFoldingSettingsImpl"/>
8080
<codeFoldingOptionsProvider instance="de.halirutan.mathematica.codeinsight.folding.MathematicaFoldingOptionProvider"/>
81-
8281
<!-- Code-style and colors-->
8382
<colorSettingsPage implementation="de.halirutan.mathematica.codeinsight.highlighting.MathematicaColorSettingsPage"/>
8483
<codeStyleSettingsProvider implementation="de.halirutan.mathematica.codeinsight.formatter.settings.MathematicaCodeStyleSettingsProvider"/>
@@ -105,13 +104,16 @@
105104
<spellchecker.support language="Mathematica" implementationClass="de.halirutan.mathematica.codeinsight.spellcheck.MathematicaSpellCheck"/>
106105
<spellchecker.bundledDictionaryProvider implementation="de.halirutan.mathematica.codeinsight.spellcheck.MathematicaDictionaryProvider"/>
107106

107+
<projectService serviceInterface="de.halirutan.mathematica.lang.resolve.MathematicaGlobalResolveCache" serviceImplementation="de.halirutan.mathematica.lang.resolve.MathematicaGlobalResolveCache"/>
108108
<intentionAction>
109109
<className>de.halirutan.mathematica.intentions.localization.MoveVariableToLocalisation</className>
110110
</intentionAction>
111111
<!--<findUsagesHandlerFactory implementation="de.halirutan.mathematica.find.MathematicaFindUsageHandlerFactory"/>-->
112112

113113
<errorHandler implementation="de.halirutan.mathematica.errorreporting.GitHubErrorReporter"/>
114114
<referencesSearch implementation="de.halirutan.mathematica.lang.search.MathematicaReferenceSearch"/>
115+
<gotoDeclarationHandler implementation="de.halirutan.mathematica.codeinsight.navigation.MathematicaGotoDeclarationProvider"/>
116+
115117

116118
<!-- Support for libraries -->
117119
<library.type implementation="de.halirutan.mathematica.library.MathematicaLibraryType"/>

resources/colors/MathematicaDarcula.xml

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,15 @@
3131
</value>
3232
</option>
3333

34-
<option name="MMA.IMPORTED_SYMBOL">
34+
<option name="MMA.UNKNOWN_SYMBOL">
35+
<value>
36+
<option name="FOREGROUND" value="A9B7C6"/>
37+
<option name="EFFECT_COLOR" value="AA8080"/>
38+
<option name="EFFECT_TYPE" value="2"/>
39+
</value>
40+
</option>
41+
42+
<option name="MMA.IMPORTED_SYMBOL">
3543
<value>
3644
<option name="FOREGROUND" value="A9B7C6"/>
3745
<option name="EFFECT_COLOR" value="808080"/>

resources/colors/MathematicaDefault.xml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,14 @@
3131
</value>
3232
</option>
3333

34+
<option name="MMA.UNKNOWN_SYMBOL">
35+
<value>
36+
<option name="FOREGROUND" value="000000"/>
37+
<option name="EFFECT_COLOR" value="AA8080"/>
38+
<option name="EFFECT_TYPE" value="2"/>
39+
</value>
40+
</option>
41+
3442
<option name="MMA.IMPORTED_SYMBOL">
3543
<value>
3644
<option name="FOREGROUND" value="000000"/>

resources/de/halirutan/mathematica/MathematicaBundle.properties

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,11 +35,13 @@ module.type.description=Creates an empty project or module for custom layouts.
3535
module.type.name=Empty Module
3636
project.template.mathematica=Mathematica
3737
project.template.basic=Basic Package
38+
project.template.basic.description=A basic Mathematica package provides a simple package file and a notebook. Use this for simple or moderately sized Mathematica packages.
3839
project.template.application=Mathematica Application
40+
project.template.application.description=A Mathematica application is used for large packages and more complicated applications.
41+
project.template.empty=Empty Mathematica Module
42+
project.template.empty.description=An empty module where you can set the file structure yourself
3943
project.template.test=Unit Test Module
4044
project.template.documentation=Documentation Module
41-
project.template.basic.description=A basic Mathematica package provides a simple package file and a notebook. Use this for simple or moderately sized Mathematica packages.
42-
project.template.application.description=A Mathematica application is used for large packages and more complicated applications.
4345
project.template.test.description=Unit test module
4446
project.template.documentation.description=Documentation module
4547
surround.anonymous.function.description=Anonymous function
@@ -51,4 +53,4 @@ structureview.grouper.by.type.text=Group by Assignment Type
5153
structureview.sorter.by.appearance.text=Sort by Appearance
5254
structureview.sorter.by.appearance.description=Sorts the entries by appearance in the source file.
5355
library.new=Mathematica Library
54-
library.description=A Mathematica package directory that acts as library
56+
library.description=A Mathematica package directory that acts as library

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

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

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

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,10 @@
2323

2424
import com.intellij.codeInsight.completion.CompletionContributor;
2525
import com.intellij.codeInsight.completion.CompletionInitializationContext;
26+
import de.halirutan.mathematica.codeinsight.completion.providers.BuiltinFunctionCompletionProvider;
27+
import de.halirutan.mathematica.codeinsight.completion.providers.CommentCompletionProvider;
28+
import de.halirutan.mathematica.codeinsight.completion.providers.FileSymbolCompletion;
29+
import de.halirutan.mathematica.codeinsight.completion.providers.ImportedSymbolCompletion;
2630
import org.jetbrains.annotations.NotNull;
2731

2832
/**
@@ -33,10 +37,16 @@
3337
*/
3438
public class MathematicaCompletionContributor extends CompletionContributor {
3539

40+
public static final double LOCAL_VARIABLE_PRIORITY = 4000;
41+
public static final double GLOBAL_VARIABLE_PRIORITY = 3500;
42+
public static final double IMPORT_VARIABLE_PRIORITY = 3000;
43+
44+
3645
public MathematicaCompletionContributor() {
3746
new BuiltinFunctionCompletionProvider().addTo(this);
47+
new FileSymbolCompletion().addTo(this);
48+
new ImportedSymbolCompletion().addTo(this);
3849
new SmartContextAwareCompletion().addTo(this);
39-
new VariableNameCompletion().addTo(this);
4050
new CommentCompletionProvider().addTo(this);
4151
}
4252

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

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -30,12 +30,13 @@
3030
import com.intellij.patterns.PsiElementPattern.Capture;
3131
import com.intellij.psi.PsiElement;
3232
import com.intellij.util.ProcessingContext;
33-
import de.halirutan.mathematica.util.MathematicaIcons;
3433
import de.halirutan.mathematica.codeinsight.completion.SymbolInformationProvider.SymbolInformation;
34+
import de.halirutan.mathematica.codeinsight.completion.providers.MathematicaCompletionProvider;
3535
import de.halirutan.mathematica.lang.psi.MathematicaRecursiveVisitor;
3636
import de.halirutan.mathematica.lang.psi.api.FunctionCall;
3737
import de.halirutan.mathematica.lang.psi.api.MessageName;
3838
import de.halirutan.mathematica.lang.psi.api.Symbol;
39+
import de.halirutan.mathematica.util.MathematicaIcons;
3940
import org.jetbrains.annotations.NotNull;
4041

4142
import java.util.Arrays;
@@ -57,13 +58,12 @@ class SmartContextAwareCompletion extends MathematicaCompletionProvider {
5758

5859

5960
private static final HashMap<String, SymbolInformation> ourSymbolInformation = SymbolInformationProvider.getSymbolNames();
60-
private static final HashSet<String> ourOptionsWithSetDelayed = new HashSet<>(Arrays.asList(new String[]{
61-
"EvaluationMonitor", "StepMonitor", "DisplayFunction", "Deinitialization", "DisplayFunction",
62-
"DistributedContexts", "Initialization", "UnsavedVariables", "UntrackedVariables"
63-
}));
61+
private static final HashSet<String> ourOptionsWithSetDelayed = new HashSet<>(
62+
Arrays.asList("EvaluationMonitor", "StepMonitor", "DisplayFunction", "Deinitialization", "DisplayFunction",
63+
"DistributedContexts", "Initialization", "UnsavedVariables", "UntrackedVariables"));
6464

6565
@Override
66-
void addTo(CompletionContributor contributor) {
66+
public void addTo(CompletionContributor contributor) {
6767
final Capture<PsiElement> funcPattern = psiElement().withSuperParent(2, FunctionCall.class);
6868
contributor.extend(CompletionType.SMART, funcPattern, this);
6969
}

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -98,9 +98,9 @@ public static HashMap<String, SymbolInformation> getSymbolNames() {
9898
public static class SymbolInformation {
9999
public final String name;
100100
public final int importance;
101-
public final String callPattern;
101+
final String callPattern;
102102
public final boolean function;
103-
public final String attributes[];
103+
final String[] attributes;
104104
public final String options[];
105105
public final String context;
106106
public final String nameWithoutContext;
@@ -120,7 +120,7 @@ public static class SymbolInformation {
120120
* Removes the braces around the call patter
121121
* @return call pattern without braces
122122
*/
123-
String getCallPattern() {
123+
public String getCallPattern() {
124124
if (callPattern.length() > 2 && callPattern.matches("\\{.*}")) {
125125
return callPattern.substring(1, callPattern.length() - 1);
126126
}

0 commit comments

Comments
 (0)