mirror of
https://github.com/microsoft/vscode.git
synced 2026-04-19 16:18:58 +01:00
Merge pull request #296137 from mjbvz/dev/mjbvz/criminal-capybara
Adopt unified js/ts setting for a few more language settings
This commit is contained in:
@@ -291,8 +291,8 @@ export abstract class BaseServiceConfigurationProvider implements ServiceConfigu
|
||||
return configuration.get<boolean>('typescript.tsserver.enableTracing', false);
|
||||
}
|
||||
|
||||
private readWorkspaceSymbolsExcludeLibrarySymbols(configuration: vscode.WorkspaceConfiguration): boolean {
|
||||
return configuration.get<boolean>('typescript.workspaceSymbols.excludeLibrarySymbols', true);
|
||||
private readWorkspaceSymbolsExcludeLibrarySymbols(_configuration: vscode.WorkspaceConfiguration): boolean {
|
||||
return readUnifiedConfig<boolean>('workspaceSymbols.excludeLibrarySymbols', true, { scope: null, fallbackSection: 'typescript' });
|
||||
}
|
||||
|
||||
private readWebProjectWideIntellisenseEnable(configuration: vscode.WorkspaceConfiguration): boolean {
|
||||
|
||||
@@ -11,8 +11,9 @@ import protocol from '../tsServer/protocol/protocol';
|
||||
import * as typeConverters from '../typeConverters';
|
||||
import { ClientCapability, ITypeScriptServiceClient, ServerResponse } from '../typescriptService';
|
||||
import { raceTimeout } from '../utils/async';
|
||||
import { readUnifiedConfig } from '../utils/configuration';
|
||||
import FileConfigurationManager from './fileConfigurationManager';
|
||||
import { conditionalRegistration, requireGlobalConfiguration, requireMinVersion, requireSomeCapability } from './util/dependentRegistration';
|
||||
import { conditionalRegistration, requireGlobalUnifiedConfig, requireMinVersion, requireSomeCapability } from './util/dependentRegistration';
|
||||
|
||||
class CopyMetadata {
|
||||
|
||||
@@ -75,7 +76,7 @@ class TsPendingPasteEdit extends TsPasteEdit {
|
||||
}
|
||||
}
|
||||
|
||||
const enabledSettingId = 'updateImportsOnPaste.enabled';
|
||||
const enabledSettingId = 'updateImportsOnPaste.enabled' as const;
|
||||
|
||||
class DocumentPasteProvider implements vscode.DocumentPasteEditProvider<TsPasteEdit> {
|
||||
|
||||
@@ -239,8 +240,7 @@ class DocumentPasteProvider implements vscode.DocumentPasteEditProvider<TsPasteE
|
||||
}
|
||||
|
||||
private isEnabled(document: vscode.TextDocument) {
|
||||
const config = vscode.workspace.getConfiguration(this._modeId, document.uri);
|
||||
return config.get(enabledSettingId, true);
|
||||
return readUnifiedConfig<boolean>(enabledSettingId, true, { scope: document, fallbackSection: this._modeId });
|
||||
}
|
||||
}
|
||||
|
||||
@@ -248,7 +248,7 @@ export function register(selector: DocumentSelector, language: LanguageDescripti
|
||||
return conditionalRegistration([
|
||||
requireSomeCapability(client, ClientCapability.Semantic),
|
||||
requireMinVersion(client, API.v570),
|
||||
requireGlobalConfiguration(language.id, enabledSettingId),
|
||||
requireGlobalUnifiedConfig(enabledSettingId, { fallbackSection: language.id }),
|
||||
], () => {
|
||||
return vscode.languages.registerDocumentPasteEditProvider(selector.semantic, new DocumentPasteProvider(language.id, client, fileConfigurationManager), {
|
||||
providedPasteEditKinds: [DocumentPasteProvider.kind],
|
||||
|
||||
@@ -9,6 +9,7 @@ import { API } from '../tsServer/api';
|
||||
import * as typeConverters from '../typeConverters';
|
||||
import { ClientCapability, ITypeScriptServiceClient } from '../typescriptService';
|
||||
import DefinitionProviderBase from './definitionProviderBase';
|
||||
import { readUnifiedConfig } from '../utils/configuration';
|
||||
import { conditionalRegistration, requireSomeCapability } from './util/dependentRegistration';
|
||||
|
||||
export default class TypeScriptDefinitionProvider extends DefinitionProviderBase implements vscode.DefinitionProvider {
|
||||
@@ -32,7 +33,7 @@ export default class TypeScriptDefinitionProvider extends DefinitionProviderBase
|
||||
const span = response.body.textSpan ? typeConverters.Range.fromTextSpan(response.body.textSpan) : undefined;
|
||||
let definitions = response.body.definitions;
|
||||
|
||||
if (vscode.workspace.getConfiguration(document.languageId).get('preferGoToSourceDefinition', false) && this.client.apiVersion.gte(API.v470)) {
|
||||
if (readUnifiedConfig<boolean>('preferGoToSourceDefinition', false, { scope: document, fallbackSection: document.languageId }) && this.client.apiVersion.gte(API.v470)) {
|
||||
const sourceDefinitionsResponse = await this.client.execute('findSourceDefinition', args, token);
|
||||
if (sourceDefinitionsResponse.type === 'response' && sourceDefinitionsResponse.body?.length) {
|
||||
definitions = sourceDefinitionsResponse.body;
|
||||
|
||||
@@ -10,6 +10,7 @@ import type * as Proto from '../tsServer/protocol/protocol';
|
||||
import * as typeConverters from '../typeConverters';
|
||||
import { ITypeScriptServiceClient } from '../typescriptService';
|
||||
import { Disposable } from '../utils/dispose';
|
||||
import { readUnifiedConfig } from '../utils/configuration';
|
||||
import { Condition, conditionalRegistration } from './util/dependentRegistration';
|
||||
|
||||
class TagClosing extends Disposable {
|
||||
@@ -149,7 +150,7 @@ function requireActiveDocumentSetting(
|
||||
return false;
|
||||
}
|
||||
|
||||
return !!vscode.workspace.getConfiguration(language.id, editor.document).get('autoClosingTags');
|
||||
return !!readUnifiedConfig<boolean>('autoClosingTags.enabled', true, { scope: editor.document, fallbackSection: language.id, fallbackSubSectionNameOverride: 'autoClosingTags' });
|
||||
},
|
||||
handler => {
|
||||
return vscode.Disposable.from(
|
||||
|
||||
@@ -12,6 +12,7 @@ import * as typeConverters from '../typeConverters';
|
||||
import { ClientCapability, ITypeScriptServiceClient } from '../typescriptService';
|
||||
import { Delayer } from '../utils/async';
|
||||
import { nulToken } from '../utils/cancellation';
|
||||
import { readUnifiedConfig } from '../utils/configuration';
|
||||
import { Disposable } from '../utils/dispose';
|
||||
import FileConfigurationManager from './fileConfigurationManager';
|
||||
import { conditionalRegistration, requireSomeCapability } from './util/dependentRegistration';
|
||||
@@ -65,8 +66,8 @@ class UpdateImportsOnFileRenameHandler extends Disposable {
|
||||
continue;
|
||||
}
|
||||
|
||||
const config = this.getConfiguration(newUri);
|
||||
const setting = config.get<UpdateImportsOnFileMoveSetting>(updateImportsOnFileMoveName);
|
||||
const fallbackSection = doesResourceLookLikeATypeScriptFile(newUri) ? 'typescript' : 'javascript';
|
||||
const setting = readUnifiedConfig<UpdateImportsOnFileMoveSetting>(updateImportsOnFileMoveName, UpdateImportsOnFileMoveSetting.Prompt, { scope: null, fallbackSection });
|
||||
if (setting === UpdateImportsOnFileMoveSetting.Never) {
|
||||
continue;
|
||||
}
|
||||
@@ -122,8 +123,8 @@ class UpdateImportsOnFileRenameHandler extends Disposable {
|
||||
return false;
|
||||
}
|
||||
|
||||
const config = this.getConfiguration(newResources[0]);
|
||||
const setting = config.get<UpdateImportsOnFileMoveSetting>(updateImportsOnFileMoveName);
|
||||
const fallbackSection = doesResourceLookLikeATypeScriptFile(newResources[0]) ? 'typescript' : 'javascript';
|
||||
const setting = readUnifiedConfig<UpdateImportsOnFileMoveSetting>(updateImportsOnFileMoveName, UpdateImportsOnFileMoveSetting.Prompt, { scope: null, fallbackSection });
|
||||
switch (setting) {
|
||||
case UpdateImportsOnFileMoveSetting.Always:
|
||||
return true;
|
||||
@@ -135,10 +136,6 @@ class UpdateImportsOnFileRenameHandler extends Disposable {
|
||||
}
|
||||
}
|
||||
|
||||
private getConfiguration(resource: vscode.Uri) {
|
||||
return vscode.workspace.getConfiguration(doesResourceLookLikeATypeScriptFile(resource) ? 'typescript' : 'javascript', resource);
|
||||
}
|
||||
|
||||
private async promptUser(newResources: readonly vscode.Uri[]): Promise<boolean> {
|
||||
if (!newResources.length) {
|
||||
return false;
|
||||
@@ -177,7 +174,7 @@ class UpdateImportsOnFileRenameHandler extends Disposable {
|
||||
return false;
|
||||
}
|
||||
case alwaysItem: {
|
||||
const config = this.getConfiguration(newResources[0]);
|
||||
const config = vscode.workspace.getConfiguration('js/ts');
|
||||
config.update(
|
||||
updateImportsOnFileMoveName,
|
||||
UpdateImportsOnFileMoveSetting.Always,
|
||||
@@ -185,7 +182,7 @@ class UpdateImportsOnFileRenameHandler extends Disposable {
|
||||
return true;
|
||||
}
|
||||
case neverItem: {
|
||||
const config = this.getConfiguration(newResources[0]);
|
||||
const config = vscode.workspace.getConfiguration('js/ts');
|
||||
config.update(
|
||||
updateImportsOnFileMoveName,
|
||||
UpdateImportsOnFileMoveSetting.Never,
|
||||
|
||||
@@ -13,6 +13,7 @@ import * as PConst from '../tsServer/protocol/protocol.const';
|
||||
import * as typeConverters from '../typeConverters';
|
||||
import { ITypeScriptServiceClient } from '../typescriptService';
|
||||
import { coalesce } from '../utils/arrays';
|
||||
import { readUnifiedConfig } from '../utils/configuration';
|
||||
|
||||
function getSymbolKind(item: Proto.NavtoItem): vscode.SymbolKind {
|
||||
switch (item.kind) {
|
||||
@@ -70,7 +71,7 @@ class TypeScriptWorkspaceSymbolProvider implements vscode.WorkspaceSymbolProvide
|
||||
|
||||
private get searchAllOpenProjects() {
|
||||
return this.client.apiVersion.gte(API.v390)
|
||||
&& vscode.workspace.getConfiguration('typescript').get('workspaceSymbols.scope', 'allOpenProjects') === 'allOpenProjects';
|
||||
&& readUnifiedConfig<string>('workspaceSymbols.scope', 'allOpenProjects', { scope: null, fallbackSection: 'typescript' }) === 'allOpenProjects';
|
||||
}
|
||||
|
||||
private async toOpenedFiledPath(document: vscode.TextDocument) {
|
||||
|
||||
Reference in New Issue
Block a user