mirror of
https://github.com/microsoft/vscode.git
synced 2026-04-24 18:49:00 +01:00
Merge branch 'alex/brackets'
Conflicts: src/vs/languages/handlebars/common/handlebars.ts
This commit is contained in:
@@ -5,7 +5,6 @@
|
||||
'use strict';
|
||||
|
||||
import {Emitter} from 'vs/base/common/event';
|
||||
import {IBracketElectricCharacterContribution} from 'vs/editor/common/modes/supports';
|
||||
import {score} from 'vs/editor/common/modes/languageSelector';
|
||||
import {Remotable, IThreadService} from 'vs/platform/thread/common/thread';
|
||||
import * as errors from 'vs/base/common/errors';
|
||||
@@ -26,8 +25,6 @@ import {registerApiCommands} from 'vs/workbench/api/node/extHostApiCommands';
|
||||
import * as extHostTypes from 'vs/workbench/api/node/extHostTypes';
|
||||
import Modes = require('vs/editor/common/modes');
|
||||
import {IModeService} from 'vs/editor/common/services/modeService';
|
||||
import {ICommentsSupportContribution, ITokenTypeClassificationSupportContribution} from 'vs/editor/common/modes/supports';
|
||||
import {IOnEnterSupportOptions} from 'vs/editor/common/modes/supports/onEnter';
|
||||
import URI from 'vs/base/common/uri';
|
||||
import Severity from 'vs/base/common/severity';
|
||||
import {IDisposable} from 'vs/base/common/lifecycle';
|
||||
@@ -395,104 +392,21 @@ export class ExtHostAPIImplementation {
|
||||
|
||||
private _setLanguageConfiguration(modeId: string, configuration: vscode.LanguageConfiguration): vscode.Disposable {
|
||||
|
||||
let disposables: IDisposable[] = [];
|
||||
let {comments, wordPattern} = configuration;
|
||||
|
||||
// comment configuration
|
||||
if (comments) {
|
||||
let contrib: ICommentsSupportContribution = { commentsConfiguration: {} };
|
||||
if (comments.lineComment) {
|
||||
contrib.commentsConfiguration.lineCommentTokens = [comments.lineComment];
|
||||
}
|
||||
if (comments.blockComment) {
|
||||
let [blockStart, blockEnd] = comments.blockComment;
|
||||
contrib.commentsConfiguration.blockCommentStartToken = blockStart;
|
||||
contrib.commentsConfiguration.blockCommentEndToken = blockEnd;
|
||||
}
|
||||
let d = this.Modes_CommentsSupport_register(modeId, contrib);
|
||||
disposables.push(d);
|
||||
}
|
||||
let {wordPattern} = configuration;
|
||||
|
||||
// word definition
|
||||
if (wordPattern) {
|
||||
setWordDefinitionFor(modeId, wordPattern);
|
||||
let d = this.Modes_TokenTypeClassificationSupport_register(modeId, {
|
||||
wordDefinition: wordPattern
|
||||
});
|
||||
disposables.push(d);
|
||||
|
||||
} else {
|
||||
setWordDefinitionFor(modeId, null);
|
||||
}
|
||||
|
||||
// on enter
|
||||
let onEnter: IOnEnterSupportOptions = {};
|
||||
let empty = true;
|
||||
let {brackets, indentationRules, onEnterRules} = configuration;
|
||||
|
||||
if (brackets) {
|
||||
empty = false;
|
||||
onEnter.brackets = brackets.map(pair => {
|
||||
let [open, close] = pair;
|
||||
return { open, close };
|
||||
});
|
||||
}
|
||||
if (indentationRules) {
|
||||
empty = false;
|
||||
onEnter.indentationRules = indentationRules;
|
||||
}
|
||||
if (onEnterRules) {
|
||||
empty = false;
|
||||
onEnter.regExpRules = <any>onEnterRules;
|
||||
}
|
||||
|
||||
if (!empty) {
|
||||
let d = this.Modes_OnEnterSupport_register(modeId, onEnter);
|
||||
disposables.push(d);
|
||||
}
|
||||
|
||||
if (configuration.__electricCharacterSupport) {
|
||||
disposables.push(
|
||||
this.Modes_ElectricCharacterSupport_register(modeId, configuration.__electricCharacterSupport)
|
||||
);
|
||||
}
|
||||
|
||||
if (configuration.__characterPairSupport) {
|
||||
disposables.push(
|
||||
this.Modes_CharacterPairSupport_register(modeId, configuration.__characterPairSupport)
|
||||
);
|
||||
}
|
||||
|
||||
return extHostTypes.Disposable.from(...disposables);
|
||||
return this.Modes_RichEditSupport_register(modeId, configuration);
|
||||
}
|
||||
|
||||
private Modes_CommentsSupport_register(modeId: string, commentsSupport: ICommentsSupportContribution): IDisposable {
|
||||
private Modes_RichEditSupport_register(modeId: string, configuration:vscode.LanguageConfiguration): IDisposable {
|
||||
let disposeToken = ExtHostAPIImplementation.generateDisposeToken();
|
||||
this._proxy.Modes_CommentsSupport_register(disposeToken, modeId, commentsSupport);
|
||||
return this._disposableFromToken(disposeToken);
|
||||
}
|
||||
|
||||
private Modes_TokenTypeClassificationSupport_register(modeId: string, tokenTypeClassificationSupport:ITokenTypeClassificationSupportContribution): IDisposable {
|
||||
let disposeToken = ExtHostAPIImplementation.generateDisposeToken();
|
||||
this._proxy.Modes_TokenTypeClassificationSupport_register(disposeToken, modeId, tokenTypeClassificationSupport);
|
||||
return this._disposableFromToken(disposeToken);
|
||||
}
|
||||
|
||||
private Modes_ElectricCharacterSupport_register(modeId: string, electricCharacterSupport:IBracketElectricCharacterContribution): IDisposable {
|
||||
let disposeToken = ExtHostAPIImplementation.generateDisposeToken();
|
||||
this._proxy.Modes_ElectricCharacterSupport_register(disposeToken, modeId, electricCharacterSupport);
|
||||
return this._disposableFromToken(disposeToken);
|
||||
}
|
||||
|
||||
private Modes_CharacterPairSupport_register(modeId: string, characterPairSupport:Modes.ICharacterPairContribution): IDisposable {
|
||||
let disposeToken = ExtHostAPIImplementation.generateDisposeToken();
|
||||
this._proxy.Modes_CharacterPairSupport_register(disposeToken, modeId, characterPairSupport);
|
||||
return this._disposableFromToken(disposeToken);
|
||||
}
|
||||
|
||||
private Modes_OnEnterSupport_register(modeId: string, opts: IOnEnterSupportOptions): IDisposable {
|
||||
let disposeToken = ExtHostAPIImplementation.generateDisposeToken();
|
||||
this._proxy.Modes_OnEnterSupport_register(disposeToken, modeId, opts);
|
||||
this._proxy.Modes_RichEditSupport_register(disposeToken, modeId, configuration);
|
||||
return this._disposableFromToken(disposeToken);
|
||||
}
|
||||
}
|
||||
@@ -562,23 +476,7 @@ export class MainProcessVSCodeAPIHelper {
|
||||
}
|
||||
}
|
||||
|
||||
public Modes_CommentsSupport_register(disposeToken:string, modeId: string, commentsSupport: ICommentsSupportContribution): void {
|
||||
this._token2Dispose[disposeToken] = this._modeService.registerDeclarativeCommentsSupport(modeId, commentsSupport);
|
||||
}
|
||||
|
||||
public Modes_TokenTypeClassificationSupport_register(disposeToken:string, modeId: string, tokenTypeClassificationSupport:ITokenTypeClassificationSupportContribution): void {
|
||||
this._token2Dispose[disposeToken] = this._modeService.registerDeclarativeTokenTypeClassificationSupport(modeId, tokenTypeClassificationSupport);
|
||||
}
|
||||
|
||||
public Modes_ElectricCharacterSupport_register(disposeToken:string, modeId: string, electricCharacterSupport:IBracketElectricCharacterContribution): void {
|
||||
this._token2Dispose[disposeToken] = this._modeService.registerDeclarativeElectricCharacterSupport(modeId, electricCharacterSupport);
|
||||
}
|
||||
|
||||
public Modes_CharacterPairSupport_register(disposeToken:string, modeId: string, characterPairSupport:Modes.ICharacterPairContribution): void {
|
||||
this._token2Dispose[disposeToken] = this._modeService.registerDeclarativeCharacterPairSupport(modeId, characterPairSupport);
|
||||
}
|
||||
|
||||
public Modes_OnEnterSupport_register(disposeToken:string, modeId: string, opts:IOnEnterSupportOptions): void {
|
||||
this._token2Dispose[disposeToken] = this._modeService.registerDeclarativeOnEnterSupport(modeId, <any>opts);
|
||||
public Modes_RichEditSupport_register(disposeToken:string, modeId: string, configuration:vscode.LanguageConfiguration): void {
|
||||
this._token2Dispose[disposeToken] = this._modeService.registerRichEditSupport(modeId, <any>configuration);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user