Skip to content

Commit d02e222

Browse files
committed
feat: make Code Lens/Formatter options of JSTS LangServer configurable
1 parent 9da5b7b commit d02e222

18 files changed

+762
-365
lines changed
Lines changed: 69 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -1,70 +1,71 @@
1-
#/*******************************************************************************
2-
# * Copyright (c) 2022 Red Hat Inc. and others.
3-
# * This program and the accompanying materials are made
4-
# * available under the terms of the Eclipse Public License 2.0
5-
# * which is available at https://www.eclipse.org/legal/epl-2.0/
6-
# *
7-
# * SPDX-License-Identifier: EPL-2.0
8-
# *
9-
# * Contributors:
10-
# * Angelo ZERR (Red Hat Inc.) - initial implementation
11-
# *******************************************************************************/
12-
pluginName=Wild Web Developer: web development in Eclipse IDE
13-
providerName=Eclipse Wild Web Developer project
14-
15-
# CSS, LESS, SCSS
16-
CSSPreferencePage.name=CSS (Wild Web Developer)
17-
CSSCompletionPreferencePage.name=Completion
18-
CSSFormatPreferencePage.name=Format
19-
CSSHoverPreferencePage.name=Hover
20-
CSSValidationPreferencePage.name=Validation
21-
22-
LESSPreferencePage.name=LESS
23-
LESSCompletionPreferencePage.name=Completion
24-
LESSFormatPreferencePage.name=Format
25-
LESSHoverPreferencePage.name=Hover
26-
LESSValidationPreferencePage.name=Validation
27-
28-
SCSSPreferencePage.name=SCSS
29-
SCSSCompletionPreferencePage.name=Completion
30-
SCSSFormatPreferencePage.name=Format
31-
SCSSHoverPreferencePage.name=Hover
32-
SCSSValidationPreferencePage.name=Validation
33-
34-
# HTML
35-
HTMLPreferencePage.name=HTML (Wild Web Developer)
36-
HTMLCompletionPreferencePage.name=Completion
37-
HTMLFormatPreferencePage.name=Format
38-
HTMLHoverPreferencePage.name=Hover
39-
HTMLValidationPreferencePage.name=Validation
40-
41-
# JST/TS
42-
JSTSPreferencePage.name=JS/TS (Wild Web Developer)
43-
TypeScriptPreferencePage.name=TypeScript
44-
TypeScriptInlayHintPreferencePage.name=Inlay Hint
45-
JavaScriptPreferencePage.name=JavaScript
46-
JavaScriptInlayHintPreferencePage.name=Inlay Hint
47-
48-
# Markdown
49-
MarkdownPreferencePage.name=Markdown (Wild Web Developer)
50-
MarkdownProblem=Markdown Problem
51-
52-
# YAML
53-
YAMLPreferencePage.name=YAML (Wild Web Developer)
54-
YAMLCompletionPreferencePage.name=Completion
55-
YAMLFormatPreferencePage.name=Format
56-
YAMLHoverPreferencePage.name=Hover
57-
YAMLValidationPreferencePage.name=Validation
58-
59-
# preference keywords
60-
preferenceKeywords.yaml=yaml
61-
preferenceKeywords.js=js
62-
preferenceKeywords.ts=ts
63-
preferenceKeywords.javascript=javascript
64-
preferenceKeywords.typescript=typescript
65-
preferenceKeywords.css=css
66-
preferenceKeywords.less=less
67-
preferenceKeywords.scss=scss
68-
preferenceKeywords.sass=sass
1+
#/*******************************************************************************
2+
# * Copyright (c) 2022 Red Hat Inc. and others.
3+
# * This program and the accompanying materials are made
4+
# * available under the terms of the Eclipse Public License 2.0
5+
# * which is available at https://www.eclipse.org/legal/epl-2.0/
6+
# *
7+
# * SPDX-License-Identifier: EPL-2.0
8+
# *
9+
# * Contributors:
10+
# * Angelo ZERR (Red Hat Inc.) - initial implementation
11+
# *******************************************************************************/
12+
pluginName=Wild Web Developer: web development in Eclipse IDE
13+
providerName=Eclipse Wild Web Developer project
14+
15+
# CSS, LESS, SCSS
16+
CSSPreferencePage.name=CSS (Wild Web Developer)
17+
CSSCompletionPreferencePage.name=Completion
18+
CSSFormatPreferencePage.name=Format
19+
CSSHoverPreferencePage.name=Hover
20+
CSSValidationPreferencePage.name=Validation
21+
22+
LESSPreferencePage.name=LESS
23+
LESSCompletionPreferencePage.name=Completion
24+
LESSFormatPreferencePage.name=Format
25+
LESSHoverPreferencePage.name=Hover
26+
LESSValidationPreferencePage.name=Validation
27+
28+
SCSSPreferencePage.name=SCSS
29+
SCSSCompletionPreferencePage.name=Completion
30+
SCSSFormatPreferencePage.name=Format
31+
SCSSHoverPreferencePage.name=Hover
32+
SCSSValidationPreferencePage.name=Validation
33+
34+
# HTML
35+
HTMLPreferencePage.name=HTML (Wild Web Developer)
36+
HTMLCompletionPreferencePage.name=Completion
37+
HTMLFormatPreferencePage.name=Format
38+
HTMLHoverPreferencePage.name=Hover
39+
HTMLValidationPreferencePage.name=Validation
40+
41+
# JST/TS
42+
JSTSPreferencePage.name=JS/TS (Wild Web Developer)
43+
TypeScriptPreferencePage.name=TypeScript
44+
JavaScriptPreferencePage.name=JavaScript
45+
JSTSCodeLensPreferencePage.name=Code Lens
46+
JSTSInlayHintPreferencePage.name=Inlay Hint
47+
JSTSFormatterPreferencePage.name=Formatter
48+
49+
# Markdown
50+
MarkdownPreferencePage.name=Markdown (Wild Web Developer)
51+
MarkdownProblem=Markdown Problem
52+
53+
# YAML
54+
YAMLPreferencePage.name=YAML (Wild Web Developer)
55+
YAMLCompletionPreferencePage.name=Completion
56+
YAMLFormatPreferencePage.name=Format
57+
YAMLHoverPreferencePage.name=Hover
58+
YAMLValidationPreferencePage.name=Validation
59+
60+
# preference keywords
61+
preferenceKeywords.yaml=yaml
62+
preferenceKeywords.js=js
63+
preferenceKeywords.ts=ts
64+
preferenceKeywords.javascript=javascript
65+
preferenceKeywords.typescript=typescript
66+
preferenceKeywords.css=css
67+
preferenceKeywords.less=less
68+
preferenceKeywords.scss=scss
69+
preferenceKeywords.sass=sass
6970
preferenceKeywords.html=html
7071
preferenceKeywords.markdown=markdown

org.eclipse.wildwebdeveloper/plugin.xml

Lines changed: 34 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -514,11 +514,27 @@
514514
<keywordReference id="org.eclipse.wildwebdeveloper.js" />
515515
<keywordReference id="org.eclipse.wildwebdeveloper.javascript" />
516516
</page>
517+
<page
518+
category="org.eclipse.wildwebdeveloper.jsts.ui.preferences.javascript.JavaScriptPreferencePage"
519+
class="org.eclipse.wildwebdeveloper.jsts.ui.preferences.javascript.JavaScriptCodeLensPreferencePage"
520+
id="org.eclipse.wildwebdeveloper.jsts.ui.preferences.javascript.JavaScriptCodeLensPreferencePage"
521+
name="%JSTSCodeLensPreferencePage.name">
522+
<keywordReference id="org.eclipse.wildwebdeveloper.js" />
523+
<keywordReference id="org.eclipse.wildwebdeveloper.javascript" />
524+
</page>
517525
<page
518526
category="org.eclipse.wildwebdeveloper.jsts.ui.preferences.javascript.JavaScriptPreferencePage"
519527
class="org.eclipse.wildwebdeveloper.jsts.ui.preferences.javascript.JavaScriptInlayHintPreferencePage"
520528
id="org.eclipse.wildwebdeveloper.jsts.ui.preferences.javascript.JavaScriptInlayHintPreferencePage"
521-
name="%JavaScriptInlayHintPreferencePage.name">
529+
name="%JSTSInlayHintPreferencePage.name">
530+
<keywordReference id="org.eclipse.wildwebdeveloper.js" />
531+
<keywordReference id="org.eclipse.wildwebdeveloper.javascript" />
532+
</page>
533+
<page
534+
category="org.eclipse.wildwebdeveloper.jsts.ui.preferences.javascript.JavaScriptPreferencePage"
535+
class="org.eclipse.wildwebdeveloper.jsts.ui.preferences.javascript.JavaScriptFormatterPreferencePage"
536+
id="org.eclipse.wildwebdeveloper.jsts.ui.preferences.javascript.JavaScriptFormatterPreferencePage"
537+
name="%JSTSFormatterPreferencePage.name">
522538
<keywordReference id="org.eclipse.wildwebdeveloper.js" />
523539
<keywordReference id="org.eclipse.wildwebdeveloper.javascript" />
524540
</page>
@@ -531,11 +547,27 @@
531547
<keywordReference id="org.eclipse.wildwebdeveloper.ts" />
532548
<keywordReference id="org.eclipse.wildwebdeveloper.typescript" />
533549
</page>
550+
<page
551+
category="org.eclipse.wildwebdeveloper.jsts.ui.preferences.typescript.TypeScriptPreferencePage"
552+
class="org.eclipse.wildwebdeveloper.jsts.ui.preferences.typescript.TypeScriptCodeLensPreferencePage"
553+
id="org.eclipse.wildwebdeveloper.jsts.ui.preferences.typescript.TypeScriptCodeLensPreferencePage"
554+
name="%JSTSCodeLensPreferencePage.name">
555+
<keywordReference id="org.eclipse.wildwebdeveloper.ts" />
556+
<keywordReference id="org.eclipse.wildwebdeveloper.typescript" />
557+
</page>
534558
<page
535559
category="org.eclipse.wildwebdeveloper.jsts.ui.preferences.typescript.TypeScriptPreferencePage"
536560
class="org.eclipse.wildwebdeveloper.jsts.ui.preferences.typescript.TypeScriptInlayHintPreferencePage"
537561
id="org.eclipse.wildwebdeveloper.jsts.ui.preferences.typescript.TypeScriptInlayHintPreferencePage"
538-
name="%TypeScriptInlayHintPreferencePage.name">
562+
name="%JSTSInlayHintPreferencePage.name">
563+
<keywordReference id="org.eclipse.wildwebdeveloper.ts" />
564+
<keywordReference id="org.eclipse.wildwebdeveloper.typescript" />
565+
</page>
566+
<page
567+
category="org.eclipse.wildwebdeveloper.jsts.ui.preferences.typescript.TypeScriptPreferencePage"
568+
class="org.eclipse.wildwebdeveloper.jsts.ui.preferences.typescript.TypeScriptFormatterPreferencePage"
569+
id="org.eclipse.wildwebdeveloper.jsts.ui.preferences.typescript.TypeScriptFormatterPreferencePage"
570+
name="%JSTSFormatterPreferencePage.name">
539571
<keywordReference id="org.eclipse.wildwebdeveloper.ts" />
540572
<keywordReference id="org.eclipse.wildwebdeveloper.typescript" />
541573
</page>

org.eclipse.wildwebdeveloper/src/org/eclipse/wildwebdeveloper/jsts/JSTSLanguageServer.java

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,7 @@
1414
*******************************************************************************/
1515
package org.eclipse.wildwebdeveloper.jsts;
1616

17-
import static org.eclipse.wildwebdeveloper.jsts.ui.preferences.JSTSPreferenceServerConstants.TYPESCRIPT_PREFERENCES_TSSERVER_TYPESCRIPT_VERSION_PROJECT;
18-
import static org.eclipse.wildwebdeveloper.jsts.ui.preferences.JSTSPreferenceServerConstants.getTypeScriptVersion;
17+
import static org.eclipse.wildwebdeveloper.jsts.ui.preferences.JSTSPreferenceServerConstants.*;
1918

2019
import java.io.File;
2120
import java.io.IOException;
@@ -35,8 +34,7 @@
3534
import org.eclipse.lsp4j.services.LanguageServer;
3635
import org.eclipse.wildwebdeveloper.Activator;
3736
import org.eclipse.wildwebdeveloper.embedder.node.NodeJSManager;
38-
import org.eclipse.wildwebdeveloper.jsts.ui.preferences.javascript.JavaScriptPreferenceServerConstants;
39-
import org.eclipse.wildwebdeveloper.jsts.ui.preferences.typescript.TypeScriptPreferenceServerConstants;
37+
import org.eclipse.wildwebdeveloper.jsts.ui.preferences.JSTSLanguagePreferences;
4038
import org.eclipse.wildwebdeveloper.ui.preferences.ProcessStreamConnectionProviderWithPreference;
4139

4240
public class JSTSLanguageServer extends ProcessStreamConnectionProviderWithPreference {
@@ -107,9 +105,9 @@ public Object getInitializationOptions(URI rootUri) {
107105
protected Object createSettings() {
108106
Map<String, Object> settings = new HashMap<>();
109107
// javascript
110-
settings.putAll(JavaScriptPreferenceServerConstants.getGlobalSettings());
108+
settings.putAll(JSTSLanguagePreferences.JS.getGlobalSettings());
111109
// typescript
112-
settings.putAll(TypeScriptPreferenceServerConstants.getGlobalSettings());
110+
settings.putAll(JSTSLanguagePreferences.TS.getGlobalSettings());
113111
return settings;
114112
}
115113

org.eclipse.wildwebdeveloper/src/org/eclipse/wildwebdeveloper/jsts/ui/Messages.java

Lines changed: 48 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -7,17 +7,17 @@
77
* SPDX-License-Identifier: EPL-2.0
88
*
99
* Contributors:
10-
* Angelo ZERR (Red Hat Inc.) - initial implementation
11-
* Pierre-Yves Bigourdan - Allow using TypeScript version specified by project
12-
* Pierre-Yves Bigourdan - Allow configuring directory of ESLint package
10+
* Angelo ZERR (Red Hat Inc.) - initial implementation
11+
* Pierre-Yves Bigourdan - Allow using TypeScript version specified by project
12+
* Pierre-Yves Bigourdan - Allow configuring directory of ESLint package
13+
* Sebastian Thomschke (Vegard IT GmbH) - add CodeLensPreferencePage, FormatterPreferencePage keys
1314
*******************************************************************************/
1415
package org.eclipse.wildwebdeveloper.jsts.ui;
1516

1617
import org.eclipse.osgi.util.NLS;
1718

1819
/**
1920
* JS/TS messages keys.
20-
*
2121
*/
2222
public class Messages extends NLS {
2323

@@ -27,19 +27,50 @@ public class Messages extends NLS {
2727

2828
public static String JSTSPreferencePage_eslintNodePath;
2929

30-
// --------- TypeScript Inlay Hints preference page
31-
public static String TypeScriptInlayHintPreferencePage_showInlayHintsFor_label;
32-
public static String TypeScriptInlayHintPreferencePage_includeInlayEnumMemberValueHints;
33-
public static String TypeScriptInlayHintPreferencePage_includeInlayFunctionLikeReturnTypeHints;
34-
public static String TypeScriptInlayHintPreferencePage_includeInlayFunctionParameterTypeHints;
35-
public static String TypeScriptInlayHintPreferencePage_includeInlayParameterNameHints;
36-
public static String TypeScriptInlayHintPreferencePage_includeInlayParameterNameHints_none;
37-
public static String TypeScriptInlayHintPreferencePage_includeInlayParameterNameHints_literals;
38-
public static String TypeScriptInlayHintPreferencePage_includeInlayParameterNameHints_all;
39-
public static String TypeScriptInlayHintPreferencePage_includeInlayParameterNameHintsWhenArgumentMatchesName;
40-
public static String TypeScriptInlayHintPreferencePage_includeInlayPropertyDeclarationTypeHints;
41-
public static String TypeScriptInlayHintPreferencePage_includeInlayVariableTypeHints;
42-
public static String TypeScriptInlayHintPreferencePage_includeInlayVariableTypeHintsWhenTypeMatchesName;
30+
// JavaScript / TypeScript Inlay Hints preference page
31+
public static String InlayHintPreferencePage_showInlayHintsFor_label;
32+
public static String InlayHintPreferencePage_includeInlayEnumMemberValueHints;
33+
public static String InlayHintPreferencePage_includeInlayFunctionLikeReturnTypeHints;
34+
public static String InlayHintPreferencePage_includeInlayFunctionParameterTypeHints;
35+
public static String InlayHintPreferencePage_includeInlayParameterNameHints;
36+
public static String InlayHintPreferencePage_includeInlayParameterNameHints_none;
37+
public static String InlayHintPreferencePage_includeInlayParameterNameHints_literals;
38+
public static String InlayHintPreferencePage_includeInlayParameterNameHints_all;
39+
public static String InlayHintPreferencePage_includeInlayParameterNameHintsWhenArgumentMatchesName;
40+
public static String InlayHintPreferencePage_includeInlayPropertyDeclarationTypeHints;
41+
public static String InlayHintPreferencePage_includeInlayVariableTypeHints;
42+
public static String InlayHintPreferencePage_includeInlayVariableTypeHintsWhenTypeMatchesName;
43+
44+
// JavaScript / TypeScript Code Lens preference page
45+
public static String CodeLensPreferencePage_showCodeLensFor_label;
46+
public static String CodeLensPreferencePage_implementationsCodeLens_enabled;
47+
public static String CodeLensPreferencePage_referencesCodeLens_enabled;
48+
public static String CodeLensPreferencePage_referencesCodeLens_showOnAllFunctions;
49+
50+
public static String FormatterPreferencePage_baseIndentSize;
51+
public static String FormatterPreferencePage_convertTabsToSpaces;
52+
public static String FormatterPreferencePage_indentSize;
53+
public static String FormatterPreferencePage_indentStyle;
54+
public static String FormatterPreferencePage_insertSpaceAfterCommaDelimiter;
55+
public static String FormatterPreferencePage_insertSpaceAfterConstructor;
56+
public static String FormatterPreferencePage_insertSpaceAfterFunctionKeywordForAnonymousFunctions;
57+
public static String FormatterPreferencePage_insertSpaceAfterKeywordsInControlFlowStatements;
58+
public static String FormatterPreferencePage_insertSpaceAfterOpeningAndBeforeClosingEmptyBraces;
59+
public static String FormatterPreferencePage_insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces;
60+
public static String FormatterPreferencePage_insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces;
61+
public static String FormatterPreferencePage_insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets;
62+
public static String FormatterPreferencePage_insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis;
63+
public static String FormatterPreferencePage_insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces;
64+
public static String FormatterPreferencePage_insertSpaceAfterSemicolonInForStatements;
65+
public static String FormatterPreferencePage_insertSpaceAfterTypeAssertion;
66+
public static String FormatterPreferencePage_insertSpaceBeforeAndAfterBinaryOperators;
67+
public static String FormatterPreferencePage_insertSpaceBeforeFunctionParenthesis;
68+
public static String FormatterPreferencePage_insertSpaceBeforeTypeAnnotation;
69+
public static String FormatterPreferencePage_newLineCharacter;
70+
public static String FormatterPreferencePage_placeOpenBraceOnNewLineForControlBlocks;
71+
public static String FormatterPreferencePage_placeOpenBraceOnNewLineForFunctions;
72+
public static String FormatterPreferencePage_semicolons;
73+
public static String FormatterPreferencePage_trimTrailingWhitespace;
4374

4475
static {
4576
NLS.initializeMessages("org.eclipse.wildwebdeveloper.jsts.ui.messages", Messages.class); //$NON-NLS-1$

0 commit comments

Comments
 (0)