avoid cursor move forward using a snippet cursor

This commit is contained in:
Martin Aeschlimann 2021-12-14 17:28:58 +01:00
parent 1f9d809e35
commit a832497526
No known key found for this signature in database
GPG key ID: 2609A01E695523E3
3 changed files with 9 additions and 12 deletions

View file

@ -3,7 +3,7 @@
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
import { window, workspace, Disposable, TextDocument, Position, SnippetString, TextDocumentChangeEvent, TextDocumentChangeReason, Selection, TextDocumentContentChangeEvent } from 'vscode';
import { window, workspace, Disposable, TextDocument, Position, SnippetString, TextDocumentChangeEvent, TextDocumentChangeReason, TextDocumentContentChangeEvent } from 'vscode';
import { Runtime } from './htmlClient';
export function activateAutoInsertion(provider: (kind: 'autoQuote' | 'autoClose', document: TextDocument, position: Position) => Thenable<string>, supportedLanguages: { [id: string]: boolean }, runtime: Runtime): Disposable {
@ -36,8 +36,9 @@ export function activateAutoInsertion(provider: (kind: 'autoQuote' | 'autoClose'
if (!supportedLanguages[document.languageId]) {
return;
}
isEnabled['autoQuote'] = workspace.getConfiguration(undefined, document.uri).get<boolean>('html.autoCreateQuotes') ?? false;
isEnabled['autoClose'] = workspace.getConfiguration(undefined, document.uri).get<boolean>('html.autoClosingTags') ?? false;
const configurations = workspace.getConfiguration(undefined, document.uri);
isEnabled['autoQuote'] = configurations.get<boolean>('html.autoCreateQuotes') ?? false;
isEnabled['autoClose'] = configurations.get<boolean>('html.autoClosingTags') ?? false;
anyIsEnabled = isEnabled['autoQuote'] || isEnabled['autoClose'];
}
@ -76,10 +77,6 @@ export function activateAutoInsertion(provider: (kind: 'autoQuote' | 'autoClose'
const selections = activeEditor.selections;
if (selections.length && selections.some(s => s.active.isEqual(position))) {
activeEditor.insertSnippet(new SnippetString(text), selections.map(s => s.active));
if (kind === 'autoQuote') {
// Move all cursors one forward
activeEditor.selections = selections.map(s => new Selection(s.active.translate(0, 1), s.active.translate(0, 1)));
}
} else {
activeEditor.insertSnippet(new SnippetString(text), position);
}

View file

@ -10,7 +10,7 @@
"main": "./out/node/htmlServerMain",
"dependencies": {
"vscode-css-languageservice": "^5.1.9",
"vscode-html-languageservice": "^4.2.0",
"vscode-html-languageservice": "^4.2.1",
"vscode-languageserver": "^7.0.0",
"vscode-languageserver-textdocument": "^1.0.1",
"vscode-nls": "^5.0.0",

View file

@ -22,10 +22,10 @@ vscode-css-languageservice@^5.1.9:
vscode-nls "^5.0.0"
vscode-uri "^3.0.2"
vscode-html-languageservice@^4.2.0:
version "4.2.0"
resolved "https://registry.yarnpkg.com/vscode-html-languageservice/-/vscode-html-languageservice-4.2.0.tgz#87ea1c659b40ae0b6f6627df75e5d25650977d30"
integrity sha512-5ebk/5kMa7PrCPL3JuP27vo8h+coDgSkMP14pSlKz3ISXZxHm+nnCenhVrpy9Ayamtwb28YXeQuN8AqNQH8kVQ==
vscode-html-languageservice@^4.2.1:
version "4.2.1"
resolved "https://registry.yarnpkg.com/vscode-html-languageservice/-/vscode-html-languageservice-4.2.1.tgz#b95077cffd19bf187e53c7bf79e3e0dd7edbc7cf"
integrity sha512-PgaToZVXJ44nFWEBuSINdDgVV6EnpC3MnXBsysR3O5TKcAfywbYeRGRy+Y4dVR7YeUgDvtb+JkJoSkaYC0mxXQ==
dependencies:
vscode-languageserver-textdocument "^1.0.1"
vscode-languageserver-types "^3.16.0"