UNPKG

alm

Version:

The best IDE for TypeScript

51 lines (50 loc) 2.41 kB
"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()); }