提交 e6a76e4b 编写于 作者: M Matt Bierner

Move js/ts language mode ids to own file

上级 abcdfe2c
...@@ -9,6 +9,7 @@ import { workspace, TextDocument, TextDocumentChangeEvent, TextDocumentContentCh ...@@ -9,6 +9,7 @@ import { workspace, TextDocument, TextDocumentChangeEvent, TextDocumentContentCh
import * as Proto from '../protocol'; import * as Proto from '../protocol';
import { ITypescriptServiceClient } from '../typescriptService'; import { ITypescriptServiceClient } from '../typescriptService';
import { Delayer } from '../utils/async'; import { Delayer } from '../utils/async';
import * as languageModeIds from '../utils/languageModeIds';
interface IDiagnosticRequestor { interface IDiagnosticRequestor {
requestDiagnostic(filepath: string): void; requestDiagnostic(filepath: string): void;
...@@ -16,10 +17,10 @@ interface IDiagnosticRequestor { ...@@ -16,10 +17,10 @@ interface IDiagnosticRequestor {
function mode2ScriptKind(mode: string): 'TS' | 'TSX' | 'JS' | 'JSX' | undefined { function mode2ScriptKind(mode: string): 'TS' | 'TSX' | 'JS' | 'JSX' | undefined {
switch (mode) { switch (mode) {
case 'typescript': return 'TS'; case languageModeIds.typescript: return 'TS';
case 'typescriptreact': return 'TSX'; case languageModeIds.typescriptreact: return 'TSX';
case 'javascript': return 'JS'; case languageModeIds.javascript: return 'JS';
case 'javascriptreact': return 'JSX'; case languageModeIds.javascriptreact: return 'JSX';
} }
return undefined; return undefined;
} }
......
...@@ -15,6 +15,8 @@ import { tsTextSpanToVsRange, vsPositionToTsFileLocation } from '../utils/conver ...@@ -15,6 +15,8 @@ import { tsTextSpanToVsRange, vsPositionToTsFileLocation } from '../utils/conver
import * as nls from 'vscode-nls'; import * as nls from 'vscode-nls';
import { applyCodeAction } from '../utils/codeAction'; import { applyCodeAction } from '../utils/codeAction';
import * as languageModeIds from '../utils/languageModeIds';
let localize = nls.loadMessageBundle(); let localize = nls.loadMessageBundle();
class MyCompletionItem extends CompletionItem { class MyCompletionItem extends CompletionItem {
...@@ -236,7 +238,7 @@ export default class TypeScriptCompletionItemProvider implements CompletionItemP ...@@ -236,7 +238,7 @@ export default class TypeScriptCompletionItemProvider implements CompletionItemP
const body = msg.body; const body = msg.body;
if (body) { if (body) {
// Only enable dot completions in TS files for now // Only enable dot completions in TS files for now
let enableDotCompletions = document && (document.languageId === 'typescript' || document.languageId === 'typescriptreact'); let enableDotCompletions = document && (document.languageId === languageModeIds.typescript || document.languageId === languageModeIds.typescriptreact);
// TODO: Workaround for https://github.com/Microsoft/TypeScript/issues/13456 // TODO: Workaround for https://github.com/Microsoft/TypeScript/issues/13456
// Only enable dot completions when previous character is an identifier. // Only enable dot completions when previous character is an identifier.
......
...@@ -35,6 +35,7 @@ import { getContributedTypeScriptServerPlugins, TypeScriptServerPlugin } from '. ...@@ -35,6 +35,7 @@ import { getContributedTypeScriptServerPlugins, TypeScriptServerPlugin } from '.
import { openOrCreateConfigFile, isImplicitProjectConfigFile } from './utils/tsconfig'; import { openOrCreateConfigFile, isImplicitProjectConfigFile } from './utils/tsconfig';
import { tsLocationToVsPosition } from './utils/convert'; import { tsLocationToVsPosition } from './utils/convert';
import FormattingConfigurationManager from './features/formattingConfigurationManager'; import FormattingConfigurationManager from './features/formattingConfigurationManager';
import * as languageModeIds from './utils/languageModeIds';
interface LanguageDescription { interface LanguageDescription {
id: string; id: string;
...@@ -54,21 +55,16 @@ interface ProjectConfigMessageItem extends MessageItem { ...@@ -54,21 +55,16 @@ interface ProjectConfigMessageItem extends MessageItem {
id: ProjectConfigAction; id: ProjectConfigAction;
} }
const MODE_ID_TS = 'typescript';
const MODE_ID_TSX = 'typescriptreact';
const MODE_ID_JS = 'javascript';
const MODE_ID_JSX = 'javascriptreact';
const standardLanguageDescriptions: LanguageDescription[] = [ const standardLanguageDescriptions: LanguageDescription[] = [
{ {
id: 'typescript', id: 'typescript',
diagnosticSource: 'ts', diagnosticSource: 'ts',
modeIds: [MODE_ID_TS, MODE_ID_TSX], modeIds: [languageModeIds.typescript, languageModeIds.typescriptreact],
configFile: 'tsconfig.json' configFile: 'tsconfig.json'
}, { }, {
id: 'javascript', id: 'javascript',
diagnosticSource: 'js', diagnosticSource: 'js',
modeIds: [MODE_ID_JS, MODE_ID_JSX], modeIds: [languageModeIds.javascript, languageModeIds.javascriptreact],
configFile: 'jsconfig.json' configFile: 'jsconfig.json'
} }
]; ];
......
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
export const typescript = 'typescript';
export const typescriptreact = 'typescriptreact';
export const javascript = 'javascript';
export const javascriptreact = 'javascriptreact';
\ No newline at end of file
...@@ -8,9 +8,10 @@ import { ITypescriptServiceClient } from '../typescriptService'; ...@@ -8,9 +8,10 @@ import { ITypescriptServiceClient } from '../typescriptService';
import { loadMessageBundle } from 'vscode-nls'; import { loadMessageBundle } from 'vscode-nls';
import { dirname } from 'path'; import { dirname } from 'path';
import { openOrCreateConfigFile, isImplicitProjectConfigFile } from './tsconfig'; import { openOrCreateConfigFile, isImplicitProjectConfigFile } from './tsconfig';
import * as languageModeIds from '../utils/languageModeIds';
const localize = loadMessageBundle(); const localize = loadMessageBundle();
const selector = ['javascript', 'javascriptreact']; const selector = [languageModeIds.javascript, languageModeIds.javascriptreact];
interface Hint { interface Hint {
......
...@@ -5,6 +5,7 @@ ...@@ -5,6 +5,7 @@
import * as vscode from 'vscode'; import * as vscode from 'vscode';
import { TypeScriptVersion } from './versionProvider'; import { TypeScriptVersion } from './versionProvider';
import * as languageModeIds from './languageModeIds';
export default class VersionStatus { export default class VersionStatus {
private onChangeEditorSub: vscode.Disposable; private onChangeEditorSub: vscode.Disposable;
...@@ -37,7 +38,7 @@ export default class VersionStatus { ...@@ -37,7 +38,7 @@ export default class VersionStatus {
} }
const doc = vscode.window.activeTextEditor.document; const doc = vscode.window.activeTextEditor.document;
if (vscode.languages.match('typescript', doc) || vscode.languages.match('typescriptreact', doc)) { if (vscode.languages.match([languageModeIds.typescript, languageModeIds.typescriptreact], doc)) {
this.versionBarEntry.show(); this.versionBarEntry.show();
return; return;
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册