Skip to content

Commit eecf67d

Browse files
committed
prepare to fix self-close tag
1 parent 3da3267 commit eecf67d

File tree

2 files changed

+12
-4
lines changed

2 files changed

+12
-4
lines changed

src/documentChangeHandler.ts

+11-2
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,16 @@ export class DocumentChangeHandler {
2323
if (!activeChange) {
2424
return;
2525
}
26-
if (activeChange.text === ' ' || activeChange.text === '(' || activeChange.text === '[' || activeChange.text === '!' || activeChange.text === '/' || activeChange.text === '$' || activeChange.text === '<') {
26+
let triggerSuggest = false;
27+
if (activeChange.text === '/') {
28+
let nextChar = e.document.getText().charAt(activeChange.rangeOffset + 1);
29+
if (nextChar === '>') {
30+
31+
} else {
32+
triggerSuggest = true;
33+
}
34+
}
35+
if (triggerSuggest || activeChange.text === ' ' || activeChange.text === '(' || activeChange.text === '[' || activeChange.text === '!' || activeChange.text === '$' || activeChange.text === '<') {
2736
setTimeout(() => {
2837
vscode.commands.executeCommand('editor.action.triggerSuggest');
2938
}, 10);
@@ -45,7 +54,7 @@ export class DocumentChangeHandler {
4554
let line = activeChange.range.start.line;
4655
let character = startBracketPos;
4756

48-
let endTagPosData = this.lexer.getEndTagForStartTagChange(e.document, offset, line, character,activeChange);
57+
let endTagPosData = this.lexer.getEndTagForStartTagChange(e.document, offset, line, character, activeChange.range);
4958
if (endTagPosData) {
5059
if (this.cachedFailedEdit) {
5160
this.cachedFailedEdit = null;

src/xslLexerRenameTag.ts

+1-2
Original file line numberDiff line numberDiff line change
@@ -62,12 +62,11 @@ export class XslLexerRenameTag extends XslLexer {
6262
return textBefore.length;
6363
}
6464

65-
public getEndTagForStartTagChange(document: vscode.TextDocument, offset: number, line: number, character: number, change: vscode.TextDocumentContentChangeEvent): TagRenamePosition|null {
65+
public getEndTagForStartTagChange(document: vscode.TextDocument, offset: number, line: number, character: number, renameRange: vscode.Range): TagRenamePosition|null {
6666

6767
this.globalInstructionData = [];
6868
this.globalModeData = [];
6969
let xsl = document.getText();
70-
let renameRange = change.range;
7170
let renamePos = renameRange.start;
7271

7372
let renameStartChar = renamePos.character;

0 commit comments

Comments
 (0)