{"record":{"id":"bf90385f8f39761f","repo":"neoclide/coc.nvim","slug":"no-workspace-symbols-provider-registered","errorCode":null,"errorMessage":"No workspace symbols provider registered","messagePattern":"No workspace symbols provider registered","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"warning","filePath":"src/list/source/symbols.ts","lineNumber":41,"sourceCode":"\nexport default class Symbols extends LocationList {\n  public readonly interactive = true\n  public readonly description = 'search workspace symbols'\n  public readonly detail = 'Symbols list is provided by server, it works on interactive mode only.'\n  public fuzzyMatch = workspace.createFuzzyMatch()\n  public name = 'symbols'\n  public options = [{\n    name: '-k, -kind KIND',\n    description: 'Filter symbols by kind.',\n    hasValue: true\n  }]\n\n  public async loadItems(context: ListContext, token: CancellationToken): Promise<ListItem[]> {\n    let { input } = context\n    let args = this.parseArguments(context.args)\n    let filterKind = args.kind ? args.kind.toString().toLowerCase() : ''\n    if (!languages.hasProvider(ProviderName.WorkspaceSymbols, { uri: 'file:///1', languageId: '' })) {\n      throw new Error('No workspace symbols provider registered')\n    }\n    let symbols = await languages.getWorkspaceSymbols(input, token)\n    if (token.isCancellationRequested) return []\n    let config = this.getConfig()\n    let excludes = config.get<string[]>('excludes', [])\n    let items: (ListItem & ItemToSort)[] = []\n    this.fuzzyMatch.setPattern(input, true)\n    for (let s of symbols) {\n      let kind = getSymbolKind(s.kind)\n      if (filterKind && kind.toLowerCase() != filterKind) {\n        continue\n      }\n      let file = formatUri(s.location.uri, workspace.cwd)\n      if (excludes.some(p => minimatch(file, p))) {\n        continue\n      }\n      let item = await this.createListItem(input, s, kind, file)\n      if (token.isCancellationRequested) break","sourceCodeStart":23,"sourceCodeEnd":59,"githubUrl":"https://github.com/neoclide/coc.nvim/blob/50e974d9692461a69147d5cab146a8d3e439abe4/src/list/source/symbols.ts#L23-L59","documentation":"The `symbols` list queries workspace symbols. Before querying, it checks with `languages.hasProvider(ProviderName.WorkspaceSymbols, ...)` whether any provider is registered for workspace symbols; if none is, it throws instead of calling `getWorkspaceSymbols`.","triggerScenarios":"Running `:CocList symbols` (or `:CocList symbols -k kind`) in a workspace where no language server or extension registered a workspaceSymbolProvider.","commonSituations":"No LSP server attached for any open file; the language server does not implement the workspace/symbol capability; TypeScript/other extension not installed or failed to activate; querying before the server finished initializing.","solutions":["Install/enable a language server extension that provides workspace symbols (e.g. coc-tsserver for TS/JS)","Confirm with `:CocCommand workspace.showOutput` that the server advertises workspaceSymbolProvider","Wait for the language server to finish initializing before listing symbols","Check the buffer filetype is detected so the provider extension activates"],"exampleFix":null,"handlingStrategy":"validation","validationCode":"if (!languages.hasProvider(ProviderName.WorkspaceSymbols, { uri: 'file:///1', languageId: '' })) {\n  window.showMessage('No workspace symbols provider — install a language server extension first', 'warning')\n} else {\n  await cocList.start(['--normal', 'symbols'])\n}","typeGuard":null,"tryCatchPattern":"try {\n  await cocList.start(['--normal', 'symbols', input])\n} catch (e) {\n  if (/No workspace symbols provider/.test(e.message)) {\n    window.showMessage('Install a language server with workspace symbol support', 'warning')\n  } else throw e\n}","preventionTips":["Ensure at least one LSP extension providing workspace symbols is installed","Wait for server initialization before symbol queries","Confirm server capabilities include workspaceSymbolProvider in server output"],"tags":["lsp","workspace-symbols","missing-provider"],"backgroundTag":"lsp-provider-not-registered","analyzedSha":"50e974d9692461a69147d5cab146a8d3e439abe4","analyzedAt":"2026-08-31T11:17:23.966Z","schemaVersion":2},"datasetVersion":"2026-08-31T14:17:45.589Z"}