ifc-language-server/server/node_modules/vscode-languageserver-protocol/lib/common/protocol.inlineCompletion.d.ts
Ryan Schultz 8afacf268a Implemented a working Language Server Protocol (LSP) for IFC files with:
- Hover provider showing entity information and type
- Go-to-definition (F12) for entity references
- Basic IFC file validation (ISO-10303-21 header check)
- Entity parsing with regex-based detection
- Proper CommonJS module system (avoiding ES module issues)

This replaces the broken baseline from ifc-developer-tools which had:
- Non-functional ES module configuration
- Circular dependency issues
- Parser crashes
- Non-working PositionVisitor

Built on Microsoft's LSP example template for a clean, maintainable foundation.

Next: Add hierarchical entity dependency tree in hover tooltip."
2025-12-07 10:20:07 -06:00

57 lines
2.1 KiB
TypeScript

import { InlineCompletionItem, InlineCompletionContext, InlineCompletionList } from 'vscode-languageserver-types';
import { RequestHandler } from 'vscode-jsonrpc';
import { MessageDirection, ProtocolRequestType } from './messages';
import type { TextDocumentRegistrationOptions, WorkDoneProgressOptions, StaticRegistrationOptions, WorkDoneProgressParams, TextDocumentPositionParams } from './protocol';
/**
* Client capabilities specific to inline completions.
*
* @since 3.18.0
* @proposed
*/
export type InlineCompletionClientCapabilities = {
/**
* Whether implementation supports dynamic registration for inline completion providers.
*/
dynamicRegistration?: boolean;
};
/**
* Inline completion options used during static registration.
*
* @since 3.18.0
* @proposed
*/
export type InlineCompletionOptions = WorkDoneProgressOptions;
/**
* Inline completion options used during static or dynamic registration.
*
* @since 3.18.0
* @proposed
*/
export type InlineCompletionRegistrationOptions = InlineCompletionOptions & TextDocumentRegistrationOptions & StaticRegistrationOptions;
/**
* A parameter literal used in inline completion requests.
*
* @since 3.18.0
* @proposed
*/
export type InlineCompletionParams = WorkDoneProgressParams & TextDocumentPositionParams & {
/**
* Additional information about the context in which inline completions were
* requested.
*/
context: InlineCompletionContext;
};
/**
* A request to provide inline completions in a document. The request's parameter is of
* type {@link InlineCompletionParams}, the response is of type
* {@link InlineCompletion InlineCompletion[]} or a Thenable that resolves to such.
*
* @since 3.18.0
* @proposed
*/
export declare namespace InlineCompletionRequest {
const method: 'textDocument/inlineCompletion';
const messageDirection: MessageDirection;
const type: ProtocolRequestType<InlineCompletionParams, InlineCompletionList | InlineCompletionItem[] | null, InlineCompletionItem[], void, InlineCompletionRegistrationOptions>;
type HandlerSignature = RequestHandler<InlineCompletionParams, InlineCompletionList | InlineCompletionItem[] | null, void>;
}