UNPKG

@krassowski/jupyterlab-lsp

Version:

Language Server Protocol integration for JupyterLab

60 lines 2.7 kB
import { ICompletionManager } from '@jupyterlab/completer'; import { IRenderMimeRegistry } from '@jupyterlab/rendermime'; import { ISettingRegistry } from '@jupyterlab/settingregistry'; import { LabIcon } from '@jupyterlab/ui-components'; import { ILSPCompletionThemeManager } from '@krassowski/completion-theme/lib/types'; import completionSvg from '../../../style/icons/completion.svg'; import { FeatureSettings } from '../../feature'; import { CompletionItemTag } from '../../lsp'; import { ILSPAdapterManager, ILSPFeatureManager, ILSPLogConsole, PLUGIN_ID } from '../../tokens'; import { CompletionCM, CompletionLabIntegration } from './completion'; export const completionIcon = new LabIcon({ name: 'lsp:completion', svgstr: completionSvg }); const FEATURE_ID = PLUGIN_ID + ':completion'; export const COMPLETION_PLUGIN = { id: FEATURE_ID, requires: [ ILSPFeatureManager, ISettingRegistry, ICompletionManager, ILSPAdapterManager, ILSPCompletionThemeManager, ILSPLogConsole, IRenderMimeRegistry ], autoStart: true, activate: (app, featureManager, settingRegistry, completionManager, adapterManager, iconsThemeManager, logConsole, renderMimeRegistry) => { const settings = new FeatureSettings(settingRegistry, FEATURE_ID); const labIntegration = new CompletionLabIntegration(app, completionManager, settings, adapterManager, iconsThemeManager, logConsole.scope('CompletionLab'), renderMimeRegistry); featureManager.register({ feature: { editorIntegrationFactory: new Map([['CodeMirrorEditor', CompletionCM]]), id: FEATURE_ID, name: 'LSP Completion', labIntegration: labIntegration, settings: settings, capabilities: { textDocument: { completion: { dynamicRegistration: true, completionItem: { snippetSupport: false, commitCharactersSupport: true, documentationFormat: ['markdown', 'plaintext'], deprecatedSupport: true, preselectSupport: false, tagSupport: { valueSet: [CompletionItemTag.Deprecated] } }, contextSupport: false } } } } }); } }; //# sourceMappingURL=index.js.map