UNPKG

@shopify/theme-language-server-common

Version:

<h1 align="center" style="position: relative;" > <br> <img src="https://github.com/Shopify/theme-check-vscode/blob/main/images/shopify_glyph.png?raw=true" alt="logo" width="141" height="160"> <br> Theme Language Server </h1>

29 lines (24 loc) 1.14 kB
import { CodeAction, CodeActionParams, Command } from 'vscode-languageserver'; import { DiagnosticsManager } from '../diagnostics'; import { DocumentManager } from '../documents'; import { FixAllProvider, FixProvider, SuggestionProvider } from './providers'; import { BaseCodeActionsProvider } from './BaseCodeActionsProvider'; export const CodeActionKinds = Array.from( new Set([FixAllProvider.kind, FixProvider.kind, SuggestionProvider.kind]), ); export class CodeActionsProvider { private providers: BaseCodeActionsProvider[]; constructor(documentManager: DocumentManager, diagnosticsManager: DiagnosticsManager) { this.providers = [ new FixAllProvider(documentManager, diagnosticsManager), new FixProvider(documentManager, diagnosticsManager), new SuggestionProvider(documentManager, diagnosticsManager), ]; } codeActions(params: CodeActionParams): (Command | CodeAction)[] { const only = params.context.only; return this.providers .filter((provider) => !only || only.some((kind) => provider.kind.startsWith(kind))) .flatMap((provider) => provider.codeActions(params)); } }