mirror of
https://github.com/microsoft/monaco-editor.git
synced 2025-12-22 15:05:39 +01:00
Release build script
This commit is contained in:
parent
2380ce142c
commit
293cc3aa55
8 changed files with 105 additions and 62 deletions
34
src/fillers/vscode-nls.ts
Normal file
34
src/fillers/vscode-nls.ts
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
/*---------------------------------------------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Licensed under the MIT License. See License.txt in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
|
||||
import {LocalizeInfo, LocalizeFunc, Options, LoadFunc} from 'vscode-nls';
|
||||
|
||||
export {LocalizeInfo, LocalizeFunc, Options, LoadFunc};
|
||||
|
||||
function format(message: string, args: any[]): string {
|
||||
let result:string;
|
||||
|
||||
if (args.length === 0) {
|
||||
result = message;
|
||||
} else {
|
||||
result = message.replace(/\{(\d+)\}/g, (match, rest) => {
|
||||
let index = rest[0];
|
||||
return typeof args[index] !== 'undefined' ? args[index] : match;
|
||||
});
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
function localize(key: string | LocalizeInfo, message: string, ...args: any[]): string {
|
||||
return format(message, args);
|
||||
}
|
||||
|
||||
export function loadMessageBundle(file?: string): LocalizeFunc {
|
||||
return localize;
|
||||
}
|
||||
|
||||
export function config(opt?: Options | string): LoadFunc {
|
||||
return loadMessageBundle;
|
||||
}
|
||||
|
|
@ -7,9 +7,7 @@
|
|||
import {LanguageServiceDefaultsImpl} from './monaco.contribution';
|
||||
import {CSSWorker} from './worker';
|
||||
|
||||
import * as cssService from 'vscode-css-languageservice/lib/cssLanguageService';
|
||||
import * as ls from 'vscode-languageserver-types/lib/main';
|
||||
|
||||
import * as ls from 'vscode-languageserver-types';
|
||||
|
||||
import Uri = monaco.Uri;
|
||||
import Position = monaco.Position;
|
||||
|
|
@ -20,6 +18,10 @@ import CancellationToken = monaco.CancellationToken;
|
|||
import IDisposable = monaco.IDisposable;
|
||||
|
||||
|
||||
export interface WorkerAccessor {
|
||||
(first: Uri, ...more: Uri[]): Promise<CSSWorker>
|
||||
}
|
||||
|
||||
// --- diagnostics --- ---
|
||||
|
||||
export class DiagnostcsAdapter {
|
||||
|
|
@ -27,10 +29,7 @@ export class DiagnostcsAdapter {
|
|||
private _disposables: IDisposable[] = [];
|
||||
private _listener: { [uri: string]: IDisposable } = Object.create(null);
|
||||
|
||||
constructor(private _defaults: LanguageServiceDefaultsImpl, private _languageId: string,
|
||||
private _worker: (first: Uri, ...more: Uri[]) => Promise<CSSWorker>
|
||||
) {
|
||||
|
||||
constructor(private _languageId: string, private _worker: WorkerAccessor) {
|
||||
const onModelAdd = (model: monaco.editor.IModel): void => {
|
||||
let modeId = model.getModeId();
|
||||
if (modeId !== this._languageId) {
|
||||
|
|
@ -112,7 +111,7 @@ function toDiagnostics(resource: Uri, diag: ls.Diagnostic): monaco.editor.IMarke
|
|||
};
|
||||
}
|
||||
|
||||
// --- suggest ------
|
||||
// --- completion ------
|
||||
|
||||
function fromPosition(position: Position): ls.Position {
|
||||
if (!position) {
|
||||
|
|
@ -174,7 +173,7 @@ function toTextEdit(textEdit: ls.TextEdit): monaco.editor.ISingleEditOperation {
|
|||
|
||||
export class CompletionAdapter implements monaco.languages.CompletionItemProvider {
|
||||
|
||||
constructor(private _worker: (first: Uri, ...more: Uri[]) => Promise<CSSWorker>) {
|
||||
constructor(private _worker: WorkerAccessor) {
|
||||
}
|
||||
|
||||
public get triggerCharacters(): string[] {
|
||||
|
|
@ -193,7 +192,8 @@ export class CompletionAdapter implements monaco.languages.CompletionItemProvide
|
|||
}
|
||||
let items: monaco.languages.CompletionItem[] = info.items.map(entry => {
|
||||
return {
|
||||
label: entry.insertText,
|
||||
label: entry.label,
|
||||
insertText: entry.insertText,
|
||||
sortText: entry.sortText,
|
||||
filterText: entry.filterText,
|
||||
documentation: entry.documentation,
|
||||
|
|
@ -238,7 +238,7 @@ function toHTMLContentElements(contents: ls.MarkedString | ls.MarkedString[]): m
|
|||
|
||||
export class HoverAdapter implements monaco.languages.HoverProvider {
|
||||
|
||||
constructor(private _worker: (first: Uri, ...more: Uri[]) => Promise<CSSWorker>) {
|
||||
constructor(private _worker: WorkerAccessor) {
|
||||
}
|
||||
|
||||
provideHover(model: monaco.editor.IReadOnlyModel, position: Position, token: CancellationToken): Thenable<monaco.languages.Hover> {
|
||||
|
|
@ -258,7 +258,7 @@ export class HoverAdapter implements monaco.languages.HoverProvider {
|
|||
}
|
||||
}
|
||||
|
||||
// --- occurrences ------
|
||||
// --- document highlights ------
|
||||
|
||||
function toDocumentHighlightKind(kind: number): monaco.languages.DocumentHighlightKind {
|
||||
switch (kind) {
|
||||
|
|
@ -272,7 +272,7 @@ function toDocumentHighlightKind(kind: number): monaco.languages.DocumentHighlig
|
|||
|
||||
export class DocumentHighlightAdapter implements monaco.languages.DocumentHighlightProvider {
|
||||
|
||||
constructor(private _worker: (first: Uri, ...more: Uri[]) => Promise<CSSWorker>) {
|
||||
constructor(private _worker: WorkerAccessor) {
|
||||
}
|
||||
|
||||
public provideDocumentHighlights(model: monaco.editor.IReadOnlyModel, position: Position, token: CancellationToken): Thenable<monaco.languages.DocumentHighlight[]> {
|
||||
|
|
@ -305,7 +305,7 @@ function toLocation(location: ls.Location): monaco.languages.Location {
|
|||
|
||||
export class DefinitionAdapter {
|
||||
|
||||
constructor(private _worker: (first: Uri, ...more: Uri[]) => Promise<CSSWorker>) {
|
||||
constructor(private _worker: WorkerAccessor) {
|
||||
}
|
||||
|
||||
public provideDefinition(model: monaco.editor.IReadOnlyModel, position: Position, token: CancellationToken): Thenable<monaco.languages.Definition> {
|
||||
|
|
@ -326,7 +326,7 @@ export class DefinitionAdapter {
|
|||
|
||||
export class ReferenceAdapter implements monaco.languages.ReferenceProvider {
|
||||
|
||||
constructor(private _worker: (first: Uri, ...more: Uri[]) => Promise<CSSWorker>) {
|
||||
constructor(private _worker: WorkerAccessor) {
|
||||
}
|
||||
|
||||
provideReferences(model: monaco.editor.IReadOnlyModel, position: Position, context: monaco.languages.ReferenceContext, token: CancellationToken): Thenable<monaco.languages.Location[]> {
|
||||
|
|
@ -349,11 +349,11 @@ function toWorkspaceEdit(edit: ls.WorkspaceEdit): monaco.languages.WorkspaceEdit
|
|||
if (!edit || !edit.changes) {
|
||||
return void 0;
|
||||
}
|
||||
let resourceEdits : monaco.languages.IResourceEdit[] = [];
|
||||
let resourceEdits: monaco.languages.IResourceEdit[] = [];
|
||||
for (let uri in edit.changes) {
|
||||
let edits = edit.changes[uri];
|
||||
for (let e of edits) {
|
||||
resourceEdits.push({resource: Uri.parse(uri), range: toRange(e.range), newText: e.newText });
|
||||
resourceEdits.push({ resource: Uri.parse(uri), range: toRange(e.range), newText: e.newText });
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -365,7 +365,7 @@ function toWorkspaceEdit(edit: ls.WorkspaceEdit): monaco.languages.WorkspaceEdit
|
|||
|
||||
export class RenameAdapter implements monaco.languages.RenameProvider {
|
||||
|
||||
constructor(private _worker: (first: Uri, ...more: Uri[]) => Promise<CSSWorker>) {
|
||||
constructor(private _worker: WorkerAccessor) {
|
||||
}
|
||||
|
||||
provideRenameEdits(model: monaco.editor.IReadOnlyModel, position: Position, newName: string, token: CancellationToken): Thenable<monaco.languages.WorkspaceEdit> {
|
||||
|
|
@ -379,7 +379,7 @@ export class RenameAdapter implements monaco.languages.RenameProvider {
|
|||
}
|
||||
}
|
||||
|
||||
// --- outline ------
|
||||
// --- document symbols ------
|
||||
|
||||
function toSymbolKind(kind: ls.SymbolKind): monaco.languages.SymbolKind {
|
||||
let lsKind = ls.SymbolKind;
|
||||
|
|
@ -411,7 +411,7 @@ function toSymbolKind(kind: ls.SymbolKind): monaco.languages.SymbolKind {
|
|||
|
||||
export class DocumentSymbolAdapter implements monaco.languages.DocumentSymbolProvider {
|
||||
|
||||
constructor(private _worker: (first: Uri, ...more: Uri[]) => Promise<CSSWorker>) {
|
||||
constructor(private _worker: WorkerAccessor) {
|
||||
}
|
||||
|
||||
public provideDocumentSymbols(model: monaco.editor.IReadOnlyModel, token: CancellationToken): Thenable<monaco.languages.SymbolInformation[]> {
|
||||
|
|
|
|||
25
src/mode.ts
25
src/mode.ts
|
|
@ -38,7 +38,6 @@ export function setupCSS(defaults:LanguageServiceDefaultsImpl): void {
|
|||
|
||||
setupMode(
|
||||
defaults,
|
||||
'css',
|
||||
cssLanguageConfiguration
|
||||
);
|
||||
}
|
||||
|
|
@ -63,7 +62,6 @@ export function setupLESS(defaults:LanguageServiceDefaultsImpl): void {
|
|||
|
||||
setupMode(
|
||||
defaults,
|
||||
'less',
|
||||
lessLanguageConfiguration
|
||||
);
|
||||
}
|
||||
|
|
@ -88,12 +86,11 @@ export function setupSCSS(defaults:LanguageServiceDefaultsImpl): void {
|
|||
|
||||
setupMode(
|
||||
defaults,
|
||||
'scss',
|
||||
scssLanguageConfiguration
|
||||
);
|
||||
}
|
||||
|
||||
function setupMode(defaults:LanguageServiceDefaultsImpl, modeId:string, languageConfiguration: monaco.languages.LanguageConfiguration): void {
|
||||
function setupMode(defaults:LanguageServiceDefaultsImpl, languageConfiguration: monaco.languages.LanguageConfiguration): void {
|
||||
|
||||
let disposables: IDisposable[] = [];
|
||||
|
||||
|
|
@ -104,15 +101,17 @@ function setupMode(defaults:LanguageServiceDefaultsImpl, modeId:string, language
|
|||
return client.getLanguageServiceWorker(...[first].concat(more));
|
||||
};
|
||||
|
||||
disposables.push(monaco.languages.registerCompletionItemProvider(modeId, new languageFeatures.CompletionAdapter(worker)));
|
||||
disposables.push(monaco.languages.registerHoverProvider(modeId, new languageFeatures.HoverAdapter(worker)));
|
||||
disposables.push(monaco.languages.registerDocumentHighlightProvider(modeId, new languageFeatures.DocumentHighlightAdapter(worker)));
|
||||
disposables.push(monaco.languages.registerDefinitionProvider(modeId, new languageFeatures.DefinitionAdapter(worker)));
|
||||
disposables.push(monaco.languages.registerReferenceProvider(modeId, new languageFeatures.ReferenceAdapter(worker)));
|
||||
disposables.push(monaco.languages.registerDocumentSymbolProvider(modeId, new languageFeatures.DocumentSymbolAdapter(worker)));
|
||||
disposables.push(monaco.languages.registerRenameProvider(modeId, new languageFeatures.RenameAdapter(worker)));
|
||||
disposables.push(new languageFeatures.DiagnostcsAdapter(defaults, modeId, worker));
|
||||
disposables.push(monaco.languages.setLanguageConfiguration(modeId, languageConfiguration));
|
||||
let languageId = defaults.languageId;
|
||||
|
||||
disposables.push(monaco.languages.registerCompletionItemProvider(languageId, new languageFeatures.CompletionAdapter(worker)));
|
||||
disposables.push(monaco.languages.registerHoverProvider(languageId, new languageFeatures.HoverAdapter(worker)));
|
||||
disposables.push(monaco.languages.registerDocumentHighlightProvider(languageId, new languageFeatures.DocumentHighlightAdapter(worker)));
|
||||
disposables.push(monaco.languages.registerDefinitionProvider(languageId, new languageFeatures.DefinitionAdapter(worker)));
|
||||
disposables.push(monaco.languages.registerReferenceProvider(languageId, new languageFeatures.ReferenceAdapter(worker)));
|
||||
disposables.push(monaco.languages.registerDocumentSymbolProvider(languageId, new languageFeatures.DocumentSymbolAdapter(worker)));
|
||||
disposables.push(monaco.languages.registerRenameProvider(languageId, new languageFeatures.RenameAdapter(worker)));
|
||||
disposables.push(new languageFeatures.DiagnostcsAdapter(languageId, worker));
|
||||
disposables.push(monaco.languages.setLanguageConfiguration(languageId, languageConfiguration));
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -18,8 +18,10 @@ export class LanguageServiceDefaultsImpl implements monaco.languages.css.Languag
|
|||
|
||||
private _onDidChange = new Emitter<monaco.languages.css.LanguageServiceDefaults>();
|
||||
private _diagnosticsOptions: monaco.languages.css.DiagnosticsOptions;
|
||||
private _languageId: string;
|
||||
|
||||
constructor(diagnosticsOptions: monaco.languages.css.DiagnosticsOptions) {
|
||||
constructor(languageId: string, diagnosticsOptions: monaco.languages.css.DiagnosticsOptions) {
|
||||
this._languageId = languageId;
|
||||
this.setDiagnosticsOptions(diagnosticsOptions);
|
||||
}
|
||||
|
||||
|
|
@ -27,6 +29,10 @@ export class LanguageServiceDefaultsImpl implements monaco.languages.css.Languag
|
|||
return this._onDidChange.event;
|
||||
}
|
||||
|
||||
get languageId(): string {
|
||||
return this._languageId;
|
||||
}
|
||||
|
||||
get diagnosticsOptions(): monaco.languages.css.DiagnosticsOptions {
|
||||
return this._diagnosticsOptions;
|
||||
}
|
||||
|
|
@ -61,9 +67,9 @@ const diagnosticDefault : monaco.languages.css.DiagnosticsOptions = {
|
|||
}
|
||||
}
|
||||
|
||||
const cssDefaults = new LanguageServiceDefaultsImpl(diagnosticDefault);
|
||||
const scssDefaults = new LanguageServiceDefaultsImpl(diagnosticDefault);
|
||||
const lessDefaults = new LanguageServiceDefaultsImpl(diagnosticDefault);
|
||||
const cssDefaults = new LanguageServiceDefaultsImpl('css', diagnosticDefault);
|
||||
const scssDefaults = new LanguageServiceDefaultsImpl('scss', diagnosticDefault);
|
||||
const lessDefaults = new LanguageServiceDefaultsImpl('less', diagnosticDefault);
|
||||
|
||||
|
||||
// Export API
|
||||
|
|
|
|||
|
|
@ -6,8 +6,8 @@
|
|||
|
||||
import Promise = monaco.Promise;
|
||||
|
||||
import * as cssService from 'vscode-css-languageservice/lib/cssLanguageService';
|
||||
import * as ls from 'vscode-languageserver-types/lib/main';
|
||||
import * as cssService from 'vscode-css-languageservice';
|
||||
import * as ls from 'vscode-languageserver-types';
|
||||
|
||||
export class CSSWorker {
|
||||
|
||||
|
|
|
|||
|
|
@ -62,11 +62,12 @@ export class WorkerManager {
|
|||
this._worker = monaco.editor.createWebWorker<CSSWorker>({
|
||||
|
||||
// module that exports the create() method and returns a `CSSWorker` instance
|
||||
moduleId: 'vs/language/css/src/worker',
|
||||
moduleId: 'vs/language/css/worker',
|
||||
|
||||
// passed in to the create() method
|
||||
createData: {
|
||||
languageSettings: this._defaults.diagnosticsOptions
|
||||
languageSettings: this._defaults.diagnosticsOptions,
|
||||
languageId: this._defaults.languageId
|
||||
}
|
||||
});
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue