You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -60,7 +60,7 @@ Context normally adds formatting without replacing a symbol's identity color:
60
60
- A reassigned variable or parameter gains an underline but keeps its foreground.
61
61
- Static members are italic; instance members are not.
62
62
- Inspection results add their underline, wave, border, or background over the existing syntax colors.
63
-
-Read-only and other contextual distinctions may use bold or italic where the editor exposes them reliably.
63
+
-Constancy does not change variable or field formatting.
64
64
65
65
A captured Java variable is a useful boundary case. A method parameter is blue in the enclosing method, but IntelliJ presents its use inside a lambda as a neutral field-like capture. Its semantic role has changed: the generated lambda object effectively carries that value as state.
Copy file name to clipboardExpand all lines: docs/research/intellij-language-color-inheritance.md
+9Lines changed: 9 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -119,6 +119,15 @@ backgrounds.
119
119
120
120
For Python, type annotations fall back to `DEFAULT_IDENTIFIER` and are left to do so, which is why a type hint reads as neutral text. Python 3.12 type parameters fall back to `DEFAULT_PARAMETER` rather than Java's `TYPE_PARAMETER_NAME_ATTRIBUTES`, so they are pinned to the type-parameter orange explicitly. The plugin's remaining syntax, function, class, parameter, local-variable, decorator, and punctuation keys already fall back to the corresponding Language Defaults.
121
121
122
+
JavaScript's bundled Darcula fragment overrides `JS.LOCAL_VARIABLE`,
123
+
`JS.GLOBAL_VARIABLE`, and `JS.INSTANCE_MEMBER_FUNCTION`. IntelliJ source declares their
124
+
fallbacks as `DEFAULT_LOCAL_VARIABLE`, `DEFAULT_GLOBAL_VARIABLE`, and
125
+
`DEFAULT_INSTANCE_METHOD`, respectively. Invariant resets each key with that exact declared
126
+
`baseAttributes` value, clearing the parent override without trying to redirect inheritance.
127
+
Locals and globals therefore render warm neutral, while resolved instance methods render green.
128
+
When a reference cannot resolve because its library is missing, the JavaScript highlighter may
129
+
guess a variable or member category instead; a color scheme cannot recover the missing identity.
130
+
122
131
Known debt: pale blue `#bed6ff` carries two meanings. It marks signature-only methods
123
132
(`ABSTRACT_METHOD_ATTRIBUTES`, `INHERITED_METHOD_ATTRIBUTES`) and also runtime built-ins
124
133
(`PY.BUILTIN_NAME`, `BASH.EXTERNAL_COMMAND`, `CSS.FUNCTION`), and the Visual Studio Code and
Copy file name to clipboardExpand all lines: jetbrains/src/main/resources/META-INF/plugin.xml
+4-4Lines changed: 4 additions & 4 deletions
Original file line number
Diff line number
Diff line change
@@ -6,14 +6,14 @@
6
6
<description><![CDATA[
7
7
<p>Invariant is a semantic dark editor color scheme based on Monokai.</p>
8
8
<p>Color identifies what a symbol is; formatting shows how it is being used. Common code stays relatively quiet, while types, parameters, methods, reserved names, annotations, and comments remain easy to find.</p>
9
-
<p>The scheme provides explicit coverage for Java, Kotlin, Python, CSS, and shell scripts, with Language Defaults for other supported languages.</p>
9
+
<p>The scheme provides explicit coverage for Java, Kotlin, JavaScript, Python, CSS, and shell scripts, with Language Defaults for other supported languages.</p>
10
10
]]></description>
11
11
12
12
<change-notes><![CDATA[
13
-
<p>Fixes the plugin so its color scheme appears in the IDE.</p>
13
+
<p>Aligns JavaScript semantic colors with Invariant's cross-editor identity model.</p>
14
14
<ul>
15
-
<li>Invariant named Islands Dark as its parent scheme. That scheme is contributed by a plugin and is absent unless the Islands UI is active, so the IDE discarded Invariant on load and it never appeared under Settings | Editor | Color Scheme.</li>
16
-
<li>The scheme now inherits from Darcula and defines every color and attribute it previously inherited, so its appearance is unchanged.</li>
15
+
<li>Local and global variables now use the neutral variable color instead of inherited Darcula and Islands colors.</li>
16
+
<li>Resolved instance methods now use function green instead of parameter-like blue.</li>
Copy file name to clipboardExpand all lines: vscode/CHANGELOG.md
+5Lines changed: 5 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,5 +1,10 @@
1
1
# Changelog
2
2
3
+
## 1.3.2
4
+
5
+
- JSON, JSON with Comments, and JSON Lines property names now use the neutral variable/property color instead of type cyan, matching IntelliJ's field styling.
6
+
- Read-only semantic tokens no longer become bold, so a local `const` keeps the same variable styling as a local `let`.
7
+
3
8
## 1.3.1
4
9
5
10
- The JetBrains plugin now installs a color scheme the IDE can actually load. It named Islands Dark as its parent scheme, which is contributed by a plugin and is absent unless the Islands UI is active, so IntelliJ discarded the scheme on load and Invariant never appeared under Settings | Editor | Color Scheme. The scheme now inherits from Darcula and spells out every color and attribute it had been inheriting, leaving its appearance unchanged.
0 commit comments