Language Service API Reference
Section titled “Language Service API Reference”Overview
Section titled “Overview”The @rcs-lang/language-service package provides advanced IDE features for RCL through the Language Server Protocol.
Core Classes
Section titled “Core Classes”LanguageService
Section titled “LanguageService”Main service class providing all language features.
class LanguageService { constructor(options?: LanguageServiceOptions)
// Initialization initialize(params: InitializeParams): Promise<void>
// Core features getCompletions(params: CompletionParams): Promise<CompletionItem[]> getHover(params: HoverParams): Promise<Hover | null> getDefinition(params: DefinitionParams): Promise<Location | null> getReferences(params: ReferenceParams): Promise<Location[]>
// Document management updateDocument(uri: string, content: string): Promise<void> closeDocument(uri: string): void
// Diagnostics getDiagnostics(uri: string): Promise<Diagnostic[]>
// Advanced features rename(params: RenameParams): Promise<WorkspaceEdit | null> getDocumentSymbols(uri: string): Promise<DocumentSymbol[]> getSemanticTokens(uri: string): Promise<SemanticTokens>}Provider Classes
Section titled “Provider Classes”CompletionProvider
Section titled “CompletionProvider”Provides context-aware code completion.
class CompletionProvider { getCompletions( document: TextDocument, position: Position, context?: CompletionContext ): Promise<CompletionItem[]>}DefinitionProvider
Section titled “DefinitionProvider”Enables "Go to Definition" functionality.
class DefinitionProvider { getDefinition( document: TextDocument, position: Position ): Promise<Location | null>}HoverProvider
Section titled “HoverProvider”Provides rich hover information.
class HoverProvider { getHover( document: TextDocument, position: Position ): Promise<Hover | null>}Integration Example
Section titled “Integration Example”import { LanguageService } from '@rcs-lang/language-service';
const service = new LanguageService();
// Initialize with workspaceawait service.initialize({ workspaceFolders: ['/path/to/workspace']});
// Get completionsconst completions = await service.getCompletions({ uri: 'file:///example.rcl', position: { line: 10, character: 15 }});
// Get diagnosticsconst diagnostics = await service.getDiagnostics('file:///example.rcl');See the main README for detailed usage examples and integration patterns.