提交 85d48955 编写于 作者: P pi1024e

Refactored code to make "WhiteSpace" into "Whitespace"

上级 73c6419c
...@@ -144,27 +144,23 @@ const isDir = (p: string) => { ...@@ -144,27 +144,23 @@ const isDir = (p: string) => {
}; };
function pathToReplaceRange(valueBeforeCursor: string, fullValue: string, fullValueRange: Range) { function pathToReplaceRange(valueBeforeCursor: string, fullValue: string, fullValueRange: Range) {
let replaceRange: Range;
const lastIndexOfSlash = valueBeforeCursor.lastIndexOf('/'); const lastIndexOfSlash = valueBeforeCursor.lastIndexOf('/');
if (lastIndexOfSlash === -1) { if (lastIndexOfSlash === -1) {
replaceRange = fullValueRange; return fullValueRange;
} else { }
// For cases where cursor is in the middle of attribute value, like <script src="./s|rc/test.js">
// Find the last slash before cursor, and calculate the start of replace range from there // For cases where cursor is in the middle of attribute value, like <script src="./s|rc/test.js">
const valueAfterLastSlash = fullValue.slice(lastIndexOfSlash + 1); // Find the last slash before cursor, and calculate the start of replace range from there
const startPos = shiftPosition(fullValueRange.end, -valueAfterLastSlash.length); const valueAfterLastSlash = fullValue.slice(lastIndexOfSlash + 1);
// If whitespace exists, replace until it const startPos = shiftPosition(fullValueRange.end, -valueAfterLastSlash.length);
const whiteSpaceIndex = valueAfterLastSlash.indexOf(' '); // If whitespace exists, replace until it
let endPos; const whitespaceIndex = valueAfterLastSlash.indexOf(' ');
if (whiteSpaceIndex !== -1) { if (whitespaceIndex === -1) {
endPos = shiftPosition(startPos, whiteSpaceIndex); return Range.create(startPos, shiftPosition(startPos, whitespaceIndex));
} else {
endPos = fullValueRange.end;
}
replaceRange = Range.create(startPos, endPos);
} }
return replaceRange; return Range.create(startPos, fullValueRange.end);
} }
function pathToSuggestion(p: string, replaceRange: Range): CompletionItem { function pathToSuggestion(p: string, replaceRange: Range): CompletionItem {
...@@ -180,13 +176,14 @@ function pathToSuggestion(p: string, replaceRange: Range): CompletionItem { ...@@ -180,13 +176,14 @@ function pathToSuggestion(p: string, replaceRange: Range): CompletionItem {
command: 'editor.action.triggerSuggest' command: 'editor.action.triggerSuggest'
} }
}; };
} else {
return {
label: escapePath(p),
kind: CompletionItemKind.File,
textEdit: TextEdit.replace(replaceRange, escapePath(p))
};
} }
return {
label: escapePath(p),
kind: CompletionItemKind.File,
textEdit: TextEdit.replace(replaceRange, escapePath(p))
};
} }
// Escape https://www.w3.org/TR/CSS1/#url // Escape https://www.w3.org/TR/CSS1/#url
......
...@@ -109,14 +109,13 @@ function pathToSuggestion(p: string, valueBeforeCursor: string, fullValue: strin ...@@ -109,14 +109,13 @@ function pathToSuggestion(p: string, valueBeforeCursor: string, fullValue: strin
const valueAfterLastSlash = fullValue.slice(lastIndexOfSlash + 1); const valueAfterLastSlash = fullValue.slice(lastIndexOfSlash + 1);
const startPos = shiftPosition(range.end, -1 - valueAfterLastSlash.length); const startPos = shiftPosition(range.end, -1 - valueAfterLastSlash.length);
// If whitespace exists, replace until it // If whitespace exists, replace until it
const whiteSpaceIndex = valueAfterLastSlash.indexOf(' '); const whitespaceIndex = valueAfterLastSlash.indexOf(' ');
let endPos; if (whitespaceIndex === -1) {
if (whiteSpaceIndex !== -1) { replaceRange = Range.create(startPos, shiftPosition(range.end, -1));
endPos = shiftPosition(startPos, whiteSpaceIndex);
} else { } else {
endPos = shiftPosition(range.end, -1); replaceRange = Range.create(startPos, shiftPosition(startPos, whitespaceIndex));
} }
replaceRange = Range.create(startPos, endPos);
} }
if (isDir) { if (isDir) {
......
...@@ -904,7 +904,7 @@ const editorConfiguration: IConfigurationNode = { ...@@ -904,7 +904,7 @@ const editorConfiguration: IConfigurationNode = {
'enum': ['none', 'boundary', 'selection', 'all'], 'enum': ['none', 'boundary', 'selection', 'all'],
'enumDescriptions': [ 'enumDescriptions': [
'', '',
nls.localize('renderWhiteSpace.boundary', "Render whitespace characters except for single spaces between words."), nls.localize('renderWhitespace.boundary', "Render whitespace characters except for single spaces between words."),
nls.localize('renderWhitespace.selection', "Render whitespace characters only on selected text."), nls.localize('renderWhitespace.selection', "Render whitespace characters only on selected text."),
'' ''
], ],
......
...@@ -480,7 +480,7 @@ export class ModesContentHoverWidget extends ContentHoverWidget { ...@@ -480,7 +480,7 @@ export class ModesContentHoverWidget extends ContentHoverWidget {
this._editor.applyFontInfo(markerElement); this._editor.applyFontInfo(markerElement);
const messageElement = dom.append(markerElement, $('span')); const messageElement = dom.append(markerElement, $('span'));
messageElement.style.whiteSpace = 'pre-wrap'; messageElement.style.whitespace = 'pre-wrap';
messageElement.innerText = message; messageElement.innerText = message;
if (source || code) { if (source || code) {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册