Skip to content

Commit d3cd7bc

Browse files
committed
Merge branch 'master' into joao/submenus
2 parents 86ec536 + 111c5d9 commit d3cd7bc

85 files changed

Lines changed: 1284 additions & 478 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
/*---------------------------------------------------------------------------------------------
2+
* Copyright (c) Microsoft Corporation. All rights reserved.
3+
* Licensed under the MIT License. See License.txt in the project root for license information.
4+
*--------------------------------------------------------------------------------------------*/
5+
6+
//@ts-check
7+
8+
'use strict';
9+
const CopyPlugin = require('copy-webpack-plugin');
10+
11+
const withBrowserDefaults = require('../shared.webpack.config').browser;
12+
13+
module.exports = withBrowserDefaults({
14+
context: __dirname,
15+
entry: {
16+
extension: './src/extension.browser.ts',
17+
},
18+
plugins: [
19+
// @ts-ignore
20+
new CopyPlugin({
21+
patterns: [
22+
{ from: 'node_modules/typescript-web-server', to: 'typescript-web' }
23+
],
24+
}),
25+
],
26+
});

extensions/typescript-language-features/package.json

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,14 @@
2727
"@types/node": "^12.11.7",
2828
"@types/rimraf": "2.0.2",
2929
"@types/semver": "^5.5.0",
30+
"copy-webpack-plugin": "^6.0.3",
31+
"typescript-web-server": "git://github.com/mjbvz/ts-server-web-build",
3032
"vscode": "^1.1.36"
3133
},
3234
"scripts": {
33-
"vscode:prepublish": "node ../../node_modules/gulp/bin/gulp.js --gulpfile ../../build/gulpfile.extensions.js compile-extension:typescript-language-features"
35+
"vscode:prepublish": "node ../../node_modules/gulp/bin/gulp.js --gulpfile ../../build/gulpfile.extensions.js compile-extension:typescript-language-features",
36+
"compile-web": "npx webpack-cli --config extension-browser.webpack.config --mode none",
37+
"watch-web": "npx webpack-cli --config extension-browser.webpack.config --mode none --watch --info-verbosity verbose"
3438
},
3539
"activationEvents": [
3640
"onLanguage:javascript",
@@ -50,6 +54,7 @@
5054
"onLanguage:jsonc"
5155
],
5256
"main": "./out/extension",
57+
"browser": "./dist/browser/extension",
5358
"contributes": {
5459
"jsonValidation": [
5560
{

extensions/typescript-language-features/src/commands/index.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,17 +9,17 @@ import { Lazy } from '../utils/lazy';
99
import { PluginManager } from '../utils/plugins';
1010
import { ConfigurePluginCommand } from './configurePlugin';
1111
import { JavaScriptGoToProjectConfigCommand, TypeScriptGoToProjectConfigCommand } from './goToProjectConfiguration';
12+
import { LearnMoreAboutRefactoringsCommand } from './learnMoreAboutRefactorings';
1213
import { OpenTsServerLogCommand } from './openTsServerLog';
1314
import { ReloadJavaScriptProjectsCommand, ReloadTypeScriptProjectsCommand } from './reloadProject';
1415
import { RestartTsServerCommand } from './restartTsServer';
1516
import { SelectTypeScriptVersionCommand } from './selectTypeScriptVersion';
16-
import { LearnMoreAboutRefactoringsCommand } from './learnMoreAboutRefactorings';
1717

18-
export function registerCommands(
18+
export function registerBaseCommands(
1919
commandManager: CommandManager,
2020
lazyClientHost: Lazy<TypeScriptServiceClientHost>,
2121
pluginManager: PluginManager
22-
) {
22+
): void {
2323
commandManager.register(new ReloadTypeScriptProjectsCommand(lazyClientHost));
2424
commandManager.register(new ReloadJavaScriptProjectsCommand(lazyClientHost));
2525
commandManager.register(new SelectTypeScriptVersionCommand(lazyClientHost));

extensions/typescript-language-features/src/extension.browser.ts

Lines changed: 45 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,36 @@
44
*--------------------------------------------------------------------------------------------*/
55

66
import * as vscode from 'vscode';
7-
import { noopLogDirectoryProvider } from './tsServer/logDirectoryProvider';
87
import { Api, getExtensionApi } from './api';
9-
import { registerCommands } from './commands/index';
10-
import { LanguageConfigurationManager } from './features/languageConfiguration';
8+
import { registerBaseCommands } from './commands/index';
9+
import { LanguageConfigurationManager } from './languageFeatures/languageConfiguration';
1110
import { createLazyClientHost, lazilyActivateClient } from './lazyClientHost';
11+
import { noopRequestCancellerFactory } from './tsServer/cancellation';
12+
import { noopLogDirectoryProvider } from './tsServer/logDirectoryProvider';
13+
import { ITypeScriptVersionProvider, TypeScriptVersion, TypeScriptVersionSource } from './tsServer/versionProvider';
14+
import { WorkerServerProcess } from './tsServer/workerServerProcess';
15+
import API from './utils/api';
1216
import { CommandManager } from './utils/commandManager';
17+
import { TypeScriptServiceConfiguration } from './utils/configuration';
1318
import { PluginManager } from './utils/plugins';
14-
import { noopRequestCancellerFactory } from './tsServer/cancellation';
19+
20+
class StaticVersionProvider implements ITypeScriptVersionProvider {
21+
22+
constructor(
23+
private readonly _version: TypeScriptVersion
24+
) { }
25+
26+
updateConfiguration(_configuration: TypeScriptServiceConfiguration): void {
27+
// noop
28+
}
29+
30+
get defaultVersion() { return this._version; }
31+
get bundledVersion() { return this._version; }
32+
33+
readonly globalVersion = undefined;
34+
readonly localVersion = undefined;
35+
readonly localVersions = [];
36+
}
1537

1638
export function activate(
1739
context: vscode.ExtensionContext
@@ -22,18 +44,33 @@ export function activate(
2244
const commandManager = new CommandManager();
2345
context.subscriptions.push(commandManager);
2446

47+
context.subscriptions.push(new LanguageConfigurationManager());
48+
2549
const onCompletionAccepted = new vscode.EventEmitter<vscode.CompletionItem>();
2650
context.subscriptions.push(onCompletionAccepted);
2751

28-
const lazyClientHost = createLazyClientHost(context, pluginManager, commandManager, noopLogDirectoryProvider, noopRequestCancellerFactory, item => {
52+
const versionProvider = new StaticVersionProvider(
53+
new TypeScriptVersion(
54+
TypeScriptVersionSource.Bundled,
55+
'/builtin-extension/typescript-language-features/dist/browser/typescript-web/tsserver.js',
56+
API.v400));
57+
58+
const lazyClientHost = createLazyClientHost(context, false, {
59+
pluginManager,
60+
commandManager,
61+
logDirectoryProvider: noopLogDirectoryProvider,
62+
cancellerFactory: noopRequestCancellerFactory,
63+
versionProvider,
64+
processFactory: WorkerServerProcess
65+
}, item => {
2966
onCompletionAccepted.fire(item);
3067
});
3168

32-
registerCommands(commandManager, lazyClientHost, pluginManager);
69+
registerBaseCommands(commandManager, lazyClientHost, pluginManager);
70+
3371
// context.subscriptions.push(task.register(lazyClientHost.map(x => x.serviceClient)));
34-
context.subscriptions.push(new LanguageConfigurationManager());
3572

36-
import('./features/tsconfig').then(module => {
73+
import('./languageFeatures/tsconfig').then(module => {
3774
context.subscriptions.push(module.register());
3875
});
3976

extensions/typescript-language-features/src/extension.ts

Lines changed: 23 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,17 @@
55

66
import * as rimraf from 'rimraf';
77
import * as vscode from 'vscode';
8-
import { NodeLogDirectoryProvider } from './tsServer/logDirectoryProvider.electron';
98
import { Api, getExtensionApi } from './api';
10-
import { registerCommands } from './commands/index';
11-
import { LanguageConfigurationManager } from './features/languageConfiguration';
12-
import * as task from './features/task';
9+
import { registerBaseCommands } from './commands/index';
10+
import { LanguageConfigurationManager } from './languageFeatures/languageConfiguration';
1311
import { createLazyClientHost, lazilyActivateClient } from './lazyClientHost';
1412
import { nodeRequestCancellerFactory } from './tsServer/cancellation.electron';
13+
import { NodeLogDirectoryProvider } from './tsServer/logDirectoryProvider.electron';
14+
import { ChildServerProcess } from './tsServer/serverProcess';
15+
import { DiskTypeScriptVersionProvider } from './tsServer/versionProvider.electron';
1516
import { CommandManager } from './utils/commandManager';
1617
import * as electron from './utils/electron';
18+
import { onCaseInsenitiveFileSystem } from './utils/fileSystem';
1719
import { PluginManager } from './utils/plugins';
1820

1921
export function activate(
@@ -29,16 +31,28 @@ export function activate(
2931
context.subscriptions.push(onCompletionAccepted);
3032

3133
const logDirectoryProvider = new NodeLogDirectoryProvider(context);
34+
const versionProvider = new DiskTypeScriptVersionProvider();
35+
36+
context.subscriptions.push(new LanguageConfigurationManager());
3237

33-
const lazyClientHost = createLazyClientHost(context, pluginManager, commandManager, logDirectoryProvider, nodeRequestCancellerFactory, item => {
38+
const lazyClientHost = createLazyClientHost(context, onCaseInsenitiveFileSystem(), {
39+
pluginManager,
40+
commandManager,
41+
logDirectoryProvider,
42+
cancellerFactory: nodeRequestCancellerFactory,
43+
versionProvider,
44+
processFactory: ChildServerProcess,
45+
}, item => {
3446
onCompletionAccepted.fire(item);
3547
});
3648

37-
registerCommands(commandManager, lazyClientHost, pluginManager);
38-
context.subscriptions.push(task.register(lazyClientHost.map(x => x.serviceClient)));
39-
context.subscriptions.push(new LanguageConfigurationManager());
49+
registerBaseCommands(commandManager, lazyClientHost, pluginManager);
50+
51+
import('./task/taskProvider').then(module => {
52+
context.subscriptions.push(module.register(lazyClientHost.map(x => x.serviceClient)));
53+
});
4054

41-
import('./features/tsconfig').then(module => {
55+
import('./languageFeatures/tsconfig').then(module => {
4256
context.subscriptions.push(module.register());
4357
});
4458

extensions/typescript-language-features/src/features/bufferSyncSupport.ts renamed to extensions/typescript-language-features/src/languageFeatures/bufferSyncSupport.ts

File renamed without changes.

extensions/typescript-language-features/src/features/callHierarchy.ts renamed to extensions/typescript-language-features/src/languageFeatures/callHierarchy.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -123,9 +123,9 @@ export function register(
123123
) {
124124
return conditionalRegistration([
125125
requireMinVersion(client, TypeScriptCallHierarchySupport.minVersion),
126-
requireSomeCapability(client, ClientCapability.EnhancedSyntax, ClientCapability.Semantic),
126+
requireSomeCapability(client, ClientCapability.Semantic),
127127
], () => {
128-
return vscode.languages.registerCallHierarchyProvider(selector.syntax,
128+
return vscode.languages.registerCallHierarchyProvider(selector.semantic,
129129
new TypeScriptCallHierarchySupport(client));
130130
});
131131
}

extensions/typescript-language-features/src/features/baseCodeLensProvider.ts renamed to extensions/typescript-language-features/src/languageFeatures/codeLens/baseCodeLensProvider.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,11 @@
55

66
import * as vscode from 'vscode';
77
import * as nls from 'vscode-nls';
8-
import type * as Proto from '../protocol';
9-
import { ITypeScriptServiceClient } from '../typescriptService';
10-
import { escapeRegExp } from '../utils/regexp';
11-
import * as typeConverters from '../utils/typeConverters';
12-
import { CachedResponse } from '../tsServer/cachedResponse';
8+
import type * as Proto from '../../protocol';
9+
import { CachedResponse } from '../../tsServer/cachedResponse';
10+
import { ITypeScriptServiceClient } from '../../typescriptService';
11+
import { escapeRegExp } from '../../utils/regexp';
12+
import * as typeConverters from '../../utils/typeConverters';
1313

1414
const localize = nls.loadMessageBundle();
1515

extensions/typescript-language-features/src/features/implementationsCodeLens.ts renamed to extensions/typescript-language-features/src/languageFeatures/codeLens/implementationsCodeLens.ts

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,13 @@
55

66
import * as vscode from 'vscode';
77
import * as nls from 'vscode-nls';
8-
import type * as Proto from '../protocol';
9-
import * as PConst from '../protocol.const';
10-
import { CachedResponse } from '../tsServer/cachedResponse';
11-
import { ClientCapability, ITypeScriptServiceClient } from '../typescriptService';
12-
import { conditionalRegistration, requireSomeCapability, requireConfiguration } from '../utils/dependentRegistration';
13-
import { DocumentSelector } from '../utils/documentSelector';
14-
import * as typeConverters from '../utils/typeConverters';
8+
import type * as Proto from '../../protocol';
9+
import * as PConst from '../../protocol.const';
10+
import { CachedResponse } from '../../tsServer/cachedResponse';
11+
import { ClientCapability, ITypeScriptServiceClient } from '../../typescriptService';
12+
import { conditionalRegistration, requireSomeCapability, requireConfiguration } from '../../utils/dependentRegistration';
13+
import { DocumentSelector } from '../../utils/documentSelector';
14+
import * as typeConverters from '../../utils/typeConverters';
1515
import { getSymbolRange, ReferencesCodeLens, TypeScriptBaseCodeLensProvider } from './baseCodeLensProvider';
1616

1717
const localize = nls.loadMessageBundle();

extensions/typescript-language-features/src/features/referencesCodeLens.ts renamed to extensions/typescript-language-features/src/languageFeatures/codeLens/referencesCodeLens.ts

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,14 @@
55

66
import * as vscode from 'vscode';
77
import * as nls from 'vscode-nls';
8-
import type * as Proto from '../protocol';
9-
import * as PConst from '../protocol.const';
10-
import { CachedResponse } from '../tsServer/cachedResponse';
11-
import { ExectuionTarget } from '../tsServer/server';
12-
import { ClientCapability, ITypeScriptServiceClient } from '../typescriptService';
13-
import { conditionalRegistration, requireConfiguration, requireSomeCapability } from '../utils/dependentRegistration';
14-
import { DocumentSelector } from '../utils/documentSelector';
15-
import * as typeConverters from '../utils/typeConverters';
8+
import type * as Proto from '../../protocol';
9+
import * as PConst from '../../protocol.const';
10+
import { CachedResponse } from '../../tsServer/cachedResponse';
11+
import { ExectuionTarget } from '../../tsServer/server';
12+
import { ClientCapability, ITypeScriptServiceClient } from '../../typescriptService';
13+
import { conditionalRegistration, requireConfiguration, requireSomeCapability } from '../../utils/dependentRegistration';
14+
import { DocumentSelector } from '../../utils/documentSelector';
15+
import * as typeConverters from '../../utils/typeConverters';
1616
import { getSymbolRange, ReferencesCodeLens, TypeScriptBaseCodeLensProvider } from './baseCodeLensProvider';
1717

1818
const localize = nls.loadMessageBundle();

0 commit comments

Comments
 (0)