Skip to content

Commit 696c181

Browse files
authored
(feat) option disable emmet for html/css (#710)
#708, #677
1 parent a847c15 commit 696c181

File tree

5 files changed

+68
-40
lines changed

5 files changed

+68
-40
lines changed

packages/language-server/src/ls-config.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ const defaultLSConfig: LSConfig = {
2424
globals: '',
2525
diagnostics: { enable: true },
2626
hover: { enable: true },
27-
completions: { enable: true },
27+
completions: { enable: true, emmet: true },
2828
documentColors: { enable: true },
2929
colorPresentations: { enable: true },
3030
documentSymbols: { enable: true },
@@ -33,7 +33,7 @@ const defaultLSConfig: LSConfig = {
3333
html: {
3434
enable: true,
3535
hover: { enable: true },
36-
completions: { enable: true },
36+
completions: { enable: true, emmet: true },
3737
tagComplete: { enable: true },
3838
documentSymbols: { enable: true }
3939
},
@@ -106,6 +106,7 @@ export interface LSCSSConfig {
106106
};
107107
completions: {
108108
enable: boolean;
109+
emmet: boolean;
109110
};
110111
documentColors: {
111112
enable: boolean;
@@ -128,6 +129,7 @@ export interface LSHTMLConfig {
128129
};
129130
completions: {
130131
enable: boolean;
132+
emmet: boolean;
131133
};
132134
tagComplete: {
133135
enable: boolean;

packages/language-server/src/plugins/css/CSSPlugin.ts

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -165,15 +165,17 @@ export class CSSPlugin
165165
isIncomplete: true,
166166
items: []
167167
};
168-
lang.setCompletionParticipants([
169-
getEmmetCompletionParticipants(
170-
cssDocument,
171-
cssDocument.getGeneratedPosition(position),
172-
getLanguage(type),
173-
this.configManager.getEmmetConfig(),
174-
emmetResults
175-
)
176-
]);
168+
if (this.configManager.getConfig().css.completions.emmet) {
169+
lang.setCompletionParticipants([
170+
getEmmetCompletionParticipants(
171+
cssDocument,
172+
cssDocument.getGeneratedPosition(position),
173+
getLanguage(type),
174+
this.configManager.getEmmetConfig(),
175+
emmetResults
176+
)
177+
]);
178+
}
177179
const results = lang.doComplete(
178180
cssDocument,
179181
cssDocument.getGeneratedPosition(position),

packages/language-server/src/plugins/html/HTMLPlugin.ts

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -75,15 +75,17 @@ export class HTMLPlugin implements HoverProvider, CompletionsProvider {
7575
isIncomplete: true,
7676
items: []
7777
};
78-
this.lang.setCompletionParticipants([
79-
getEmmetCompletionParticipants(
80-
document,
81-
position,
82-
'html',
83-
this.configManager.getEmmetConfig(),
84-
emmetResults
85-
)
86-
]);
78+
if (this.configManager.getConfig().html.completions.emmet) {
79+
this.lang.setCompletionParticipants([
80+
getEmmetCompletionParticipants(
81+
document,
82+
position,
83+
'html',
84+
this.configManager.getEmmetConfig(),
85+
emmetResults
86+
)
87+
]);
88+
}
8789
const results = this.isInComponentTag(html, document, position)
8890
? // Only allow emmet inside component element tags.
8991
// Other attributes/events would be false positives.

packages/svelte-vscode/README.md

Lines changed: 30 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -80,35 +80,35 @@ If you experience crashes due to "port already in use", try setting the port.
8080

8181
Enable the TypeScript plugin. _Default_: `true`
8282

83-
##### `svelte.plugin.typescript.diagnostics`
83+
##### `svelte.plugin.typescript.diagnostics.enable`
8484

8585
Enable diagnostic messages for TypeScript. _Default_: `true`
8686

87-
##### `svelte.plugin.typescript.hover`
87+
##### `svelte.plugin.typescript.hover.enable`
8888

8989
Enable hover info for TypeScript. _Default_: `true`
9090

91-
##### `svelte.plugin.typescript.documentSymbols`
91+
##### `svelte.plugin.typescript.documentSymbols.enable`
9292

9393
Enable document symbols for TypeScript. _Default_: `true`
9494

95-
##### `svelte.plugin.typescript.completions`
95+
##### `svelte.plugin.typescript.completions.enable`
9696

9797
Enable completions for TypeScript. _Default_: `true`
9898

99-
##### `svelte.plugin.typescript.findReferences`
99+
##### `svelte.plugin.typescript.findReferences.enable`
100100

101101
Enable find-references for TypeScript. _Default_: `true`
102102

103-
##### `svelte.plugin.typescript.definitions`
103+
##### `svelte.plugin.typescript.definitions.enable`
104104

105105
Enable go to definition for TypeScript. _Default_: `true`
106106

107-
##### `svelte.plugin.typescript.codeActions`
107+
##### `svelte.plugin.typescript.codeActions.enable`
108108

109109
Enable code actions for TypeScript. _Default_: `true`
110110

111-
##### `svelte.plugin.typescript.selectionRange`
111+
##### `svelte.plugin.typescript.selectionRange.enable`
112112

113113
Enable selection range for TypeScript. _Default_: `true`
114114

@@ -128,51 +128,61 @@ Enable the CSS plugin. _Default_: `true`
128128

129129
Which css files should be checked for global variables (`--global-var: value;`). These variables are added to the css completions. String of comma-separated file paths or globs relative to workspace root.
130130

131-
##### `svelte.plugin.css.diagnostics`
131+
##### `svelte.plugin.css.diagnostics.enable`
132132

133133
Enable diagnostic messages for CSS. _Default_: `true`
134134

135-
##### `svelte.plugin.css.hover`
135+
##### `svelte.plugin.css.hover.enable`
136136

137137
Enable hover info for CSS. _Default_: `true`
138138

139-
##### `svelte.plugin.css.completions`
139+
##### `svelte.plugin.css.completions.enable`
140140

141141
Enable auto completions for CSS. _Default_: `true`
142142

143-
##### `svelte.plugin.css.documentColors`
143+
##### `svelte.plugin.css.completions.emmet`
144+
145+
Enable emmet auto completions for CSS. _Default_: `true`
146+
If you want to disable emmet completely everywhere (not just Svelte), you can also set `"emmet.showExpandedAbbreviation": "never"` in your settings.
147+
148+
##### `svelte.plugin.css.documentColors.enable`
144149

145150
Enable document colors for CSS. _Default_: `true`
146151

147-
##### `svelte.plugin.css.colorPresentations`
152+
##### `svelte.plugin.css.colorPresentations.enable`
148153

149154
Enable color picker for CSS. _Default_: `true`
150155

151-
##### `svelte.plugin.css.documentSymbols`
156+
##### `svelte.plugin.css.documentSymbols.enable`
152157

153158
Enable document symbols for CSS. _Default_: `true`
154159

155-
##### `svelte.plugin.css.selectionRange`
160+
##### `svelte.plugin.css.selectionRange.enable`
156161

157162
Enable selection range for CSS. _Default_: `true`
158163

159164
##### `svelte.plugin.html.enable`
160165

161166
Enable the HTML plugin. _Default_: `true`
162167

163-
##### `svelte.plugin.html.hover`
168+
##### `svelte.plugin.html.hover.enable`
164169

165170
Enable hover info for HTML. _Default_: `true`
166171

167-
##### `svelte.plugin.html.completions`
172+
##### `svelte.plugin.html.completions.enable`
168173

169174
Enable auto completions for HTML. _Default_: `true`
170175

171-
##### `svelte.plugin.html.tagComplete`
176+
##### `svelte.plugin.html.completions.emmet`
177+
178+
Enable emmet auto completions for HTML. _Default_: `true`
179+
If you want to disable emmet completely everywhere (not just Svelte), you can also set `"emmet.showExpandedAbbreviation": "never"` in your settings.
180+
181+
##### `svelte.plugin.html.tagComplete.enable`
172182

173183
Enable HTML tag auto closing. _Default_: `true`
174184

175-
##### `svelte.plugin.html.documentSymbols`
185+
##### `svelte.plugin.html.documentSymbols.enable`
176186

177187
Enable document symbols for HTML. _Default_: `true`
178188

@@ -214,7 +224,7 @@ Enable selection range for Svelte. _Default_: `true`
214224

215225
### Usage with Yarn 2 PnP
216226

217-
1. Run `yarn add -D svelte-language-server` to install svelte-language-server as a dev dependency
227+
1. Run `yarn add -D svelte-language-server` to install svelte-language-server as a dev dependency
218228
2. Run `yarn dlx @yarnpkg/pnpify --sdk vscode` to generate or update the VSCode/Yarn integration SDKs. This also sets the `svelte.language-server.ls-path` setting for the workspace, pointing it to the workspace-installed language server.
219229
3. Restart VSCode.
220230
4. Commit the changes to `.yarn/sdks`

packages/svelte-vscode/package.json

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -160,6 +160,12 @@
160160
"title": "CSS: Auto Complete",
161161
"description": "Enable auto completions for CSS"
162162
},
163+
"svelte.plugin.css.completions.emmet": {
164+
"type": "boolean",
165+
"default": true,
166+
"title": "CSS: Include Emmet Completions",
167+
"description": "Enable emmet auto completions for CSS"
168+
},
163169
"svelte.plugin.css.documentColors.enable": {
164170
"type": "boolean",
165171
"default": true,
@@ -202,6 +208,12 @@
202208
"title": "HTML: Auto Complete",
203209
"description": "Enable auto completions for HTML"
204210
},
211+
"svelte.plugin.html.completions.emmet": {
212+
"type": "boolean",
213+
"default": true,
214+
"title": "HTML: Include Emmet Completions",
215+
"description": "Enable emmet auto completions for HTML"
216+
},
205217
"svelte.plugin.html.tagComplete.enable": {
206218
"type": "boolean",
207219
"default": true,

0 commit comments

Comments
 (0)