- 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."
30 lines
1.6 KiB
TypeScript
30 lines
1.6 KiB
TypeScript
import { WorkspaceFolder as VWorkspaceFolder, WorkspaceFoldersChangeEvent as VWorkspaceFoldersChangeEvent } from 'vscode';
|
|
import { DynamicFeature, RegistrationData, FeatureClient, NextSignature, FeatureState } from './features';
|
|
import { ClientCapabilities, InitializeParams, ServerCapabilities, WorkspaceFoldersRequest, RegistrationType } from 'vscode-languageserver-protocol';
|
|
export declare function arrayDiff<T>(left: ReadonlyArray<T>, right: ReadonlyArray<T>): T[];
|
|
export type WorkspaceFolderMiddleware = {
|
|
workspaceFolders?: WorkspaceFoldersRequest.MiddlewareSignature;
|
|
didChangeWorkspaceFolders?: NextSignature<VWorkspaceFoldersChangeEvent, Promise<void>>;
|
|
};
|
|
type WorkspaceFolderWorkspaceMiddleware = {
|
|
workspace?: WorkspaceFolderMiddleware;
|
|
};
|
|
export declare class WorkspaceFoldersFeature implements DynamicFeature<void> {
|
|
private readonly _client;
|
|
private readonly _listeners;
|
|
private _initialFolders;
|
|
constructor(client: FeatureClient<WorkspaceFolderWorkspaceMiddleware>);
|
|
getState(): FeatureState;
|
|
get registrationType(): RegistrationType<void>;
|
|
fillInitializeParams(params: InitializeParams): void;
|
|
protected initializeWithFolders(currentWorkspaceFolders: ReadonlyArray<VWorkspaceFolder> | undefined): void;
|
|
fillClientCapabilities(capabilities: ClientCapabilities): void;
|
|
initialize(capabilities: ServerCapabilities): void;
|
|
protected sendInitialEvent(currentWorkspaceFolders: ReadonlyArray<VWorkspaceFolder> | undefined): void;
|
|
private doSendEvent;
|
|
register(data: RegistrationData<undefined>): void;
|
|
unregister(id: string): void;
|
|
clear(): void;
|
|
private asProtocol;
|
|
}
|
|
export {};
|