mirror of
https://github.com/microsoft/monaco-editor.git
synced 2025-12-22 19:42:56 +01:00
Release build script
This commit is contained in:
parent
2380ce142c
commit
293cc3aa55
8 changed files with 105 additions and 62 deletions
12
README.md
12
README.md
|
|
@ -1,17 +1,9 @@
|
|||
<<<<<<< dc598757e71a1ee33423bd24c3cb1b4b849722e6
|
||||
# monaco-css
|
||||
CSS language support for the Monaco editor
|
||||
=======
|
||||
# Monaco TypeScript
|
||||
|
||||
TypeScript and JavaScript language support for the Monaco Editor.
|
||||
|
||||

|
||||
CSS language support for the Monaco Editor.
|
||||
|
||||
## Installing
|
||||
|
||||
This npm module is bundled and distributed in the [monaco-editor](https://www.npmjs.com/package/monaco-editor) npm module.
|
||||
|
||||
## License
|
||||
[MIT](https://github.com/Microsoft/monaco-typescript/blob/master/LICENSE.md)
|
||||
>>>>>>> Init
|
||||
[MIT](https://github.com/Microsoft/monaco-css/blob/master/LICENSE.md)
|
||||
|
|
|
|||
31
gulpfile.js
31
gulpfile.js
|
|
@ -24,9 +24,9 @@ gulp.task('release', ['clean-release','compile'], function() {
|
|||
var BUNDLED_FILE_HEADER = [
|
||||
'/*!-----------------------------------------------------------------------------',
|
||||
' * Copyright (c) Microsoft Corporation. All rights reserved.',
|
||||
' * monaco-typescript version: ' + headerVersion,
|
||||
' * monaco-css version: ' + headerVersion,
|
||||
' * Released under the MIT license',
|
||||
' * https://github.com/Microsoft/monaco-typescript/blob/master/LICENSE.md',
|
||||
' * https://github.com/Microsoft/monaco-css/blob/master/LICENSE.md',
|
||||
' *-----------------------------------------------------------------------------*/',
|
||||
''
|
||||
].join('\n');
|
||||
|
|
@ -38,22 +38,33 @@ gulp.task('release', ['clean-release','compile'], function() {
|
|||
out: moduleId + '.js',
|
||||
exclude: exclude,
|
||||
paths: {
|
||||
'vs/language/css': __dirname + '/out',
|
||||
'vscode-css-languageservice/lib': __dirname + '/node_modules/vscode-css-languageservice/lib',
|
||||
'vscode-languageserver-types/lib': __dirname + '/node_modules/vscode-languageserver-types/lib'
|
||||
}
|
||||
'vs/language/css': __dirname + '/out'
|
||||
},
|
||||
packages: [{
|
||||
name: 'vscode-css-languageservice',
|
||||
location: __dirname + '/node_modules/vscode-css-languageservice/lib',
|
||||
main: 'cssLanguageService'
|
||||
}, {
|
||||
name: 'vscode-languageserver-types',
|
||||
location: __dirname + '/node_modules/vscode-languageserver-types/lib',
|
||||
main: 'main'
|
||||
}, {
|
||||
name: 'vscode-nls',
|
||||
location: __dirname + '/out/fillers',
|
||||
main: 'vscode-nls'
|
||||
}]
|
||||
})
|
||||
}
|
||||
|
||||
return merge(
|
||||
merge(
|
||||
bundleOne('monaco.contribution'),
|
||||
bundleOne('monaco.contribution', ['vs/language/css/mode']),
|
||||
bundleOne('mode'),
|
||||
bundleOne('worker')
|
||||
)
|
||||
.pipe(uglify({
|
||||
preserveComments: 'some'
|
||||
}))
|
||||
// .pipe(uglify({
|
||||
// preserveComments: 'some'
|
||||
// }))
|
||||
.pipe(es.through(function(data) {
|
||||
data.contents = new Buffer(
|
||||
BUNDLED_FILE_HEADER
|
||||
|
|
|
|||
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[]> {
|
||||
|
|
@ -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