/**
 * LSP Protocol types and constants
 * Based on the Language Server Protocol specification
 */
export var DiagnosticSeverity;
(function (DiagnosticSeverity) {
    DiagnosticSeverity[DiagnosticSeverity["Error"] = 1] = "Error";
    DiagnosticSeverity[DiagnosticSeverity["Warning"] = 2] = "Warning";
    DiagnosticSeverity[DiagnosticSeverity["Information"] = 3] = "Information";
    DiagnosticSeverity[DiagnosticSeverity["Hint"] = 4] = "Hint";
})(DiagnosticSeverity || (DiagnosticSeverity = {}));
export var CompletionTriggerKind;
(function (CompletionTriggerKind) {
    CompletionTriggerKind[CompletionTriggerKind["Invoked"] = 1] = "Invoked";
    CompletionTriggerKind[CompletionTriggerKind["TriggerCharacter"] = 2] = "TriggerCharacter";
    CompletionTriggerKind[CompletionTriggerKind["TriggerForIncompleteCompletions"] = 3] = "TriggerForIncompleteCompletions";
})(CompletionTriggerKind || (CompletionTriggerKind = {}));
export var CompletionItemKind;
(function (CompletionItemKind) {
    CompletionItemKind[CompletionItemKind["Text"] = 1] = "Text";
    CompletionItemKind[CompletionItemKind["Method"] = 2] = "Method";
    CompletionItemKind[CompletionItemKind["Function"] = 3] = "Function";
    CompletionItemKind[CompletionItemKind["Constructor"] = 4] = "Constructor";
    CompletionItemKind[CompletionItemKind["Field"] = 5] = "Field";
    CompletionItemKind[CompletionItemKind["Variable"] = 6] = "Variable";
    CompletionItemKind[CompletionItemKind["Class"] = 7] = "Class";
    CompletionItemKind[CompletionItemKind["Interface"] = 8] = "Interface";
    CompletionItemKind[CompletionItemKind["Module"] = 9] = "Module";
    CompletionItemKind[CompletionItemKind["Property"] = 10] = "Property";
    CompletionItemKind[CompletionItemKind["Keyword"] = 14] = "Keyword";
    CompletionItemKind[CompletionItemKind["Snippet"] = 15] = "Snippet";
    CompletionItemKind[CompletionItemKind["TypeParameter"] = 25] = "TypeParameter";
})(CompletionItemKind || (CompletionItemKind = {}));
export var InsertTextFormat;
(function (InsertTextFormat) {
    InsertTextFormat[InsertTextFormat["PlainText"] = 1] = "PlainText";
    InsertTextFormat[InsertTextFormat["Snippet"] = 2] = "Snippet";
})(InsertTextFormat || (InsertTextFormat = {}));
// LSP Methods
export const LSPMethods = {
    // Lifecycle
    Initialize: 'initialize',
    Initialized: 'initialized',
    Shutdown: 'shutdown',
    Exit: 'exit',
    // Text Document
    DidOpen: 'textDocument/didOpen',
    DidChange: 'textDocument/didChange',
    DidClose: 'textDocument/didClose',
    DidSave: 'textDocument/didSave',
    // Language Features
    Completion: 'textDocument/completion',
    Hover: 'textDocument/hover',
    Definition: 'textDocument/definition',
    References: 'textDocument/references',
    CodeAction: 'textDocument/codeAction',
    Formatting: 'textDocument/formatting',
    // Diagnostics
    PublishDiagnostics: 'textDocument/publishDiagnostics',
    DocumentDiagnostic: 'textDocument/diagnostic',
    WorkspaceDiagnostic: 'workspace/diagnostic',
};
// Text Document Sync Kind
export var TextDocumentSyncKind;
(function (TextDocumentSyncKind) {
    TextDocumentSyncKind[TextDocumentSyncKind["None"] = 0] = "None";
    TextDocumentSyncKind[TextDocumentSyncKind["Full"] = 1] = "Full";
    TextDocumentSyncKind[TextDocumentSyncKind["Incremental"] = 2] = "Incremental";
})(TextDocumentSyncKind || (TextDocumentSyncKind = {}));
//# sourceMappingURL=protocol.js.map