mirror of
https://github.com/microsoft/monaco-editor.git
synced 2025-12-22 13:55:41 +01:00
Adopt SnippetString and publish 1.2.1
This commit is contained in:
parent
04170905b3
commit
f1b96cadd5
4 changed files with 51 additions and 42 deletions
14
package.json
14
package.json
|
|
@ -1,13 +1,13 @@
|
||||||
{
|
{
|
||||||
"name": "monaco-html",
|
"name": "monaco-html",
|
||||||
"version": "1.2.0",
|
"version": "1.2.1",
|
||||||
"description": "HTML plugin for the Monaco Editor",
|
"description": "HTML plugin for the Monaco Editor",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"compile": "gulp compile",
|
"compile": "gulp compile",
|
||||||
"watch": "gulp watch",
|
"watch": "gulp watch",
|
||||||
"prepublish": "gulp release",
|
"prepublish": "gulp release",
|
||||||
"install-service-next": "npm install vscode-html-languageservice@next -f -D",
|
"install-service-next": "npm install vscode-html-languageservice@next -f -D && npm install vscode-languageserver-types@next -f -D",
|
||||||
"install-service-local": "npm install ../vscode-html-languageservice -f -D"
|
"install-service-local": "npm install ../vscode-html-languageservice -f -D && npm install ../vscode-languageserver-node/types -f -D"
|
||||||
},
|
},
|
||||||
"author": "Microsoft Corporation",
|
"author": "Microsoft Corporation",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
|
|
@ -25,13 +25,13 @@
|
||||||
"gulp-tsb": "^2.0.0",
|
"gulp-tsb": "^2.0.0",
|
||||||
"gulp-uglify": "^1.5.3",
|
"gulp-uglify": "^1.5.3",
|
||||||
"merge-stream": "^1.0.0",
|
"merge-stream": "^1.0.0",
|
||||||
"monaco-editor-core": "^0.7.0",
|
"monaco-editor-core": "^0.8.1",
|
||||||
"monaco-languages": "^0.6.1",
|
"monaco-languages": "^0.6.1",
|
||||||
"monaco-typescript": "^2.0.1",
|
"monaco-typescript": "^2.0.1",
|
||||||
"object-assign": "^4.1.0",
|
"object-assign": "^4.1.0",
|
||||||
"rimraf": "^2.5.2",
|
"rimraf": "^2.5.2",
|
||||||
"typescript": "2.0.3",
|
"typescript": "^2.1.5",
|
||||||
"vscode-html-languageservice": "1.0.0-next.6",
|
"vscode-html-languageservice": "^2.0.0-next.6",
|
||||||
"vscode-languageserver-types": "^1.0.4-next.2"
|
"vscode-languageserver-types": "^3.0.2-beta.5"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -204,16 +204,6 @@ function toTextEdit(textEdit: ls.TextEdit): monaco.editor.ISingleEditOperation {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function fromTextEdit(editOp: monaco.editor.ISingleEditOperation): ls.TextEdit {
|
|
||||||
if (!editOp) {
|
|
||||||
return void 0;
|
|
||||||
}
|
|
||||||
return {
|
|
||||||
range: fromRange(Range.lift(editOp.range)),
|
|
||||||
newText: editOp.text
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
interface DataCompletionItem extends monaco.languages.CompletionItem {
|
interface DataCompletionItem extends monaco.languages.CompletionItem {
|
||||||
data?: any;
|
data?: any;
|
||||||
}
|
}
|
||||||
|
|
@ -233,17 +223,25 @@ function toCompletionItem(entry: ls.CompletionItem): DataCompletionItem {
|
||||||
}
|
}
|
||||||
|
|
||||||
function fromCompletionItem(entry: DataCompletionItem): ls.CompletionItem {
|
function fromCompletionItem(entry: DataCompletionItem): ls.CompletionItem {
|
||||||
return {
|
let item : ls.CompletionItem = {
|
||||||
label: entry.label,
|
label: entry.label,
|
||||||
insertText: entry.insertText,
|
|
||||||
sortText: entry.sortText,
|
sortText: entry.sortText,
|
||||||
filterText: entry.filterText,
|
filterText: entry.filterText,
|
||||||
documentation: entry.documentation,
|
documentation: entry.documentation,
|
||||||
detail: entry.detail,
|
detail: entry.detail,
|
||||||
kind: fromCompletionItemKind(entry.kind),
|
kind: fromCompletionItemKind(entry.kind),
|
||||||
textEdit: fromTextEdit(entry.textEdit),
|
|
||||||
data: entry.data
|
data: entry.data
|
||||||
};
|
};
|
||||||
|
if (typeof entry.insertText === 'object' && typeof entry.insertText.value === 'string') {
|
||||||
|
item.insertText = entry.insertText.value;
|
||||||
|
item.insertTextFormat = ls.InsertTextFormat.Snippet
|
||||||
|
} else {
|
||||||
|
item.insertText = <string> entry.insertText;
|
||||||
|
}
|
||||||
|
if (entry.range) {
|
||||||
|
item.textEdit = ls.TextEdit.replace(fromRange(entry.range), item.insertText);
|
||||||
|
}
|
||||||
|
return item;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -261,28 +259,35 @@ export class CompletionAdapter implements monaco.languages.CompletionItemProvide
|
||||||
const resource = model.uri;
|
const resource = model.uri;
|
||||||
|
|
||||||
return wireCancellationToken(token, this._worker(resource).then(worker => {
|
return wireCancellationToken(token, this._worker(resource).then(worker => {
|
||||||
return worker.doComplete(resource.toString(), fromPosition(position)).then(info => {
|
return worker.doComplete(resource.toString(), fromPosition(position));
|
||||||
if (!info) {
|
}).then(info => {
|
||||||
return;
|
if (!info) {
|
||||||
}
|
return;
|
||||||
let items: monaco.languages.CompletionItem[] = info.items.map(entry => {
|
}
|
||||||
return {
|
let items: monaco.languages.CompletionItem[] = info.items.map(entry => {
|
||||||
label: entry.label,
|
let item : monaco.languages.CompletionItem = {
|
||||||
insertText: entry.insertText,
|
label: entry.label,
|
||||||
sortText: entry.sortText,
|
insertText: entry.insertText,
|
||||||
filterText: entry.filterText,
|
sortText: entry.sortText,
|
||||||
documentation: entry.documentation,
|
filterText: entry.filterText,
|
||||||
detail: entry.detail,
|
documentation: entry.documentation,
|
||||||
kind: toCompletionItemKind(entry.kind),
|
detail: entry.detail,
|
||||||
textEdit: toTextEdit(entry.textEdit)
|
kind: toCompletionItemKind(entry.kind),
|
||||||
};
|
|
||||||
});
|
|
||||||
|
|
||||||
return <monaco.languages.CompletionList>{
|
|
||||||
isIncomplete: info.isIncomplete,
|
|
||||||
items: items
|
|
||||||
};
|
};
|
||||||
|
if (entry.textEdit) {
|
||||||
|
item.range = toRange(entry.textEdit.range);
|
||||||
|
item.insertText = entry.textEdit.newText;
|
||||||
|
}
|
||||||
|
if (entry.insertTextFormat === ls.InsertTextFormat.Snippet) {
|
||||||
|
item.insertText = { value: <string> item.insertText };
|
||||||
|
}
|
||||||
|
return item;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
return {
|
||||||
|
isIncomplete: info.isIncomplete,
|
||||||
|
items: items
|
||||||
|
};
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -47,13 +47,15 @@ const formatDefaults: monaco.languages.html.HTMLFormatConfiguration = {
|
||||||
tabSize: 4,
|
tabSize: 4,
|
||||||
insertSpaces: false,
|
insertSpaces: false,
|
||||||
wrapLineLength: 120,
|
wrapLineLength: 120,
|
||||||
unformatted: 'a, abbr, acronym, b, bdo, big, br, button, cite, code, dfn, em, i, img, input, kbd, label, map, object, q, samp, script, select, small, span, strong, sub, sup, textarea, tt, var',
|
unformatted: 'default": "a, abbr, acronym, b, bdo, big, br, button, cite, code, dfn, em, i, img, input, kbd, label, map, object, q, samp, select, small, span, strong, sub, sup, textarea, tt, var',
|
||||||
|
contentUnformatted: 'pre',
|
||||||
indentInnerHtml: false,
|
indentInnerHtml: false,
|
||||||
preserveNewLines: true,
|
preserveNewLines: true,
|
||||||
maxPreserveNewLines: null,
|
maxPreserveNewLines: null,
|
||||||
indentHandlebars: false,
|
indentHandlebars: false,
|
||||||
endWithNewline: false,
|
endWithNewline: false,
|
||||||
extraLiners: 'head, body, /html'
|
extraLiners: 'head, body, /html',
|
||||||
|
wrapAttributes: 'auto'
|
||||||
};
|
};
|
||||||
|
|
||||||
const htmlOptionsDefault: monaco.languages.html.Options = {
|
const htmlOptionsDefault: monaco.languages.html.Options = {
|
||||||
|
|
|
||||||
2
src/monaco.d.ts
vendored
2
src/monaco.d.ts
vendored
|
|
@ -9,12 +9,14 @@ declare module monaco.languages.html {
|
||||||
readonly insertSpaces: boolean;
|
readonly insertSpaces: boolean;
|
||||||
readonly wrapLineLength: number;
|
readonly wrapLineLength: number;
|
||||||
readonly unformatted: string;
|
readonly unformatted: string;
|
||||||
|
readonly contentUnformatted: string;
|
||||||
readonly indentInnerHtml: boolean;
|
readonly indentInnerHtml: boolean;
|
||||||
readonly preserveNewLines: boolean;
|
readonly preserveNewLines: boolean;
|
||||||
readonly maxPreserveNewLines: number;
|
readonly maxPreserveNewLines: number;
|
||||||
readonly indentHandlebars: boolean;
|
readonly indentHandlebars: boolean;
|
||||||
readonly endWithNewline: boolean;
|
readonly endWithNewline: boolean;
|
||||||
readonly extraLiners: string;
|
readonly extraLiners: string;
|
||||||
|
readonly wrapAttributes: 'auto' | 'force' | 'force-aligned' | 'force-expand-multiline';
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface CompletionConfiguration {
|
export interface CompletionConfiguration {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue