Skip to content

Server crashes when Cyrillic character is typed #281

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
2 tasks done
VeryEvilHumna opened this issue Mar 31, 2025 · 4 comments · Fixed by #286
Closed
2 tasks done

Server crashes when Cyrillic character is typed #281

VeryEvilHumna opened this issue Mar 31, 2025 · 4 comments · Fixed by #286
Assignees
Labels
bug Something isn't working

Comments

@VeryEvilHumna
Copy link

Bug report

  • I confirm this is a bug with Supabase, not with my own application.
  • 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 VeryEvilHumna added the bug Something isn't working label Mar 31, 2025
@psteinroe psteinroe self-assigned this Mar 31, 2025
@psteinroe
Copy link
Collaborator

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.

@VeryEvilHumna
Copy link
Author

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
Copy link
Author

VeryEvilHumna commented Apr 1, 2025

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

Screencast.From.2025-04-01.05-08-09.mp4
Screencast.From.2025-04-01.05-11-45.mp4

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

@psteinroe
Copy link
Collaborator

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants