Skip to content

Commit d07c233

Browse files
datho7561angelozerr
authored andcommitted
Respond to requests for indentation settings
Uses requests to the preferences `xml.format.insertSpaces` and `xml.format.tabSize` to provide the indentation of the current file Copied from: https://github.com/redhat-developer/vscode-java/pull/1081/files Along with #903, closes #267 Signed-off-by: David Thompson <davthomp@redhat.com>
1 parent 4f002c9 commit d07c233

File tree

1 file changed

+21
-2
lines changed

1 file changed

+21
-2
lines changed

src/extension.ts

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,9 @@
1111
*/
1212

1313
import { prepareExecutable } from './javaServerStarter';
14-
import { LanguageClientOptions, RevealOutputChannelOn, LanguageClient, DidChangeConfigurationNotification, RequestType, TextDocumentPositionParams, ReferencesRequest, NotificationType, MessageType } from 'vscode-languageclient';
14+
import { LanguageClientOptions, RevealOutputChannelOn, LanguageClient, DidChangeConfigurationNotification, RequestType, TextDocumentPositionParams, ReferencesRequest, NotificationType, MessageType, ConfigurationRequest, ConfigurationParams } from 'vscode-languageclient';
1515
import * as requirements from './requirements';
16-
import { languages, IndentAction, workspace, window, commands, ExtensionContext, TextDocument, Position, LanguageConfiguration, Uri, extensions, Command } from "vscode";
16+
import { languages, IndentAction, workspace, window, commands, ExtensionContext, TextDocument, Position, LanguageConfiguration, Uri, extensions, Command, TextEditor } from "vscode";
1717
import * as path from 'path';
1818
import * as os from 'os';
1919
import { activateTagClosing, AutoCloseResult } from './tagClosing';
@@ -249,6 +249,25 @@ export function activate(context: ExtensionContext) {
249249
}));
250250
}
251251

252+
// Copied from:
253+
// https://github.com/redhat-developer/vscode-java/pull/1081/files
254+
languageClient.onRequest(ConfigurationRequest.type, (params: ConfigurationParams) => {
255+
const result: any[] = [];
256+
const activeEditor: TextEditor | undefined = window.activeTextEditor;
257+
for (const item of params.items) {
258+
if (activeEditor && activeEditor.document.uri.toString() === Uri.parse(item.scopeUri).toString()) {
259+
if (item.section === "xml.format.insertSpaces") {
260+
result.push(activeEditor.options.insertSpaces);
261+
} else if (item.section === "xml.format.tabSize") {
262+
result.push(activeEditor.options.tabSize);
263+
}
264+
} else {
265+
result.push(workspace.getConfiguration(null, Uri.parse(item.scopeUri)).get(item.section));
266+
}
267+
}
268+
return result;
269+
});
270+
252271
const api: XMLExtensionApi = {
253272
// add API set catalogs to internal memory
254273
addXMLCatalogs: (catalogs: string[]) => {

0 commit comments

Comments
 (0)