Path: blob/main/extensions/copilot/src/platform/languages/common/languageFeaturesService.ts
13401 views
/*---------------------------------------------------------------------------------------------1* Copyright (c) Microsoft Corporation. All rights reserved.2* Licensed under the MIT License. See License.txt in the project root for license information.3*--------------------------------------------------------------------------------------------*/45import type * as vscode from 'vscode';6import { createServiceIdentifier } from '../../../util/common/services';789export const ILanguageFeaturesService = createServiceIdentifier<ILanguageFeaturesService>('ILanguageFeaturesService');1011export interface ILanguageFeaturesService {12_serviceBrand: undefined;13getDefinitions(uri: vscode.Uri, position: vscode.Position): Promise<(vscode.LocationLink | vscode.Location)[]>;14getImplementations(uri: vscode.Uri, position: vscode.Position): Promise<(vscode.LocationLink | vscode.Location)[]>;15getReferences(uri: vscode.Uri, position: vscode.Position): Promise<vscode.Location[]>;16getWorkspaceSymbols(query: string): Promise<vscode.SymbolInformation[]>;17getDocumentSymbols(uri: vscode.Uri): Promise<vscode.DocumentSymbol[]>;18getDiagnostics(uri: vscode.Uri): vscode.Diagnostic[];19}2021export class NoopLanguageFeaturesService implements ILanguageFeaturesService {22_serviceBrand: undefined;23getDocumentSymbols(uri: vscode.Uri): Promise<vscode.DocumentSymbol[]> {24return Promise.resolve([]);25}26getDefinitions(uri: vscode.Uri, position: vscode.Position): Promise<(vscode.LocationLink | vscode.Location)[]> {27return Promise.resolve([]);28}29getImplementations(uri: vscode.Uri, position: vscode.Position): Promise<(vscode.LocationLink | vscode.Location)[]> {30return Promise.resolve([]);31}32getReferences(uri: vscode.Uri, position: vscode.Position): Promise<vscode.Location[]> {33return Promise.resolve([]);34}35getWorkspaceSymbols(query: string): Promise<vscode.SymbolInformation[]> {36return Promise.resolve([]);37}38getDiagnostics(uri: vscode.Uri): vscode.Diagnostic[] {39return [];40}41}4243export function isLocationLink(thing: unknown): thing is vscode.LocationLink {44return typeof thing === 'object' && thing !== null && 'targetUri' in thing;45}464748