postgres-language-server icon indicating copy to clipboard operation
postgres-language-server copied to clipboard

Server crashes when Cyrillic character is typed

Open VeryEvilHumna opened this issue 8 months ago • 1 comments

Bug report

  • [x] I confirm this is a bug with Supabase, not with my own application.
  • [x] I confirm I have searched the Docs, GitHub Discussions, and Discord.

Describe the bug

I use postgrestools v1.1.4 extension in VSCode, IDK if I should've created the issue in postgrestools' for VSCode repo. But basically: As soon as I type any character in a file that has Cyrillic characters or when I type a Cyrillic character in a file that has only ASCII characters, language server crashes with this log:

2025-03-31 03:40:18.720 [info] Encountered an unexpected error

This is a bug in Postgres Tools, not an error in your code, and we would appreciate it if you could report it along with the following information to help us fixing the issue:

Source Location: crates/pgt_workspace/src/workspace/server/change.rs:255:18
Thread Name: tokio-runtime-worker
Message: called `Option::unwrap()` on a `None` value


2025-03-31 03:40:18.746 [info] [Error - 3:40:18 AM] Server process exited with code 0.
2025-03-31 03:40:18.748 [info] [Error - 3:40:18 AM] PostgresTools language server closed

To Reproduce

Steps to reproduce the behavior, please provide code snippets or a repository:

  1. Use VSCode with postgrestools 1.1.4 extension
  2. Open .sql file
  3. Type any Cyrillic character
  4. See error

Expected behavior

Not to crash when Cyrillic character is typed

Screenshots

N/a

System information

  • OS: Fedora Linux 41 (Workstation Edition) x86_64
  • Kernel: Linux 6.13.8-200.fc41.x86_64
  • $ postgrestools version:
CLI:        0.0.0
Server:     not connected

Additional context

Full log from start to crash:

┐pgt_cli::commands::daemon::Running Server{pid=54563}
├─ INFO pgt_cli::service::unix Trying to connect to socket /home/evil/.cache/pgt/pgt-socket-0.0.0
├─ INFO pgt_cli::service::unix Remove socket folder /home/evil/.cache/pgt/pgt-socket-0.0.0
├─ INFO pgt_cli::service::unix Accepted connection
├─ INFO pgt_cli::service::unix Accepted connection
└─┐pgt_lsp::server::initialize{root_uri=file://PATH_REDACTED, capabilities=ClientCapabilities { workspace: Some(WorkspaceClientCapabilities { apply_edit: Some(true), workspace_edit: Some(WorkspaceEditClientCapabilities { document_changes: Some(true), resource_operations: Some([Create, Rename, Delete]), failure_handling: Some(TextOnlyTransactional), normalizes_line_endings: Some(true), change_annotation_support: Some(ChangeAnnotationWorkspaceEditClientCapabilities { groups_on_label: Some(true) }) }), did_change_configuration: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), did_change_watched_files: Some(DidChangeWatchedFilesClientCapabilities { dynamic_registration: Some(true), relative_pattern_support: Some(true) }), symbol: Some(WorkspaceSymbolClientCapabilities { dynamic_registration: Some(true), symbol_kind: Some(SymbolKindCapability { value_set: Some([File, Module, Namespace, Package, Class, Method, Property, Field, Constructor, Enum, Interface, Function, Variable, Constant, String, Number, Boolean, Array, Object, Key, Null, EnumMember, Struct, Event, Operator, TypeParameter]) }), tag_support: Some(TagSupport { value_set: [Deprecated] }), resolve_support: Some(WorkspaceSymbolResolveSupportCapability { properties: ["location.range"] }) }), execute_command: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), workspace_folders: Some(true), configuration: Some(true), semantic_tokens: Some(SemanticTokensWorkspaceClientCapabilities { refresh_support: Some(true) }), code_lens: Some(CodeLensWorkspaceClientCapabilities { refresh_support: Some(true) }), file_operations: Some(WorkspaceFileOperationsClientCapabilities { dynamic_registration: Some(true), did_create: Some(true), will_create: Some(true), did_rename: Some(true), will_rename: Some(true), did_delete: Some(true), will_delete: Some(true) }), inline_value: Some(InlineValueWorkspaceClientCapabilities { refresh_support: Some(true) }), inlay_hint: Some(InlayHintWorkspaceClientCapabilities { refresh_support: Some(true) }), diagnostic: None }), text_document: Some(TextDocumentClientCapabilities { synchronization: Some(TextDocumentSyncClientCapabilities { dynamic_registration: Some(true), will_save: Some(true), will_save_wait_until: Some(true), did_save: Some(true) }), completion: Some(CompletionClientCapabilities { dynamic_registration: Some(true), completion_item: Some(CompletionItemCapability { snippet_support: Some(true), commit_characters_support: Some(true), documentation_format: Some([Markdown, PlainText]), deprecated_support: Some(true), preselect_support: Some(true), tag_support: Some(TagSupport { value_set: [Deprecated] }), insert_replace_support: Some(true), resolve_support: Some(CompletionItemCapabilityResolveSupport { properties: ["documentation", "detail", "additionalTextEdits"] }), insert_text_mode_support: Some(InsertTextModeSupport { value_set: [AsIs, AdjustIndentation] }), label_details_support: Some(true) }), completion_item_kind: Some(CompletionItemKindCapability { value_set: Some([Text, Method, Function, Constructor, Field, Variable, Class, Interface, Module, Property, Unit, Value, Enum, Keyword, Snippet, Color, File, Reference, Folder, EnumMember, Constant, Struct, Event, Operator, TypeParameter]) }), context_support: Some(true), insert_text_mode: Some(AdjustIndentation), completion_list: Some(CompletionListCapability { item_defaults: Some(["commitCharacters", "editRange", "insertTextFormat", "insertTextMode", "data"]) }) }), hover: Some(HoverClientCapabilities { dynamic_registration: Some(true), content_format: Some([Markdown, PlainText]) }), signature_help: Some(SignatureHelpClientCapabilities { dynamic_registration: Some(true), signature_information: Some(SignatureInformationSettings { documentation_format: Some([Markdown, PlainText]), parameter_information: Some(ParameterInformationSettings { label_offset_support: Some(true) }), active_parameter_support: Some(true) }), context_support: Some(true) }), references: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), document_highlight: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), document_symbol: Some(DocumentSymbolClientCapabilities { dynamic_registration: Some(true), symbol_kind: Some(SymbolKindCapability { value_set: Some([File, Module, Namespace, Package, Class, Method, Property, Field, Constructor, Enum, Interface, Function, Variable, Constant, String, Number, Boolean, Array, Object, Key, Null, EnumMember, Struct, Event, Operator, TypeParameter]) }), hierarchical_document_symbol_support: Some(true), tag_support: Some(TagSupport { value_set: [Deprecated] }) }), formatting: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), range_formatting: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), on_type_formatting: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), declaration: Some(GotoCapability { dynamic_registration: Some(true), link_support: Some(true) }), definition: Some(GotoCapability { dynamic_registration: Some(true), link_support: Some(true) }), type_definition: Some(GotoCapability { dynamic_registration: Some(true), link_support: Some(true) }), implementation: Some(GotoCapability { dynamic_registration: Some(true), link_support: Some(true) }), code_action: Some(CodeActionClientCapabilities { dynamic_registration: Some(true), code_action_literal_support: Some(CodeActionLiteralSupport { code_action_kind: CodeActionKindLiteralSupport { value_set: ["", "quickfix", "refactor", "refactor.extract", "refactor.inline", "refactor.rewrite", "source", "source.organizeImports"] } }), is_preferred_support: Some(true), disabled_support: Some(true), data_support: Some(true), resolve_support: Some(CodeActionCapabilityResolveSupport { properties: ["edit"] }), honors_change_annotations: Some(true) }), code_lens: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), document_link: Some(DocumentLinkClientCapabilities { dynamic_registration: Some(true), tooltip_support: Some(true) }), color_provider: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), rename: Some(RenameClientCapabilities { dynamic_registration: Some(true), prepare_support: Some(true), prepare_support_default_behavior: Some(Identifier), honors_change_annotations: Some(true) }), publish_diagnostics: Some(PublishDiagnosticsClientCapabilities { related_information: Some(true), tag_support: Some(TagSupport { value_set: [Unnecessary, Deprecated] }), version_support: Some(false), code_description_support: Some(true), data_support: Some(true) }), folding_range: Some(FoldingRangeClientCapabilities { dynamic_registration: Some(true), range_limit: Some(5000), line_folding_only: Some(true), folding_range_kind: Some(FoldingRangeKindCapability { value_set: Some([Comment, Imports, Region]) }), folding_range: Some(FoldingRangeCapability { collapsed_text: Some(false) }) }), selection_range: Some(SelectionRangeClientCapabilities { dynamic_registration: Some(true) }), linked_editing_range: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), call_hierarchy: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), semantic_tokens: Some(SemanticTokensClientCapabilities { dynamic_registration: Some(true), requests: SemanticTokensClientCapabilitiesRequests { range: Some(true), full: Some(Delta { delta: Some(true) }) }, token_types: [SemanticTokenType("namespace"), SemanticTokenType("type"), SemanticTokenType("class"), SemanticTokenType("enum"), SemanticTokenType("interface"), SemanticTokenType("struct"), SemanticTokenType("typeParameter"), SemanticTokenType("parameter"), SemanticTokenType("variable"), SemanticTokenType("property"), SemanticTokenType("enumMember"), SemanticTokenType("event"), SemanticTokenType("function"), SemanticTokenType("method"), SemanticTokenType("macro"), SemanticTokenType("keyword"), SemanticTokenType("modifier"), SemanticTokenType("comment"), SemanticTokenType("string"), SemanticTokenType("number"), SemanticTokenType("regexp"), SemanticTokenType("operator"), SemanticTokenType("decorator")], token_modifiers: [SemanticTokenModifier("declaration"), SemanticTokenModifier("definition"), SemanticTokenModifier("readonly"), SemanticTokenModifier("static"), SemanticTokenModifier("deprecated"), SemanticTokenModifier("abstract"), SemanticTokenModifier("async"), SemanticTokenModifier("modification"), SemanticTokenModifier("documentation"), SemanticTokenModifier("defaultLibrary")], formats: [TokenFormat("relative")], overlapping_token_support: Some(false), multiline_token_support: Some(false), server_cancel_support: Some(true), augments_syntax_tokens: Some(true) }), moniker: None, type_hierarchy: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), inline_value: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), inlay_hint: Some(InlayHintClientCapabilities { dynamic_registration: Some(true), resolve_support: Some(InlayHintResolveClientCapabilities { properties: ["tooltip", "textEdits", "label.tooltip", "label.location", "label.command"] }) }), diagnostic: Some(DiagnosticClientCapabilities { dynamic_registration: Some(true), related_document_support: Some(false) }) }), window: Some(WindowClientCapabilities { work_done_progress: Some(true), show_message: Some(ShowMessageRequestClientCapabilities { message_action_item: Some(MessageActionItemCapabilities { additional_properties_support: Some(true) }) }), show_document: Some(ShowDocumentClientCapabilities { support: true }) }), general: Some(GeneralClientCapabilities { regular_expressions: Some(RegularExpressionsClientCapabilities { engine: "ECMAScript", version: Some("ES2020") }), markdown: Some(MarkdownClientCapabilities { parser: "marked", version: Some("1.1.0"), allowed_tags: None }), stale_request_support: Some(StaleRequestSupportClientCapabilities { cancel: true, retry_on_content_modified: ["textDocument/semanticTokens/full", "textDocument/semanticTokens/range", "textDocument/semanticTokens/full/delta"] }), position_encodings: Some([PositionEncodingKind("utf-16")]) }), experimental: None }, client_info=ClientInfo { name: "Visual Studio Code", version: Some("1.98.2") }, workspace_folders=[WorkspaceFolder { uri: Url { scheme: "file", cannot_be_a_base: false, username: "", password: None, host: None, port: None, path: "PATH_REDACTED", query: None, fragment: None }, name: "REDACTED" }]}
  ├─ INFO pgt_lsp::server Starting Language Server...
┌─┘
└─┐pgt_lsp::server::initialized{}
  ├─ INFO pgt_lsp::server Attempting to load the configuration from 'postgrestools.jsonc' file
  └─┐pgt_fs::fs::os::OsFileSystem::open_with_options{path="PATH_REDACTED/backend/postgrestools.jsonc", options=OpenOptions { read: true, write: false, truncate: false, create: false, create_new: false }}
  ┌─┘
  └─┐pgt_fs::fs::os::OsFile::read_to_string{}
  ┌─┘
  ├─ INFO pgt_lsp::session Configuration loaded successfully from disk.
  ├─ INFO pgt_lsp::session Update workspace settings.
  ├─ INFO pgt_workspace::workspace::server Updating settings in workspace
  ├─ INFO pgt_workspace::workspace::server Updated settings in workspace
  ├─ WARN sqlx_postgres::options::pgpass Failed to open `.pgpass` file: Os { code: 2, kind: NotFound, message: "No such file or directory" }, path=/home/evil/.pgpass
  ├─ INFO pgt_workspace::workspace::server Updated Db connection settings
└─┐pgt_lsp::handlers::text_document::did_open{params=DidOpenTextDocumentParams { text_document: TextDocumentItem { uri: Url { scheme: "file", cannot_be_a_base: false, username: "", password: None, host: None, port: None, path: "PATH_REDACTED/backend/db/sql/query.sql", query: None, fragment: None }, language_id: "sql", version: 404, text: "REDACTED" } }}
  ├─ INFO pgt_workspace::workspace::server Opening file: PgTPath { path: "PATH_REDACTED/backend/db/sql/query.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }
  ├─ INFO pgt_workspace::workspace::server::pg_query adding diagnostics
  ├─ INFO pgt_workspace::workspace::server::pg_query adding diagnostics
  ├─ INFO pgt_workspace::workspace::server Pulled 7 diagnostic(s)
┌─┘
  ├─ INFO pgt_lsp::session Unregister capabilities "workspace/didChangeConfiguration, workspace/didChangeWatchedFiles"
  ├─ INFO pgt_lsp::session Register capabilities "workspace/didChangeConfiguration, workspace/didChangeWatchedFiles"
  ├─ INFO pgt_workspace::workspace::server Pulled 7 diagnostic(s)
┌─┘
└─┐pgt_lsp::handlers::text_document::did_change{params=DidChangeTextDocumentParams { text_document: VersionedTextDocumentIdentifier { uri: Url { scheme: "file", cannot_be_a_base: false, username: "", password: None, host: None, port: None, path: "PATH_REDACTED/backend/db/sql/query.sql", query: None, fragment: None }, version: 405 }, content_changes: [TextDocumentContentChangeEvent { range: Some(Range { start: Position { line: 162, character: 0 }, end: Position { line: 162, character: 0 } }), range_length: Some(0), text: "\n" }] }}
  ├─ INFO pgt_workspace::workspace::server Changing file: ChangeFileParams { path: PgTPath { path: "PATH_REDACTED/backend/db/sql/query.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, version: 405, changes: [ChangeParams { range: Some(3587..3587), text: "\n" }] }
  ├─ DEBUG pgt_workspace::workspace::server Deleting statement: Statement { path: PgTPath { path: "PATH_REDACTED/backend/db/sql/query.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 20 }
  ├─ DEBUG pgt_workspace::workspace::server Adding statement: AddedStatement { stmt: Statement { path: PgTPath { path: "PATH_REDACTED/backend/db/sql/query.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 21 }, text: "UPDATE\nSET value = excluded.value;" }
  ├─ INFO pgt_workspace::workspace::server::pg_query adding diagnostics
  ├─ INFO pgt_workspace::workspace::server Pulled 7 diagnostic(s)
┌─┘
└─┐pgt_lsp::handlers::text_document::did_change{params=DidChangeTextDocumentParams { text_document: VersionedTextDocumentIdentifier { uri: Url { scheme: "file", cannot_be_a_base: false, username: "", password: None, host: None, port: None, path: "PATH_REDACTED/backend/db/sql/query.sql", query: None, fragment: None }, version: 406 }, content_changes: [TextDocumentContentChangeEvent { range: Some(Range { start: Position { line: 163, character: 0 }, end: Position { line: 163, character: 0 } }), range_length: Some(0), text: "ы" }] }}
  ├─ INFO pgt_workspace::workspace::server Changing file: ChangeFileParams { path: PgTPath { path: "PATH_REDACTED/backend/db/sql/query.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, version: 406, changes: [ChangeParams { range: Some(3588..3588), text: "ы" }] }
  ├─ ERROR pgt_cli::panic Encountered an unexpected error
  │ 
  │ This is a bug in Postgres Tools, not an error in your code, and we would appreciate it if you could report it along with the following information to help us fixing the issue:
  │ 
  │ Source Location: crates/pgt_workspace/src/workspace/server/change.rs:311:14
  │ Thread Name: tokio-runtime-worker
  │ Message: called `Option::unwrap()` on a `None` value
  │ 
┌─┘
INFO pgt_cli::commands::daemon Received shutdown signal
┘

VeryEvilHumna avatar Mar 31 '25 01:03 VeryEvilHumna

hey @VeryEvilHumna, would it be possible for you to provide an anonymised snippet of your change or maybe even a non-redacted version of the log files? I am currently not able to repro it.

psteinroe avatar Mar 31 '25 08:03 psteinroe

Did the same in another file with sample code, but in the same repo as before

Anonymized file asd.sql with part of the code:


------------- Meta -------------

-- name: GetValueFromMetaKVStore :one
SELECT value FROM meta_kv
WHERE key = $1;

-- name: SetValueToMetaKVStore :exec
INSERT INTO meta_kv (key, value)
VALUES ($1, $2)
ON CONFLICT (key) DO UPDATE
SET value = excluded.value;

Full log:

┐pgt_cli::commands::daemon::Running Server{pid=69103}
├─ INFO pgt_cli::service::unix Trying to connect to socket /home/evil/.cache/pgt/pgt-socket-0.0.0
├─ INFO pgt_cli::service::unix Remove socket folder /home/evil/.cache/pgt/pgt-socket-0.0.0
├─ INFO pgt_cli::service::unix Accepted connection
├─ INFO pgt_cli::service::unix Accepted connection
└─┐pgt_lsp::server::initialize{root_uri=file:///home/evil/Repos/wiki, capabilities=ClientCapabilities { workspace: Some(WorkspaceClientCapabilities { apply_edit: Some(true), workspace_edit: Some(WorkspaceEditClientCapabilities { document_changes: Some(true), resource_operations: Some([Create, Rename, Delete]), failure_handling: Some(TextOnlyTransactional), normalizes_line_endings: Some(true), change_annotation_support: Some(ChangeAnnotationWorkspaceEditClientCapabilities { groups_on_label: Some(true) }) }), did_change_configuration: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), did_change_watched_files: Some(DidChangeWatchedFilesClientCapabilities { dynamic_registration: Some(true), relative_pattern_support: Some(true) }), symbol: Some(WorkspaceSymbolClientCapabilities { dynamic_registration: Some(true), symbol_kind: Some(SymbolKindCapability { value_set: Some([File, Module, Namespace, Package, Class, Method, Property, Field, Constructor, Enum, Interface, Function, Variable, Constant, String, Number, Boolean, Array, Object, Key, Null, EnumMember, Struct, Event, Operator, TypeParameter]) }), tag_support: Some(TagSupport { value_set: [Deprecated] }), resolve_support: Some(WorkspaceSymbolResolveSupportCapability { properties: ["location.range"] }) }), execute_command: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), workspace_folders: Some(true), configuration: Some(true), semantic_tokens: Some(SemanticTokensWorkspaceClientCapabilities { refresh_support: Some(true) }), code_lens: Some(CodeLensWorkspaceClientCapabilities { refresh_support: Some(true) }), file_operations: Some(WorkspaceFileOperationsClientCapabilities { dynamic_registration: Some(true), did_create: Some(true), will_create: Some(true), did_rename: Some(true), will_rename: Some(true), did_delete: Some(true), will_delete: Some(true) }), inline_value: Some(InlineValueWorkspaceClientCapabilities { refresh_support: Some(true) }), inlay_hint: Some(InlayHintWorkspaceClientCapabilities { refresh_support: Some(true) }), diagnostic: None }), text_document: Some(TextDocumentClientCapabilities { synchronization: Some(TextDocumentSyncClientCapabilities { dynamic_registration: Some(true), will_save: Some(true), will_save_wait_until: Some(true), did_save: Some(true) }), completion: Some(CompletionClientCapabilities { dynamic_registration: Some(true), completion_item: Some(CompletionItemCapability { snippet_support: Some(true), commit_characters_support: Some(true), documentation_format: Some([Markdown, PlainText]), deprecated_support: Some(true), preselect_support: Some(true), tag_support: Some(TagSupport { value_set: [Deprecated] }), insert_replace_support: Some(true), resolve_support: Some(CompletionItemCapabilityResolveSupport { properties: ["documentation", "detail", "additionalTextEdits"] }), insert_text_mode_support: Some(InsertTextModeSupport { value_set: [AsIs, AdjustIndentation] }), label_details_support: Some(true) }), completion_item_kind: Some(CompletionItemKindCapability { value_set: Some([Text, Method, Function, Constructor, Field, Variable, Class, Interface, Module, Property, Unit, Value, Enum, Keyword, Snippet, Color, File, Reference, Folder, EnumMember, Constant, Struct, Event, Operator, TypeParameter]) }), context_support: Some(true), insert_text_mode: Some(AdjustIndentation), completion_list: Some(CompletionListCapability { item_defaults: Some(["commitCharacters", "editRange", "insertTextFormat", "insertTextMode", "data"]) }) }), hover: Some(HoverClientCapabilities { dynamic_registration: Some(true), content_format: Some([Markdown, PlainText]) }), signature_help: Some(SignatureHelpClientCapabilities { dynamic_registration: Some(true), signature_information: Some(SignatureInformationSettings { documentation_format: Some([Markdown, PlainText]), parameter_information: Some(ParameterInformationSettings { label_offset_support: Some(true) }), active_parameter_support: Some(true) }), context_support: Some(true) }), references: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), document_highlight: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), document_symbol: Some(DocumentSymbolClientCapabilities { dynamic_registration: Some(true), symbol_kind: Some(SymbolKindCapability { value_set: Some([File, Module, Namespace, Package, Class, Method, Property, Field, Constructor, Enum, Interface, Function, Variable, Constant, String, Number, Boolean, Array, Object, Key, Null, EnumMember, Struct, Event, Operator, TypeParameter]) }), hierarchical_document_symbol_support: Some(true), tag_support: Some(TagSupport { value_set: [Deprecated] }) }), formatting: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), range_formatting: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), on_type_formatting: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), declaration: Some(GotoCapability { dynamic_registration: Some(true), link_support: Some(true) }), definition: Some(GotoCapability { dynamic_registration: Some(true), link_support: Some(true) }), type_definition: Some(GotoCapability { dynamic_registration: Some(true), link_support: Some(true) }), implementation: Some(GotoCapability { dynamic_registration: Some(true), link_support: Some(true) }), code_action: Some(CodeActionClientCapabilities { dynamic_registration: Some(true), code_action_literal_support: Some(CodeActionLiteralSupport { code_action_kind: CodeActionKindLiteralSupport { value_set: ["", "quickfix", "refactor", "refactor.extract", "refactor.inline", "refactor.rewrite", "source", "source.organizeImports"] } }), is_preferred_support: Some(true), disabled_support: Some(true), data_support: Some(true), resolve_support: Some(CodeActionCapabilityResolveSupport { properties: ["edit"] }), honors_change_annotations: Some(true) }), code_lens: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), document_link: Some(DocumentLinkClientCapabilities { dynamic_registration: Some(true), tooltip_support: Some(true) }), color_provider: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), rename: Some(RenameClientCapabilities { dynamic_registration: Some(true), prepare_support: Some(true), prepare_support_default_behavior: Some(Identifier), honors_change_annotations: Some(true) }), publish_diagnostics: Some(PublishDiagnosticsClientCapabilities { related_information: Some(true), tag_support: Some(TagSupport { value_set: [Unnecessary, Deprecated] }), version_support: Some(false), code_description_support: Some(true), data_support: Some(true) }), folding_range: Some(FoldingRangeClientCapabilities { dynamic_registration: Some(true), range_limit: Some(5000), line_folding_only: Some(true), folding_range_kind: Some(FoldingRangeKindCapability { value_set: Some([Comment, Imports, Region]) }), folding_range: Some(FoldingRangeCapability { collapsed_text: Some(false) }) }), selection_range: Some(SelectionRangeClientCapabilities { dynamic_registration: Some(true) }), linked_editing_range: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), call_hierarchy: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), semantic_tokens: Some(SemanticTokensClientCapabilities { dynamic_registration: Some(true), requests: SemanticTokensClientCapabilitiesRequests { range: Some(true), full: Some(Delta { delta: Some(true) }) }, token_types: [SemanticTokenType("namespace"), SemanticTokenType("type"), SemanticTokenType("class"), SemanticTokenType("enum"), SemanticTokenType("interface"), SemanticTokenType("struct"), SemanticTokenType("typeParameter"), SemanticTokenType("parameter"), SemanticTokenType("variable"), SemanticTokenType("property"), SemanticTokenType("enumMember"), SemanticTokenType("event"), SemanticTokenType("function"), SemanticTokenType("method"), SemanticTokenType("macro"), SemanticTokenType("keyword"), SemanticTokenType("modifier"), SemanticTokenType("comment"), SemanticTokenType("string"), SemanticTokenType("number"), SemanticTokenType("regexp"), SemanticTokenType("operator"), SemanticTokenType("decorator")], token_modifiers: [SemanticTokenModifier("declaration"), SemanticTokenModifier("definition"), SemanticTokenModifier("readonly"), SemanticTokenModifier("static"), SemanticTokenModifier("deprecated"), SemanticTokenModifier("abstract"), SemanticTokenModifier("async"), SemanticTokenModifier("modification"), SemanticTokenModifier("documentation"), SemanticTokenModifier("defaultLibrary")], formats: [TokenFormat("relative")], overlapping_token_support: Some(false), multiline_token_support: Some(false), server_cancel_support: Some(true), augments_syntax_tokens: Some(true) }), moniker: None, type_hierarchy: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), inline_value: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), inlay_hint: Some(InlayHintClientCapabilities { dynamic_registration: Some(true), resolve_support: Some(InlayHintResolveClientCapabilities { properties: ["tooltip", "textEdits", "label.tooltip", "label.location", "label.command"] }) }), diagnostic: Some(DiagnosticClientCapabilities { dynamic_registration: Some(true), related_document_support: Some(false) }) }), window: Some(WindowClientCapabilities { work_done_progress: Some(true), show_message: Some(ShowMessageRequestClientCapabilities { message_action_item: Some(MessageActionItemCapabilities { additional_properties_support: Some(true) }) }), show_document: Some(ShowDocumentClientCapabilities { support: true }) }), general: Some(GeneralClientCapabilities { regular_expressions: Some(RegularExpressionsClientCapabilities { engine: "ECMAScript", version: Some("ES2020") }), markdown: Some(MarkdownClientCapabilities { parser: "marked", version: Some("1.1.0"), allowed_tags: None }), stale_request_support: Some(StaleRequestSupportClientCapabilities { cancel: true, retry_on_content_modified: ["textDocument/semanticTokens/full", "textDocument/semanticTokens/range", "textDocument/semanticTokens/full/delta"] }), position_encodings: Some([PositionEncodingKind("utf-16")]) }), experimental: None }, client_info=ClientInfo { name: "Visual Studio Code", version: Some("1.98.2") }, workspace_folders=[WorkspaceFolder { uri: Url { scheme: "file", cannot_be_a_base: false, username: "", password: None, host: None, port: None, path: "/home/evil/Repos/wiki", query: None, fragment: None }, name: "wiki" }]}
  ├─ INFO pgt_lsp::server Starting Language Server...
┌─┘
└─┐pgt_lsp::server::initialized{}
  ├─ INFO pgt_lsp::server Attempting to load the configuration from 'postgrestools.jsonc' file
  └─┐pgt_fs::fs::os::OsFileSystem::open_with_options{path="/home/evil/Repos/wiki/backend/postgrestools.jsonc", options=OpenOptions { read: true, write: false, truncate: false, create: false, create_new: false }}
  ┌─┘
  └─┐pgt_fs::fs::os::OsFile::read_to_string{}
  ┌─┘
  ├─ INFO pgt_lsp::session Configuration loaded successfully from disk.
  ├─ INFO pgt_lsp::session Update workspace settings.
  ├─ INFO pgt_workspace::workspace::server Updating settings in workspace
  ├─ INFO pgt_workspace::workspace::server Updated settings in workspace
  ├─ WARN sqlx_postgres::options::pgpass Failed to open `.pgpass` file: Os { code: 2, kind: NotFound, message: "No such file or directory" }, path=/home/evil/.pgpass
  ├─ INFO pgt_workspace::workspace::server Updated Db connection settings
└─┐pgt_lsp::handlers::text_document::did_open{params=DidOpenTextDocumentParams { text_document: TextDocumentItem { uri: Url { scheme: "file", cannot_be_a_base: false, username: "", password: None, host: None, port: None, path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", query: None, fragment: None }, language_id: "sql", version: 10, text: "\n------------- Meta -------------\n\n-- name: GetValueFromMetaKVStore :one\nSELECT value FROM meta_kv\nWHERE key = $1;\n\n-- name: SetValueToMetaKVStore :exec\nINSERT INTO meta_kv (key, value)\nVALUES ($1, $2)\nON CONFLICT (key) DO UPDATE\nSET value = excluded.value;\n" } }}
  ├─ INFO pgt_workspace::workspace::server Opening file: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }
  ├─ INFO pgt_workspace::workspace::server::pg_query adding diagnostics
  ├─ INFO pgt_workspace::workspace::server::pg_query adding diagnostics
  ├─ INFO pgt_workspace::workspace::server Pulled 2 diagnostic(s)
┌─┘
  ├─ INFO pgt_lsp::session Unregister capabilities "workspace/didChangeConfiguration, workspace/didChangeWatchedFiles"
  ├─ INFO pgt_lsp::session Register capabilities "workspace/didChangeConfiguration, workspace/didChangeWatchedFiles"
  ├─ INFO pgt_workspace::workspace::server Pulled 2 diagnostic(s)
┌─┘
└─┐pgt_lsp::handlers::text_document::did_change{params=DidChangeTextDocumentParams { text_document: VersionedTextDocumentIdentifier { uri: Url { scheme: "file", cannot_be_a_base: false, username: "", password: None, host: None, port: None, path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", query: None, fragment: None }, version: 11 }, content_changes: [TextDocumentContentChangeEvent { range: Some(Range { start: Position { line: 11, character: 27 }, end: Position { line: 11, character: 27 } }), range_length: Some(0), text: "\n" }] }}
  ├─ INFO pgt_workspace::workspace::server Changing file: ChangeFileParams { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, version: 11, changes: [ChangeParams { range: Some(257..257), text: "\n" }] }
  ├─ DEBUG pgt_workspace::workspace::server Modifying statement: ModifiedStatement { old_stmt: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 2 }, old_stmt_text: "UPDATE\nSET value = excluded.value;", new_stmt: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 3 }, new_stmt_text: "UPDATE\nSET value = excluded.value;", change_range: 34..34, change_text: "\n" }
  ├─ INFO pgt_workspace::workspace::server::pg_query adding diagnostics
  ├─ INFO pgt_workspace::workspace::server Pulled 2 diagnostic(s)
┌─┘
└─┐pgt_lsp::handlers::text_document::did_change{params=DidChangeTextDocumentParams { text_document: VersionedTextDocumentIdentifier { uri: Url { scheme: "file", cannot_be_a_base: false, username: "", password: None, host: None, port: None, path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", query: None, fragment: None }, version: 12 }, content_changes: [TextDocumentContentChangeEvent { range: Some(Range { start: Position { line: 13, character: 0 }, end: Position { line: 13, character: 0 } }), range_length: Some(0), text: "ы" }] }}
  ├─ INFO pgt_workspace::workspace::server Changing file: ChangeFileParams { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, version: 12, changes: [ChangeParams { range: Some(259..259), text: "ы" }] }
  ├─ ERROR pgt_cli::panic Encountered an unexpected error
  │ 
  │ This is a bug in Postgres Tools, not an error in your code, and we would appreciate it if you could report it along with the following information to help us fixing the issue:
  │ 
  │ Source Location: crates/pgt_workspace/src/workspace/server/change.rs:311:14
  │ Thread Name: tokio-runtime-worker
  │ Message: called `Option::unwrap()` on a `None` value
  │ 
┌─┘
┘
INFO pgt_cli::commands::daemon Received shutdown signal

VeryEvilHumna avatar Apr 01 '25 02:04 VeryEvilHumna

tried to recreate the issue a few times and record it on a fresh vscode profile with default extension config, took longer than expected, but I've still been able to crash the server. Crash became surprisingly unstable for some reason, before I was able to recreate it with just one character, as seen in previous logs

https://github.com/user-attachments/assets/111085dc-7989-4ade-85b8-3cdca46d099e

https://github.com/user-attachments/assets/ec448155-b340-42a8-abee-2f0c2f269557

Logs from these recordings (and two that are too long and I decided not to upload them here):

┐pgt_cli::commands::daemon::Running Server{pid=70604}
├─ INFO pgt_cli::service::unix Trying to connect to socket /home/evil/.cache/pgt/pgt-socket-0.0.0
├─ INFO pgt_cli::service::unix Remove socket folder /home/evil/.cache/pgt/pgt-socket-0.0.0
├─ INFO pgt_cli::service::unix Accepted connection
├─ INFO pgt_cli::service::unix Accepted connection
└─┐pgt_lsp::server::initialize{root_uri=file:///home/evil/Repos/wiki, capabilities=ClientCapabilities { workspace: Some(WorkspaceClientCapabilities { apply_edit: Some(true), workspace_edit: Some(WorkspaceEditClientCapabilities { document_changes: Some(true), resource_operations: Some([Create, Rename, Delete]), failure_handling: Some(TextOnlyTransactional), normalizes_line_endings: Some(true), change_annotation_support: Some(ChangeAnnotationWorkspaceEditClientCapabilities { groups_on_label: Some(true) }) }), did_change_configuration: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), did_change_watched_files: Some(DidChangeWatchedFilesClientCapabilities { dynamic_registration: Some(true), relative_pattern_support: Some(true) }), symbol: Some(WorkspaceSymbolClientCapabilities { dynamic_registration: Some(true), symbol_kind: Some(SymbolKindCapability { value_set: Some([File, Module, Namespace, Package, Class, Method, Property, Field, Constructor, Enum, Interface, Function, Variable, Constant, String, Number, Boolean, Array, Object, Key, Null, EnumMember, Struct, Event, Operator, TypeParameter]) }), tag_support: Some(TagSupport { value_set: [Deprecated] }), resolve_support: Some(WorkspaceSymbolResolveSupportCapability { properties: ["location.range"] }) }), execute_command: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), workspace_folders: Some(true), configuration: Some(true), semantic_tokens: Some(SemanticTokensWorkspaceClientCapabilities { refresh_support: Some(true) }), code_lens: Some(CodeLensWorkspaceClientCapabilities { refresh_support: Some(true) }), file_operations: Some(WorkspaceFileOperationsClientCapabilities { dynamic_registration: Some(true), did_create: Some(true), will_create: Some(true), did_rename: Some(true), will_rename: Some(true), did_delete: Some(true), will_delete: Some(true) }), inline_value: Some(InlineValueWorkspaceClientCapabilities { refresh_support: Some(true) }), inlay_hint: Some(InlayHintWorkspaceClientCapabilities { refresh_support: Some(true) }), diagnostic: None }), text_document: Some(TextDocumentClientCapabilities { synchronization: Some(TextDocumentSyncClientCapabilities { dynamic_registration: Some(true), will_save: Some(true), will_save_wait_until: Some(true), did_save: Some(true) }), completion: Some(CompletionClientCapabilities { dynamic_registration: Some(true), completion_item: Some(CompletionItemCapability { snippet_support: Some(true), commit_characters_support: Some(true), documentation_format: Some([Markdown, PlainText]), deprecated_support: Some(true), preselect_support: Some(true), tag_support: Some(TagSupport { value_set: [Deprecated] }), insert_replace_support: Some(true), resolve_support: Some(CompletionItemCapabilityResolveSupport { properties: ["documentation", "detail", "additionalTextEdits"] }), insert_text_mode_support: Some(InsertTextModeSupport { value_set: [AsIs, AdjustIndentation] }), label_details_support: Some(true) }), completion_item_kind: Some(CompletionItemKindCapability { value_set: Some([Text, Method, Function, Constructor, Field, Variable, Class, Interface, Module, Property, Unit, Value, Enum, Keyword, Snippet, Color, File, Reference, Folder, EnumMember, Constant, Struct, Event, Operator, TypeParameter]) }), context_support: Some(true), insert_text_mode: Some(AdjustIndentation), completion_list: Some(CompletionListCapability { item_defaults: Some(["commitCharacters", "editRange", "insertTextFormat", "insertTextMode", "data"]) }) }), hover: Some(HoverClientCapabilities { dynamic_registration: Some(true), content_format: Some([Markdown, PlainText]) }), signature_help: Some(SignatureHelpClientCapabilities { dynamic_registration: Some(true), signature_information: Some(SignatureInformationSettings { documentation_format: Some([Markdown, PlainText]), parameter_information: Some(ParameterInformationSettings { label_offset_support: Some(true) }), active_parameter_support: Some(true) }), context_support: Some(true) }), references: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), document_highlight: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), document_symbol: Some(DocumentSymbolClientCapabilities { dynamic_registration: Some(true), symbol_kind: Some(SymbolKindCapability { value_set: Some([File, Module, Namespace, Package, Class, Method, Property, Field, Constructor, Enum, Interface, Function, Variable, Constant, String, Number, Boolean, Array, Object, Key, Null, EnumMember, Struct, Event, Operator, TypeParameter]) }), hierarchical_document_symbol_support: Some(true), tag_support: Some(TagSupport { value_set: [Deprecated] }) }), formatting: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), range_formatting: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), on_type_formatting: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), declaration: Some(GotoCapability { dynamic_registration: Some(true), link_support: Some(true) }), definition: Some(GotoCapability { dynamic_registration: Some(true), link_support: Some(true) }), type_definition: Some(GotoCapability { dynamic_registration: Some(true), link_support: Some(true) }), implementation: Some(GotoCapability { dynamic_registration: Some(true), link_support: Some(true) }), code_action: Some(CodeActionClientCapabilities { dynamic_registration: Some(true), code_action_literal_support: Some(CodeActionLiteralSupport { code_action_kind: CodeActionKindLiteralSupport { value_set: ["", "quickfix", "refactor", "refactor.extract", "refactor.inline", "refactor.rewrite", "source", "source.organizeImports"] } }), is_preferred_support: Some(true), disabled_support: Some(true), data_support: Some(true), resolve_support: Some(CodeActionCapabilityResolveSupport { properties: ["edit"] }), honors_change_annotations: Some(true) }), code_lens: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), document_link: Some(DocumentLinkClientCapabilities { dynamic_registration: Some(true), tooltip_support: Some(true) }), color_provider: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), rename: Some(RenameClientCapabilities { dynamic_registration: Some(true), prepare_support: Some(true), prepare_support_default_behavior: Some(Identifier), honors_change_annotations: Some(true) }), publish_diagnostics: Some(PublishDiagnosticsClientCapabilities { related_information: Some(true), tag_support: Some(TagSupport { value_set: [Unnecessary, Deprecated] }), version_support: Some(false), code_description_support: Some(true), data_support: Some(true) }), folding_range: Some(FoldingRangeClientCapabilities { dynamic_registration: Some(true), range_limit: Some(5000), line_folding_only: Some(true), folding_range_kind: Some(FoldingRangeKindCapability { value_set: Some([Comment, Imports, Region]) }), folding_range: Some(FoldingRangeCapability { collapsed_text: Some(false) }) }), selection_range: Some(SelectionRangeClientCapabilities { dynamic_registration: Some(true) }), linked_editing_range: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), call_hierarchy: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), semantic_tokens: Some(SemanticTokensClientCapabilities { dynamic_registration: Some(true), requests: SemanticTokensClientCapabilitiesRequests { range: Some(true), full: Some(Delta { delta: Some(true) }) }, token_types: [SemanticTokenType("namespace"), SemanticTokenType("type"), SemanticTokenType("class"), SemanticTokenType("enum"), SemanticTokenType("interface"), SemanticTokenType("struct"), SemanticTokenType("typeParameter"), SemanticTokenType("parameter"), SemanticTokenType("variable"), SemanticTokenType("property"), SemanticTokenType("enumMember"), SemanticTokenType("event"), SemanticTokenType("function"), SemanticTokenType("method"), SemanticTokenType("macro"), SemanticTokenType("keyword"), SemanticTokenType("modifier"), SemanticTokenType("comment"), SemanticTokenType("string"), SemanticTokenType("number"), SemanticTokenType("regexp"), SemanticTokenType("operator"), SemanticTokenType("decorator")], token_modifiers: [SemanticTokenModifier("declaration"), SemanticTokenModifier("definition"), SemanticTokenModifier("readonly"), SemanticTokenModifier("static"), SemanticTokenModifier("deprecated"), SemanticTokenModifier("abstract"), SemanticTokenModifier("async"), SemanticTokenModifier("modification"), SemanticTokenModifier("documentation"), SemanticTokenModifier("defaultLibrary")], formats: [TokenFormat("relative")], overlapping_token_support: Some(false), multiline_token_support: Some(false), server_cancel_support: Some(true), augments_syntax_tokens: Some(true) }), moniker: None, type_hierarchy: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), inline_value: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), inlay_hint: Some(InlayHintClientCapabilities { dynamic_registration: Some(true), resolve_support: Some(InlayHintResolveClientCapabilities { properties: ["tooltip", "textEdits", "label.tooltip", "label.location", "label.command"] }) }), diagnostic: Some(DiagnosticClientCapabilities { dynamic_registration: Some(true), related_document_support: Some(false) }) }), window: Some(WindowClientCapabilities { work_done_progress: Some(true), show_message: Some(ShowMessageRequestClientCapabilities { message_action_item: Some(MessageActionItemCapabilities { additional_properties_support: Some(true) }) }), show_document: Some(ShowDocumentClientCapabilities { support: true }) }), general: Some(GeneralClientCapabilities { regular_expressions: Some(RegularExpressionsClientCapabilities { engine: "ECMAScript", version: Some("ES2020") }), markdown: Some(MarkdownClientCapabilities { parser: "marked", version: Some("1.1.0"), allowed_tags: None }), stale_request_support: Some(StaleRequestSupportClientCapabilities { cancel: true, retry_on_content_modified: ["textDocument/semanticTokens/full", "textDocument/semanticTokens/range", "textDocument/semanticTokens/full/delta"] }), position_encodings: Some([PositionEncodingKind("utf-16")]) }), experimental: None }, client_info=ClientInfo { name: "Visual Studio Code", version: Some("1.98.2") }, workspace_folders=[WorkspaceFolder { uri: Url { scheme: "file", cannot_be_a_base: false, username: "", password: None, host: None, port: None, path: "/home/evil/Repos/wiki", query: None, fragment: None }, name: "wiki" }]}
  ├─ INFO pgt_lsp::server Starting Language Server...
┌─┘
└─┐pgt_lsp::server::initialized{}
  ├─ INFO pgt_lsp::server Attempting to load the configuration from 'postgrestools.jsonc' file
  └─┐pgt_fs::fs::os::OsFileSystem::open_with_options{path="/home/evil/Repos/wiki/backend/postgrestools.jsonc", options=OpenOptions { read: true, write: false, truncate: false, create: false, create_new: false }}
  ┌─┘
  └─┐pgt_fs::fs::os::OsFile::read_to_string{}
  ┌─┘
  ├─ INFO pgt_lsp::session Configuration loaded successfully from disk.
  ├─ INFO pgt_lsp::session Update workspace settings.
  ├─ INFO pgt_workspace::workspace::server Updating settings in workspace
  ├─ INFO pgt_workspace::workspace::server Updated settings in workspace
  ├─ WARN sqlx_postgres::options::pgpass Failed to open `.pgpass` file: Os { code: 2, kind: NotFound, message: "No such file or directory" }, path=/home/evil/.pgpass
  ├─ INFO pgt_workspace::workspace::server Updated Db connection settings
└─┐pgt_lsp::handlers::text_document::did_open{params=DidOpenTextDocumentParams { text_document: TextDocumentItem { uri: Url { scheme: "file", cannot_be_a_base: false, username: "", password: None, host: None, port: None, path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", query: None, fragment: None }, language_id: "sql", version: 13, text: "\n------------- Meta -------------\n\n-- name: GetValueFromMetaKVStore :one\nSELECT value FROM meta_kv\nWHERE key = $1;\n\n-- name: SetValueToMetaKVStore :exec\nINSERT INTO meta_kv (key, value)\nVALUES ($1, $2)\nON CONFLICT (key) DO UPDATE\nSET value = excluded.value;\n\nы\n" } }}
  ├─ INFO pgt_workspace::workspace::server Opening file: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }
  ├─ INFO pgt_workspace::workspace::server::pg_query adding diagnostics
  ├─ INFO pgt_workspace::workspace::server::pg_query adding diagnostics
  ├─ INFO pgt_workspace::workspace::server::pg_query adding diagnostics
  ├─ INFO pgt_workspace::workspace::server Pulled 3 diagnostic(s)
┌─┘
  ├─ INFO pgt_lsp::session Unregister capabilities "workspace/didChangeConfiguration, workspace/didChangeWatchedFiles"
  ├─ INFO pgt_lsp::session Register capabilities "workspace/didChangeConfiguration, workspace/didChangeWatchedFiles"
  ├─ INFO pgt_workspace::workspace::server Pulled 3 diagnostic(s)
┌─┘
└─┐pgt_lsp::handlers::text_document::did_change{params=DidChangeTextDocumentParams { text_document: VersionedTextDocumentIdentifier { uri: Url { scheme: "file", cannot_be_a_base: false, username: "", password: None, host: None, port: None, path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", query: None, fragment: None }, version: 14 }, content_changes: [TextDocumentContentChangeEvent { range: Some(Range { start: Position { line: 13, character: 0 }, end: Position { line: 13, character: 1 } }), range_length: Some(1), text: "" }] }}
  ├─ INFO pgt_workspace::workspace::server Changing file: ChangeFileParams { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, version: 14, changes: [ChangeParams { range: Some(259..261), text: "" }] }
  ├─ DEBUG pgt_workspace::workspace::server Deleting statement: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 3 }
  ├─ DEBUG pgt_workspace::workspace::server Deleting statement: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 2 }
  ├─ DEBUG pgt_workspace::workspace::server Adding statement: AddedStatement { stmt: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 4 }, text: "UPDATE\nSET value = excluded.value;" }
  ├─ INFO pgt_workspace::workspace::server::pg_query adding diagnostics
  ├─ INFO pgt_workspace::workspace::server Pulled 2 diagnostic(s)
┌─┘
└─┐pgt_lsp::handlers::text_document::did_change{params=DidChangeTextDocumentParams { text_document: VersionedTextDocumentIdentifier { uri: Url { scheme: "file", cannot_be_a_base: false, username: "", password: None, host: None, port: None, path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", query: None, fragment: None }, version: 15 }, content_changes: [TextDocumentContentChangeEvent { range: Some(Range { start: Position { line: 12, character: 0 }, end: Position { line: 13, character: 0 } }), range_length: Some(1), text: "" }] }}
  ├─ INFO pgt_workspace::workspace::server Changing file: ChangeFileParams { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, version: 15, changes: [ChangeParams { range: Some(258..259), text: "" }] }
  ├─ DEBUG pgt_workspace::workspace::server Deleting statement: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 4 }
  ├─ DEBUG pgt_workspace::workspace::server Adding statement: AddedStatement { stmt: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 5 }, text: "UPDATE\nSET value = excluded.value;" }
  ├─ INFO pgt_workspace::workspace::server::pg_query adding diagnostics
  ├─ INFO pgt_workspace::workspace::server Pulled 2 diagnostic(s)
┌─┘
└─┐pgt_lsp::handlers::text_document::did_change{params=DidChangeTextDocumentParams { text_document: VersionedTextDocumentIdentifier { uri: Url { scheme: "file", cannot_be_a_base: false, username: "", password: None, host: None, port: None, path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", query: None, fragment: None }, version: 16 }, content_changes: [TextDocumentContentChangeEvent { range: Some(Range { start: Position { line: 11, character: 27 }, end: Position { line: 12, character: 0 } }), range_length: Some(1), text: "" }] }}
  ├─ INFO pgt_workspace::workspace::server Changing file: ChangeFileParams { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, version: 16, changes: [ChangeParams { range: Some(257..258), text: "" }] }
  ├─ DEBUG pgt_workspace::workspace::server Modifying statement: ModifiedStatement { old_stmt: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 5 }, old_stmt_text: "UPDATE\nSET value = excluded.value;", new_stmt: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 6 }, new_stmt_text: "UPDATE\nSET value = excluded.value;", change_range: 34..35, change_text: "" }
  ├─ INFO pgt_workspace::workspace::server::pg_query adding diagnostics
  ├─ INFO pgt_workspace::workspace::server Pulled 2 diagnostic(s)
┌─┘
INFO pgt_cli::commands::daemon Received shutdown signal
┘
┐pgt_cli::commands::daemon::Running Server{pid=70769}
├─ INFO pgt_cli::service::unix Trying to connect to socket /home/evil/.cache/pgt/pgt-socket-0.0.0
├─ INFO pgt_cli::service::unix Remove socket folder /home/evil/.cache/pgt/pgt-socket-0.0.0
├─ INFO pgt_cli::service::unix Accepted connection
├─ INFO pgt_cli::service::unix Accepted connection
└─┐pgt_lsp::server::initialize{root_uri=file:///home/evil/Repos/wiki, capabilities=ClientCapabilities { workspace: Some(WorkspaceClientCapabilities { apply_edit: Some(true), workspace_edit: Some(WorkspaceEditClientCapabilities { document_changes: Some(true), resource_operations: Some([Create, Rename, Delete]), failure_handling: Some(TextOnlyTransactional), normalizes_line_endings: Some(true), change_annotation_support: Some(ChangeAnnotationWorkspaceEditClientCapabilities { groups_on_label: Some(true) }) }), did_change_configuration: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), did_change_watched_files: Some(DidChangeWatchedFilesClientCapabilities { dynamic_registration: Some(true), relative_pattern_support: Some(true) }), symbol: Some(WorkspaceSymbolClientCapabilities { dynamic_registration: Some(true), symbol_kind: Some(SymbolKindCapability { value_set: Some([File, Module, Namespace, Package, Class, Method, Property, Field, Constructor, Enum, Interface, Function, Variable, Constant, String, Number, Boolean, Array, Object, Key, Null, EnumMember, Struct, Event, Operator, TypeParameter]) }), tag_support: Some(TagSupport { value_set: [Deprecated] }), resolve_support: Some(WorkspaceSymbolResolveSupportCapability { properties: ["location.range"] }) }), execute_command: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), workspace_folders: Some(true), configuration: Some(true), semantic_tokens: Some(SemanticTokensWorkspaceClientCapabilities { refresh_support: Some(true) }), code_lens: Some(CodeLensWorkspaceClientCapabilities { refresh_support: Some(true) }), file_operations: Some(WorkspaceFileOperationsClientCapabilities { dynamic_registration: Some(true), did_create: Some(true), will_create: Some(true), did_rename: Some(true), will_rename: Some(true), did_delete: Some(true), will_delete: Some(true) }), inline_value: Some(InlineValueWorkspaceClientCapabilities { refresh_support: Some(true) }), inlay_hint: Some(InlayHintWorkspaceClientCapabilities { refresh_support: Some(true) }), diagnostic: None }), text_document: Some(TextDocumentClientCapabilities { synchronization: Some(TextDocumentSyncClientCapabilities { dynamic_registration: Some(true), will_save: Some(true), will_save_wait_until: Some(true), did_save: Some(true) }), completion: Some(CompletionClientCapabilities { dynamic_registration: Some(true), completion_item: Some(CompletionItemCapability { snippet_support: Some(true), commit_characters_support: Some(true), documentation_format: Some([Markdown, PlainText]), deprecated_support: Some(true), preselect_support: Some(true), tag_support: Some(TagSupport { value_set: [Deprecated] }), insert_replace_support: Some(true), resolve_support: Some(CompletionItemCapabilityResolveSupport { properties: ["documentation", "detail", "additionalTextEdits"] }), insert_text_mode_support: Some(InsertTextModeSupport { value_set: [AsIs, AdjustIndentation] }), label_details_support: Some(true) }), completion_item_kind: Some(CompletionItemKindCapability { value_set: Some([Text, Method, Function, Constructor, Field, Variable, Class, Interface, Module, Property, Unit, Value, Enum, Keyword, Snippet, Color, File, Reference, Folder, EnumMember, Constant, Struct, Event, Operator, TypeParameter]) }), context_support: Some(true), insert_text_mode: Some(AdjustIndentation), completion_list: Some(CompletionListCapability { item_defaults: Some(["commitCharacters", "editRange", "insertTextFormat", "insertTextMode", "data"]) }) }), hover: Some(HoverClientCapabilities { dynamic_registration: Some(true), content_format: Some([Markdown, PlainText]) }), signature_help: Some(SignatureHelpClientCapabilities { dynamic_registration: Some(true), signature_information: Some(SignatureInformationSettings { documentation_format: Some([Markdown, PlainText]), parameter_information: Some(ParameterInformationSettings { label_offset_support: Some(true) }), active_parameter_support: Some(true) }), context_support: Some(true) }), references: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), document_highlight: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), document_symbol: Some(DocumentSymbolClientCapabilities { dynamic_registration: Some(true), symbol_kind: Some(SymbolKindCapability { value_set: Some([File, Module, Namespace, Package, Class, Method, Property, Field, Constructor, Enum, Interface, Function, Variable, Constant, String, Number, Boolean, Array, Object, Key, Null, EnumMember, Struct, Event, Operator, TypeParameter]) }), hierarchical_document_symbol_support: Some(true), tag_support: Some(TagSupport { value_set: [Deprecated] }) }), formatting: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), range_formatting: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), on_type_formatting: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), declaration: Some(GotoCapability { dynamic_registration: Some(true), link_support: Some(true) }), definition: Some(GotoCapability { dynamic_registration: Some(true), link_support: Some(true) }), type_definition: Some(GotoCapability { dynamic_registration: Some(true), link_support: Some(true) }), implementation: Some(GotoCapability { dynamic_registration: Some(true), link_support: Some(true) }), code_action: Some(CodeActionClientCapabilities { dynamic_registration: Some(true), code_action_literal_support: Some(CodeActionLiteralSupport { code_action_kind: CodeActionKindLiteralSupport { value_set: ["", "quickfix", "refactor", "refactor.extract", "refactor.inline", "refactor.rewrite", "source", "source.organizeImports"] } }), is_preferred_support: Some(true), disabled_support: Some(true), data_support: Some(true), resolve_support: Some(CodeActionCapabilityResolveSupport { properties: ["edit"] }), honors_change_annotations: Some(true) }), code_lens: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), document_link: Some(DocumentLinkClientCapabilities { dynamic_registration: Some(true), tooltip_support: Some(true) }), color_provider: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), rename: Some(RenameClientCapabilities { dynamic_registration: Some(true), prepare_support: Some(true), prepare_support_default_behavior: Some(Identifier), honors_change_annotations: Some(true) }), publish_diagnostics: Some(PublishDiagnosticsClientCapabilities { related_information: Some(true), tag_support: Some(TagSupport { value_set: [Unnecessary, Deprecated] }), version_support: Some(false), code_description_support: Some(true), data_support: Some(true) }), folding_range: Some(FoldingRangeClientCapabilities { dynamic_registration: Some(true), range_limit: Some(5000), line_folding_only: Some(true), folding_range_kind: Some(FoldingRangeKindCapability { value_set: Some([Comment, Imports, Region]) }), folding_range: Some(FoldingRangeCapability { collapsed_text: Some(false) }) }), selection_range: Some(SelectionRangeClientCapabilities { dynamic_registration: Some(true) }), linked_editing_range: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), call_hierarchy: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), semantic_tokens: Some(SemanticTokensClientCapabilities { dynamic_registration: Some(true), requests: SemanticTokensClientCapabilitiesRequests { range: Some(true), full: Some(Delta { delta: Some(true) }) }, token_types: [SemanticTokenType("namespace"), SemanticTokenType("type"), SemanticTokenType("class"), SemanticTokenType("enum"), SemanticTokenType("interface"), SemanticTokenType("struct"), SemanticTokenType("typeParameter"), SemanticTokenType("parameter"), SemanticTokenType("variable"), SemanticTokenType("property"), SemanticTokenType("enumMember"), SemanticTokenType("event"), SemanticTokenType("function"), SemanticTokenType("method"), SemanticTokenType("macro"), SemanticTokenType("keyword"), SemanticTokenType("modifier"), SemanticTokenType("comment"), SemanticTokenType("string"), SemanticTokenType("number"), SemanticTokenType("regexp"), SemanticTokenType("operator"), SemanticTokenType("decorator")], token_modifiers: [SemanticTokenModifier("declaration"), SemanticTokenModifier("definition"), SemanticTokenModifier("readonly"), SemanticTokenModifier("static"), SemanticTokenModifier("deprecated"), SemanticTokenModifier("abstract"), SemanticTokenModifier("async"), SemanticTokenModifier("modification"), SemanticTokenModifier("documentation"), SemanticTokenModifier("defaultLibrary")], formats: [TokenFormat("relative")], overlapping_token_support: Some(false), multiline_token_support: Some(false), server_cancel_support: Some(true), augments_syntax_tokens: Some(true) }), moniker: None, type_hierarchy: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), inline_value: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), inlay_hint: Some(InlayHintClientCapabilities { dynamic_registration: Some(true), resolve_support: Some(InlayHintResolveClientCapabilities { properties: ["tooltip", "textEdits", "label.tooltip", "label.location", "label.command"] }) }), diagnostic: Some(DiagnosticClientCapabilities { dynamic_registration: Some(true), related_document_support: Some(false) }) }), window: Some(WindowClientCapabilities { work_done_progress: Some(true), show_message: Some(ShowMessageRequestClientCapabilities { message_action_item: Some(MessageActionItemCapabilities { additional_properties_support: Some(true) }) }), show_document: Some(ShowDocumentClientCapabilities { support: true }) }), general: Some(GeneralClientCapabilities { regular_expressions: Some(RegularExpressionsClientCapabilities { engine: "ECMAScript", version: Some("ES2020") }), markdown: Some(MarkdownClientCapabilities { parser: "marked", version: Some("1.1.0"), allowed_tags: None }), stale_request_support: Some(StaleRequestSupportClientCapabilities { cancel: true, retry_on_content_modified: ["textDocument/semanticTokens/full", "textDocument/semanticTokens/range", "textDocument/semanticTokens/full/delta"] }), position_encodings: Some([PositionEncodingKind("utf-16")]) }), experimental: None }, client_info=ClientInfo { name: "Visual Studio Code", version: Some("1.98.2") }, workspace_folders=[WorkspaceFolder { uri: Url { scheme: "file", cannot_be_a_base: false, username: "", password: None, host: None, port: None, path: "/home/evil/Repos/wiki", query: None, fragment: None }, name: "wiki" }]}
  ├─ INFO pgt_lsp::server Starting Language Server...
┌─┘
└─┐pgt_lsp::server::initialized{}
  ├─ INFO pgt_lsp::server Attempting to load the configuration from 'postgrestools.jsonc' file
  └─┐pgt_fs::fs::os::OsFileSystem::open_with_options{path="/home/evil/Repos/wiki/backend/postgrestools.jsonc", options=OpenOptions { read: true, write: false, truncate: false, create: false, create_new: false }}
  ┌─┘
  └─┐pgt_fs::fs::os::OsFile::read_to_string{}
  ┌─┘
  ├─ INFO pgt_lsp::session Configuration loaded successfully from disk.
  ├─ INFO pgt_lsp::session Update workspace settings.
  ├─ INFO pgt_workspace::workspace::server Updating settings in workspace
  ├─ INFO pgt_workspace::workspace::server Updated settings in workspace
  ├─ WARN sqlx_postgres::options::pgpass Failed to open `.pgpass` file: Os { code: 2, kind: NotFound, message: "No such file or directory" }, path=/home/evil/.pgpass
  ├─ INFO pgt_workspace::workspace::server Updated Db connection settings
└─┐pgt_lsp::handlers::text_document::did_open{params=DidOpenTextDocumentParams { text_document: TextDocumentItem { uri: Url { scheme: "file", cannot_be_a_base: false, username: "", password: None, host: None, port: None, path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", query: None, fragment: None }, language_id: "sql", version: 18, text: "\n------------- Meta -------------\n\n-- name: GetValueFromMetaKVStore :one\nSELECT value FROM meta_kv\nWHERE key = $1;\n\n-- name: SetValueToMetaKVStore :exec\nINSERT INTO meta_kv (key, value)\nVALUES ($1, $2)\nON CONFLICT (key) DO UPDATE\nSET value = excluded.value;\n\n\n" } }}
  ├─ INFO pgt_workspace::workspace::server Opening file: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }
  ├─ INFO pgt_workspace::workspace::server::pg_query adding diagnostics
  ├─ INFO pgt_workspace::workspace::server::pg_query adding diagnostics
  ├─ INFO pgt_workspace::workspace::server Pulled 2 diagnostic(s)
┌─┘
  ├─ INFO pgt_lsp::session Unregister capabilities "workspace/didChangeConfiguration, workspace/didChangeWatchedFiles"
  ├─ INFO pgt_lsp::session Register capabilities "workspace/didChangeConfiguration, workspace/didChangeWatchedFiles"
  ├─ INFO pgt_workspace::workspace::server Pulled 2 diagnostic(s)
┌─┘
└─┐pgt_lsp::handlers::text_document::did_change{params=DidChangeTextDocumentParams { text_document: VersionedTextDocumentIdentifier { uri: Url { scheme: "file", cannot_be_a_base: false, username: "", password: None, host: None, port: None, path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", query: None, fragment: None }, version: 19 }, content_changes: [TextDocumentContentChangeEvent { range: Some(Range { start: Position { line: 13, character: 0 }, end: Position { line: 13, character: 0 } }), range_length: Some(0), text: "ы" }] }}
  ├─ INFO pgt_workspace::workspace::server Changing file: ChangeFileParams { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, version: 19, changes: [ChangeParams { range: Some(259..259), text: "ы" }] }
  ├─ ERROR pgt_cli::panic Encountered an unexpected error
  │ 
  │ This is a bug in Postgres Tools, not an error in your code, and we would appreciate it if you could report it along with the following information to help us fixing the issue:
  │ 
  │ Source Location: crates/pgt_workspace/src/workspace/server/change.rs:311:14
  │ Thread Name: tokio-runtime-worker
  │ Message: called `Option::unwrap()` on a `None` value
  │ 
┌─┘
┘
INFO pgt_cli::commands::daemon Received shutdown signal
┐pgt_cli::commands::daemon::Running Server{pid=70947}
├─ INFO pgt_cli::service::unix Trying to connect to socket /home/evil/.cache/pgt/pgt-socket-0.0.0
├─ INFO pgt_cli::service::unix Remove socket folder /home/evil/.cache/pgt/pgt-socket-0.0.0
├─ INFO pgt_cli::service::unix Accepted connection
├─ INFO pgt_cli::service::unix Accepted connection
└─┐pgt_lsp::server::initialize{root_uri=file:///home/evil/Repos/wiki, capabilities=ClientCapabilities { workspace: Some(WorkspaceClientCapabilities { apply_edit: Some(true), workspace_edit: Some(WorkspaceEditClientCapabilities { document_changes: Some(true), resource_operations: Some([Create, Rename, Delete]), failure_handling: Some(TextOnlyTransactional), normalizes_line_endings: Some(true), change_annotation_support: Some(ChangeAnnotationWorkspaceEditClientCapabilities { groups_on_label: Some(true) }) }), did_change_configuration: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), did_change_watched_files: Some(DidChangeWatchedFilesClientCapabilities { dynamic_registration: Some(true), relative_pattern_support: Some(true) }), symbol: Some(WorkspaceSymbolClientCapabilities { dynamic_registration: Some(true), symbol_kind: Some(SymbolKindCapability { value_set: Some([File, Module, Namespace, Package, Class, Method, Property, Field, Constructor, Enum, Interface, Function, Variable, Constant, String, Number, Boolean, Array, Object, Key, Null, EnumMember, Struct, Event, Operator, TypeParameter]) }), tag_support: Some(TagSupport { value_set: [Deprecated] }), resolve_support: Some(WorkspaceSymbolResolveSupportCapability { properties: ["location.range"] }) }), execute_command: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), workspace_folders: Some(true), configuration: Some(true), semantic_tokens: Some(SemanticTokensWorkspaceClientCapabilities { refresh_support: Some(true) }), code_lens: Some(CodeLensWorkspaceClientCapabilities { refresh_support: Some(true) }), file_operations: Some(WorkspaceFileOperationsClientCapabilities { dynamic_registration: Some(true), did_create: Some(true), will_create: Some(true), did_rename: Some(true), will_rename: Some(true), did_delete: Some(true), will_delete: Some(true) }), inline_value: Some(InlineValueWorkspaceClientCapabilities { refresh_support: Some(true) }), inlay_hint: Some(InlayHintWorkspaceClientCapabilities { refresh_support: Some(true) }), diagnostic: None }), text_document: Some(TextDocumentClientCapabilities { synchronization: Some(TextDocumentSyncClientCapabilities { dynamic_registration: Some(true), will_save: Some(true), will_save_wait_until: Some(true), did_save: Some(true) }), completion: Some(CompletionClientCapabilities { dynamic_registration: Some(true), completion_item: Some(CompletionItemCapability { snippet_support: Some(true), commit_characters_support: Some(true), documentation_format: Some([Markdown, PlainText]), deprecated_support: Some(true), preselect_support: Some(true), tag_support: Some(TagSupport { value_set: [Deprecated] }), insert_replace_support: Some(true), resolve_support: Some(CompletionItemCapabilityResolveSupport { properties: ["documentation", "detail", "additionalTextEdits"] }), insert_text_mode_support: Some(InsertTextModeSupport { value_set: [AsIs, AdjustIndentation] }), label_details_support: Some(true) }), completion_item_kind: Some(CompletionItemKindCapability { value_set: Some([Text, Method, Function, Constructor, Field, Variable, Class, Interface, Module, Property, Unit, Value, Enum, Keyword, Snippet, Color, File, Reference, Folder, EnumMember, Constant, Struct, Event, Operator, TypeParameter]) }), context_support: Some(true), insert_text_mode: Some(AdjustIndentation), completion_list: Some(CompletionListCapability { item_defaults: Some(["commitCharacters", "editRange", "insertTextFormat", "insertTextMode", "data"]) }) }), hover: Some(HoverClientCapabilities { dynamic_registration: Some(true), content_format: Some([Markdown, PlainText]) }), signature_help: Some(SignatureHelpClientCapabilities { dynamic_registration: Some(true), signature_information: Some(SignatureInformationSettings { documentation_format: Some([Markdown, PlainText]), parameter_information: Some(ParameterInformationSettings { label_offset_support: Some(true) }), active_parameter_support: Some(true) }), context_support: Some(true) }), references: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), document_highlight: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), document_symbol: Some(DocumentSymbolClientCapabilities { dynamic_registration: Some(true), symbol_kind: Some(SymbolKindCapability { value_set: Some([File, Module, Namespace, Package, Class, Method, Property, Field, Constructor, Enum, Interface, Function, Variable, Constant, String, Number, Boolean, Array, Object, Key, Null, EnumMember, Struct, Event, Operator, TypeParameter]) }), hierarchical_document_symbol_support: Some(true), tag_support: Some(TagSupport { value_set: [Deprecated] }) }), formatting: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), range_formatting: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), on_type_formatting: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), declaration: Some(GotoCapability { dynamic_registration: Some(true), link_support: Some(true) }), definition: Some(GotoCapability { dynamic_registration: Some(true), link_support: Some(true) }), type_definition: Some(GotoCapability { dynamic_registration: Some(true), link_support: Some(true) }), implementation: Some(GotoCapability { dynamic_registration: Some(true), link_support: Some(true) }), code_action: Some(CodeActionClientCapabilities { dynamic_registration: Some(true), code_action_literal_support: Some(CodeActionLiteralSupport { code_action_kind: CodeActionKindLiteralSupport { value_set: ["", "quickfix", "refactor", "refactor.extract", "refactor.inline", "refactor.rewrite", "source", "source.organizeImports"] } }), is_preferred_support: Some(true), disabled_support: Some(true), data_support: Some(true), resolve_support: Some(CodeActionCapabilityResolveSupport { properties: ["edit"] }), honors_change_annotations: Some(true) }), code_lens: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), document_link: Some(DocumentLinkClientCapabilities { dynamic_registration: Some(true), tooltip_support: Some(true) }), color_provider: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), rename: Some(RenameClientCapabilities { dynamic_registration: Some(true), prepare_support: Some(true), prepare_support_default_behavior: Some(Identifier), honors_change_annotations: Some(true) }), publish_diagnostics: Some(PublishDiagnosticsClientCapabilities { related_information: Some(true), tag_support: Some(TagSupport { value_set: [Unnecessary, Deprecated] }), version_support: Some(false), code_description_support: Some(true), data_support: Some(true) }), folding_range: Some(FoldingRangeClientCapabilities { dynamic_registration: Some(true), range_limit: Some(5000), line_folding_only: Some(true), folding_range_kind: Some(FoldingRangeKindCapability { value_set: Some([Comment, Imports, Region]) }), folding_range: Some(FoldingRangeCapability { collapsed_text: Some(false) }) }), selection_range: Some(SelectionRangeClientCapabilities { dynamic_registration: Some(true) }), linked_editing_range: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), call_hierarchy: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), semantic_tokens: Some(SemanticTokensClientCapabilities { dynamic_registration: Some(true), requests: SemanticTokensClientCapabilitiesRequests { range: Some(true), full: Some(Delta { delta: Some(true) }) }, token_types: [SemanticTokenType("namespace"), SemanticTokenType("type"), SemanticTokenType("class"), SemanticTokenType("enum"), SemanticTokenType("interface"), SemanticTokenType("struct"), SemanticTokenType("typeParameter"), SemanticTokenType("parameter"), SemanticTokenType("variable"), SemanticTokenType("property"), SemanticTokenType("enumMember"), SemanticTokenType("event"), SemanticTokenType("function"), SemanticTokenType("method"), SemanticTokenType("macro"), SemanticTokenType("keyword"), SemanticTokenType("modifier"), SemanticTokenType("comment"), SemanticTokenType("string"), SemanticTokenType("number"), SemanticTokenType("regexp"), SemanticTokenType("operator"), SemanticTokenType("decorator")], token_modifiers: [SemanticTokenModifier("declaration"), SemanticTokenModifier("definition"), SemanticTokenModifier("readonly"), SemanticTokenModifier("static"), SemanticTokenModifier("deprecated"), SemanticTokenModifier("abstract"), SemanticTokenModifier("async"), SemanticTokenModifier("modification"), SemanticTokenModifier("documentation"), SemanticTokenModifier("defaultLibrary")], formats: [TokenFormat("relative")], overlapping_token_support: Some(false), multiline_token_support: Some(false), server_cancel_support: Some(true), augments_syntax_tokens: Some(true) }), moniker: None, type_hierarchy: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), inline_value: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), inlay_hint: Some(InlayHintClientCapabilities { dynamic_registration: Some(true), resolve_support: Some(InlayHintResolveClientCapabilities { properties: ["tooltip", "textEdits", "label.tooltip", "label.location", "label.command"] }) }), diagnostic: Some(DiagnosticClientCapabilities { dynamic_registration: Some(true), related_document_support: Some(false) }) }), window: Some(WindowClientCapabilities { work_done_progress: Some(true), show_message: Some(ShowMessageRequestClientCapabilities { message_action_item: Some(MessageActionItemCapabilities { additional_properties_support: Some(true) }) }), show_document: Some(ShowDocumentClientCapabilities { support: true }) }), general: Some(GeneralClientCapabilities { regular_expressions: Some(RegularExpressionsClientCapabilities { engine: "ECMAScript", version: Some("ES2020") }), markdown: Some(MarkdownClientCapabilities { parser: "marked", version: Some("1.1.0"), allowed_tags: None }), stale_request_support: Some(StaleRequestSupportClientCapabilities { cancel: true, retry_on_content_modified: ["textDocument/semanticTokens/full", "textDocument/semanticTokens/range", "textDocument/semanticTokens/full/delta"] }), position_encodings: Some([PositionEncodingKind("utf-16")]) }), experimental: None }, client_info=ClientInfo { name: "Visual Studio Code", version: Some("1.98.2") }, workspace_folders=[WorkspaceFolder { uri: Url { scheme: "file", cannot_be_a_base: false, username: "", password: None, host: None, port: None, path: "/home/evil/Repos/wiki", query: None, fragment: None }, name: "wiki" }]}
  ├─ INFO pgt_lsp::server Starting Language Server...
┌─┘
└─┐pgt_lsp::server::initialized{}
  ├─ INFO pgt_lsp::server Attempting to load the configuration from 'postgrestools.jsonc' file
  └─┐pgt_fs::fs::os::OsFileSystem::open_with_options{path="/home/evil/Repos/wiki/backend/postgrestools.jsonc", options=OpenOptions { read: true, write: false, truncate: false, create: false, create_new: false }}
  ┌─┘
  └─┐pgt_fs::fs::os::OsFile::read_to_string{}
  ┌─┘
  ├─ INFO pgt_lsp::session Configuration loaded successfully from disk.
  ├─ INFO pgt_lsp::session Update workspace settings.
  ├─ INFO pgt_workspace::workspace::server Updating settings in workspace
  ├─ INFO pgt_workspace::workspace::server Updated settings in workspace
  ├─ WARN sqlx_postgres::options::pgpass Failed to open `.pgpass` file: Os { code: 2, kind: NotFound, message: "No such file or directory" }, path=/home/evil/.pgpass
  ├─ INFO pgt_workspace::workspace::server Updated Db connection settings
└─┐pgt_lsp::handlers::text_document::did_open{params=DidOpenTextDocumentParams { text_document: TextDocumentItem { uri: Url { scheme: "file", cannot_be_a_base: false, username: "", password: None, host: None, port: None, path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", query: None, fragment: None }, language_id: "sql", version: 22, text: "\n------------- Meta -------------\n\n-- name: GetValueFromMetaKVStore :one\nSELECT value FROM meta_kv\nWHERE key = $1;\n\n-- name: SetValueToMetaKVStore :exec\nINSERT INTO meta_kv (key, value)\nVALUES ($1, $2)\nON CONFLICT (key) DO UPDATE\nSET value = excluded.value;\n" } }}
  ├─ INFO pgt_workspace::workspace::server Opening file: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }
  ├─ INFO pgt_workspace::workspace::server::pg_query adding diagnostics
  ├─ INFO pgt_workspace::workspace::server::pg_query adding diagnostics
  ├─ INFO pgt_workspace::workspace::server Pulled 2 diagnostic(s)
┌─┘
  ├─ INFO pgt_lsp::session Unregister capabilities "workspace/didChangeConfiguration, workspace/didChangeWatchedFiles"
  ├─ INFO pgt_lsp::session Register capabilities "workspace/didChangeConfiguration, workspace/didChangeWatchedFiles"
  ├─ INFO pgt_workspace::workspace::server Pulled 2 diagnostic(s)
┌─┘
INFO pgt_cli::commands::daemon Received shutdown signal
┘
┐pgt_cli::commands::daemon::Running Server{pid=71097}
├─ INFO pgt_cli::service::unix Trying to connect to socket /home/evil/.cache/pgt/pgt-socket-0.0.0
├─ INFO pgt_cli::service::unix Remove socket folder /home/evil/.cache/pgt/pgt-socket-0.0.0
├─ INFO pgt_cli::service::unix Accepted connection
├─ INFO pgt_cli::service::unix Accepted connection
└─┐pgt_lsp::server::initialize{root_uri=file:///home/evil/Repos/wiki, capabilities=ClientCapabilities { workspace: Some(WorkspaceClientCapabilities { apply_edit: Some(true), workspace_edit: Some(WorkspaceEditClientCapabilities { document_changes: Some(true), resource_operations: Some([Create, Rename, Delete]), failure_handling: Some(TextOnlyTransactional), normalizes_line_endings: Some(true), change_annotation_support: Some(ChangeAnnotationWorkspaceEditClientCapabilities { groups_on_label: Some(true) }) }), did_change_configuration: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), did_change_watched_files: Some(DidChangeWatchedFilesClientCapabilities { dynamic_registration: Some(true), relative_pattern_support: Some(true) }), symbol: Some(WorkspaceSymbolClientCapabilities { dynamic_registration: Some(true), symbol_kind: Some(SymbolKindCapability { value_set: Some([File, Module, Namespace, Package, Class, Method, Property, Field, Constructor, Enum, Interface, Function, Variable, Constant, String, Number, Boolean, Array, Object, Key, Null, EnumMember, Struct, Event, Operator, TypeParameter]) }), tag_support: Some(TagSupport { value_set: [Deprecated] }), resolve_support: Some(WorkspaceSymbolResolveSupportCapability { properties: ["location.range"] }) }), execute_command: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), workspace_folders: Some(true), configuration: Some(true), semantic_tokens: Some(SemanticTokensWorkspaceClientCapabilities { refresh_support: Some(true) }), code_lens: Some(CodeLensWorkspaceClientCapabilities { refresh_support: Some(true) }), file_operations: Some(WorkspaceFileOperationsClientCapabilities { dynamic_registration: Some(true), did_create: Some(true), will_create: Some(true), did_rename: Some(true), will_rename: Some(true), did_delete: Some(true), will_delete: Some(true) }), inline_value: Some(InlineValueWorkspaceClientCapabilities { refresh_support: Some(true) }), inlay_hint: Some(InlayHintWorkspaceClientCapabilities { refresh_support: Some(true) }), diagnostic: None }), text_document: Some(TextDocumentClientCapabilities { synchronization: Some(TextDocumentSyncClientCapabilities { dynamic_registration: Some(true), will_save: Some(true), will_save_wait_until: Some(true), did_save: Some(true) }), completion: Some(CompletionClientCapabilities { dynamic_registration: Some(true), completion_item: Some(CompletionItemCapability { snippet_support: Some(true), commit_characters_support: Some(true), documentation_format: Some([Markdown, PlainText]), deprecated_support: Some(true), preselect_support: Some(true), tag_support: Some(TagSupport { value_set: [Deprecated] }), insert_replace_support: Some(true), resolve_support: Some(CompletionItemCapabilityResolveSupport { properties: ["documentation", "detail", "additionalTextEdits"] }), insert_text_mode_support: Some(InsertTextModeSupport { value_set: [AsIs, AdjustIndentation] }), label_details_support: Some(true) }), completion_item_kind: Some(CompletionItemKindCapability { value_set: Some([Text, Method, Function, Constructor, Field, Variable, Class, Interface, Module, Property, Unit, Value, Enum, Keyword, Snippet, Color, File, Reference, Folder, EnumMember, Constant, Struct, Event, Operator, TypeParameter]) }), context_support: Some(true), insert_text_mode: Some(AdjustIndentation), completion_list: Some(CompletionListCapability { item_defaults: Some(["commitCharacters", "editRange", "insertTextFormat", "insertTextMode", "data"]) }) }), hover: Some(HoverClientCapabilities { dynamic_registration: Some(true), content_format: Some([Markdown, PlainText]) }), signature_help: Some(SignatureHelpClientCapabilities { dynamic_registration: Some(true), signature_information: Some(SignatureInformationSettings { documentation_format: Some([Markdown, PlainText]), parameter_information: Some(ParameterInformationSettings { label_offset_support: Some(true) }), active_parameter_support: Some(true) }), context_support: Some(true) }), references: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), document_highlight: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), document_symbol: Some(DocumentSymbolClientCapabilities { dynamic_registration: Some(true), symbol_kind: Some(SymbolKindCapability { value_set: Some([File, Module, Namespace, Package, Class, Method, Property, Field, Constructor, Enum, Interface, Function, Variable, Constant, String, Number, Boolean, Array, Object, Key, Null, EnumMember, Struct, Event, Operator, TypeParameter]) }), hierarchical_document_symbol_support: Some(true), tag_support: Some(TagSupport { value_set: [Deprecated] }) }), formatting: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), range_formatting: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), on_type_formatting: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), declaration: Some(GotoCapability { dynamic_registration: Some(true), link_support: Some(true) }), definition: Some(GotoCapability { dynamic_registration: Some(true), link_support: Some(true) }), type_definition: Some(GotoCapability { dynamic_registration: Some(true), link_support: Some(true) }), implementation: Some(GotoCapability { dynamic_registration: Some(true), link_support: Some(true) }), code_action: Some(CodeActionClientCapabilities { dynamic_registration: Some(true), code_action_literal_support: Some(CodeActionLiteralSupport { code_action_kind: CodeActionKindLiteralSupport { value_set: ["", "quickfix", "refactor", "refactor.extract", "refactor.inline", "refactor.rewrite", "source", "source.organizeImports"] } }), is_preferred_support: Some(true), disabled_support: Some(true), data_support: Some(true), resolve_support: Some(CodeActionCapabilityResolveSupport { properties: ["edit"] }), honors_change_annotations: Some(true) }), code_lens: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), document_link: Some(DocumentLinkClientCapabilities { dynamic_registration: Some(true), tooltip_support: Some(true) }), color_provider: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), rename: Some(RenameClientCapabilities { dynamic_registration: Some(true), prepare_support: Some(true), prepare_support_default_behavior: Some(Identifier), honors_change_annotations: Some(true) }), publish_diagnostics: Some(PublishDiagnosticsClientCapabilities { related_information: Some(true), tag_support: Some(TagSupport { value_set: [Unnecessary, Deprecated] }), version_support: Some(false), code_description_support: Some(true), data_support: Some(true) }), folding_range: Some(FoldingRangeClientCapabilities { dynamic_registration: Some(true), range_limit: Some(5000), line_folding_only: Some(true), folding_range_kind: Some(FoldingRangeKindCapability { value_set: Some([Comment, Imports, Region]) }), folding_range: Some(FoldingRangeCapability { collapsed_text: Some(false) }) }), selection_range: Some(SelectionRangeClientCapabilities { dynamic_registration: Some(true) }), linked_editing_range: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), call_hierarchy: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), semantic_tokens: Some(SemanticTokensClientCapabilities { dynamic_registration: Some(true), requests: SemanticTokensClientCapabilitiesRequests { range: Some(true), full: Some(Delta { delta: Some(true) }) }, token_types: [SemanticTokenType("namespace"), SemanticTokenType("type"), SemanticTokenType("class"), SemanticTokenType("enum"), SemanticTokenType("interface"), SemanticTokenType("struct"), SemanticTokenType("typeParameter"), SemanticTokenType("parameter"), SemanticTokenType("variable"), SemanticTokenType("property"), SemanticTokenType("enumMember"), SemanticTokenType("event"), SemanticTokenType("function"), SemanticTokenType("method"), SemanticTokenType("macro"), SemanticTokenType("keyword"), SemanticTokenType("modifier"), SemanticTokenType("comment"), SemanticTokenType("string"), SemanticTokenType("number"), SemanticTokenType("regexp"), SemanticTokenType("operator"), SemanticTokenType("decorator")], token_modifiers: [SemanticTokenModifier("declaration"), SemanticTokenModifier("definition"), SemanticTokenModifier("readonly"), SemanticTokenModifier("static"), SemanticTokenModifier("deprecated"), SemanticTokenModifier("abstract"), SemanticTokenModifier("async"), SemanticTokenModifier("modification"), SemanticTokenModifier("documentation"), SemanticTokenModifier("defaultLibrary")], formats: [TokenFormat("relative")], overlapping_token_support: Some(false), multiline_token_support: Some(false), server_cancel_support: Some(true), augments_syntax_tokens: Some(true) }), moniker: None, type_hierarchy: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), inline_value: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), inlay_hint: Some(InlayHintClientCapabilities { dynamic_registration: Some(true), resolve_support: Some(InlayHintResolveClientCapabilities { properties: ["tooltip", "textEdits", "label.tooltip", "label.location", "label.command"] }) }), diagnostic: Some(DiagnosticClientCapabilities { dynamic_registration: Some(true), related_document_support: Some(false) }) }), window: Some(WindowClientCapabilities { work_done_progress: Some(true), show_message: Some(ShowMessageRequestClientCapabilities { message_action_item: Some(MessageActionItemCapabilities { additional_properties_support: Some(true) }) }), show_document: Some(ShowDocumentClientCapabilities { support: true }) }), general: Some(GeneralClientCapabilities { regular_expressions: Some(RegularExpressionsClientCapabilities { engine: "ECMAScript", version: Some("ES2020") }), markdown: Some(MarkdownClientCapabilities { parser: "marked", version: Some("1.1.0"), allowed_tags: None }), stale_request_support: Some(StaleRequestSupportClientCapabilities { cancel: true, retry_on_content_modified: ["textDocument/semanticTokens/full", "textDocument/semanticTokens/range", "textDocument/semanticTokens/full/delta"] }), position_encodings: Some([PositionEncodingKind("utf-16")]) }), experimental: None }, client_info=ClientInfo { name: "Visual Studio Code", version: Some("1.98.2") }, workspace_folders=[WorkspaceFolder { uri: Url { scheme: "file", cannot_be_a_base: false, username: "", password: None, host: None, port: None, path: "/home/evil/Repos/wiki", query: None, fragment: None }, name: "wiki" }]}
  ├─ INFO pgt_lsp::server Starting Language Server...
┌─┘
└─┐pgt_lsp::server::initialized{}
  ├─ INFO pgt_lsp::server Attempting to load the configuration from 'postgrestools.jsonc' file
  └─┐pgt_fs::fs::os::OsFileSystem::open_with_options{path="/home/evil/Repos/wiki/backend/postgrestools.jsonc", options=OpenOptions { read: true, write: false, truncate: false, create: false, create_new: false }}
  ┌─┘
  └─┐pgt_fs::fs::os::OsFile::read_to_string{}
  ┌─┘
  ├─ INFO pgt_lsp::session Configuration loaded successfully from disk.
  ├─ INFO pgt_lsp::session Update workspace settings.
  ├─ INFO pgt_workspace::workspace::server Updating settings in workspace
  ├─ INFO pgt_workspace::workspace::server Updated settings in workspace
  ├─ WARN sqlx_postgres::options::pgpass Failed to open `.pgpass` file: Os { code: 2, kind: NotFound, message: "No such file or directory" }, path=/home/evil/.pgpass
  ├─ INFO pgt_workspace::workspace::server Updated Db connection settings
└─┐pgt_lsp::handlers::text_document::did_open{params=DidOpenTextDocumentParams { text_document: TextDocumentItem { uri: Url { scheme: "file", cannot_be_a_base: false, username: "", password: None, host: None, port: None, path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", query: None, fragment: None }, language_id: "sql", version: 1, text: "\n------------- Meta -------------\n\n-- name: GetValueFromMetaKVStore :one\nSELECT value FROM meta_kv\nWHERE key = $1;\n\n-- name: SetValueToMetaKVStore :exec\nINSERT INTO meta_kv (key, value)\nVALUES ($1, $2)\nON CONFLICT (key) DO UPDATE\nSET value = excluded.value;\n" } }}
  ├─ INFO pgt_workspace::workspace::server Opening file: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }
  ├─ INFO pgt_workspace::workspace::server::pg_query adding diagnostics
  ├─ INFO pgt_workspace::workspace::server::pg_query adding diagnostics
  ├─ INFO pgt_workspace::workspace::server Pulled 2 diagnostic(s)
┌─┘
  ├─ INFO pgt_lsp::session Unregister capabilities "workspace/didChangeConfiguration, workspace/didChangeWatchedFiles"
  ├─ INFO pgt_lsp::session Register capabilities "workspace/didChangeConfiguration, workspace/didChangeWatchedFiles"
  ├─ INFO pgt_workspace::workspace::server Pulled 2 diagnostic(s)
┌─┘
└─┐pgt_lsp::server::did_change_configuration{}
  └─┐pgt_fs::fs::os::OsFileSystem::open_with_options{path="/home/evil/Repos/wiki/backend/postgrestools.jsonc", options=OpenOptions { read: true, write: false, truncate: false, create: false, create_new: false }}
  ┌─┘
  └─┐pgt_fs::fs::os::OsFile::read_to_string{}
  ┌─┘
  ├─ INFO pgt_lsp::session Configuration loaded successfully from disk.
  ├─ INFO pgt_lsp::session Update workspace settings.
  ├─ INFO pgt_workspace::workspace::server Updating settings in workspace
  ├─ INFO pgt_workspace::workspace::server Updated settings in workspace
  ├─ WARN sqlx_postgres::options::pgpass Failed to open `.pgpass` file: Os { code: 2, kind: NotFound, message: "No such file or directory" }, path=/home/evil/.pgpass
  ├─ INFO pgt_workspace::workspace::server Updated Db connection settings
  ├─ INFO pgt_lsp::session Unregister capabilities "workspace/didChangeConfiguration, workspace/didChangeWatchedFiles"
  ├─ INFO pgt_lsp::session Register capabilities "workspace/didChangeConfiguration, workspace/didChangeWatchedFiles"
  ├─ INFO pgt_workspace::workspace::server Pulled 2 diagnostic(s)
┌─┘
└─┐pgt_lsp::handlers::text_document::did_change{params=DidChangeTextDocumentParams { text_document: VersionedTextDocumentIdentifier { uri: Url { scheme: "file", cannot_be_a_base: false, username: "", password: None, host: None, port: None, path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", query: None, fragment: None }, version: 2 }, content_changes: [TextDocumentContentChangeEvent { range: Some(Range { start: Position { line: 12, character: 0 }, end: Position { line: 12, character: 0 } }), range_length: Some(0), text: "\n" }] }}
  ├─ INFO pgt_workspace::workspace::server Changing file: ChangeFileParams { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, version: 2, changes: [ChangeParams { range: Some(258..258), text: "\n" }] }
  ├─ DEBUG pgt_workspace::workspace::server Deleting statement: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 2 }
  ├─ DEBUG pgt_workspace::workspace::server Adding statement: AddedStatement { stmt: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 3 }, text: "UPDATE\nSET value = excluded.value;" }
  ├─ INFO pgt_workspace::workspace::server::pg_query adding diagnostics
  ├─ INFO pgt_workspace::workspace::server Pulled 2 diagnostic(s)
┌─┘
└─┐pgt_lsp::handlers::text_document::did_change{params=DidChangeTextDocumentParams { text_document: VersionedTextDocumentIdentifier { uri: Url { scheme: "file", cannot_be_a_base: false, username: "", password: None, host: None, port: None, path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", query: None, fragment: None }, version: 3 }, content_changes: [TextDocumentContentChangeEvent { range: Some(Range { start: Position { line: 13, character: 0 }, end: Position { line: 13, character: 0 } }), range_length: Some(0), text: "a" }] }}
  ├─ INFO pgt_workspace::workspace::server Changing file: ChangeFileParams { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, version: 3, changes: [ChangeParams { range: Some(259..259), text: "a" }] }
  ├─ DEBUG pgt_workspace::workspace::server Deleting statement: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 3 }
  ├─ DEBUG pgt_workspace::workspace::server Adding statement: AddedStatement { stmt: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 4 }, text: "UPDATE\nSET value = excluded.value;" }
  ├─ INFO pgt_workspace::workspace::server::pg_query adding diagnostics
  ├─ DEBUG pgt_workspace::workspace::server Adding statement: AddedStatement { stmt: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 5 }, text: "a" }
  ├─ INFO pgt_workspace::workspace::server::pg_query adding diagnostics
  ├─ INFO pgt_workspace::workspace::server Pulled 3 diagnostic(s)
┌─┘
└─┐pgt_workspace::workspace::server::get_completions{params=GetCompletionsParams { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, position: 260 }}
  ├─ DEBUG pgt_workspace::workspace::server Getting completions for file PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false } at position 260
  ├─ DEBUG pgt_workspace::workspace::server Found the document. Looking for statement in file PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false } at position: 260
┌─┘
└─┐pgt_lsp::handlers::text_document::did_change{params=DidChangeTextDocumentParams { text_document: VersionedTextDocumentIdentifier { uri: Url { scheme: "file", cannot_be_a_base: false, username: "", password: None, host: None, port: None, path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", query: None, fragment: None }, version: 4 }, content_changes: [TextDocumentContentChangeEvent { range: Some(Range { start: Position { line: 13, character: 1 }, end: Position { line: 13, character: 1 } }), range_length: Some(0), text: "s" }] }}
  ├─ INFO pgt_workspace::workspace::server Changing file: ChangeFileParams { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, version: 4, changes: [ChangeParams { range: Some(260..260), text: "s" }] }
  ├─ DEBUG pgt_workspace::workspace::server Modifying statement: ModifiedStatement { old_stmt: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 5 }, old_stmt_text: "a", new_stmt: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 6 }, new_stmt_text: "as", change_range: 1..1, change_text: "s" }
  ├─ INFO pgt_workspace::workspace::server::pg_query adding diagnostics
  ├─ INFO pgt_workspace::workspace::server Pulled 3 diagnostic(s)
└─┐pgt_lsp::handlers::text_document::did_change{params=DidChangeTextDocumentParams { text_document: VersionedTextDocumentIdentifier { uri: Url { scheme: "file", cannot_be_a_base: false, username: "", password: None, host: None, port: None, path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", query: None, fragment: None }, version: 5 }, content_changes: [TextDocumentContentChangeEvent { range: Some(Range { start: Position { line: 13, character: 2 }, end: Position { line: 13, character: 2 } }), range_length: Some(0), text: "d" }] }}
  ├─ INFO pgt_workspace::workspace::server Changing file: ChangeFileParams { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, version: 5, changes: [ChangeParams { range: Some(261..261), text: "d" }] }
  ├─ DEBUG pgt_workspace::workspace::server Modifying statement: ModifiedStatement { old_stmt: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 6 }, old_stmt_text: "as", new_stmt: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 7 }, new_stmt_text: "asd", change_range: 2..2, change_text: "d" }
  ├─ INFO pgt_workspace::workspace::server::pg_query adding diagnostics
  ├─ INFO pgt_workspace::workspace::server Pulled 3 diagnostic(s)
└─┐pgt_lsp::handlers::text_document::did_change{params=DidChangeTextDocumentParams { text_document: VersionedTextDocumentIdentifier { uri: Url { scheme: "file", cannot_be_a_base: false, username: "", password: None, host: None, port: None, path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", query: None, fragment: None }, version: 6 }, content_changes: [TextDocumentContentChangeEvent { range: Some(Range { start: Position { line: 13, character: 3 }, end: Position { line: 13, character: 3 } }), range_length: Some(0), text: "a" }] }}
  ├─ INFO pgt_workspace::workspace::server Changing file: ChangeFileParams { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, version: 6, changes: [ChangeParams { range: Some(262..262), text: "a" }] }
  ├─ DEBUG pgt_workspace::workspace::server Modifying statement: ModifiedStatement { old_stmt: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 7 }, old_stmt_text: "asd", new_stmt: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 8 }, new_stmt_text: "asda", change_range: 3..3, change_text: "a" }
  ├─ INFO pgt_workspace::workspace::server::pg_query adding diagnostics
  ├─ INFO pgt_workspace::workspace::server Pulled 3 diagnostic(s)
└─┐pgt_lsp::handlers::text_document::did_change{params=DidChangeTextDocumentParams { text_document: VersionedTextDocumentIdentifier { uri: Url { scheme: "file", cannot_be_a_base: false, username: "", password: None, host: None, port: None, path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", query: None, fragment: None }, version: 7 }, content_changes: [TextDocumentContentChangeEvent { range: Some(Range { start: Position { line: 13, character: 4 }, end: Position { line: 13, character: 4 } }), range_length: Some(0), text: "s" }] }}
  ├─ INFO pgt_workspace::workspace::server Changing file: ChangeFileParams { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, version: 7, changes: [ChangeParams { range: Some(263..263), text: "s" }] }
  ├─ DEBUG pgt_workspace::workspace::server Modifying statement: ModifiedStatement { old_stmt: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 8 }, old_stmt_text: "asda", new_stmt: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 9 }, new_stmt_text: "asdas", change_range: 4..4, change_text: "s" }
  ├─ INFO pgt_workspace::workspace::server::pg_query adding diagnostics
  ├─ INFO pgt_workspace::workspace::server Pulled 3 diagnostic(s)
┌─┘
┌─┘
┌─┘
┌─┘
└─┐pgt_lsp::handlers::text_document::did_change{params=DidChangeTextDocumentParams { text_document: VersionedTextDocumentIdentifier { uri: Url { scheme: "file", cannot_be_a_base: false, username: "", password: None, host: None, port: None, path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", query: None, fragment: None }, version: 8 }, content_changes: [TextDocumentContentChangeEvent { range: Some(Range { start: Position { line: 13, character: 5 }, end: Position { line: 13, character: 5 } }), range_length: Some(0), text: "d" }] }}
  ├─ INFO pgt_workspace::workspace::server Changing file: ChangeFileParams { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, version: 8, changes: [ChangeParams { range: Some(264..264), text: "d" }] }
  ├─ DEBUG pgt_workspace::workspace::server Modifying statement: ModifiedStatement { old_stmt: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 9 }, old_stmt_text: "asdas", new_stmt: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 10 }, new_stmt_text: "asdasd", change_range: 5..5, change_text: "d" }
  ├─ INFO pgt_workspace::workspace::server::pg_query adding diagnostics
  ├─ INFO pgt_workspace::workspace::server Pulled 3 diagnostic(s)
┌─┘
└─┐pgt_lsp::handlers::text_document::did_change{params=DidChangeTextDocumentParams { text_document: VersionedTextDocumentIdentifier { uri: Url { scheme: "file", cannot_be_a_base: false, username: "", password: None, host: None, port: None, path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", query: None, fragment: None }, version: 9 }, content_changes: [TextDocumentContentChangeEvent { range: Some(Range { start: Position { line: 13, character: 6 }, end: Position { line: 13, character: 6 } }), range_length: Some(0), text: "s" }] }}
  ├─ INFO pgt_workspace::workspace::server Changing file: ChangeFileParams { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, version: 9, changes: [ChangeParams { range: Some(265..265), text: "s" }] }
  ├─ DEBUG pgt_workspace::workspace::server Modifying statement: ModifiedStatement { old_stmt: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 10 }, old_stmt_text: "asdasd", new_stmt: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 11 }, new_stmt_text: "asdasds", change_range: 6..6, change_text: "s" }
  ├─ INFO pgt_workspace::workspace::server::pg_query adding diagnostics
  ├─ INFO pgt_workspace::workspace::server Pulled 3 diagnostic(s)
└─┐pgt_lsp::handlers::text_document::did_change{params=DidChangeTextDocumentParams { text_document: VersionedTextDocumentIdentifier { uri: Url { scheme: "file", cannot_be_a_base: false, username: "", password: None, host: None, port: None, path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", query: None, fragment: None }, version: 10 }, content_changes: [TextDocumentContentChangeEvent { range: Some(Range { start: Position { line: 13, character: 7 }, end: Position { line: 13, character: 7 } }), range_length: Some(0), text: "a" }] }}
  ├─ INFO pgt_workspace::workspace::server Changing file: ChangeFileParams { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, version: 10, changes: [ChangeParams { range: Some(266..266), text: "a" }] }
  ├─ DEBUG pgt_workspace::workspace::server Modifying statement: ModifiedStatement { old_stmt: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 11 }, old_stmt_text: "asdasds", new_stmt: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 12 }, new_stmt_text: "asdasdsa", change_range: 7..7, change_text: "a" }
  ├─ INFO pgt_workspace::workspace::server::pg_query adding diagnostics
  ├─ INFO pgt_workspace::workspace::server Pulled 3 diagnostic(s)
└─┐pgt_lsp::handlers::text_document::did_change{params=DidChangeTextDocumentParams { text_document: VersionedTextDocumentIdentifier { uri: Url { scheme: "file", cannot_be_a_base: false, username: "", password: None, host: None, port: None, path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", query: None, fragment: None }, version: 11 }, content_changes: [TextDocumentContentChangeEvent { range: Some(Range { start: Position { line: 13, character: 8 }, end: Position { line: 13, character: 8 } }), range_length: Some(0), text: "d" }] }}
  ├─ INFO pgt_workspace::workspace::server Changing file: ChangeFileParams { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, version: 11, changes: [ChangeParams { range: Some(267..267), text: "d" }] }
  ├─ DEBUG pgt_workspace::workspace::server Modifying statement: ModifiedStatement { old_stmt: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 12 }, old_stmt_text: "asdasdsa", new_stmt: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 13 }, new_stmt_text: "asdasdsad", change_range: 8..8, change_text: "d" }
  ├─ INFO pgt_workspace::workspace::server::pg_query adding diagnostics
  ├─ INFO pgt_workspace::workspace::server Pulled 3 diagnostic(s)
┌─┘
┌─┘
┌─┘
└─┐pgt_lsp::handlers::text_document::did_change{params=DidChangeTextDocumentParams { text_document: VersionedTextDocumentIdentifier { uri: Url { scheme: "file", cannot_be_a_base: false, username: "", password: None, host: None, port: None, path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", query: None, fragment: None }, version: 12 }, content_changes: [TextDocumentContentChangeEvent { range: Some(Range { start: Position { line: 11, character: 27 }, end: Position { line: 11, character: 27 } }), range_length: Some(0), text: "\n" }] }}
  ├─ INFO pgt_workspace::workspace::server Changing file: ChangeFileParams { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, version: 12, changes: [ChangeParams { range: Some(257..257), text: "\n" }] }
  ├─ DEBUG pgt_workspace::workspace::server Modifying statement: ModifiedStatement { old_stmt: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 4 }, old_stmt_text: "UPDATE\nSET value = excluded.value;", new_stmt: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 14 }, new_stmt_text: "UPDATE\nSET value = excluded.value;", change_range: 34..34, change_text: "\n" }
  ├─ INFO pgt_workspace::workspace::server::pg_query adding diagnostics
  ├─ INFO pgt_workspace::workspace::server Pulled 3 diagnostic(s)
┌─┘
└─┐pgt_lsp::handlers::text_document::did_change{params=DidChangeTextDocumentParams { text_document: VersionedTextDocumentIdentifier { uri: Url { scheme: "file", cannot_be_a_base: false, username: "", password: None, host: None, port: None, path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", query: None, fragment: None }, version: 13 }, content_changes: [TextDocumentContentChangeEvent { range: Some(Range { start: Position { line: 12, character: 0 }, end: Position { line: 12, character: 0 } }), range_length: Some(0), text: "a" }] }}
  ├─ INFO pgt_workspace::workspace::server Changing file: ChangeFileParams { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, version: 13, changes: [ChangeParams { range: Some(258..258), text: "a" }] }
  ├─ DEBUG pgt_workspace::workspace::server Deleting statement: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 13 }
  ├─ DEBUG pgt_workspace::workspace::server Deleting statement: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 14 }
  ├─ DEBUG pgt_workspace::workspace::server Adding statement: AddedStatement { stmt: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 15 }, text: "UPDATE\nSET value = excluded.value;" }
  ├─ INFO pgt_workspace::workspace::server::pg_query adding diagnostics
  ├─ DEBUG pgt_workspace::workspace::server Adding statement: AddedStatement { stmt: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 16 }, text: "a" }
  ├─ INFO pgt_workspace::workspace::server::pg_query adding diagnostics
  ├─ DEBUG pgt_workspace::workspace::server Adding statement: AddedStatement { stmt: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 17 }, text: "asdasdsad" }
  ├─ INFO pgt_workspace::workspace::server::pg_query adding diagnostics
  ├─ INFO pgt_workspace::workspace::server Pulled 4 diagnostic(s)
└─┐pgt_workspace::workspace::server::get_completions{params=GetCompletionsParams { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, position: 259 }}
  ├─ DEBUG pgt_workspace::workspace::server Getting completions for file PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false } at position 259
  ├─ DEBUG pgt_workspace::workspace::server Found the document. Looking for statement in file PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false } at position: 259
┌─┘
└─┐pgt_lsp::handlers::text_document::did_change{params=DidChangeTextDocumentParams { text_document: VersionedTextDocumentIdentifier { uri: Url { scheme: "file", cannot_be_a_base: false, username: "", password: None, host: None, port: None, path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", query: None, fragment: None }, version: 14 }, content_changes: [TextDocumentContentChangeEvent { range: Some(Range { start: Position { line: 12, character: 1 }, end: Position { line: 12, character: 1 } }), range_length: Some(0), text: "s" }] }}
  ├─ INFO pgt_workspace::workspace::server Changing file: ChangeFileParams { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, version: 14, changes: [ChangeParams { range: Some(259..259), text: "s" }] }
  ├─ DEBUG pgt_workspace::workspace::server Modifying statement: ModifiedStatement { old_stmt: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 16 }, old_stmt_text: "a", new_stmt: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 18 }, new_stmt_text: "as", change_range: 1..1, change_text: "s" }
  ├─ INFO pgt_workspace::workspace::server::pg_query adding diagnostics
  ├─ INFO pgt_workspace::workspace::server Pulled 4 diagnostic(s)
└─┐pgt_lsp::handlers::text_document::did_change{params=DidChangeTextDocumentParams { text_document: VersionedTextDocumentIdentifier { uri: Url { scheme: "file", cannot_be_a_base: false, username: "", password: None, host: None, port: None, path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", query: None, fragment: None }, version: 15 }, content_changes: [TextDocumentContentChangeEvent { range: Some(Range { start: Position { line: 12, character: 2 }, end: Position { line: 12, character: 2 } }), range_length: Some(0), text: "d" }] }}
  ├─ INFO pgt_workspace::workspace::server Changing file: ChangeFileParams { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, version: 15, changes: [ChangeParams { range: Some(260..260), text: "d" }] }
  ├─ DEBUG pgt_workspace::workspace::server Modifying statement: ModifiedStatement { old_stmt: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 18 }, old_stmt_text: "as", new_stmt: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 19 }, new_stmt_text: "asd", change_range: 2..2, change_text: "d" }
  ├─ INFO pgt_workspace::workspace::server::pg_query adding diagnostics
  ├─ INFO pgt_workspace::workspace::server Pulled 4 diagnostic(s)
┌─┘
┌─┘
┌─┘
└─┐pgt_lsp::handlers::text_document::did_change{params=DidChangeTextDocumentParams { text_document: VersionedTextDocumentIdentifier { uri: Url { scheme: "file", cannot_be_a_base: false, username: "", password: None, host: None, port: None, path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", query: None, fragment: None }, version: 16 }, content_changes: [TextDocumentContentChangeEvent { range: Some(Range { start: Position { line: 14, character: 9 }, end: Position { line: 14, character: 9 } }), range_length: Some(0), text: "a" }] }}
  ├─ INFO pgt_workspace::workspace::server Changing file: ChangeFileParams { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, version: 16, changes: [ChangeParams { range: Some(272..272), text: "a" }] }
  ├─ DEBUG pgt_workspace::workspace::server Modifying statement: ModifiedStatement { old_stmt: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 17 }, old_stmt_text: "asdasdsad", new_stmt: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 20 }, new_stmt_text: "asdasdsada", change_range: 9..9, change_text: "a" }
  ├─ INFO pgt_workspace::workspace::server::pg_query adding diagnostics
  ├─ INFO pgt_workspace::workspace::server Pulled 4 diagnostic(s)
┌─┘
└─┐pgt_workspace::workspace::server::get_completions{params=GetCompletionsParams { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, position: 273 }}
  ├─ DEBUG pgt_workspace::workspace::server Getting completions for file PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false } at position 273
  ├─ DEBUG pgt_workspace::workspace::server Found the document. Looking for statement in file PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false } at position: 273
┌─┘
└─┐pgt_lsp::handlers::text_document::did_change{params=DidChangeTextDocumentParams { text_document: VersionedTextDocumentIdentifier { uri: Url { scheme: "file", cannot_be_a_base: false, username: "", password: None, host: None, port: None, path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", query: None, fragment: None }, version: 17 }, content_changes: [TextDocumentContentChangeEvent { range: Some(Range { start: Position { line: 14, character: 10 }, end: Position { line: 14, character: 10 } }), range_length: Some(0), text: "s" }] }}
  ├─ INFO pgt_workspace::workspace::server Changing file: ChangeFileParams { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, version: 17, changes: [ChangeParams { range: Some(273..273), text: "s" }] }
  ├─ DEBUG pgt_workspace::workspace::server Modifying statement: ModifiedStatement { old_stmt: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 20 }, old_stmt_text: "asdasdsada", new_stmt: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 21 }, new_stmt_text: "asdasdsadas", change_range: 10..10, change_text: "s" }
  ├─ INFO pgt_workspace::workspace::server::pg_query adding diagnostics
  ├─ INFO pgt_workspace::workspace::server Pulled 4 diagnostic(s)
└─┐pgt_lsp::handlers::text_document::did_change{params=DidChangeTextDocumentParams { text_document: VersionedTextDocumentIdentifier { uri: Url { scheme: "file", cannot_be_a_base: false, username: "", password: None, host: None, port: None, path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", query: None, fragment: None }, version: 18 }, content_changes: [TextDocumentContentChangeEvent { range: Some(Range { start: Position { line: 14, character: 11 }, end: Position { line: 14, character: 11 } }), range_length: Some(0), text: "d" }] }}
  ├─ INFO pgt_workspace::workspace::server Changing file: ChangeFileParams { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, version: 18, changes: [ChangeParams { range: Some(274..274), text: "d" }] }
  ├─ DEBUG pgt_workspace::workspace::server Modifying statement: ModifiedStatement { old_stmt: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 21 }, old_stmt_text: "asdasdsadas", new_stmt: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 22 }, new_stmt_text: "asdasdsadasd", change_range: 11..11, change_text: "d" }
  ├─ INFO pgt_workspace::workspace::server::pg_query adding diagnostics
  ├─ INFO pgt_workspace::workspace::server Pulled 4 diagnostic(s)
┌─┘
┌─┘
└─┐pgt_lsp::handlers::text_document::did_change{params=DidChangeTextDocumentParams { text_document: VersionedTextDocumentIdentifier { uri: Url { scheme: "file", cannot_be_a_base: false, username: "", password: None, host: None, port: None, path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", query: None, fragment: None }, version: 19 }, content_changes: [TextDocumentContentChangeEvent { range: Some(Range { start: Position { line: 13, character: 0 }, end: Position { line: 14, character: 12 } }), range_length: Some(13), text: "" }] }}
  ├─ INFO pgt_workspace::workspace::server Changing file: ChangeFileParams { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, version: 19, changes: [ChangeParams { range: Some(262..275), text: "" }] }
  ├─ DEBUG pgt_workspace::workspace::server Deleting statement: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 22 }
  ├─ DEBUG pgt_workspace::workspace::server Deleting statement: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 19 }
  ├─ DEBUG pgt_workspace::workspace::server Adding statement: AddedStatement { stmt: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 23 }, text: "asd" }
  ├─ INFO pgt_workspace::workspace::server::pg_query adding diagnostics
  ├─ INFO pgt_workspace::workspace::server Pulled 3 diagnostic(s)
┌─┘
└─┐pgt_lsp::handlers::text_document::did_change{params=DidChangeTextDocumentParams { text_document: VersionedTextDocumentIdentifier { uri: Url { scheme: "file", cannot_be_a_base: false, username: "", password: None, host: None, port: None, path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", query: None, fragment: None }, version: 20 }, content_changes: [TextDocumentContentChangeEvent { range: Some(Range { start: Position { line: 12, character: 3 }, end: Position { line: 13, character: 0 } }), range_length: Some(1), text: "" }] }}
  ├─ INFO pgt_workspace::workspace::server Changing file: ChangeFileParams { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, version: 20, changes: [ChangeParams { range: Some(261..262), text: "" }] }
  ├─ DEBUG pgt_workspace::workspace::server Modifying statement: ModifiedStatement { old_stmt: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 23 }, old_stmt_text: "asd", new_stmt: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 24 }, new_stmt_text: "as", change_range: 3..4, change_text: "" }
  ├─ INFO pgt_workspace::workspace::server::pg_query adding diagnostics
  ├─ INFO pgt_workspace::workspace::server Pulled 3 diagnostic(s)
┌─┘
└─┐pgt_lsp::handlers::text_document::did_change{params=DidChangeTextDocumentParams { text_document: VersionedTextDocumentIdentifier { uri: Url { scheme: "file", cannot_be_a_base: false, username: "", password: None, host: None, port: None, path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", query: None, fragment: None }, version: 21 }, content_changes: [TextDocumentContentChangeEvent { range: Some(Range { start: Position { line: 12, character: 2 }, end: Position { line: 12, character: 3 } }), range_length: Some(1), text: "" }] }}
  ├─ INFO pgt_workspace::workspace::server Changing file: ChangeFileParams { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, version: 21, changes: [ChangeParams { range: Some(260..261), text: "" }] }
  ├─ DEBUG pgt_workspace::workspace::server Modifying statement: ModifiedStatement { old_stmt: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 24 }, old_stmt_text: "as", new_stmt: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 25 }, new_stmt_text: "a", change_range: 2..3, change_text: "" }
  ├─ INFO pgt_workspace::workspace::server::pg_query adding diagnostics
  ├─ INFO pgt_workspace::workspace::server Pulled 3 diagnostic(s)
└─┐pgt_lsp::handlers::text_document::did_change{params=DidChangeTextDocumentParams { text_document: VersionedTextDocumentIdentifier { uri: Url { scheme: "file", cannot_be_a_base: false, username: "", password: None, host: None, port: None, path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", query: None, fragment: None }, version: 22 }, content_changes: [TextDocumentContentChangeEvent { range: Some(Range { start: Position { line: 12, character: 1 }, end: Position { line: 12, character: 2 } }), range_length: Some(1), text: "" }] }}
  ├─ INFO pgt_workspace::workspace::server Changing file: ChangeFileParams { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, version: 22, changes: [ChangeParams { range: Some(259..260), text: "" }] }
  ├─ DEBUG pgt_workspace::workspace::server Deleting statement: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 25 }
  ├─ DEBUG pgt_workspace::workspace::server Deleting statement: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 15 }
  ├─ DEBUG pgt_workspace::workspace::server Adding statement: AddedStatement { stmt: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 26 }, text: "UPDATE\nSET value = excluded.value;" }
  ├─ INFO pgt_workspace::workspace::server::pg_query adding diagnostics
  ├─ INFO pgt_workspace::workspace::server Pulled 2 diagnostic(s)
└─┐pgt_lsp::handlers::text_document::did_change{params=DidChangeTextDocumentParams { text_document: VersionedTextDocumentIdentifier { uri: Url { scheme: "file", cannot_be_a_base: false, username: "", password: None, host: None, port: None, path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", query: None, fragment: None }, version: 23 }, content_changes: [TextDocumentContentChangeEvent { range: Some(Range { start: Position { line: 12, character: 0 }, end: Position { line: 12, character: 1 } }), range_length: Some(1), text: "" }] }}
  ├─ INFO pgt_workspace::workspace::server Changing file: ChangeFileParams { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, version: 23, changes: [ChangeParams { range: Some(258..259), text: "" }] }
  ├─ DEBUG pgt_workspace::workspace::server Deleting statement: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 26 }
  ├─ DEBUG pgt_workspace::workspace::server Adding statement: AddedStatement { stmt: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 27 }, text: "UPDATE\nSET value = excluded.value;" }
  ├─ INFO pgt_workspace::workspace::server::pg_query adding diagnostics
  ├─ INFO pgt_workspace::workspace::server Pulled 2 diagnostic(s)
└─┐pgt_lsp::handlers::text_document::did_change{params=DidChangeTextDocumentParams { text_document: VersionedTextDocumentIdentifier { uri: Url { scheme: "file", cannot_be_a_base: false, username: "", password: None, host: None, port: None, path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", query: None, fragment: None }, version: 24 }, content_changes: [TextDocumentContentChangeEvent { range: Some(Range { start: Position { line: 11, character: 27 }, end: Position { line: 12, character: 0 } }), range_length: Some(1), text: "" }] }}
  ├─ INFO pgt_workspace::workspace::server Changing file: ChangeFileParams { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, version: 24, changes: [ChangeParams { range: Some(257..258), text: "" }] }
  ├─ DEBUG pgt_workspace::workspace::server Modifying statement: ModifiedStatement { old_stmt: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 27 }, old_stmt_text: "UPDATE\nSET value = excluded.value;", new_stmt: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 28 }, new_stmt_text: "UPDATE\nSET value = excluded.value", change_range: 34..35, change_text: "" }
  ├─ INFO pgt_workspace::workspace::server::pg_query adding diagnostics
  ├─ INFO pgt_workspace::workspace::server Pulled 2 diagnostic(s)
┌─┘
┌─┘
┌─┘
┌─┘
└─┐pgt_lsp::handlers::text_document::did_change{params=DidChangeTextDocumentParams { text_document: VersionedTextDocumentIdentifier { uri: Url { scheme: "file", cannot_be_a_base: false, username: "", password: None, host: None, port: None, path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", query: None, fragment: None }, version: 25 }, content_changes: [TextDocumentContentChangeEvent { range: Some(Range { start: Position { line: 11, character: 27 }, end: Position { line: 11, character: 27 } }), range_length: Some(0), text: "\n" }] }}
  ├─ INFO pgt_workspace::workspace::server Changing file: ChangeFileParams { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, version: 25, changes: [ChangeParams { range: Some(257..257), text: "\n" }] }
  ├─ DEBUG pgt_workspace::workspace::server Deleting statement: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 28 }
  ├─ DEBUG pgt_workspace::workspace::server Adding statement: AddedStatement { stmt: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 29 }, text: "UPDATE\nSET value = excluded.value;" }
  ├─ INFO pgt_workspace::workspace::server::pg_query adding diagnostics
  ├─ INFO pgt_workspace::workspace::server Pulled 2 diagnostic(s)
┌─┘
└─┐pgt_lsp::handlers::text_document::did_change{params=DidChangeTextDocumentParams { text_document: VersionedTextDocumentIdentifier { uri: Url { scheme: "file", cannot_be_a_base: false, username: "", password: None, host: None, port: None, path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", query: None, fragment: None }, version: 26 }, content_changes: [TextDocumentContentChangeEvent { range: Some(Range { start: Position { line: 12, character: 0 }, end: Position { line: 12, character: 0 } }), range_length: Some(0), text: "\n" }] }}
  ├─ INFO pgt_workspace::workspace::server Changing file: ChangeFileParams { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, version: 26, changes: [ChangeParams { range: Some(258..258), text: "\n" }] }
  ├─ DEBUG pgt_workspace::workspace::server Deleting statement: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 29 }
  ├─ DEBUG pgt_workspace::workspace::server Adding statement: AddedStatement { stmt: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 30 }, text: "UPDATE\nSET value = excluded.value;" }
  ├─ INFO pgt_workspace::workspace::server::pg_query adding diagnostics
  ├─ INFO pgt_workspace::workspace::server Pulled 2 diagnostic(s)
┌─┘
└─┐pgt_lsp::handlers::text_document::did_change{params=DidChangeTextDocumentParams { text_document: VersionedTextDocumentIdentifier { uri: Url { scheme: "file", cannot_be_a_base: false, username: "", password: None, host: None, port: None, path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", query: None, fragment: None }, version: 27 }, content_changes: [TextDocumentContentChangeEvent { range: Some(Range { start: Position { line: 13, character: 0 }, end: Position { line: 13, character: 0 } }), range_length: Some(0), text: "\n" }] }}
  ├─ INFO pgt_workspace::workspace::server Changing file: ChangeFileParams { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, version: 27, changes: [ChangeParams { range: Some(259..259), text: "\n" }] }
  ├─ DEBUG pgt_workspace::workspace::server Deleting statement: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 30 }
  ├─ DEBUG pgt_workspace::workspace::server Adding statement: AddedStatement { stmt: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 31 }, text: "UPDATE\nSET value = excluded.value;" }
  ├─ INFO pgt_workspace::workspace::server::pg_query adding diagnostics
  ├─ INFO pgt_workspace::workspace::server Pulled 2 diagnostic(s)
└─┐pgt_lsp::handlers::text_document::did_change{params=DidChangeTextDocumentParams { text_document: VersionedTextDocumentIdentifier { uri: Url { scheme: "file", cannot_be_a_base: false, username: "", password: None, host: None, port: None, path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", query: None, fragment: None }, version: 28 }, content_changes: [TextDocumentContentChangeEvent { range: Some(Range { start: Position { line: 14, character: 0 }, end: Position { line: 14, character: 0 } }), range_length: Some(0), text: "a" }] }}
  ├─ INFO pgt_workspace::workspace::server Changing file: ChangeFileParams { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, version: 28, changes: [ChangeParams { range: Some(260..260), text: "a" }] }
  ├─ DEBUG pgt_workspace::workspace::server Deleting statement: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 31 }
  ├─ DEBUG pgt_workspace::workspace::server Adding statement: AddedStatement { stmt: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 32 }, text: "UPDATE\nSET value = excluded.value;" }
  ├─ INFO pgt_workspace::workspace::server::pg_query adding diagnostics
  ├─ DEBUG pgt_workspace::workspace::server Adding statement: AddedStatement { stmt: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 33 }, text: "a" }
  ├─ INFO pgt_workspace::workspace::server::pg_query adding diagnostics
  ├─ INFO pgt_workspace::workspace::server Pulled 3 diagnostic(s)
└─┐pgt_workspace::workspace::server::get_completions{params=GetCompletionsParams { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, position: 261 }}
  ├─ DEBUG pgt_workspace::workspace::server Getting completions for file PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false } at position 261
  ├─ DEBUG pgt_workspace::workspace::server Found the document. Looking for statement in file PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false } at position: 261
┌─┘
└─┐pgt_lsp::handlers::text_document::did_change{params=DidChangeTextDocumentParams { text_document: VersionedTextDocumentIdentifier { uri: Url { scheme: "file", cannot_be_a_base: false, username: "", password: None, host: None, port: None, path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", query: None, fragment: None }, version: 29 }, content_changes: [TextDocumentContentChangeEvent { range: Some(Range { start: Position { line: 14, character: 1 }, end: Position { line: 14, character: 1 } }), range_length: Some(0), text: "s" }] }}
  ├─ INFO pgt_workspace::workspace::server Changing file: ChangeFileParams { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, version: 29, changes: [ChangeParams { range: Some(261..261), text: "s" }] }
  ├─ DEBUG pgt_workspace::workspace::server Modifying statement: ModifiedStatement { old_stmt: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 33 }, old_stmt_text: "a", new_stmt: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 34 }, new_stmt_text: "as", change_range: 1..1, change_text: "s" }
  ├─ INFO pgt_workspace::workspace::server::pg_query adding diagnostics
  ├─ INFO pgt_workspace::workspace::server Pulled 3 diagnostic(s)
└─┐pgt_lsp::handlers::text_document::did_change{params=DidChangeTextDocumentParams { text_document: VersionedTextDocumentIdentifier { uri: Url { scheme: "file", cannot_be_a_base: false, username: "", password: None, host: None, port: None, path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", query: None, fragment: None }, version: 30 }, content_changes: [TextDocumentContentChangeEvent { range: Some(Range { start: Position { line: 14, character: 2 }, end: Position { line: 14, character: 2 } }), range_length: Some(0), text: "d" }] }}
  ├─ INFO pgt_workspace::workspace::server Changing file: ChangeFileParams { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, version: 30, changes: [ChangeParams { range: Some(262..262), text: "d" }] }
  ├─ DEBUG pgt_workspace::workspace::server Modifying statement: ModifiedStatement { old_stmt: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 34 }, old_stmt_text: "as", new_stmt: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 35 }, new_stmt_text: "asd", change_range: 2..2, change_text: "d" }
  ├─ INFO pgt_workspace::workspace::server::pg_query adding diagnostics
  ├─ INFO pgt_workspace::workspace::server Pulled 3 diagnostic(s)
┌─┘
┌─┘
┌─┘
┌─┘
└─┐pgt_lsp::handlers::text_document::did_change{params=DidChangeTextDocumentParams { text_document: VersionedTextDocumentIdentifier { uri: Url { scheme: "file", cannot_be_a_base: false, username: "", password: None, host: None, port: None, path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", query: None, fragment: None }, version: 31 }, content_changes: [TextDocumentContentChangeEvent { range: Some(Range { start: Position { line: 14, character: 3 }, end: Position { line: 14, character: 3 } }), range_length: Some(0), text: "s" }] }}
  ├─ INFO pgt_workspace::workspace::server Changing file: ChangeFileParams { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, version: 31, changes: [ChangeParams { range: Some(263..263), text: "s" }] }
  ├─ DEBUG pgt_workspace::workspace::server Modifying statement: ModifiedStatement { old_stmt: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 35 }, old_stmt_text: "asd", new_stmt: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 36 }, new_stmt_text: "asds", change_range: 3..3, change_text: "s" }
  ├─ INFO pgt_workspace::workspace::server::pg_query adding diagnostics
  ├─ INFO pgt_workspace::workspace::server Pulled 3 diagnostic(s)
┌─┘
└─┐pgt_lsp::handlers::text_document::did_change{params=DidChangeTextDocumentParams { text_document: VersionedTextDocumentIdentifier { uri: Url { scheme: "file", cannot_be_a_base: false, username: "", password: None, host: None, port: None, path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", query: None, fragment: None }, version: 32 }, content_changes: [TextDocumentContentChangeEvent { range: Some(Range { start: Position { line: 14, character: 4 }, end: Position { line: 14, character: 4 } }), range_length: Some(0), text: "a" }] }}
  ├─ INFO pgt_workspace::workspace::server Changing file: ChangeFileParams { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, version: 32, changes: [ChangeParams { range: Some(264..264), text: "a" }] }
  ├─ DEBUG pgt_workspace::workspace::server Modifying statement: ModifiedStatement { old_stmt: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 36 }, old_stmt_text: "asds", new_stmt: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 37 }, new_stmt_text: "asdsa", change_range: 4..4, change_text: "a" }
  ├─ INFO pgt_workspace::workspace::server::pg_query adding diagnostics
  ├─ INFO pgt_workspace::workspace::server Pulled 3 diagnostic(s)
└─┐pgt_lsp::handlers::text_document::did_change{params=DidChangeTextDocumentParams { text_document: VersionedTextDocumentIdentifier { uri: Url { scheme: "file", cannot_be_a_base: false, username: "", password: None, host: None, port: None, path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", query: None, fragment: None }, version: 33 }, content_changes: [TextDocumentContentChangeEvent { range: Some(Range { start: Position { line: 14, character: 5 }, end: Position { line: 14, character: 5 } }), range_length: Some(0), text: "d" }] }}
  ├─ INFO pgt_workspace::workspace::server Changing file: ChangeFileParams { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, version: 33, changes: [ChangeParams { range: Some(265..265), text: "d" }] }
  ├─ DEBUG pgt_workspace::workspace::server Modifying statement: ModifiedStatement { old_stmt: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 37 }, old_stmt_text: "asdsa", new_stmt: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 38 }, new_stmt_text: "asdsad", change_range: 5..5, change_text: "d" }
  ├─ INFO pgt_workspace::workspace::server::pg_query adding diagnostics
  ├─ INFO pgt_workspace::workspace::server Pulled 3 diagnostic(s)
└─┐pgt_lsp::handlers::text_document::did_change{params=DidChangeTextDocumentParams { text_document: VersionedTextDocumentIdentifier { uri: Url { scheme: "file", cannot_be_a_base: false, username: "", password: None, host: None, port: None, path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", query: None, fragment: None }, version: 34 }, content_changes: [TextDocumentContentChangeEvent { range: Some(Range { start: Position { line: 14, character: 6 }, end: Position { line: 14, character: 6 } }), range_length: Some(0), text: "s" }] }}
  ├─ INFO pgt_workspace::workspace::server Changing file: ChangeFileParams { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, version: 34, changes: [ChangeParams { range: Some(266..266), text: "s" }] }
  ├─ DEBUG pgt_workspace::workspace::server Modifying statement: ModifiedStatement { old_stmt: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 38 }, old_stmt_text: "asdsad", new_stmt: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 39 }, new_stmt_text: "asdsads", change_range: 6..6, change_text: "s" }
  ├─ INFO pgt_workspace::workspace::server::pg_query adding diagnostics
  ├─ INFO pgt_workspace::workspace::server Pulled 3 diagnostic(s)
└─┐pgt_lsp::handlers::text_document::did_change{params=DidChangeTextDocumentParams { text_document: VersionedTextDocumentIdentifier { uri: Url { scheme: "file", cannot_be_a_base: false, username: "", password: None, host: None, port: None, path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", query: None, fragment: None }, version: 35 }, content_changes: [TextDocumentContentChangeEvent { range: Some(Range { start: Position { line: 14, character: 7 }, end: Position { line: 14, character: 7 } }), range_length: Some(0), text: "a" }] }}
  ├─ INFO pgt_workspace::workspace::server Changing file: ChangeFileParams { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, version: 35, changes: [ChangeParams { range: Some(267..267), text: "a" }] }
  ├─ DEBUG pgt_workspace::workspace::server Modifying statement: ModifiedStatement { old_stmt: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 39 }, old_stmt_text: "asdsads", new_stmt: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 40 }, new_stmt_text: "asdsadsa", change_range: 7..7, change_text: "a" }
  ├─ INFO pgt_workspace::workspace::server::pg_query adding diagnostics
  ├─ INFO pgt_workspace::workspace::server Pulled 3 diagnostic(s)
┌─┘
┌─┘
┌─┘
┌─┘
└─┐pgt_lsp::handlers::text_document::did_change{params=DidChangeTextDocumentParams { text_document: VersionedTextDocumentIdentifier { uri: Url { scheme: "file", cannot_be_a_base: false, username: "", password: None, host: None, port: None, path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", query: None, fragment: None }, version: 36 }, content_changes: [TextDocumentContentChangeEvent { range: Some(Range { start: Position { line: 14, character: 8 }, end: Position { line: 14, character: 8 } }), range_length: Some(0), text: "d" }] }}
  ├─ INFO pgt_workspace::workspace::server Changing file: ChangeFileParams { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, version: 36, changes: [ChangeParams { range: Some(268..268), text: "d" }] }
  ├─ DEBUG pgt_workspace::workspace::server Modifying statement: ModifiedStatement { old_stmt: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 40 }, old_stmt_text: "asdsadsa", new_stmt: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 41 }, new_stmt_text: "asdsadsad", change_range: 8..8, change_text: "d" }
  ├─ INFO pgt_workspace::workspace::server::pg_query adding diagnostics
  ├─ INFO pgt_workspace::workspace::server Pulled 3 diagnostic(s)
┌─┘
└─┐pgt_lsp::handlers::text_document::did_change{params=DidChangeTextDocumentParams { text_document: VersionedTextDocumentIdentifier { uri: Url { scheme: "file", cannot_be_a_base: false, username: "", password: None, host: None, port: None, path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", query: None, fragment: None }, version: 37 }, content_changes: [TextDocumentContentChangeEvent { range: Some(Range { start: Position { line: 14, character: 9 }, end: Position { line: 14, character: 9 } }), range_length: Some(0), text: "\n" }] }}
  ├─ INFO pgt_workspace::workspace::server Changing file: ChangeFileParams { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, version: 37, changes: [ChangeParams { range: Some(269..269), text: "\n" }] }
  ├─ DEBUG pgt_workspace::workspace::server Modifying statement: ModifiedStatement { old_stmt: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 41 }, old_stmt_text: "asdsadsad", new_stmt: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 42 }, new_stmt_text: "asdsadsad", change_range: 9..9, change_text: "\n" }
  ├─ INFO pgt_workspace::workspace::server::pg_query adding diagnostics
  ├─ INFO pgt_workspace::workspace::server Pulled 3 diagnostic(s)
└─┐pgt_lsp::handlers::text_document::did_change{params=DidChangeTextDocumentParams { text_document: VersionedTextDocumentIdentifier { uri: Url { scheme: "file", cannot_be_a_base: false, username: "", password: None, host: None, port: None, path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", query: None, fragment: None }, version: 38 }, content_changes: [TextDocumentContentChangeEvent { range: Some(Range { start: Position { line: 15, character: 0 }, end: Position { line: 15, character: 0 } }), range_length: Some(0), text: "\n" }] }}
  ├─ INFO pgt_workspace::workspace::server Changing file: ChangeFileParams { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, version: 38, changes: [ChangeParams { range: Some(270..270), text: "\n" }] }
  ├─ DEBUG pgt_workspace::workspace::server Deleting statement: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 42 }
  ├─ DEBUG pgt_workspace::workspace::server Adding statement: AddedStatement { stmt: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 43 }, text: "asdsadsad" }
  ├─ INFO pgt_workspace::workspace::server::pg_query adding diagnostics
  ├─ INFO pgt_workspace::workspace::server Pulled 3 diagnostic(s)
└─┐pgt_lsp::handlers::text_document::did_change{params=DidChangeTextDocumentParams { text_document: VersionedTextDocumentIdentifier { uri: Url { scheme: "file", cannot_be_a_base: false, username: "", password: None, host: None, port: None, path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", query: None, fragment: None }, version: 39 }, content_changes: [TextDocumentContentChangeEvent { range: Some(Range { start: Position { line: 16, character: 0 }, end: Position { line: 16, character: 0 } }), range_length: Some(0), text: "ы" }] }}
  ├─ INFO pgt_workspace::workspace::server Changing file: ChangeFileParams { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, version: 39, changes: [ChangeParams { range: Some(271..271), text: "ы" }] }
  ├─ ERROR pgt_cli::panic Encountered an unexpected error
  │ 
  │ This is a bug in Postgres Tools, not an error in your code, and we would appreciate it if you could report it along with the following information to help us fixing the issue:
  │ 
  │ Source Location: crates/pgt_workspace/src/workspace/server/change.rs:311:14
  │ Thread Name: tokio-runtime-worker
  │ Message: called `Option::unwrap()` on a `None` value
  │ 
┌─┘
┌─┘
┌─┘
┘
INFO pgt_cli::commands::daemon Received shutdown signal
┐pgt_cli::commands::daemon::Running Server{pid=71435}
├─ INFO pgt_cli::service::unix Trying to connect to socket /home/evil/.cache/pgt/pgt-socket-0.0.0
├─ INFO pgt_cli::service::unix Remove socket folder /home/evil/.cache/pgt/pgt-socket-0.0.0
├─ INFO pgt_cli::service::unix Accepted connection
├─ INFO pgt_cli::service::unix Accepted connection
└─┐pgt_lsp::server::initialize{root_uri=file:///home/evil/Repos/wiki, capabilities=ClientCapabilities { workspace: Some(WorkspaceClientCapabilities { apply_edit: Some(true), workspace_edit: Some(WorkspaceEditClientCapabilities { document_changes: Some(true), resource_operations: Some([Create, Rename, Delete]), failure_handling: Some(TextOnlyTransactional), normalizes_line_endings: Some(true), change_annotation_support: Some(ChangeAnnotationWorkspaceEditClientCapabilities { groups_on_label: Some(true) }) }), did_change_configuration: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), did_change_watched_files: Some(DidChangeWatchedFilesClientCapabilities { dynamic_registration: Some(true), relative_pattern_support: Some(true) }), symbol: Some(WorkspaceSymbolClientCapabilities { dynamic_registration: Some(true), symbol_kind: Some(SymbolKindCapability { value_set: Some([File, Module, Namespace, Package, Class, Method, Property, Field, Constructor, Enum, Interface, Function, Variable, Constant, String, Number, Boolean, Array, Object, Key, Null, EnumMember, Struct, Event, Operator, TypeParameter]) }), tag_support: Some(TagSupport { value_set: [Deprecated] }), resolve_support: Some(WorkspaceSymbolResolveSupportCapability { properties: ["location.range"] }) }), execute_command: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), workspace_folders: Some(true), configuration: Some(true), semantic_tokens: Some(SemanticTokensWorkspaceClientCapabilities { refresh_support: Some(true) }), code_lens: Some(CodeLensWorkspaceClientCapabilities { refresh_support: Some(true) }), file_operations: Some(WorkspaceFileOperationsClientCapabilities { dynamic_registration: Some(true), did_create: Some(true), will_create: Some(true), did_rename: Some(true), will_rename: Some(true), did_delete: Some(true), will_delete: Some(true) }), inline_value: Some(InlineValueWorkspaceClientCapabilities { refresh_support: Some(true) }), inlay_hint: Some(InlayHintWorkspaceClientCapabilities { refresh_support: Some(true) }), diagnostic: None }), text_document: Some(TextDocumentClientCapabilities { synchronization: Some(TextDocumentSyncClientCapabilities { dynamic_registration: Some(true), will_save: Some(true), will_save_wait_until: Some(true), did_save: Some(true) }), completion: Some(CompletionClientCapabilities { dynamic_registration: Some(true), completion_item: Some(CompletionItemCapability { snippet_support: Some(true), commit_characters_support: Some(true), documentation_format: Some([Markdown, PlainText]), deprecated_support: Some(true), preselect_support: Some(true), tag_support: Some(TagSupport { value_set: [Deprecated] }), insert_replace_support: Some(true), resolve_support: Some(CompletionItemCapabilityResolveSupport { properties: ["documentation", "detail", "additionalTextEdits"] }), insert_text_mode_support: Some(InsertTextModeSupport { value_set: [AsIs, AdjustIndentation] }), label_details_support: Some(true) }), completion_item_kind: Some(CompletionItemKindCapability { value_set: Some([Text, Method, Function, Constructor, Field, Variable, Class, Interface, Module, Property, Unit, Value, Enum, Keyword, Snippet, Color, File, Reference, Folder, EnumMember, Constant, Struct, Event, Operator, TypeParameter]) }), context_support: Some(true), insert_text_mode: Some(AdjustIndentation), completion_list: Some(CompletionListCapability { item_defaults: Some(["commitCharacters", "editRange", "insertTextFormat", "insertTextMode", "data"]) }) }), hover: Some(HoverClientCapabilities { dynamic_registration: Some(true), content_format: Some([Markdown, PlainText]) }), signature_help: Some(SignatureHelpClientCapabilities { dynamic_registration: Some(true), signature_information: Some(SignatureInformationSettings { documentation_format: Some([Markdown, PlainText]), parameter_information: Some(ParameterInformationSettings { label_offset_support: Some(true) }), active_parameter_support: Some(true) }), context_support: Some(true) }), references: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), document_highlight: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), document_symbol: Some(DocumentSymbolClientCapabilities { dynamic_registration: Some(true), symbol_kind: Some(SymbolKindCapability { value_set: Some([File, Module, Namespace, Package, Class, Method, Property, Field, Constructor, Enum, Interface, Function, Variable, Constant, String, Number, Boolean, Array, Object, Key, Null, EnumMember, Struct, Event, Operator, TypeParameter]) }), hierarchical_document_symbol_support: Some(true), tag_support: Some(TagSupport { value_set: [Deprecated] }) }), formatting: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), range_formatting: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), on_type_formatting: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), declaration: Some(GotoCapability { dynamic_registration: Some(true), link_support: Some(true) }), definition: Some(GotoCapability { dynamic_registration: Some(true), link_support: Some(true) }), type_definition: Some(GotoCapability { dynamic_registration: Some(true), link_support: Some(true) }), implementation: Some(GotoCapability { dynamic_registration: Some(true), link_support: Some(true) }), code_action: Some(CodeActionClientCapabilities { dynamic_registration: Some(true), code_action_literal_support: Some(CodeActionLiteralSupport { code_action_kind: CodeActionKindLiteralSupport { value_set: ["", "quickfix", "refactor", "refactor.extract", "refactor.inline", "refactor.rewrite", "source", "source.organizeImports"] } }), is_preferred_support: Some(true), disabled_support: Some(true), data_support: Some(true), resolve_support: Some(CodeActionCapabilityResolveSupport { properties: ["edit"] }), honors_change_annotations: Some(true) }), code_lens: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), document_link: Some(DocumentLinkClientCapabilities { dynamic_registration: Some(true), tooltip_support: Some(true) }), color_provider: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), rename: Some(RenameClientCapabilities { dynamic_registration: Some(true), prepare_support: Some(true), prepare_support_default_behavior: Some(Identifier), honors_change_annotations: Some(true) }), publish_diagnostics: Some(PublishDiagnosticsClientCapabilities { related_information: Some(true), tag_support: Some(TagSupport { value_set: [Unnecessary, Deprecated] }), version_support: Some(false), code_description_support: Some(true), data_support: Some(true) }), folding_range: Some(FoldingRangeClientCapabilities { dynamic_registration: Some(true), range_limit: Some(5000), line_folding_only: Some(true), folding_range_kind: Some(FoldingRangeKindCapability { value_set: Some([Comment, Imports, Region]) }), folding_range: Some(FoldingRangeCapability { collapsed_text: Some(false) }) }), selection_range: Some(SelectionRangeClientCapabilities { dynamic_registration: Some(true) }), linked_editing_range: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), call_hierarchy: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), semantic_tokens: Some(SemanticTokensClientCapabilities { dynamic_registration: Some(true), requests: SemanticTokensClientCapabilitiesRequests { range: Some(true), full: Some(Delta { delta: Some(true) }) }, token_types: [SemanticTokenType("namespace"), SemanticTokenType("type"), SemanticTokenType("class"), SemanticTokenType("enum"), SemanticTokenType("interface"), SemanticTokenType("struct"), SemanticTokenType("typeParameter"), SemanticTokenType("parameter"), SemanticTokenType("variable"), SemanticTokenType("property"), SemanticTokenType("enumMember"), SemanticTokenType("event"), SemanticTokenType("function"), SemanticTokenType("method"), SemanticTokenType("macro"), SemanticTokenType("keyword"), SemanticTokenType("modifier"), SemanticTokenType("comment"), SemanticTokenType("string"), SemanticTokenType("number"), SemanticTokenType("regexp"), SemanticTokenType("operator"), SemanticTokenType("decorator")], token_modifiers: [SemanticTokenModifier("declaration"), SemanticTokenModifier("definition"), SemanticTokenModifier("readonly"), SemanticTokenModifier("static"), SemanticTokenModifier("deprecated"), SemanticTokenModifier("abstract"), SemanticTokenModifier("async"), SemanticTokenModifier("modification"), SemanticTokenModifier("documentation"), SemanticTokenModifier("defaultLibrary")], formats: [TokenFormat("relative")], overlapping_token_support: Some(false), multiline_token_support: Some(false), server_cancel_support: Some(true), augments_syntax_tokens: Some(true) }), moniker: None, type_hierarchy: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), inline_value: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), inlay_hint: Some(InlayHintClientCapabilities { dynamic_registration: Some(true), resolve_support: Some(InlayHintResolveClientCapabilities { properties: ["tooltip", "textEdits", "label.tooltip", "label.location", "label.command"] }) }), diagnostic: Some(DiagnosticClientCapabilities { dynamic_registration: Some(true), related_document_support: Some(false) }) }), window: Some(WindowClientCapabilities { work_done_progress: Some(true), show_message: Some(ShowMessageRequestClientCapabilities { message_action_item: Some(MessageActionItemCapabilities { additional_properties_support: Some(true) }) }), show_document: Some(ShowDocumentClientCapabilities { support: true }) }), general: Some(GeneralClientCapabilities { regular_expressions: Some(RegularExpressionsClientCapabilities { engine: "ECMAScript", version: Some("ES2020") }), markdown: Some(MarkdownClientCapabilities { parser: "marked", version: Some("1.1.0"), allowed_tags: None }), stale_request_support: Some(StaleRequestSupportClientCapabilities { cancel: true, retry_on_content_modified: ["textDocument/semanticTokens/full", "textDocument/semanticTokens/range", "textDocument/semanticTokens/full/delta"] }), position_encodings: Some([PositionEncodingKind("utf-16")]) }), experimental: None }, client_info=ClientInfo { name: "Visual Studio Code", version: Some("1.98.2") }, workspace_folders=[WorkspaceFolder { uri: Url { scheme: "file", cannot_be_a_base: false, username: "", password: None, host: None, port: None, path: "/home/evil/Repos/wiki", query: None, fragment: None }, name: "wiki" }]}
  ├─ INFO pgt_lsp::server Starting Language Server...
┌─┘
└─┐pgt_lsp::server::initialized{}
  ├─ INFO pgt_lsp::server Attempting to load the configuration from 'postgrestools.jsonc' file
  └─┐pgt_fs::fs::os::OsFileSystem::open_with_options{path="/home/evil/Repos/wiki/backend/postgrestools.jsonc", options=OpenOptions { read: true, write: false, truncate: false, create: false, create_new: false }}
  ┌─┘
  └─┐pgt_fs::fs::os::OsFile::read_to_string{}
  ┌─┘
  ├─ INFO pgt_lsp::session Configuration loaded successfully from disk.
  ├─ INFO pgt_lsp::session Update workspace settings.
  ├─ INFO pgt_workspace::workspace::server Updating settings in workspace
  ├─ INFO pgt_workspace::workspace::server Updated settings in workspace
  ├─ WARN sqlx_postgres::options::pgpass Failed to open `.pgpass` file: Os { code: 2, kind: NotFound, message: "No such file or directory" }, path=/home/evil/.pgpass
  ├─ INFO pgt_workspace::workspace::server Updated Db connection settings
└─┐pgt_lsp::handlers::text_document::did_open{params=DidOpenTextDocumentParams { text_document: TextDocumentItem { uri: Url { scheme: "file", cannot_be_a_base: false, username: "", password: None, host: None, port: None, path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", query: None, fragment: None }, language_id: "sql", version: 53, text: "\n------------- Meta -------------\n\n-- name: GetValueFromMetaKVStore :one\nSELECT value FROM meta_kv\nWHERE key = $1;\n\n-- name: SetValueToMetaKVStore :exec\nINSERT INTO meta_kv (key, value)\nVALUES ($1, $2)\nON CONFLICT (key) DO UPDATE\nSET value = excluded.value;\n\n\nasdsadsad\n\nыывфыв khgk\n\nы\n" } }}
  ├─ INFO pgt_workspace::workspace::server Opening file: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }
  ├─ INFO pgt_workspace::workspace::server::pg_query adding diagnostics
  ├─ INFO pgt_workspace::workspace::server::pg_query adding diagnostics
  ├─ INFO pgt_workspace::workspace::server::pg_query adding diagnostics
  ├─ INFO pgt_workspace::workspace::server::pg_query adding diagnostics
  ├─ INFO pgt_workspace::workspace::server::pg_query adding diagnostics
  ├─ INFO pgt_workspace::workspace::server Pulled 5 diagnostic(s)
┌─┘
  ├─ INFO pgt_lsp::session Unregister capabilities "workspace/didChangeConfiguration, workspace/didChangeWatchedFiles"
  ├─ INFO pgt_lsp::session Register capabilities "workspace/didChangeConfiguration, workspace/didChangeWatchedFiles"
  ├─ INFO pgt_workspace::workspace::server Pulled 5 diagnostic(s)
┌─┘
└─┐pgt_lsp::handlers::text_document::did_change{params=DidChangeTextDocumentParams { text_document: VersionedTextDocumentIdentifier { uri: Url { scheme: "file", cannot_be_a_base: false, username: "", password: None, host: None, port: None, path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", query: None, fragment: None }, version: 54 }, content_changes: [TextDocumentContentChangeEvent { range: Some(Range { start: Position { line: 16, character: 11 }, end: Position { line: 16, character: 11 } }), range_length: Some(0), text: "\n" }] }}
  ├─ INFO pgt_workspace::workspace::server Changing file: ChangeFileParams { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, version: 54, changes: [ChangeParams { range: Some(288..288), text: "\n" }] }
  ├─ DEBUG pgt_workspace::workspace::server Modifying statement: ModifiedStatement { old_stmt: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 4 }, old_stmt_text: "ыывфыв khgk", new_stmt: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 6 }, new_stmt_text: "ыывфыв khgk", change_range: 17..17, change_text: "\n" }
  ├─ INFO pgt_workspace::workspace::server::pg_query adding diagnostics
  ├─ INFO pgt_workspace::workspace::server Pulled 5 diagnostic(s)
┌─┘
└─┐pgt_lsp::handlers::text_document::did_change{params=DidChangeTextDocumentParams { text_document: VersionedTextDocumentIdentifier { uri: Url { scheme: "file", cannot_be_a_base: false, username: "", password: None, host: None, port: None, path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", query: None, fragment: None }, version: 55 }, content_changes: [TextDocumentContentChangeEvent { range: Some(Range { start: Position { line: 17, character: 0 }, end: Position { line: 17, character: 0 } }), range_length: Some(0), text: "a" }] }}
  ├─ INFO pgt_workspace::workspace::server Changing file: ChangeFileParams { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, version: 55, changes: [ChangeParams { range: Some(289..289), text: "a" }] }
  ├─ DEBUG pgt_workspace::workspace::server Deleting statement: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 5 }
  ├─ DEBUG pgt_workspace::workspace::server Deleting statement: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 6 }
  ├─ DEBUG pgt_workspace::workspace::server Adding statement: AddedStatement { stmt: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 7 }, text: "ыывфыв khgk\na" }
  ├─ INFO pgt_workspace::workspace::server::pg_query adding diagnostics
  ├─ DEBUG pgt_workspace::workspace::server Adding statement: AddedStatement { stmt: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 8 }, text: "ы" }
  ├─ INFO pgt_workspace::workspace::server::pg_query adding diagnostics
  ├─ INFO pgt_workspace::workspace::server Pulled 5 diagnostic(s)
┌─┘
└─┐pgt_workspace::workspace::server::get_completions{params=GetCompletionsParams { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, position: 290 }}
  ├─ DEBUG pgt_workspace::workspace::server Getting completions for file PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false } at position 290
  ├─ DEBUG pgt_workspace::workspace::server Found the document. Looking for statement in file PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false } at position: 290
┌─┘
└─┐pgt_lsp::handlers::text_document::did_change{params=DidChangeTextDocumentParams { text_document: VersionedTextDocumentIdentifier { uri: Url { scheme: "file", cannot_be_a_base: false, username: "", password: None, host: None, port: None, path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", query: None, fragment: None }, version: 56 }, content_changes: [TextDocumentContentChangeEvent { range: Some(Range { start: Position { line: 17, character: 1 }, end: Position { line: 17, character: 1 } }), range_length: Some(0), text: "s" }] }}
  ├─ INFO pgt_workspace::workspace::server Changing file: ChangeFileParams { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, version: 56, changes: [ChangeParams { range: Some(290..290), text: "s" }] }
  ├─ DEBUG pgt_workspace::workspace::server Modifying statement: ModifiedStatement { old_stmt: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 7 }, old_stmt_text: "ыывфыв khgk\na", new_stmt: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 9 }, new_stmt_text: "ыывфыв khgk\nas", change_range: 19..19, change_text: "s" }
  ├─ INFO pgt_workspace::workspace::server::pg_query adding diagnostics
  ├─ INFO pgt_workspace::workspace::server Pulled 5 diagnostic(s)
└─┐pgt_lsp::handlers::text_document::did_change{params=DidChangeTextDocumentParams { text_document: VersionedTextDocumentIdentifier { uri: Url { scheme: "file", cannot_be_a_base: false, username: "", password: None, host: None, port: None, path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", query: None, fragment: None }, version: 57 }, content_changes: [TextDocumentContentChangeEvent { range: Some(Range { start: Position { line: 17, character: 2 }, end: Position { line: 17, character: 2 } }), range_length: Some(0), text: "d" }] }}
  ├─ INFO pgt_workspace::workspace::server Changing file: ChangeFileParams { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, version: 57, changes: [ChangeParams { range: Some(291..291), text: "d" }] }
  ├─ DEBUG pgt_workspace::workspace::server Modifying statement: ModifiedStatement { old_stmt: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 9 }, old_stmt_text: "ыывфыв khgk\nas", new_stmt: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 10 }, new_stmt_text: "ыывфыв khgk\nasd", change_range: 20..20, change_text: "d" }
  ├─ INFO pgt_workspace::workspace::server::pg_query adding diagnostics
  ├─ INFO pgt_workspace::workspace::server Pulled 5 diagnostic(s)
┌─┘
┌─┘
└─┐pgt_lsp::handlers::text_document::did_change{params=DidChangeTextDocumentParams { text_document: VersionedTextDocumentIdentifier { uri: Url { scheme: "file", cannot_be_a_base: false, username: "", password: None, host: None, port: None, path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", query: None, fragment: None }, version: 58 }, content_changes: [TextDocumentContentChangeEvent { range: Some(Range { start: Position { line: 17, character: 3 }, end: Position { line: 17, character: 3 } }), range_length: Some(0), text: "ы" }] }}
  ├─ INFO pgt_workspace::workspace::server Changing file: ChangeFileParams { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, version: 58, changes: [ChangeParams { range: Some(292..292), text: "ы" }] }
  ├─ ERROR pgt_cli::panic Encountered an unexpected error
  │ 
  │ This is a bug in Postgres Tools, not an error in your code, and we would appreciate it if you could report it along with the following information to help us fixing the issue:
  │ 
  │ Source Location: crates/pgt_workspace/src/workspace/server/change.rs:255:18
  │ Thread Name: tokio-runtime-worker
  │ Message: called `Option::unwrap()` on a `None` value
  │ 
┌─┘
INFO pgt_cli::commands::daemon Received shutdown signal
┘
┐pgt_cli::commands::daemon::Running Server{pid=71895}
├─ INFO pgt_cli::service::unix Trying to connect to socket /home/evil/.cache/pgt/pgt-socket-0.0.0
├─ INFO pgt_cli::service::unix Remove socket folder /home/evil/.cache/pgt/pgt-socket-0.0.0
├─ INFO pgt_cli::service::unix Accepted connection
├─ INFO pgt_cli::service::unix Accepted connection
└─┐pgt_lsp::server::initialize{root_uri=file:///home/evil/Repos/wiki, capabilities=ClientCapabilities { workspace: Some(WorkspaceClientCapabilities { apply_edit: Some(true), workspace_edit: Some(WorkspaceEditClientCapabilities { document_changes: Some(true), resource_operations: Some([Create, Rename, Delete]), failure_handling: Some(TextOnlyTransactional), normalizes_line_endings: Some(true), change_annotation_support: Some(ChangeAnnotationWorkspaceEditClientCapabilities { groups_on_label: Some(true) }) }), did_change_configuration: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), did_change_watched_files: Some(DidChangeWatchedFilesClientCapabilities { dynamic_registration: Some(true), relative_pattern_support: Some(true) }), symbol: Some(WorkspaceSymbolClientCapabilities { dynamic_registration: Some(true), symbol_kind: Some(SymbolKindCapability { value_set: Some([File, Module, Namespace, Package, Class, Method, Property, Field, Constructor, Enum, Interface, Function, Variable, Constant, String, Number, Boolean, Array, Object, Key, Null, EnumMember, Struct, Event, Operator, TypeParameter]) }), tag_support: Some(TagSupport { value_set: [Deprecated] }), resolve_support: Some(WorkspaceSymbolResolveSupportCapability { properties: ["location.range"] }) }), execute_command: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), workspace_folders: Some(true), configuration: Some(true), semantic_tokens: Some(SemanticTokensWorkspaceClientCapabilities { refresh_support: Some(true) }), code_lens: Some(CodeLensWorkspaceClientCapabilities { refresh_support: Some(true) }), file_operations: Some(WorkspaceFileOperationsClientCapabilities { dynamic_registration: Some(true), did_create: Some(true), will_create: Some(true), did_rename: Some(true), will_rename: Some(true), did_delete: Some(true), will_delete: Some(true) }), inline_value: Some(InlineValueWorkspaceClientCapabilities { refresh_support: Some(true) }), inlay_hint: Some(InlayHintWorkspaceClientCapabilities { refresh_support: Some(true) }), diagnostic: None }), text_document: Some(TextDocumentClientCapabilities { synchronization: Some(TextDocumentSyncClientCapabilities { dynamic_registration: Some(true), will_save: Some(true), will_save_wait_until: Some(true), did_save: Some(true) }), completion: Some(CompletionClientCapabilities { dynamic_registration: Some(true), completion_item: Some(CompletionItemCapability { snippet_support: Some(true), commit_characters_support: Some(true), documentation_format: Some([Markdown, PlainText]), deprecated_support: Some(true), preselect_support: Some(true), tag_support: Some(TagSupport { value_set: [Deprecated] }), insert_replace_support: Some(true), resolve_support: Some(CompletionItemCapabilityResolveSupport { properties: ["documentation", "detail", "additionalTextEdits"] }), insert_text_mode_support: Some(InsertTextModeSupport { value_set: [AsIs, AdjustIndentation] }), label_details_support: Some(true) }), completion_item_kind: Some(CompletionItemKindCapability { value_set: Some([Text, Method, Function, Constructor, Field, Variable, Class, Interface, Module, Property, Unit, Value, Enum, Keyword, Snippet, Color, File, Reference, Folder, EnumMember, Constant, Struct, Event, Operator, TypeParameter]) }), context_support: Some(true), insert_text_mode: Some(AdjustIndentation), completion_list: Some(CompletionListCapability { item_defaults: Some(["commitCharacters", "editRange", "insertTextFormat", "insertTextMode", "data"]) }) }), hover: Some(HoverClientCapabilities { dynamic_registration: Some(true), content_format: Some([Markdown, PlainText]) }), signature_help: Some(SignatureHelpClientCapabilities { dynamic_registration: Some(true), signature_information: Some(SignatureInformationSettings { documentation_format: Some([Markdown, PlainText]), parameter_information: Some(ParameterInformationSettings { label_offset_support: Some(true) }), active_parameter_support: Some(true) }), context_support: Some(true) }), references: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), document_highlight: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), document_symbol: Some(DocumentSymbolClientCapabilities { dynamic_registration: Some(true), symbol_kind: Some(SymbolKindCapability { value_set: Some([File, Module, Namespace, Package, Class, Method, Property, Field, Constructor, Enum, Interface, Function, Variable, Constant, String, Number, Boolean, Array, Object, Key, Null, EnumMember, Struct, Event, Operator, TypeParameter]) }), hierarchical_document_symbol_support: Some(true), tag_support: Some(TagSupport { value_set: [Deprecated] }) }), formatting: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), range_formatting: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), on_type_formatting: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), declaration: Some(GotoCapability { dynamic_registration: Some(true), link_support: Some(true) }), definition: Some(GotoCapability { dynamic_registration: Some(true), link_support: Some(true) }), type_definition: Some(GotoCapability { dynamic_registration: Some(true), link_support: Some(true) }), implementation: Some(GotoCapability { dynamic_registration: Some(true), link_support: Some(true) }), code_action: Some(CodeActionClientCapabilities { dynamic_registration: Some(true), code_action_literal_support: Some(CodeActionLiteralSupport { code_action_kind: CodeActionKindLiteralSupport { value_set: ["", "quickfix", "refactor", "refactor.extract", "refactor.inline", "refactor.rewrite", "source", "source.organizeImports"] } }), is_preferred_support: Some(true), disabled_support: Some(true), data_support: Some(true), resolve_support: Some(CodeActionCapabilityResolveSupport { properties: ["edit"] }), honors_change_annotations: Some(true) }), code_lens: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), document_link: Some(DocumentLinkClientCapabilities { dynamic_registration: Some(true), tooltip_support: Some(true) }), color_provider: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), rename: Some(RenameClientCapabilities { dynamic_registration: Some(true), prepare_support: Some(true), prepare_support_default_behavior: Some(Identifier), honors_change_annotations: Some(true) }), publish_diagnostics: Some(PublishDiagnosticsClientCapabilities { related_information: Some(true), tag_support: Some(TagSupport { value_set: [Unnecessary, Deprecated] }), version_support: Some(false), code_description_support: Some(true), data_support: Some(true) }), folding_range: Some(FoldingRangeClientCapabilities { dynamic_registration: Some(true), range_limit: Some(5000), line_folding_only: Some(true), folding_range_kind: Some(FoldingRangeKindCapability { value_set: Some([Comment, Imports, Region]) }), folding_range: Some(FoldingRangeCapability { collapsed_text: Some(false) }) }), selection_range: Some(SelectionRangeClientCapabilities { dynamic_registration: Some(true) }), linked_editing_range: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), call_hierarchy: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), semantic_tokens: Some(SemanticTokensClientCapabilities { dynamic_registration: Some(true), requests: SemanticTokensClientCapabilitiesRequests { range: Some(true), full: Some(Delta { delta: Some(true) }) }, token_types: [SemanticTokenType("namespace"), SemanticTokenType("type"), SemanticTokenType("class"), SemanticTokenType("enum"), SemanticTokenType("interface"), SemanticTokenType("struct"), SemanticTokenType("typeParameter"), SemanticTokenType("parameter"), SemanticTokenType("variable"), SemanticTokenType("property"), SemanticTokenType("enumMember"), SemanticTokenType("event"), SemanticTokenType("function"), SemanticTokenType("method"), SemanticTokenType("macro"), SemanticTokenType("keyword"), SemanticTokenType("modifier"), SemanticTokenType("comment"), SemanticTokenType("string"), SemanticTokenType("number"), SemanticTokenType("regexp"), SemanticTokenType("operator"), SemanticTokenType("decorator")], token_modifiers: [SemanticTokenModifier("declaration"), SemanticTokenModifier("definition"), SemanticTokenModifier("readonly"), SemanticTokenModifier("static"), SemanticTokenModifier("deprecated"), SemanticTokenModifier("abstract"), SemanticTokenModifier("async"), SemanticTokenModifier("modification"), SemanticTokenModifier("documentation"), SemanticTokenModifier("defaultLibrary")], formats: [TokenFormat("relative")], overlapping_token_support: Some(false), multiline_token_support: Some(false), server_cancel_support: Some(true), augments_syntax_tokens: Some(true) }), moniker: None, type_hierarchy: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), inline_value: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), inlay_hint: Some(InlayHintClientCapabilities { dynamic_registration: Some(true), resolve_support: Some(InlayHintResolveClientCapabilities { properties: ["tooltip", "textEdits", "label.tooltip", "label.location", "label.command"] }) }), diagnostic: Some(DiagnosticClientCapabilities { dynamic_registration: Some(true), related_document_support: Some(false) }) }), window: Some(WindowClientCapabilities { work_done_progress: Some(true), show_message: Some(ShowMessageRequestClientCapabilities { message_action_item: Some(MessageActionItemCapabilities { additional_properties_support: Some(true) }) }), show_document: Some(ShowDocumentClientCapabilities { support: true }) }), general: Some(GeneralClientCapabilities { regular_expressions: Some(RegularExpressionsClientCapabilities { engine: "ECMAScript", version: Some("ES2020") }), markdown: Some(MarkdownClientCapabilities { parser: "marked", version: Some("1.1.0"), allowed_tags: None }), stale_request_support: Some(StaleRequestSupportClientCapabilities { cancel: true, retry_on_content_modified: ["textDocument/semanticTokens/full", "textDocument/semanticTokens/range", "textDocument/semanticTokens/full/delta"] }), position_encodings: Some([PositionEncodingKind("utf-16")]) }), experimental: None }, client_info=ClientInfo { name: "Visual Studio Code", version: Some("1.98.2") }, workspace_folders=[WorkspaceFolder { uri: Url { scheme: "file", cannot_be_a_base: false, username: "", password: None, host: None, port: None, path: "/home/evil/Repos/wiki", query: None, fragment: None }, name: "wiki" }]}
  ├─ INFO pgt_lsp::server Starting Language Server...
┌─┘
└─┐pgt_lsp::server::initialized{}
  ├─ INFO pgt_lsp::server Attempting to load the configuration from 'postgrestools.jsonc' file
  └─┐pgt_fs::fs::os::OsFileSystem::open_with_options{path="/home/evil/Repos/wiki/backend/postgrestools.jsonc", options=OpenOptions { read: true, write: false, truncate: false, create: false, create_new: false }}
  ┌─┘
  └─┐pgt_fs::fs::os::OsFile::read_to_string{}
  ┌─┘
  ├─ INFO pgt_lsp::session Configuration loaded successfully from disk.
  ├─ INFO pgt_lsp::session Update workspace settings.
  ├─ INFO pgt_workspace::workspace::server Updating settings in workspace
  ├─ INFO pgt_workspace::workspace::server Updated settings in workspace
  ├─ WARN sqlx_postgres::options::pgpass Failed to open `.pgpass` file: Os { code: 2, kind: NotFound, message: "No such file or directory" }, path=/home/evil/.pgpass
  ├─ INFO pgt_workspace::workspace::server Updated Db connection settings
└─┐pgt_lsp::handlers::text_document::did_open{params=DidOpenTextDocumentParams { text_document: TextDocumentItem { uri: Url { scheme: "file", cannot_be_a_base: false, username: "", password: None, host: None, port: None, path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", query: None, fragment: None }, language_id: "sql", version: 61, text: "\n------------- Meta -------------\n\n-- name: GetValueFromMetaKVStore :one\nSELECT value FROM meta_kv\nWHERE key = $1;\n\n-- name: SetValueToMetaKVStore :exec\nINSERT INTO meta_kv (key, value)\nVALUES ($1, $2)\nON CONFLICT (key) DO UPDATE\nSET value = excluded.value;\n\n\nasdsadsad\n\nыывфыв khgk\nasdыdsf\n\nы\n" } }}
  ├─ INFO pgt_workspace::workspace::server Opening file: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }
  ├─ INFO pgt_workspace::workspace::server::pg_query adding diagnostics
  ├─ INFO pgt_workspace::workspace::server::pg_query adding diagnostics
  ├─ INFO pgt_workspace::workspace::server::pg_query adding diagnostics
  ├─ INFO pgt_workspace::workspace::server::pg_query adding diagnostics
  ├─ INFO pgt_workspace::workspace::server::pg_query adding diagnostics
  ├─ INFO pgt_workspace::workspace::server Pulled 5 diagnostic(s)
┌─┘
  ├─ INFO pgt_lsp::session Unregister capabilities "workspace/didChangeConfiguration, workspace/didChangeWatchedFiles"
  ├─ INFO pgt_lsp::session Register capabilities "workspace/didChangeConfiguration, workspace/didChangeWatchedFiles"
  ├─ INFO pgt_workspace::workspace::server Pulled 5 diagnostic(s)
┌─┘
└─┐pgt_lsp::handlers::text_document::did_change{params=DidChangeTextDocumentParams { text_document: VersionedTextDocumentIdentifier { uri: Url { scheme: "file", cannot_be_a_base: false, username: "", password: None, host: None, port: None, path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", query: None, fragment: None }, version: 62 }, content_changes: [TextDocumentContentChangeEvent { range: Some(Range { start: Position { line: 18, character: 0 }, end: Position { line: 18, character: 0 } }), range_length: Some(0), text: "ы" }] }}
  ├─ INFO pgt_workspace::workspace::server Changing file: ChangeFileParams { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, version: 62, changes: [ChangeParams { range: Some(298..298), text: "ы" }] }
  ├─ ERROR pgt_cli::panic Encountered an unexpected error
  │ 
  │ This is a bug in Postgres Tools, not an error in your code, and we would appreciate it if you could report it along with the following information to help us fixing the issue:
  │ 
  │ Source Location: crates/pgt_workspace/src/workspace/server/change.rs:311:14
  │ Thread Name: tokio-runtime-worker
  │ Message: called `Option::unwrap()` on a `None` value
  │ 
┌─┘
INFO pgt_cli::commands::daemon Received shutdown signal
┘
┐pgt_cli::commands::daemon::Running Server{pid=72000}
├─ INFO pgt_cli::service::unix Trying to connect to socket /home/evil/.cache/pgt/pgt-socket-0.0.0
├─ INFO pgt_cli::service::unix Remove socket folder /home/evil/.cache/pgt/pgt-socket-0.0.0
├─ INFO pgt_cli::service::unix Accepted connection
├─ INFO pgt_cli::service::unix Accepted connection
└─┐pgt_lsp::server::initialize{root_uri=file:///home/evil/Repos/wiki, capabilities=ClientCapabilities { workspace: Some(WorkspaceClientCapabilities { apply_edit: Some(true), workspace_edit: Some(WorkspaceEditClientCapabilities { document_changes: Some(true), resource_operations: Some([Create, Rename, Delete]), failure_handling: Some(TextOnlyTransactional), normalizes_line_endings: Some(true), change_annotation_support: Some(ChangeAnnotationWorkspaceEditClientCapabilities { groups_on_label: Some(true) }) }), did_change_configuration: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), did_change_watched_files: Some(DidChangeWatchedFilesClientCapabilities { dynamic_registration: Some(true), relative_pattern_support: Some(true) }), symbol: Some(WorkspaceSymbolClientCapabilities { dynamic_registration: Some(true), symbol_kind: Some(SymbolKindCapability { value_set: Some([File, Module, Namespace, Package, Class, Method, Property, Field, Constructor, Enum, Interface, Function, Variable, Constant, String, Number, Boolean, Array, Object, Key, Null, EnumMember, Struct, Event, Operator, TypeParameter]) }), tag_support: Some(TagSupport { value_set: [Deprecated] }), resolve_support: Some(WorkspaceSymbolResolveSupportCapability { properties: ["location.range"] }) }), execute_command: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), workspace_folders: Some(true), configuration: Some(true), semantic_tokens: Some(SemanticTokensWorkspaceClientCapabilities { refresh_support: Some(true) }), code_lens: Some(CodeLensWorkspaceClientCapabilities { refresh_support: Some(true) }), file_operations: Some(WorkspaceFileOperationsClientCapabilities { dynamic_registration: Some(true), did_create: Some(true), will_create: Some(true), did_rename: Some(true), will_rename: Some(true), did_delete: Some(true), will_delete: Some(true) }), inline_value: Some(InlineValueWorkspaceClientCapabilities { refresh_support: Some(true) }), inlay_hint: Some(InlayHintWorkspaceClientCapabilities { refresh_support: Some(true) }), diagnostic: None }), text_document: Some(TextDocumentClientCapabilities { synchronization: Some(TextDocumentSyncClientCapabilities { dynamic_registration: Some(true), will_save: Some(true), will_save_wait_until: Some(true), did_save: Some(true) }), completion: Some(CompletionClientCapabilities { dynamic_registration: Some(true), completion_item: Some(CompletionItemCapability { snippet_support: Some(true), commit_characters_support: Some(true), documentation_format: Some([Markdown, PlainText]), deprecated_support: Some(true), preselect_support: Some(true), tag_support: Some(TagSupport { value_set: [Deprecated] }), insert_replace_support: Some(true), resolve_support: Some(CompletionItemCapabilityResolveSupport { properties: ["documentation", "detail", "additionalTextEdits"] }), insert_text_mode_support: Some(InsertTextModeSupport { value_set: [AsIs, AdjustIndentation] }), label_details_support: Some(true) }), completion_item_kind: Some(CompletionItemKindCapability { value_set: Some([Text, Method, Function, Constructor, Field, Variable, Class, Interface, Module, Property, Unit, Value, Enum, Keyword, Snippet, Color, File, Reference, Folder, EnumMember, Constant, Struct, Event, Operator, TypeParameter]) }), context_support: Some(true), insert_text_mode: Some(AdjustIndentation), completion_list: Some(CompletionListCapability { item_defaults: Some(["commitCharacters", "editRange", "insertTextFormat", "insertTextMode", "data"]) }) }), hover: Some(HoverClientCapabilities { dynamic_registration: Some(true), content_format: Some([Markdown, PlainText]) }), signature_help: Some(SignatureHelpClientCapabilities { dynamic_registration: Some(true), signature_information: Some(SignatureInformationSettings { documentation_format: Some([Markdown, PlainText]), parameter_information: Some(ParameterInformationSettings { label_offset_support: Some(true) }), active_parameter_support: Some(true) }), context_support: Some(true) }), references: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), document_highlight: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), document_symbol: Some(DocumentSymbolClientCapabilities { dynamic_registration: Some(true), symbol_kind: Some(SymbolKindCapability { value_set: Some([File, Module, Namespace, Package, Class, Method, Property, Field, Constructor, Enum, Interface, Function, Variable, Constant, String, Number, Boolean, Array, Object, Key, Null, EnumMember, Struct, Event, Operator, TypeParameter]) }), hierarchical_document_symbol_support: Some(true), tag_support: Some(TagSupport { value_set: [Deprecated] }) }), formatting: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), range_formatting: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), on_type_formatting: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), declaration: Some(GotoCapability { dynamic_registration: Some(true), link_support: Some(true) }), definition: Some(GotoCapability { dynamic_registration: Some(true), link_support: Some(true) }), type_definition: Some(GotoCapability { dynamic_registration: Some(true), link_support: Some(true) }), implementation: Some(GotoCapability { dynamic_registration: Some(true), link_support: Some(true) }), code_action: Some(CodeActionClientCapabilities { dynamic_registration: Some(true), code_action_literal_support: Some(CodeActionLiteralSupport { code_action_kind: CodeActionKindLiteralSupport { value_set: ["", "quickfix", "refactor", "refactor.extract", "refactor.inline", "refactor.rewrite", "source", "source.organizeImports"] } }), is_preferred_support: Some(true), disabled_support: Some(true), data_support: Some(true), resolve_support: Some(CodeActionCapabilityResolveSupport { properties: ["edit"] }), honors_change_annotations: Some(true) }), code_lens: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), document_link: Some(DocumentLinkClientCapabilities { dynamic_registration: Some(true), tooltip_support: Some(true) }), color_provider: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), rename: Some(RenameClientCapabilities { dynamic_registration: Some(true), prepare_support: Some(true), prepare_support_default_behavior: Some(Identifier), honors_change_annotations: Some(true) }), publish_diagnostics: Some(PublishDiagnosticsClientCapabilities { related_information: Some(true), tag_support: Some(TagSupport { value_set: [Unnecessary, Deprecated] }), version_support: Some(false), code_description_support: Some(true), data_support: Some(true) }), folding_range: Some(FoldingRangeClientCapabilities { dynamic_registration: Some(true), range_limit: Some(5000), line_folding_only: Some(true), folding_range_kind: Some(FoldingRangeKindCapability { value_set: Some([Comment, Imports, Region]) }), folding_range: Some(FoldingRangeCapability { collapsed_text: Some(false) }) }), selection_range: Some(SelectionRangeClientCapabilities { dynamic_registration: Some(true) }), linked_editing_range: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), call_hierarchy: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), semantic_tokens: Some(SemanticTokensClientCapabilities { dynamic_registration: Some(true), requests: SemanticTokensClientCapabilitiesRequests { range: Some(true), full: Some(Delta { delta: Some(true) }) }, token_types: [SemanticTokenType("namespace"), SemanticTokenType("type"), SemanticTokenType("class"), SemanticTokenType("enum"), SemanticTokenType("interface"), SemanticTokenType("struct"), SemanticTokenType("typeParameter"), SemanticTokenType("parameter"), SemanticTokenType("variable"), SemanticTokenType("property"), SemanticTokenType("enumMember"), SemanticTokenType("event"), SemanticTokenType("function"), SemanticTokenType("method"), SemanticTokenType("macro"), SemanticTokenType("keyword"), SemanticTokenType("modifier"), SemanticTokenType("comment"), SemanticTokenType("string"), SemanticTokenType("number"), SemanticTokenType("regexp"), SemanticTokenType("operator"), SemanticTokenType("decorator")], token_modifiers: [SemanticTokenModifier("declaration"), SemanticTokenModifier("definition"), SemanticTokenModifier("readonly"), SemanticTokenModifier("static"), SemanticTokenModifier("deprecated"), SemanticTokenModifier("abstract"), SemanticTokenModifier("async"), SemanticTokenModifier("modification"), SemanticTokenModifier("documentation"), SemanticTokenModifier("defaultLibrary")], formats: [TokenFormat("relative")], overlapping_token_support: Some(false), multiline_token_support: Some(false), server_cancel_support: Some(true), augments_syntax_tokens: Some(true) }), moniker: None, type_hierarchy: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), inline_value: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), inlay_hint: Some(InlayHintClientCapabilities { dynamic_registration: Some(true), resolve_support: Some(InlayHintResolveClientCapabilities { properties: ["tooltip", "textEdits", "label.tooltip", "label.location", "label.command"] }) }), diagnostic: Some(DiagnosticClientCapabilities { dynamic_registration: Some(true), related_document_support: Some(false) }) }), window: Some(WindowClientCapabilities { work_done_progress: Some(true), show_message: Some(ShowMessageRequestClientCapabilities { message_action_item: Some(MessageActionItemCapabilities { additional_properties_support: Some(true) }) }), show_document: Some(ShowDocumentClientCapabilities { support: true }) }), general: Some(GeneralClientCapabilities { regular_expressions: Some(RegularExpressionsClientCapabilities { engine: "ECMAScript", version: Some("ES2020") }), markdown: Some(MarkdownClientCapabilities { parser: "marked", version: Some("1.1.0"), allowed_tags: None }), stale_request_support: Some(StaleRequestSupportClientCapabilities { cancel: true, retry_on_content_modified: ["textDocument/semanticTokens/full", "textDocument/semanticTokens/range", "textDocument/semanticTokens/full/delta"] }), position_encodings: Some([PositionEncodingKind("utf-16")]) }), experimental: None }, client_info=ClientInfo { name: "Visual Studio Code", version: Some("1.98.2") }, workspace_folders=[WorkspaceFolder { uri: Url { scheme: "file", cannot_be_a_base: false, username: "", password: None, host: None, port: None, path: "/home/evil/Repos/wiki", query: None, fragment: None }, name: "wiki" }]}
  ├─ INFO pgt_lsp::server Starting Language Server...
┌─┘
└─┐pgt_lsp::server::initialized{}
  ├─ INFO pgt_lsp::server Attempting to load the configuration from 'postgrestools.jsonc' file
  └─┐pgt_fs::fs::os::OsFileSystem::open_with_options{path="/home/evil/Repos/wiki/backend/postgrestools.jsonc", options=OpenOptions { read: true, write: false, truncate: false, create: false, create_new: false }}
  ┌─┘
  └─┐pgt_fs::fs::os::OsFile::read_to_string{}
  ┌─┘
  ├─ INFO pgt_lsp::session Configuration loaded successfully from disk.
  ├─ INFO pgt_lsp::session Update workspace settings.
  ├─ INFO pgt_workspace::workspace::server Updating settings in workspace
  ├─ INFO pgt_workspace::workspace::server Updated settings in workspace
  ├─ WARN sqlx_postgres::options::pgpass Failed to open `.pgpass` file: Os { code: 2, kind: NotFound, message: "No such file or directory" }, path=/home/evil/.pgpass
  ├─ INFO pgt_workspace::workspace::server Updated Db connection settings
└─┐pgt_lsp::handlers::text_document::did_open{params=DidOpenTextDocumentParams { text_document: TextDocumentItem { uri: Url { scheme: "file", cannot_be_a_base: false, username: "", password: None, host: None, port: None, path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", query: None, fragment: None }, language_id: "sql", version: 63, text: "\n------------- Meta -------------\n\n-- name: GetValueFromMetaKVStore :one\nSELECT value FROM meta_kv\nWHERE key = $1;\n\n-- name: SetValueToMetaKVStore :exec\nINSERT INTO meta_kv (key, value)\nVALUES ($1, $2)\nON CONFLICT (key) DO UPDATE\nSET value = excluded.value;\n\n\nasdsadsad\n\nыывфыв khgk\nasdыdsf\n\nы\n" } }}
  ├─ INFO pgt_workspace::workspace::server Opening file: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }
  ├─ INFO pgt_workspace::workspace::server::pg_query adding diagnostics
  ├─ INFO pgt_workspace::workspace::server::pg_query adding diagnostics
  ├─ INFO pgt_workspace::workspace::server::pg_query adding diagnostics
  ├─ INFO pgt_workspace::workspace::server::pg_query adding diagnostics
  ├─ INFO pgt_workspace::workspace::server::pg_query adding diagnostics
  ├─ INFO pgt_workspace::workspace::server Pulled 5 diagnostic(s)
┌─┘
  ├─ INFO pgt_lsp::session Unregister capabilities "workspace/didChangeConfiguration, workspace/didChangeWatchedFiles"
  ├─ INFO pgt_lsp::session Register capabilities "workspace/didChangeConfiguration, workspace/didChangeWatchedFiles"
  ├─ INFO pgt_workspace::workspace::server Pulled 5 diagnostic(s)
┌─┘
└─┐pgt_lsp::handlers::text_document::did_change{params=DidChangeTextDocumentParams { text_document: VersionedTextDocumentIdentifier { uri: Url { scheme: "file", cannot_be_a_base: false, username: "", password: None, host: None, port: None, path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", query: None, fragment: None }, version: 64 }, content_changes: [TextDocumentContentChangeEvent { range: Some(Range { start: Position { line: 18, character: 0 }, end: Position { line: 18, character: 0 } }), range_length: Some(0), text: "d" }] }}
  ├─ INFO pgt_workspace::workspace::server Changing file: ChangeFileParams { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, version: 64, changes: [ChangeParams { range: Some(298..298), text: "d" }] }
  ├─ DEBUG pgt_workspace::workspace::server Deleting statement: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 5 }
  ├─ DEBUG pgt_workspace::workspace::server Deleting statement: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 4 }
  ├─ DEBUG pgt_workspace::workspace::server Adding statement: AddedStatement { stmt: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 6 }, text: "ыывфыв khgk\nasdыdsf\nd\nы" }
  ├─ INFO pgt_workspace::workspace::server::pg_query adding diagnostics
  ├─ INFO pgt_workspace::workspace::server Pulled 4 diagnostic(s)
┌─┘
└─┐pgt_workspace::workspace::server::get_completions{params=GetCompletionsParams { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, position: 299 }}
  ├─ DEBUG pgt_workspace::workspace::server Getting completions for file PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false } at position 299
  ├─ DEBUG pgt_workspace::workspace::server Found the document. Looking for statement in file PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false } at position: 299
  ├─ DEBUG pgt_workspace::workspace::server Found the statement. We're looking for position 28. Statement Range 271 to 302. Statement: ыывфыв khgk
  │ asdыdsf
  │ d
  │ ы
┌─┘
└─┐pgt_lsp::handlers::text_document::did_change{params=DidChangeTextDocumentParams { text_document: VersionedTextDocumentIdentifier { uri: Url { scheme: "file", cannot_be_a_base: false, username: "", password: None, host: None, port: None, path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", query: None, fragment: None }, version: 65 }, content_changes: [TextDocumentContentChangeEvent { range: Some(Range { start: Position { line: 18, character: 1 }, end: Position { line: 18, character: 1 } }), range_length: Some(0), text: "s" }] }}
  ├─ INFO pgt_workspace::workspace::server Changing file: ChangeFileParams { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, version: 65, changes: [ChangeParams { range: Some(299..299), text: "s" }] }
  ├─ DEBUG pgt_workspace::workspace::server Modifying statement: ModifiedStatement { old_stmt: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 6 }, old_stmt_text: "ыывфыв khgk\nasdыdsf\nd\nы", new_stmt: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 7 }, new_stmt_text: "ыывфыв khgk\nasdыdsf\nds\nы", change_range: 28..28, change_text: "s" }
  ├─ INFO pgt_workspace::workspace::server::pg_query adding diagnostics
  ├─ INFO pgt_workspace::workspace::server Pulled 4 diagnostic(s)
┌─┘
└─┐pgt_lsp::handlers::text_document::did_change{params=DidChangeTextDocumentParams { text_document: VersionedTextDocumentIdentifier { uri: Url { scheme: "file", cannot_be_a_base: false, username: "", password: None, host: None, port: None, path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", query: None, fragment: None }, version: 66 }, content_changes: [TextDocumentContentChangeEvent { range: Some(Range { start: Position { line: 18, character: 2 }, end: Position { line: 18, character: 2 } }), range_length: Some(0), text: "d" }] }}
  ├─ INFO pgt_workspace::workspace::server Changing file: ChangeFileParams { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, version: 66, changes: [ChangeParams { range: Some(300..300), text: "d" }] }
  ├─ DEBUG pgt_workspace::workspace::server Modifying statement: ModifiedStatement { old_stmt: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 7 }, old_stmt_text: "ыывфыв khgk\nasdыdsf\nds\nы", new_stmt: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 8 }, new_stmt_text: "ыывфыв khgk\nasdыdsf\ndsd\nы", change_range: 29..29, change_text: "d" }
  ├─ INFO pgt_workspace::workspace::server::pg_query adding diagnostics
  ├─ INFO pgt_workspace::workspace::server Pulled 4 diagnostic(s)
┌─┘
└─┐pgt_lsp::handlers::text_document::did_change{params=DidChangeTextDocumentParams { text_document: VersionedTextDocumentIdentifier { uri: Url { scheme: "file", cannot_be_a_base: false, username: "", password: None, host: None, port: None, path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", query: None, fragment: None }, version: 67 }, content_changes: [TextDocumentContentChangeEvent { range: Some(Range { start: Position { line: 18, character: 3 }, end: Position { line: 18, character: 3 } }), range_length: Some(0), text: "s" }] }}
  ├─ INFO pgt_workspace::workspace::server Changing file: ChangeFileParams { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, version: 67, changes: [ChangeParams { range: Some(301..301), text: "s" }] }
  ├─ DEBUG pgt_workspace::workspace::server Modifying statement: ModifiedStatement { old_stmt: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 8 }, old_stmt_text: "ыывфыв khgk\nasdыdsf\ndsd\nы", new_stmt: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 9 }, new_stmt_text: "ыывфыв khgk\nasdыdsf\ndsds\nы", change_range: 30..30, change_text: "s" }
  ├─ INFO pgt_workspace::workspace::server::pg_query adding diagnostics
  ├─ INFO pgt_workspace::workspace::server Pulled 4 diagnostic(s)
┌─┘
└─┐pgt_lsp::handlers::text_document::did_change{params=DidChangeTextDocumentParams { text_document: VersionedTextDocumentIdentifier { uri: Url { scheme: "file", cannot_be_a_base: false, username: "", password: None, host: None, port: None, path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", query: None, fragment: None }, version: 68 }, content_changes: [TextDocumentContentChangeEvent { range: Some(Range { start: Position { line: 18, character: 4 }, end: Position { line: 18, character: 4 } }), range_length: Some(0), text: "j" }] }}
  ├─ INFO pgt_workspace::workspace::server Changing file: ChangeFileParams { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, version: 68, changes: [ChangeParams { range: Some(302..302), text: "j" }] }
  ├─ DEBUG pgt_workspace::workspace::server Modifying statement: ModifiedStatement { old_stmt: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 9 }, old_stmt_text: "ыывфыв khgk\nasdыdsf\ndsds\nы", new_stmt: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 10 }, new_stmt_text: "ыывфыв khgk\nasdыdsf\ndsdsj\nы", change_range: 31..31, change_text: "j" }
  ├─ INFO pgt_workspace::workspace::server::pg_query adding diagnostics
  ├─ INFO pgt_workspace::workspace::server Pulled 4 diagnostic(s)
└─┐pgt_lsp::handlers::text_document::did_change{params=DidChangeTextDocumentParams { text_document: VersionedTextDocumentIdentifier { uri: Url { scheme: "file", cannot_be_a_base: false, username: "", password: None, host: None, port: None, path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", query: None, fragment: None }, version: 69 }, content_changes: [TextDocumentContentChangeEvent { range: Some(Range { start: Position { line: 18, character: 5 }, end: Position { line: 18, character: 5 } }), range_length: Some(0), text: "d" }] }}
  ├─ INFO pgt_workspace::workspace::server Changing file: ChangeFileParams { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, version: 69, changes: [ChangeParams { range: Some(303..303), text: "d" }] }
  ├─ DEBUG pgt_workspace::workspace::server Modifying statement: ModifiedStatement { old_stmt: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 10 }, old_stmt_text: "ыывфыв khgk\nasdыdsf\ndsdsj\nы", new_stmt: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 11 }, new_stmt_text: "ыывфыв khgk\nasdыdsf\ndsdsjd\nы", change_range: 32..32, change_text: "d" }
  ├─ INFO pgt_workspace::workspace::server::pg_query adding diagnostics
  ├─ INFO pgt_workspace::workspace::server Pulled 4 diagnostic(s)
└─┐pgt_lsp::handlers::text_document::did_change{params=DidChangeTextDocumentParams { text_document: VersionedTextDocumentIdentifier { uri: Url { scheme: "file", cannot_be_a_base: false, username: "", password: None, host: None, port: None, path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", query: None, fragment: None }, version: 70 }, content_changes: [TextDocumentContentChangeEvent { range: Some(Range { start: Position { line: 18, character: 6 }, end: Position { line: 18, character: 6 } }), range_length: Some(0), text: "f" }] }}
  ├─ INFO pgt_workspace::workspace::server Changing file: ChangeFileParams { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, version: 70, changes: [ChangeParams { range: Some(304..304), text: "f" }] }
  ├─ DEBUG pgt_workspace::workspace::server Modifying statement: ModifiedStatement { old_stmt: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 11 }, old_stmt_text: "ыывфыв khgk\nasdыdsf\ndsdsjd\nы", new_stmt: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 12 }, new_stmt_text: "ыывфыв khgk\nasdыdsf\ndsdsjdf\nы", change_range: 33..33, change_text: "f" }
  ├─ INFO pgt_workspace::workspace::server::pg_query adding diagnostics
  ├─ INFO pgt_workspace::workspace::server Pulled 4 diagnostic(s)
└─┐pgt_lsp::handlers::text_document::did_change{params=DidChangeTextDocumentParams { text_document: VersionedTextDocumentIdentifier { uri: Url { scheme: "file", cannot_be_a_base: false, username: "", password: None, host: None, port: None, path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", query: None, fragment: None }, version: 71 }, content_changes: [TextDocumentContentChangeEvent { range: Some(Range { start: Position { line: 18, character: 7 }, end: Position { line: 18, character: 7 } }), range_length: Some(0), text: "n" }] }}
  ├─ INFO pgt_workspace::workspace::server Changing file: ChangeFileParams { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, version: 71, changes: [ChangeParams { range: Some(305..305), text: "n" }] }
  ├─ DEBUG pgt_workspace::workspace::server Modifying statement: ModifiedStatement { old_stmt: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 12 }, old_stmt_text: "ыывфыв khgk\nasdыdsf\ndsdsjdf\nы", new_stmt: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 13 }, new_stmt_text: "ыывфыв khgk\nasdыdsf\ndsdsjdfn\nы", change_range: 34..34, change_text: "n" }
  ├─ INFO pgt_workspace::workspace::server::pg_query adding diagnostics
  ├─ INFO pgt_workspace::workspace::server Pulled 4 diagnostic(s)
┌─┘
┌─┘
┌─┘
┌─┘
└─┐pgt_lsp::handlers::text_document::did_change{params=DidChangeTextDocumentParams { text_document: VersionedTextDocumentIdentifier { uri: Url { scheme: "file", cannot_be_a_base: false, username: "", password: None, host: None, port: None, path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", query: None, fragment: None }, version: 72 }, content_changes: [TextDocumentContentChangeEvent { range: Some(Range { start: Position { line: 18, character: 8 }, end: Position { line: 18, character: 8 } }), range_length: Some(0), text: "f" }] }}
  ├─ INFO pgt_workspace::workspace::server Changing file: ChangeFileParams { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, version: 72, changes: [ChangeParams { range: Some(306..306), text: "f" }] }
  ├─ DEBUG pgt_workspace::workspace::server Modifying statement: ModifiedStatement { old_stmt: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 13 }, old_stmt_text: "ыывфыв khgk\nasdыdsf\ndsdsjdfn\nы", new_stmt: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 14 }, new_stmt_text: "ыывфыв khgk\nasdыdsf\ndsdsjdfnf\nы", change_range: 35..35, change_text: "f" }
  ├─ INFO pgt_workspace::workspace::server::pg_query adding diagnostics
  ├─ INFO pgt_workspace::workspace::server Pulled 4 diagnostic(s)
┌─┘
└─┐pgt_lsp::handlers::text_document::did_change{params=DidChangeTextDocumentParams { text_document: VersionedTextDocumentIdentifier { uri: Url { scheme: "file", cannot_be_a_base: false, username: "", password: None, host: None, port: None, path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", query: None, fragment: None }, version: 73 }, content_changes: [TextDocumentContentChangeEvent { range: Some(Range { start: Position { line: 18, character: 9 }, end: Position { line: 18, character: 9 } }), range_length: Some(0), text: "m" }] }}
  ├─ INFO pgt_workspace::workspace::server Changing file: ChangeFileParams { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, version: 73, changes: [ChangeParams { range: Some(307..307), text: "m" }] }
  ├─ DEBUG pgt_workspace::workspace::server Modifying statement: ModifiedStatement { old_stmt: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 14 }, old_stmt_text: "ыывфыв khgk\nasdыdsf\ndsdsjdfnf\nы", new_stmt: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 15 }, new_stmt_text: "ыывфыв khgk\nasdыdsf\ndsdsjdfnfm\nы", change_range: 36..36, change_text: "m" }
  ├─ INFO pgt_workspace::workspace::server::pg_query adding diagnostics
  ├─ INFO pgt_workspace::workspace::server Pulled 4 diagnostic(s)
└─┐pgt_lsp::handlers::text_document::did_change{params=DidChangeTextDocumentParams { text_document: VersionedTextDocumentIdentifier { uri: Url { scheme: "file", cannot_be_a_base: false, username: "", password: None, host: None, port: None, path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", query: None, fragment: None }, version: 74 }, content_changes: [TextDocumentContentChangeEvent { range: Some(Range { start: Position { line: 18, character: 10 }, end: Position { line: 18, character: 10 } }), range_length: Some(0), text: "d" }] }}
  ├─ INFO pgt_workspace::workspace::server Changing file: ChangeFileParams { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, version: 74, changes: [ChangeParams { range: Some(308..308), text: "d" }] }
  ├─ DEBUG pgt_workspace::workspace::server Modifying statement: ModifiedStatement { old_stmt: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 15 }, old_stmt_text: "ыывфыв khgk\nasdыdsf\ndsdsjdfnfm\nы", new_stmt: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 16 }, new_stmt_text: "ыывфыв khgk\nasdыdsf\ndsdsjdfnfmd\nы", change_range: 37..37, change_text: "d" }
  ├─ INFO pgt_workspace::workspace::server::pg_query adding diagnostics
  ├─ INFO pgt_workspace::workspace::server Pulled 4 diagnostic(s)
└─┐pgt_lsp::handlers::text_document::did_change{params=DidChangeTextDocumentParams { text_document: VersionedTextDocumentIdentifier { uri: Url { scheme: "file", cannot_be_a_base: false, username: "", password: None, host: None, port: None, path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", query: None, fragment: None }, version: 75 }, content_changes: [TextDocumentContentChangeEvent { range: Some(Range { start: Position { line: 18, character: 11 }, end: Position { line: 18, character: 11 } }), range_length: Some(0), text: "s" }] }}
  ├─ INFO pgt_workspace::workspace::server Changing file: ChangeFileParams { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, version: 75, changes: [ChangeParams { range: Some(309..309), text: "s" }] }
  ├─ DEBUG pgt_workspace::workspace::server Modifying statement: ModifiedStatement { old_stmt: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 16 }, old_stmt_text: "ыывфыв khgk\nasdыdsf\ndsdsjdfnfmd\nы", new_stmt: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 17 }, new_stmt_text: "ыывфыв khgk\nasdыdsf\ndsdsjdfnfmds\nы", change_range: 38..38, change_text: "s" }
  ├─ INFO pgt_workspace::workspace::server::pg_query adding diagnostics
  ├─ INFO pgt_workspace::workspace::server Pulled 4 diagnostic(s)
└─┐pgt_lsp::handlers::text_document::did_change{params=DidChangeTextDocumentParams { text_document: VersionedTextDocumentIdentifier { uri: Url { scheme: "file", cannot_be_a_base: false, username: "", password: None, host: None, port: None, path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", query: None, fragment: None }, version: 76 }, content_changes: [TextDocumentContentChangeEvent { range: Some(Range { start: Position { line: 18, character: 12 }, end: Position { line: 18, character: 12 } }), range_length: Some(0), text: "в" }] }}
  ├─ INFO pgt_workspace::workspace::server Changing file: ChangeFileParams { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, version: 76, changes: [ChangeParams { range: Some(310..310), text: "в" }] }
  ├─ ERROR pgt_cli::panic Encountered an unexpected error
  │ 
  │ This is a bug in Postgres Tools, not an error in your code, and we would appreciate it if you could report it along with the following information to help us fixing the issue:
  │ 
  │ Source Location: crates/pgt_workspace/src/workspace/server/change.rs:255:18
  │ Thread Name: tokio-runtime-worker
  │ Message: called `Option::unwrap()` on a `None` value
  │ 
┌─┘
┌─┘
┌─┘
┌─┘
INFO pgt_cli::commands::daemon Received shutdown signal
┘
┐pgt_cli::commands::daemon::Running Server{pid=72251}
├─ INFO pgt_cli::service::unix Trying to connect to socket /home/evil/.cache/pgt/pgt-socket-0.0.0
├─ INFO pgt_cli::service::unix Remove socket folder /home/evil/.cache/pgt/pgt-socket-0.0.0
├─ INFO pgt_cli::service::unix Accepted connection
├─ INFO pgt_cli::service::unix Accepted connection
└─┐pgt_lsp::server::initialize{root_uri=file:///home/evil/Repos/wiki, capabilities=ClientCapabilities { workspace: Some(WorkspaceClientCapabilities { apply_edit: Some(true), workspace_edit: Some(WorkspaceEditClientCapabilities { document_changes: Some(true), resource_operations: Some([Create, Rename, Delete]), failure_handling: Some(TextOnlyTransactional), normalizes_line_endings: Some(true), change_annotation_support: Some(ChangeAnnotationWorkspaceEditClientCapabilities { groups_on_label: Some(true) }) }), did_change_configuration: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), did_change_watched_files: Some(DidChangeWatchedFilesClientCapabilities { dynamic_registration: Some(true), relative_pattern_support: Some(true) }), symbol: Some(WorkspaceSymbolClientCapabilities { dynamic_registration: Some(true), symbol_kind: Some(SymbolKindCapability { value_set: Some([File, Module, Namespace, Package, Class, Method, Property, Field, Constructor, Enum, Interface, Function, Variable, Constant, String, Number, Boolean, Array, Object, Key, Null, EnumMember, Struct, Event, Operator, TypeParameter]) }), tag_support: Some(TagSupport { value_set: [Deprecated] }), resolve_support: Some(WorkspaceSymbolResolveSupportCapability { properties: ["location.range"] }) }), execute_command: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), workspace_folders: Some(true), configuration: Some(true), semantic_tokens: Some(SemanticTokensWorkspaceClientCapabilities { refresh_support: Some(true) }), code_lens: Some(CodeLensWorkspaceClientCapabilities { refresh_support: Some(true) }), file_operations: Some(WorkspaceFileOperationsClientCapabilities { dynamic_registration: Some(true), did_create: Some(true), will_create: Some(true), did_rename: Some(true), will_rename: Some(true), did_delete: Some(true), will_delete: Some(true) }), inline_value: Some(InlineValueWorkspaceClientCapabilities { refresh_support: Some(true) }), inlay_hint: Some(InlayHintWorkspaceClientCapabilities { refresh_support: Some(true) }), diagnostic: None }), text_document: Some(TextDocumentClientCapabilities { synchronization: Some(TextDocumentSyncClientCapabilities { dynamic_registration: Some(true), will_save: Some(true), will_save_wait_until: Some(true), did_save: Some(true) }), completion: Some(CompletionClientCapabilities { dynamic_registration: Some(true), completion_item: Some(CompletionItemCapability { snippet_support: Some(true), commit_characters_support: Some(true), documentation_format: Some([Markdown, PlainText]), deprecated_support: Some(true), preselect_support: Some(true), tag_support: Some(TagSupport { value_set: [Deprecated] }), insert_replace_support: Some(true), resolve_support: Some(CompletionItemCapabilityResolveSupport { properties: ["documentation", "detail", "additionalTextEdits"] }), insert_text_mode_support: Some(InsertTextModeSupport { value_set: [AsIs, AdjustIndentation] }), label_details_support: Some(true) }), completion_item_kind: Some(CompletionItemKindCapability { value_set: Some([Text, Method, Function, Constructor, Field, Variable, Class, Interface, Module, Property, Unit, Value, Enum, Keyword, Snippet, Color, File, Reference, Folder, EnumMember, Constant, Struct, Event, Operator, TypeParameter]) }), context_support: Some(true), insert_text_mode: Some(AdjustIndentation), completion_list: Some(CompletionListCapability { item_defaults: Some(["commitCharacters", "editRange", "insertTextFormat", "insertTextMode", "data"]) }) }), hover: Some(HoverClientCapabilities { dynamic_registration: Some(true), content_format: Some([Markdown, PlainText]) }), signature_help: Some(SignatureHelpClientCapabilities { dynamic_registration: Some(true), signature_information: Some(SignatureInformationSettings { documentation_format: Some([Markdown, PlainText]), parameter_information: Some(ParameterInformationSettings { label_offset_support: Some(true) }), active_parameter_support: Some(true) }), context_support: Some(true) }), references: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), document_highlight: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), document_symbol: Some(DocumentSymbolClientCapabilities { dynamic_registration: Some(true), symbol_kind: Some(SymbolKindCapability { value_set: Some([File, Module, Namespace, Package, Class, Method, Property, Field, Constructor, Enum, Interface, Function, Variable, Constant, String, Number, Boolean, Array, Object, Key, Null, EnumMember, Struct, Event, Operator, TypeParameter]) }), hierarchical_document_symbol_support: Some(true), tag_support: Some(TagSupport { value_set: [Deprecated] }) }), formatting: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), range_formatting: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), on_type_formatting: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), declaration: Some(GotoCapability { dynamic_registration: Some(true), link_support: Some(true) }), definition: Some(GotoCapability { dynamic_registration: Some(true), link_support: Some(true) }), type_definition: Some(GotoCapability { dynamic_registration: Some(true), link_support: Some(true) }), implementation: Some(GotoCapability { dynamic_registration: Some(true), link_support: Some(true) }), code_action: Some(CodeActionClientCapabilities { dynamic_registration: Some(true), code_action_literal_support: Some(CodeActionLiteralSupport { code_action_kind: CodeActionKindLiteralSupport { value_set: ["", "quickfix", "refactor", "refactor.extract", "refactor.inline", "refactor.rewrite", "source", "source.organizeImports"] } }), is_preferred_support: Some(true), disabled_support: Some(true), data_support: Some(true), resolve_support: Some(CodeActionCapabilityResolveSupport { properties: ["edit"] }), honors_change_annotations: Some(true) }), code_lens: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), document_link: Some(DocumentLinkClientCapabilities { dynamic_registration: Some(true), tooltip_support: Some(true) }), color_provider: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), rename: Some(RenameClientCapabilities { dynamic_registration: Some(true), prepare_support: Some(true), prepare_support_default_behavior: Some(Identifier), honors_change_annotations: Some(true) }), publish_diagnostics: Some(PublishDiagnosticsClientCapabilities { related_information: Some(true), tag_support: Some(TagSupport { value_set: [Unnecessary, Deprecated] }), version_support: Some(false), code_description_support: Some(true), data_support: Some(true) }), folding_range: Some(FoldingRangeClientCapabilities { dynamic_registration: Some(true), range_limit: Some(5000), line_folding_only: Some(true), folding_range_kind: Some(FoldingRangeKindCapability { value_set: Some([Comment, Imports, Region]) }), folding_range: Some(FoldingRangeCapability { collapsed_text: Some(false) }) }), selection_range: Some(SelectionRangeClientCapabilities { dynamic_registration: Some(true) }), linked_editing_range: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), call_hierarchy: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), semantic_tokens: Some(SemanticTokensClientCapabilities { dynamic_registration: Some(true), requests: SemanticTokensClientCapabilitiesRequests { range: Some(true), full: Some(Delta { delta: Some(true) }) }, token_types: [SemanticTokenType("namespace"), SemanticTokenType("type"), SemanticTokenType("class"), SemanticTokenType("enum"), SemanticTokenType("interface"), SemanticTokenType("struct"), SemanticTokenType("typeParameter"), SemanticTokenType("parameter"), SemanticTokenType("variable"), SemanticTokenType("property"), SemanticTokenType("enumMember"), SemanticTokenType("event"), SemanticTokenType("function"), SemanticTokenType("method"), SemanticTokenType("macro"), SemanticTokenType("keyword"), SemanticTokenType("modifier"), SemanticTokenType("comment"), SemanticTokenType("string"), SemanticTokenType("number"), SemanticTokenType("regexp"), SemanticTokenType("operator"), SemanticTokenType("decorator")], token_modifiers: [SemanticTokenModifier("declaration"), SemanticTokenModifier("definition"), SemanticTokenModifier("readonly"), SemanticTokenModifier("static"), SemanticTokenModifier("deprecated"), SemanticTokenModifier("abstract"), SemanticTokenModifier("async"), SemanticTokenModifier("modification"), SemanticTokenModifier("documentation"), SemanticTokenModifier("defaultLibrary")], formats: [TokenFormat("relative")], overlapping_token_support: Some(false), multiline_token_support: Some(false), server_cancel_support: Some(true), augments_syntax_tokens: Some(true) }), moniker: None, type_hierarchy: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), inline_value: Some(DynamicRegistrationClientCapabilities { dynamic_registration: Some(true) }), inlay_hint: Some(InlayHintClientCapabilities { dynamic_registration: Some(true), resolve_support: Some(InlayHintResolveClientCapabilities { properties: ["tooltip", "textEdits", "label.tooltip", "label.location", "label.command"] }) }), diagnostic: Some(DiagnosticClientCapabilities { dynamic_registration: Some(true), related_document_support: Some(false) }) }), window: Some(WindowClientCapabilities { work_done_progress: Some(true), show_message: Some(ShowMessageRequestClientCapabilities { message_action_item: Some(MessageActionItemCapabilities { additional_properties_support: Some(true) }) }), show_document: Some(ShowDocumentClientCapabilities { support: true }) }), general: Some(GeneralClientCapabilities { regular_expressions: Some(RegularExpressionsClientCapabilities { engine: "ECMAScript", version: Some("ES2020") }), markdown: Some(MarkdownClientCapabilities { parser: "marked", version: Some("1.1.0"), allowed_tags: None }), stale_request_support: Some(StaleRequestSupportClientCapabilities { cancel: true, retry_on_content_modified: ["textDocument/semanticTokens/full", "textDocument/semanticTokens/range", "textDocument/semanticTokens/full/delta"] }), position_encodings: Some([PositionEncodingKind("utf-16")]) }), experimental: None }, client_info=ClientInfo { name: "Visual Studio Code", version: Some("1.98.2") }, workspace_folders=[WorkspaceFolder { uri: Url { scheme: "file", cannot_be_a_base: false, username: "", password: None, host: None, port: None, path: "/home/evil/Repos/wiki", query: None, fragment: None }, name: "wiki" }]}
  ├─ INFO pgt_lsp::server Starting Language Server...
┌─┘
└─┐pgt_lsp::server::initialized{}
  ├─ INFO pgt_lsp::server Attempting to load the configuration from 'postgrestools.jsonc' file
  └─┐pgt_fs::fs::os::OsFileSystem::open_with_options{path="/home/evil/Repos/wiki/backend/postgrestools.jsonc", options=OpenOptions { read: true, write: false, truncate: false, create: false, create_new: false }}
  ┌─┘
  └─┐pgt_fs::fs::os::OsFile::read_to_string{}
  ┌─┘
  ├─ INFO pgt_lsp::session Configuration loaded successfully from disk.
  ├─ INFO pgt_lsp::session Update workspace settings.
  ├─ INFO pgt_workspace::workspace::server Updating settings in workspace
  ├─ INFO pgt_workspace::workspace::server Updated settings in workspace
  ├─ WARN sqlx_postgres::options::pgpass Failed to open `.pgpass` file: Os { code: 2, kind: NotFound, message: "No such file or directory" }, path=/home/evil/.pgpass
  ├─ INFO pgt_workspace::workspace::server Updated Db connection settings
└─┐pgt_lsp::handlers::text_document::did_open{params=DidOpenTextDocumentParams { text_document: TextDocumentItem { uri: Url { scheme: "file", cannot_be_a_base: false, username: "", password: None, host: None, port: None, path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", query: None, fragment: None }, language_id: "sql", version: 147, text: "\n------------- Meta -------------\n\n-- name: GetValueFromMetaKVStore :one\nSELECT value FROM meta_kv\nWHERE key = $1;\n\n-- name: SetValueToMetaKVStore :exec\nINSERT INTO meta_kv (key, value)\nVALUES ($1, $2)\nON CONFLICT (key) DO UPDATE\nSET value = excluded.value;\n\n\nasdsadsad\n\nыывфыв khgk\nasdыdsf\ndsdsjdfnfmdsвтьвыаыdsfsmndf,m\nы\n" } }}
  ├─ INFO pgt_workspace::workspace::server Opening file: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }
  ├─ INFO pgt_workspace::workspace::server::pg_query adding diagnostics
  ├─ INFO pgt_workspace::workspace::server::pg_query adding diagnostics
  ├─ INFO pgt_workspace::workspace::server::pg_query adding diagnostics
  ├─ INFO pgt_workspace::workspace::server::pg_query adding diagnostics
  ├─ INFO pgt_workspace::workspace::server Pulled 4 diagnostic(s)
┌─┘
  ├─ INFO pgt_lsp::session Unregister capabilities "workspace/didChangeConfiguration, workspace/didChangeWatchedFiles"
  ├─ INFO pgt_lsp::session Register capabilities "workspace/didChangeConfiguration, workspace/didChangeWatchedFiles"
  ├─ INFO pgt_workspace::workspace::server Pulled 4 diagnostic(s)
┌─┘
└─┐pgt_lsp::handlers::text_document::did_change{params=DidChangeTextDocumentParams { text_document: VersionedTextDocumentIdentifier { uri: Url { scheme: "file", cannot_be_a_base: false, username: "", password: None, host: None, port: None, path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", query: None, fragment: None }, version: 148 }, content_changes: [TextDocumentContentChangeEvent { range: Some(Range { start: Position { line: 20, character: 0 }, end: Position { line: 20, character: 0 } }), range_length: Some(0), text: "s" }] }}
  ├─ INFO pgt_workspace::workspace::server Changing file: ChangeFileParams { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, version: 148, changes: [ChangeParams { range: Some(338..338), text: "s" }] }
  ├─ DEBUG pgt_workspace::workspace::server Deleting statement: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 4 }
  ├─ DEBUG pgt_workspace::workspace::server Adding statement: AddedStatement { stmt: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 5 }, text: "ыывфыв khgk\nasdыdsf\ndsdsjdfnfmdsвтьвыаыdsfsmndf,m\nы\ns" }
  ├─ INFO pgt_workspace::workspace::server::pg_query adding diagnostics
  ├─ INFO pgt_workspace::workspace::server Pulled 4 diagnostic(s)
┌─┘
└─┐pgt_workspace::workspace::server::get_completions{params=GetCompletionsParams { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, position: 339 }}
  ├─ DEBUG pgt_workspace::workspace::server Getting completions for file PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false } at position 339
  ├─ DEBUG pgt_workspace::workspace::server Found the document. Looking for statement in file PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false } at position: 339
┌─┘
└─┐pgt_lsp::handlers::text_document::did_change{params=DidChangeTextDocumentParams { text_document: VersionedTextDocumentIdentifier { uri: Url { scheme: "file", cannot_be_a_base: false, username: "", password: None, host: None, port: None, path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", query: None, fragment: None }, version: 149 }, content_changes: [TextDocumentContentChangeEvent { range: Some(Range { start: Position { line: 20, character: 1 }, end: Position { line: 20, character: 1 } }), range_length: Some(0), text: "n" }] }}
  ├─ INFO pgt_workspace::workspace::server Changing file: ChangeFileParams { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, version: 149, changes: [ChangeParams { range: Some(339..339), text: "n" }] }
  ├─ DEBUG pgt_workspace::workspace::server Modifying statement: ModifiedStatement { old_stmt: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 5 }, old_stmt_text: "ыывфыв khgk\nasdыdsf\ndsdsjdfnfmdsвтьвыаыdsfsmndf,m\nы\ns", new_stmt: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 6 }, new_stmt_text: "ыывфыв khgk\nasdыdsf\ndsdsjdfnfmdsвтьвыаыdsfsmndf,m\nы\nsn", change_range: 68..68, change_text: "n" }
  ├─ INFO pgt_workspace::workspace::server::pg_query adding diagnostics
  ├─ INFO pgt_workspace::workspace::server Pulled 4 diagnostic(s)
┌─┘
└─┐pgt_lsp::handlers::text_document::did_change{params=DidChangeTextDocumentParams { text_document: VersionedTextDocumentIdentifier { uri: Url { scheme: "file", cannot_be_a_base: false, username: "", password: None, host: None, port: None, path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", query: None, fragment: None }, version: 150 }, content_changes: [TextDocumentContentChangeEvent { range: Some(Range { start: Position { line: 20, character: 2 }, end: Position { line: 20, character: 2 } }), range_length: Some(0), text: "," }] }}
  ├─ INFO pgt_workspace::workspace::server Changing file: ChangeFileParams { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, version: 150, changes: [ChangeParams { range: Some(340..340), text: "," }] }
  ├─ DEBUG pgt_workspace::workspace::server Modifying statement: ModifiedStatement { old_stmt: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 6 }, old_stmt_text: "ыывфыв khgk\nasdыdsf\ndsdsjdfnfmdsвтьвыаыdsfsmndf,m\nы\nsn", new_stmt: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 7 }, new_stmt_text: "ыывфыв khgk\nasdыdsf\ndsdsjdfnfmdsвтьвыаыdsfsmndf,m\nы\nsn,", change_range: 69..69, change_text: "," }
  ├─ INFO pgt_workspace::workspace::server::pg_query adding diagnostics
  ├─ INFO pgt_workspace::workspace::server Pulled 4 diagnostic(s)
└─┐pgt_workspace::workspace::server::get_completions{params=GetCompletionsParams { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, position: 341 }}
  ├─ DEBUG pgt_workspace::workspace::server Getting completions for file PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false } at position 341
  ├─ DEBUG pgt_workspace::workspace::server Found the document. Looking for statement in file PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false } at position: 341
┌─┘
└─┐pgt_lsp::handlers::text_document::did_change{params=DidChangeTextDocumentParams { text_document: VersionedTextDocumentIdentifier { uri: Url { scheme: "file", cannot_be_a_base: false, username: "", password: None, host: None, port: None, path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", query: None, fragment: None }, version: 151 }, content_changes: [TextDocumentContentChangeEvent { range: Some(Range { start: Position { line: 20, character: 3 }, end: Position { line: 20, character: 3 } }), range_length: Some(0), text: "d" }] }}
  ├─ INFO pgt_workspace::workspace::server Changing file: ChangeFileParams { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, version: 151, changes: [ChangeParams { range: Some(341..341), text: "d" }] }
  ├─ DEBUG pgt_workspace::workspace::server Modifying statement: ModifiedStatement { old_stmt: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 7 }, old_stmt_text: "ыывфыв khgk\nasdыdsf\ndsdsjdfnfmdsвтьвыаыdsfsmndf,m\nы\nsn,", new_stmt: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 8 }, new_stmt_text: "ыывфыв khgk\nasdыdsf\ndsdsjdfnfmdsвтьвыаыdsfsmndf,m\nы\nsn,d", change_range: 70..70, change_text: "d" }
  ├─ INFO pgt_workspace::workspace::server::pg_query adding diagnostics
  ├─ INFO pgt_workspace::workspace::server Pulled 4 diagnostic(s)
┌─┘
└─┐pgt_lsp::handlers::text_document::did_change{params=DidChangeTextDocumentParams { text_document: VersionedTextDocumentIdentifier { uri: Url { scheme: "file", cannot_be_a_base: false, username: "", password: None, host: None, port: None, path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", query: None, fragment: None }, version: 152 }, content_changes: [TextDocumentContentChangeEvent { range: Some(Range { start: Position { line: 20, character: 4 }, end: Position { line: 20, character: 4 } }), range_length: Some(0), text: "f" }] }}
  ├─ INFO pgt_workspace::workspace::server Changing file: ChangeFileParams { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, version: 152, changes: [ChangeParams { range: Some(342..342), text: "f" }] }
  ├─ DEBUG pgt_workspace::workspace::server Modifying statement: ModifiedStatement { old_stmt: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 8 }, old_stmt_text: "ыывфыв khgk\nasdыdsf\ndsdsjdfnfmdsвтьвыаыdsfsmndf,m\nы\nsn,d", new_stmt: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 9 }, new_stmt_text: "ыывфыв khgk\nasdыdsf\ndsdsjdfnfmdsвтьвыаыdsfsmndf,m\nы\nsn,df", change_range: 71..71, change_text: "f" }
  ├─ INFO pgt_workspace::workspace::server::pg_query adding diagnostics
  ├─ INFO pgt_workspace::workspace::server Pulled 4 diagnostic(s)
┌─┘
└─┐pgt_lsp::handlers::text_document::did_change{params=DidChangeTextDocumentParams { text_document: VersionedTextDocumentIdentifier { uri: Url { scheme: "file", cannot_be_a_base: false, username: "", password: None, host: None, port: None, path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", query: None, fragment: None }, version: 153 }, content_changes: [TextDocumentContentChangeEvent { range: Some(Range { start: Position { line: 20, character: 5 }, end: Position { line: 20, character: 5 } }), range_length: Some(0), text: "j" }] }}
  ├─ INFO pgt_workspace::workspace::server Changing file: ChangeFileParams { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, version: 153, changes: [ChangeParams { range: Some(343..343), text: "j" }] }
  ├─ DEBUG pgt_workspace::workspace::server Modifying statement: ModifiedStatement { old_stmt: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 9 }, old_stmt_text: "ыывфыв khgk\nasdыdsf\ndsdsjdfnfmdsвтьвыаыdsfsmndf,m\nы\nsn,df", new_stmt: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 10 }, new_stmt_text: "ыывфыв khgk\nasdыdsf\ndsdsjdfnfmdsвтьвыаыdsfsmndf,m\nы\nsn,dfj", change_range: 72..72, change_text: "j" }
  ├─ INFO pgt_workspace::workspace::server::pg_query adding diagnostics
  ├─ INFO pgt_workspace::workspace::server Pulled 4 diagnostic(s)
└─┐pgt_lsp::handlers::text_document::did_change{params=DidChangeTextDocumentParams { text_document: VersionedTextDocumentIdentifier { uri: Url { scheme: "file", cannot_be_a_base: false, username: "", password: None, host: None, port: None, path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", query: None, fragment: None }, version: 154 }, content_changes: [TextDocumentContentChangeEvent { range: Some(Range { start: Position { line: 20, character: 6 }, end: Position { line: 20, character: 6 } }), range_length: Some(0), text: "s" }] }}
  ├─ INFO pgt_workspace::workspace::server Changing file: ChangeFileParams { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, version: 154, changes: [ChangeParams { range: Some(344..344), text: "s" }] }
  ├─ DEBUG pgt_workspace::workspace::server Modifying statement: ModifiedStatement { old_stmt: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 10 }, old_stmt_text: "ыывфыв khgk\nasdыdsf\ndsdsjdfnfmdsвтьвыаыdsfsmndf,m\nы\nsn,dfj", new_stmt: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 11 }, new_stmt_text: "ыывфыв khgk\nasdыdsf\ndsdsjdfnfmdsвтьвыаыdsfsmndf,m\nы\nsn,dfjs", change_range: 73..73, change_text: "s" }
  ├─ INFO pgt_workspace::workspace::server::pg_query adding diagnostics
  ├─ INFO pgt_workspace::workspace::server Pulled 4 diagnostic(s)
└─┐pgt_lsp::handlers::text_document::did_change{params=DidChangeTextDocumentParams { text_document: VersionedTextDocumentIdentifier { uri: Url { scheme: "file", cannot_be_a_base: false, username: "", password: None, host: None, port: None, path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", query: None, fragment: None }, version: 155 }, content_changes: [TextDocumentContentChangeEvent { range: Some(Range { start: Position { line: 20, character: 7 }, end: Position { line: 20, character: 7 } }), range_length: Some(0), text: "d" }] }}
  ├─ INFO pgt_workspace::workspace::server Changing file: ChangeFileParams { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, version: 155, changes: [ChangeParams { range: Some(345..345), text: "d" }] }
  ├─ DEBUG pgt_workspace::workspace::server Modifying statement: ModifiedStatement { old_stmt: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 11 }, old_stmt_text: "ыывфыв khgk\nasdыdsf\ndsdsjdfnfmdsвтьвыаыdsfsmndf,m\nы\nsn,dfjs", new_stmt: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 12 }, new_stmt_text: "ыывфыв khgk\nasdыdsf\ndsdsjdfnfmdsвтьвыаыdsfsmndf,m\nы\nsn,dfjsd", change_range: 74..74, change_text: "d" }
  ├─ INFO pgt_workspace::workspace::server::pg_query adding diagnostics
  ├─ INFO pgt_workspace::workspace::server Pulled 4 diagnostic(s)
┌─┘
┌─┘
┌─┘
┌─┘
└─┐pgt_lsp::handlers::text_document::did_change{params=DidChangeTextDocumentParams { text_document: VersionedTextDocumentIdentifier { uri: Url { scheme: "file", cannot_be_a_base: false, username: "", password: None, host: None, port: None, path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", query: None, fragment: None }, version: 156 }, content_changes: [TextDocumentContentChangeEvent { range: Some(Range { start: Position { line: 20, character: 8 }, end: Position { line: 20, character: 8 } }), range_length: Some(0), text: "f" }] }}
  ├─ INFO pgt_workspace::workspace::server Changing file: ChangeFileParams { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, version: 156, changes: [ChangeParams { range: Some(346..346), text: "f" }] }
  ├─ DEBUG pgt_workspace::workspace::server Modifying statement: ModifiedStatement { old_stmt: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 12 }, old_stmt_text: "ыывфыв khgk\nasdыdsf\ndsdsjdfnfmdsвтьвыаыdsfsmndf,m\nы\nsn,dfjsd", new_stmt: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 13 }, new_stmt_text: "ыывфыв khgk\nasdыdsf\ndsdsjdfnfmdsвтьвыаыdsfsmndf,m\nы\nsn,dfjsdf", change_range: 75..75, change_text: "f" }
  ├─ INFO pgt_workspace::workspace::server::pg_query adding diagnostics
  ├─ INFO pgt_workspace::workspace::server Pulled 4 diagnostic(s)
┌─┘
└─┐pgt_lsp::handlers::text_document::did_change{params=DidChangeTextDocumentParams { text_document: VersionedTextDocumentIdentifier { uri: Url { scheme: "file", cannot_be_a_base: false, username: "", password: None, host: None, port: None, path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", query: None, fragment: None }, version: 157 }, content_changes: [TextDocumentContentChangeEvent { range: Some(Range { start: Position { line: 20, character: 9 }, end: Position { line: 20, character: 9 } }), range_length: Some(0), text: "l" }] }}
  ├─ INFO pgt_workspace::workspace::server Changing file: ChangeFileParams { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, version: 157, changes: [ChangeParams { range: Some(347..347), text: "l" }] }
  ├─ DEBUG pgt_workspace::workspace::server Modifying statement: ModifiedStatement { old_stmt: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 13 }, old_stmt_text: "ыывфыв khgk\nasdыdsf\ndsdsjdfnfmdsвтьвыаыdsfsmndf,m\nы\nsn,dfjsdf", new_stmt: Statement { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, id: 14 }, new_stmt_text: "ыывфыв khgk\nasdыdsf\ndsdsjdfnfmdsвтьвыаыdsfsmndf,m\nы\nsn,dfjsdfl", change_range: 76..76, change_text: "l" }
  ├─ INFO pgt_workspace::workspace::server::pg_query adding diagnostics
  ├─ INFO pgt_workspace::workspace::server Pulled 4 diagnostic(s)
└─┐pgt_lsp::handlers::text_document::did_change{params=DidChangeTextDocumentParams { text_document: VersionedTextDocumentIdentifier { uri: Url { scheme: "file", cannot_be_a_base: false, username: "", password: None, host: None, port: None, path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", query: None, fragment: None }, version: 158 }, content_changes: [TextDocumentContentChangeEvent { range: Some(Range { start: Position { line: 20, character: 10 }, end: Position { line: 20, character: 10 } }), range_length: Some(0), text: "в" }] }}
  ├─ INFO pgt_workspace::workspace::server Changing file: ChangeFileParams { path: PgTPath { path: "/home/evil/Repos/wiki/backend/db/sql/asd.sql", kind: FileKinds(BitFlags<FileKind>(0b1000, Handleable)), was_written: false }, version: 158, changes: [ChangeParams { range: Some(348..348), text: "в" }] }
  ├─ ERROR pgt_cli::panic Encountered an unexpected error
  │ 
  │ This is a bug in Postgres Tools, not an error in your code, and we would appreciate it if you could report it along with the following information to help us fixing the issue:
  │ 
  │ Source Location: crates/pgt_workspace/src/workspace/server/change.rs:255:18
  │ Thread Name: tokio-runtime-worker
  │ Message: called `Option::unwrap()` on a `None` value
  │ 
┌─┘
┌─┘
INFO pgt_cli::commands::daemon Received shutdown signal
┘

edit: gramatics

VeryEvilHumna avatar Apr 01 '25 02:04 VeryEvilHumna

thanks! I was able to repro. will be fixed with the next release.

psteinroe avatar Apr 01 '25 12:04 psteinroe