alm
Version:
The best IDE for TypeScript
51 lines (50 loc) • 2.41 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
function setupMonacoTypecript() {
monaco.languages.register({
id: 'typescript',
extensions: ['.ts', '.tsx'],
aliases: ['TypeScript', 'ts', 'typescript'],
mimetypes: ['text/typescript']
});
monaco.languages.onLanguage('typescript', function () {
// Perform any one time setup
setupMode('typescript');
});
monaco.languages.register({
id: 'javascript',
extensions: ['.js', '.es6', '.jsx'],
firstLine: '^#!.*\\bnode',
filenames: ['jakefile'],
aliases: ['JavaScript', 'javascript', 'js'],
mimetypes: ['text/javascript'],
});
monaco.languages.onLanguage('javascript', function () {
// Perform any one time setup
setupMode('javascript');
});
}
exports.setupMonacoTypecript = setupMonacoTypecript;
var tokenization = require("./tokenization");
var richLanguageConfiguration_1 = require("./richLanguageConfiguration");
var provideDocumentHighlights = require("./provideDocumentHighlights");
var provideHover_1 = require("./provideHover");
var formatting_1 = require("./formatting");
var autocomplete = require("./autocomplete");
function setupMode(modeId) {
/** Setup tokenization */
var language = modeId === 'typescript' ? tokenization.Language.TypeScript : tokenization.Language.EcmaScript5;
monaco.languages.setTokensProvider(modeId, tokenization.createTokenizationSupport(language));
/** Setup bracket matching etc. */
monaco.languages.setLanguageConfiguration(modeId, richLanguageConfiguration_1.richLanguageConfiguration);
/** Setup highlight occurances */
monaco.languages.registerDocumentHighlightProvider(modeId, provideDocumentHighlights);
/** Setup hover information provider */
monaco.languages.registerHoverProvider(modeId, new provideHover_1.ProvideHover());
/** Setup formaters */
monaco.languages.registerDocumentFormattingEditProvider(modeId, new formatting_1.DocumentFormatter());
monaco.languages.registerDocumentRangeFormattingEditProvider(modeId, new formatting_1.DocumentRangeFormatter());
monaco.languages.registerOnTypeFormattingEditProvider(modeId, new formatting_1.FormatOnTypeAdapter());
/** Setup autocomplete */
monaco.languages.registerCompletionItemProvider(modeId, new autocomplete.SuggestAdapter());
}