Skip to content
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

Question: "prefix" doesn't seem to work #1003

Closed
paaguti opened this issue Jan 23, 2024 · 6 comments · Fixed by #1011 or #1022
Closed

Question: "prefix" doesn't seem to work #1003

paaguti opened this issue Jan 23, 2024 · 6 comments · Fixed by #1011 or #1022

Comments

@paaguti
Copy link

paaguti commented Jan 23, 2024

Emacs master is sending this to texlab:

[jsonrpc] e[17:05:40.171] <-- workspace/configuration[1] {"jsonrpc":"2.0","id":1,"method":"workspace/configuration","params":{"items":[{"section":"texlab"}]}}
[jsonrpc] e[17:05:40.172] --> workspace/configuration[1] {"jsonrpc":"2.0","id":1,"result":[{"completion":{"matcher":"prefix"}}]}
[jsonrpc] e[17:05:40.172] <-- workspace/configuration[2] {"jsonrpc":"2.0","id":2,"method":"workspace/configuration","params":{"items":[{"section":"texlab"}]}}
[jsonrpc] e[17:05:40.173] --> workspace/configuration[2] {"jsonrpc":"2.0","id":2,"result":[{"completion":{"matcher":"prefix"}}]}

when I'm trying to select prefix matching.

But it will match \usepackage when typing \usea

Screenshot from 2024-01-23 17-36-54

This doesn't seem to be correct. I just wonder who is creating the misunderstanding here...

@paaguti
Copy link
Author

paaguti commented Jan 24, 2024

Info from texlab -vvvv

DEBUG - Opening document file:///home/paag/tmp/horst/mix.tex...
DEBUG - < {"jsonrpc":"2.0","method":"workspace/didChangeConfiguration","params":{"settings":{"pylsp":{"plugins":{"jedi_completion":{"include_params":true,"fuzzy":true},"pylint":{"enabled":false}}},"texlab":{"completion":{"matcher":"prefix"}}}}}
DEBUG - sending message Notification(
    Notification {
        method: "workspace/didChangeConfiguration",
        params: Object {
            "settings": Object {
                "pylsp": Object {
                    "plugins": Object {
                        "jedi_completion": Object {
                            "fuzzy": Bool(true),
                            "include_params": Bool(true),
                        },
                        "pylint": Object {
                            "enabled": Bool(false),
                        },
                    },
                },
                "texlab": Object {
                    "completion": Object {
                        "matcher": String("prefix"),
                    },
                },
            },
        },
    },
)
DEBUG - Loading document /home/paag/tmp/horst/mix.log from disk...
DEBUG - Opening document file:///home/paag/tmp/horst/mix.log...
DEBUG - Loading document /home/paag/tmp/horst/mix.aux from disk...
DEBUG - Opening document file:///home/paag/tmp/horst/mix.aux...
TRACE - adding inotify watch: /home/paag/tmp/horst/
DEBUG - > {"jsonrpc":"2.0","id":2,"method":"workspace/configuration","params":{"items":[{"section":"texlab"}]}}
DEBUG - < {"jsonrpc":"2.0","id":2,"method":"textDocument/inlayHint","params":{"textDocument":{"uri":"file:///home/paag/tmp/horst/mix.tex"},"range":{"start":{"line":0,"character":0},"end":{"line":20,"character":0}}}}
DEBUG - sending message Request(
    Request {
        id: RequestId(
            I32(
                2,
            ),
        ),
        method: "textDocument/inlayHint",
        params: Object {
            "range": Object {
                "end": Object {
                    "character": Number(0),
                    "line": Number(20),
                },
                "start": Object {
                    "character": Number(0),
                    "line": Number(0),
                },
            },
            "textDocument": Object {
                "uri": String("file:///home/paag/tmp/horst/mix.tex"),
            },
        },
    },
)
DEBUG - > {"jsonrpc":"2.0","id":2,"result":[]}
DEBUG - < {"jsonrpc":"2.0","id":1,"result":[{"completion":{"matcher":"prefix"}}]}
DEBUG - sending message Response(
    Response {
        id: RequestId(
            I32(
                1,
            ),
        ),
        result: Some(
            Array [
                Object {
                    "completion": Object {
                        "matcher": String("prefix"),
                    },
                },
            ],
        ),
        error: None,
    },
)
DEBUG - < {"jsonrpc":"2.0","id":2,"result":[{"completion":{"matcher":"prefix"}}]}
DEBUG - sending message Response(
    Response {
        id: RequestId(
            I32(
                2,
            ),
        ),
        result: Some(
            Array [
                Object {
                    "completion": Object {
                        "matcher": String("prefix"),
                    },
                },
            ],
        ),
        error: None,
    },
)

The pylsp part is because I need to include python snippets in my project and I test them before

@pfoerster
Copy link
Member

@paaguti The problem is that the LSP client sends the configuration in an unexpected format.

The config that texlab receives should look like this:

{"jsonrpc":"2.0","method":"workspace/didChangeConfiguration","params":{"settings":{"completion":{"matcher":"prefix"}}}}

@paaguti
Copy link
Author

paaguti commented Jan 30, 2024

However, `pylsp' seems to accept its name as part of the JSON:

2024-01-30 10:01:30,672 CET - DEBUG - pylsp_jsonrpc.endpoint - Handling notification from client {'jsonrpc': '2.0', 'method': 'workspace/didChangeConfiguration', 'params': {'settings': {'pylsp': {'configurationSources': ['pycodestyle'], 'plugins': {'autopep8': {'enabled': True}, 'jedi_completion': {'include_params': True, 'eager': True, 'fuzzy': False}, 'flake8': {'enabled': False}, 'pylint': {'enabled': False}, 'pycodestyle': {'enabled': False}, 'pyflakes': {'enabled': True}, 'mccabe': {'enabled': True, 'threshold': 45}}}}}}
2024-01-30 10:01:30,672 CET - INFO - pylsp.config.config - Updated settings to {'configurationSources': ['pycodestyle'], 'plugins': {'autopep8': {'enabled': True}, 'jedi_completion': {'include_params': True, 'eager': True, 'fuzzy': False}, 'flake8': {'enabled': False}, 'pylint': {'enabled': False}, 'pycodestyle': {'enabled': False}, 'pyflakes': {'enabled': True}, 'mccabe': {'enabled': True, 'threshold': 45}}}
2024-01-30 10:01:30,672 CET - DEBUG - pylsp.config.config - Got user config from PyCodeStyleConfig: {}
2024-01-30 10:01:30,673 CET - DEBUG - pylsp.config.config - Got project config from PyCodeStyleConfig: {}
2024-01-30 10:01:30,673 CET - DEBUG - pylsp.config.config - With configuration: {'configurationSources': ['pycodestyle'], 'rope': {'extensionModules': ['OpenGL', 'PIL', 'array', 'audioop', 'binascii', 'cPickle', 'cStringIO', 'cmath', 'collections', 'datetime', 'errno', 'exceptions', 'gc', 'imageop', 'imp', 'itertools', 'marshal', 'math', 'matplotlib', 'mmap', 'mpmath', 'msvcrt', 'networkx', 'nose', 'nt', 'numpy', 'operator', 'os', 'os.path', 'pandas', 'parser', 'rgbimg', 'scipy', 'signal', 'skimage', 'sklearn', 'statsmodels', 'strop', 'sympy', 'sys', 'thread', 'time', 'wx', 'xxsubtype', 'zipimport', 'zlib']}, 'plugins': {'rope_completion': {'enabled': False, 'eager': False}, 'jedi_completion': {'include_params': True, 'eager': True, 'fuzzy': False}, 'flake8': {'enabled': False}, 'preload': {'modules': ['OpenGL', 'PIL', 'array', 'audioop', 'binascii', 'cPickle', 'cStringIO', 'cmath', 'collections', 'datetime', 'errno', 'exceptions', 'gc', 'imageop', 'imp', 'itertools', 'marshal', 'math', 'matplotlib', 'mmap', 'mpmath', 'msvcrt', 'networkx', 'nose', 'nt', 'numpy', 'operator', 'os', 'os.path', 'pandas', 'parser', 'rgbimg', 'scipy', 'signal', 'skimage', 'sklearn', 'statsmodels', 'strop', 'sympy', 'sys', 'thread', 'time', 'wx', 'xxsubtype', 'zipimport', 'zlib']}, 'rope_rename': {'enabled': False}, 'pydocstyle': {'enabled': False}, 'autopep8': {'enabled': True}, 'pycodestyle': {'enabled': False}, 'mccabe': {'enabled': True, 'threshold': 45}, 'pyflakes': {'enabled': True}, 'pylint': {'enabled': False, 'args': [], 'executable': None}, 'rope_autoimport': {'enabled': False, 'memory': False, 'completions': {'enabled': True}, 'code_actions': {'enabled': True}}}}
2024-01-30 10:01:30,673 CET - INFO - pylsp.config.config - Disabled plugins: [<module 'pylsp.plugins.flake8_lint' from '/home/paag/.local/share/pipx/venvs/python-lsp-server/lib/python3.10/site-packages/pylsp/plugins/flake8_lint.py'>, <module 'pylsp.plugins.pycodestyle_lint' from '/home/paag/.local/share/pipx/venvs/python-lsp-server/lib/python3.10/site-packages/pylsp/plugins/pycodestyle_lint.py'>, <module 'pylsp.plugins.pydocstyle_lint' from '/home/paag/.local/share/pipx/venvs/python-lsp-server/lib/python3.10/site-packages/pylsp/plugins/pydocstyle_lint.py'>, <module 'pylsp.plugins.pylint_lint' from '/home/paag/.local/share/pipx/venvs/python-lsp-server/lib/python3.10/site-packages/pylsp/plugins/pylint_lint.py'>, <module 'pylsp.plugins.rope_autoimport' from '/home/paag/.local/share/pipx/venvs/python-lsp-server/lib/python3.10/site-packages/pylsp/plugins/rope_autoimport.py'>, <module 'pylsp.plugins.rope_completion' from '/home/paag/.local/share/pipx/venvs/python-lsp-server/lib/python3.10/site-packages/pylsp/plugins/rope_completion.py'>, <module 'pylsp.plugins.rope_rename' from '/home/paag/.local/share/pipx/venvs/python-lsp-server/lib/python3.10/site-packages/pylsp/plugins/rope_rename.py'>]
2024-01-30 10:01:30,673 CET - INFO - pylsp.config.config - Updated settings to {'configurationSources': ['pycodestyle'], 'plugins': {'autopep8': {'enabled': True}, 'jedi_completion': {'include_params': True, 'eager': True, 'fuzzy': False}, 'flake8': {'enabled': False}, 'pylint': {'enabled': False}, 'pycodestyle': {'enabled': False}, 'pyflakes': {'enabled': True}, 'mccabe': {'enabled': True, 'threshold': 45}}}
2024-01-30 10:01:30,673 CET - DEBUG - pylsp.config.config - Got user config from PyCodeStyleConfig: {}
2024-01-30 10:01:30,674 CET - DEBUG - pylsp.config.config - Got project config from PyCodeStyleConfig: {}
2024-01-30 10:01:30,674 CET - DEBUG - pylsp.config.config - With configuration: {'configurationSources': ['pycodestyle'], 'rope': {'extensionModules': ['OpenGL', 'PIL', 'array', 'audioop', 'binascii', 'cPickle', 'cStringIO', 'cmath', 'collections', 'datetime', 'errno', 'exceptions', 'gc', 'imageop', 'imp', 'itertools', 'marshal', 'math', 'matplotlib', 'mmap', 'mpmath', 'msvcrt', 'networkx', 'nose', 'nt', 'numpy', 'operator', 'os', 'os.path', 'pandas', 'parser', 'rgbimg', 'scipy', 'signal', 'skimage', 'sklearn', 'statsmodels', 'strop', 'sympy', 'sys', 'thread', 'time', 'wx', 'xxsubtype', 'zipimport', 'zlib']}, 'plugins': {'rope_completion': {'enabled': False, 'eager': False}, 'jedi_completion': {'include_params': True, 'eager': True, 'fuzzy': False}, 'flake8': {'enabled': False}, 'preload': {'modules': ['OpenGL', 'PIL', 'array', 'audioop', 'binascii', 'cPickle', 'cStringIO', 'cmath', 'collections', 'datetime', 'errno', 'exceptions', 'gc', 'imageop', 'imp', 'itertools', 'marshal', 'math', 'matplotlib', 'mmap', 'mpmath', 'msvcrt', 'networkx', 'nose', 'nt', 'numpy', 'operator', 'os', 'os.path', 'pandas', 'parser', 'rgbimg', 'scipy', 'signal', 'skimage', 'sklearn', 'statsmodels', 'strop', 'sympy', 'sys', 'thread', 'time', 'wx', 'xxsubtype', 'zipimport', 'zlib']}, 'rope_rename': {'enabled': False}, 'pydocstyle': {'enabled': False}, 'autopep8': {'enabled': True}, 'pycodestyle': {'enabled': False}, 'mccabe': {'enabled': True, 'threshold': 45}, 'pyflakes': {'enabled': True}, 'pylint': {'enabled': False, 'args': [], 'executable': None}, 'rope_autoimport': {'enabled': False, 'memory': False, 'completions': {'enabled': True}, 'code_actions': {'enabled': True}}}}
2024-01-30 10:01:30,674 CET - INFO - pylsp.config.config - Disabled plugins: [<module 'pylsp.plugins.flake8_lint' from '/home/paag/.local/share/pipx/venvs/python-lsp-server/lib/python3.10/site-packages/pylsp/plugins/flake8_lint.py'>, <module 'pylsp.plugins.pycodestyle_lint' from '/home/paag/.local/share/pipx/venvs/python-lsp-server/lib/python3.10/site-packages/pylsp/plugins/pycodestyle_lint.py'>, <module 'pylsp.plugins.pydocstyle_lint' from '/home/paag/.local/share/pipx/venvs/python-lsp-server/lib/python3.10/site-packages/pylsp/plugins/pydocstyle_lint.py'>, <module 'pylsp.plugins.pylint_lint' from '/home/paag/.local/share/pipx/venvs/python-lsp-server/lib/python3.10/site-packages/pylsp/plugins/pylint_lint.py'>, <module 'pylsp.plugins.rope_autoimport' from '/home/paag/.local/share/pipx/venvs/python-lsp-server/lib/python3.10/site-packages/pylsp/plugins/rope_autoimport.py'>, <module 'pylsp.plugins.rope_completion' from '/home/paag/.local/share/pipx/venvs/python-lsp-server/lib/python3.10/site-packages/pylsp/plugins/rope_completion.py'>, <module 'pylsp.plugins.rope_rename' from '/home/paag/.local/share/pipx/venvs/python-lsp-server/lib/python3.10/site-packages/pylsp/plugins/rope_rename.py'>]
2024-01-30 10:01:30,674 CET - INFO - pylsp.config.config - Updated settings to {'configurationSources': ['pycodestyle'], 'plugins': {'autopep8': {'enabled': True}, 'jedi_completion': {'include_params': True, 'eager': True, 'fuzzy': False}, 'flake8': {'enabled': False}, 'pylint': {'enabled': False}, 'pycodestyle': {'enabled': False}, 'pyflakes': {'enabled': True}, 'mccabe': {'enabled': True, 'threshold': 45}}}
2024-01-30 10:01:30,675 CET - DEBUG - pylsp.config.config - Got user config from PyCodeStyleConfig: {}
2024-01-30 10:01:30,675 CET - DEBUG - pylsp.config.config - Got project config from PyCodeStyleConfig: {}
2024-01-30 10:01:30,675 CET - DEBUG - pylsp.config.config - With configuration: {'configurationSources': ['pycodestyle'], 'rope': {'extensionModules': ['OpenGL', 'PIL', 'array', 'audioop', 'binascii', 'cPickle', 'cStringIO', 'cmath', 'collections', 'datetime', 'errno', 'exceptions', 'gc', 'imageop', 'imp', 'itertools', 'marshal', 'math', 'matplotlib', 'mmap', 'mpmath', 'msvcrt', 'networkx', 'nose', 'nt', 'numpy', 'operator', 'os', 'os.path', 'pandas', 'parser', 'rgbimg', 'scipy', 'signal', 'skimage', 'sklearn', 'statsmodels', 'strop', 'sympy', 'sys', 'thread', 'time', 'wx', 'xxsubtype', 'zipimport', 'zlib']}, 'plugins': {'rope_completion': {'enabled': False, 'eager': False}, 'jedi_completion': {'include_params': True, 'eager': True, 'fuzzy': False}, 'flake8': {'enabled': False}, 'preload': {'modules': ['OpenGL', 'PIL', 'array', 'audioop', 'binascii', 'cPickle', 'cStringIO', 'cmath', 'collections', 'datetime', 'errno', 'exceptions', 'gc', 'imageop', 'imp', 'itertools', 'marshal', 'math', 'matplotlib', 'mmap', 'mpmath', 'msvcrt', 'networkx', 'nose', 'nt', 'numpy', 'operator', 'os', 'os.path', 'pandas', 'parser', 'rgbimg', 'scipy', 'signal', 'skimage', 'sklearn', 'statsmodels', 'strop', 'sympy', 'sys', 'thread', 'time', 'wx', 'xxsubtype', 'zipimport', 'zlib']}, 'rope_rename': {'enabled': False}, 'pydocstyle': {'enabled': False}, 'autopep8': {'enabled': True}, 'pycodestyle': {'enabled': False}, 'mccabe': {'enabled': True, 'threshold': 45}, 'pyflakes': {'enabled': True}, 'pylint': {'enabled': False, 'args': [], 'executable': None}, 'rope_autoimport': {'enabled': False, 'memory': False, 'completions': {'enabled': True}, 'code_actions': {'enabled': True}}}}
2024-01-30 10:01:30,675 CET - INFO - pylsp.config.config - Disabled plugins: [<module 'pylsp.plugins.flake8_lint' from '/home/paag/.local/share/pipx/venvs/python-lsp-server/lib/python3.10/site-packages/pylsp/plugins/flake8_lint.py'>, <module 'pylsp.plugins.pycodestyle_lint' from '/home/paag/.local/share/pipx/venvs/python-lsp-server/lib/python3.10/site-packages/pylsp/plugins/pycodestyle_lint.py'>, <module 'pylsp.plugins.pydocstyle_lint' from '/home/paag/.local/share/pipx/venvs/python-lsp-server/lib/python3.10/site-packages/pylsp/plugins/pydocstyle_lint.py'>, <module 'pylsp.plugins.pylint_lint' from '/home/paag/.local/share/pipx/venvs/python-lsp-server/lib/python3.10/site-packages/pylsp/plugins/pylint_lint.py'>, <module 'pylsp.plugins.rope_autoimport' from '/home/paag/.local/share/pipx/venvs/python-lsp-server/lib/python3.10/site-packages/pylsp/plugins/rope_autoimport.py'>, <module 'pylsp.plugins.rope_completion' from '/home/paag/.local/share/pipx/venvs/python-lsp-server/lib/python3.10/site-packages/pylsp/plugins/rope_completion.py'>, <module 'pylsp.plugins.rope_rename' from '/home/paag/.local/share/pipx/venvs/python-lsp-server/lib/python3.10/site-packages/pylsp/plugins/rope_rename.py'>]
2024-01-30 10:01:30,676 CET - DEBUG - pylsp.config.config -   pylsp_workspace_configuration_changed [hook]
      config: <pylsp.config.config.Config object at 0x7f99e6c0bac0>
      workspace: <pylsp.workspace.Workspace object at 0x7f99e6cba2c0>
      document: None

@pfoerster
Copy link
Member

@paaguti With the next release, texlab will try to extract the configuration when multiple servers are used (see #1011).

@paaguti
Copy link
Author

paaguti commented Feb 10, 2024

I compiled from github yesterday and I still don't see completion->prefix working correctly. This is my texlab.log:

DEBUG - < {"jsonrpc":"2.0","id":1,"method":"initialize","params":{"processId":63260,"clientInfo":{"name":"Eglot","version":"1.17"},"rootPath":"/home/paag/Documents/clases/RS/s02/","rootUri":"file:///home/paag/Documents/clases/RS/s02","initializationOptions":{},"capabilities":{"workspace":{"applyEdit":true,"executeCommand":{"dynamicRegistration":false},"workspaceEdit":{"documentChanges":true},"didChangeWatchedFiles":{"dynamicRegistration":true},"symbol":{"dynamicRegistration":false},"configuration":true,"workspaceFolders":true},"textDocument":{"synchronization":{"dynamicRegistration":false,"willSave":true,"willSaveWaitUntil":true,"didSave":true},"completion":{"dynamicRegistration":false,"completionItem":{"snippetSupport":true,"deprecatedSupport":true,"resolveSupport":{"properties":["documentation","details","additionalTextEdits"]},"tagSupport":{"valueSet":[1]}},"contextSupport":true},"hover":{"dynamicRegistration":false,"contentFormat":["plaintext"]},"signatureHelp":{"dynamicRegistration":false,"signatureInformation":{"parameterInformation":{"labelOffsetSupport":true},"documentationFormat":["plaintext"],"activeParameterSupport":true}},"references":{"dynamicRegistration":false},"definition":{"dynamicRegistration":false,"linkSupport":true},"declaration":{"dynamicRegistration":false,"linkSupport":true},"implementation":{"dynamicRegistration":false,"linkSupport":true},"typeDefinition":{"dynamicRegistration":false,"linkSupport":true},"documentSymbol":{"dynamicRegistration":false,"hierarchicalDocumentSymbolSupport":true,"symbolKind":{"valueSet":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26]}},"documentHighlight":{"dynamicRegistration":false},"codeAction":{"dynamicRegistration":false,"resolveSupport":{"properties":["edit","command"]},"dataSupport":true,"codeActionLiteralSupport":{"codeActionKind":{"valueSet":["quickfix","refactor","refactor.extract","refactor.inline","refactor.rewrite","source","source.organizeImports"]}},"isPreferredSupport":true},"formatting":{"dynamicRegistration":false},"rangeFormatting":{"dynamicRegistration":false},"rename":{"dynamicRegistration":false},"inlayHint":{"dynamicRegistration":false},"publishDiagnostics":{"relatedInformation":false,"codeDescriptionSupport":false,"tagSupport":{"valueSet":[1,2]}}},"window":{"showDocument":{"support":true},"workDoneProgress":true},"general":{"positionEncodings":["utf-32","utf-8","utf-16"]},"experimental":{}},"workspaceFolders":[{"uri":"file:///home/paag/Documents/clases/RS/s02","name":"~/Documents/clases/RS/s02/"}]}}
TRACE - registering event source with poller: token=Token(0), interests=READABLE
DEBUG - sending message Request(
    Request {
        id: RequestId(
            I32(
                1,
            ),
        ),
        method: "initialize",
        params: Object {
            "capabilities": Object {
                "experimental": Object {},
                "general": Object {
                    "positionEncodings": Array [
                        String("utf-32"),
                        String("utf-8"),
                        String("utf-16"),
                    ],
                },
                "textDocument": Object {
                    "codeAction": Object {
                        "codeActionLiteralSupport": Object {
                            "codeActionKind": Object {
                                "valueSet": Array [
                                    String("quickfix"),
                                    String("refactor"),
                                    String("refactor.extract"),
                                    String("refactor.inline"),
                                    String("refactor.rewrite"),
                                    String("source"),
                                    String("source.organizeImports"),
                                ],
                            },
                        },
                        "dataSupport": Bool(true),
                        "dynamicRegistration": Bool(false),
                        "isPreferredSupport": Bool(true),
                        "resolveSupport": Object {
                            "properties": Array [
                                String("edit"),
                                String("command"),
                            ],
                        },
                    },
                    "completion": Object {
                        "completionItem": Object {
                            "deprecatedSupport": Bool(true),
                            "resolveSupport": Object {
                                "properties": Array [
                                    String("documentation"),
                                    String("details"),
                                    String("additionalTextEdits"),
                                ],
                            },
                            "snippetSupport": Bool(true),
                            "tagSupport": Object {
                                "valueSet": Array [
                                    Number(1),
                                ],
                            },
                        },
                        "contextSupport": Bool(true),
                        "dynamicRegistration": Bool(false),
                    },
                    "declaration": Object {
                        "dynamicRegistration": Bool(false),
                        "linkSupport": Bool(true),
                    },
                    "definition": Object {
                        "dynamicRegistration": Bool(false),
                        "linkSupport": Bool(true),
                    },
                    "documentHighlight": Object {
                        "dynamicRegistration": Bool(false),
                    },
                    "documentSymbol": Object {
                        "dynamicRegistration": Bool(false),
                        "hierarchicalDocumentSymbolSupport": Bool(true),
                        "symbolKind": Object {
                            "valueSet": Array [
                                Number(1),
                                Number(2),
                                Number(3),
                                Number(4),
                                Number(5),
                                Number(6),
                                Number(7),
                                Number(8),
                                Number(9),
                                Number(10),
                                Number(11),
                                Number(12),
                                Number(13),
                                Number(14),
                                Number(15),
                                Number(16),
                                Number(17),
                                Number(18),
                                Number(19),
                                Number(20),
                                Number(21),
                                Number(22),
                                Number(23),
                                Number(24),
                                Number(25),
                                Number(26),
                            ],
                        },
                    },
                    "formatting": Object {
                        "dynamicRegistration": Bool(false),
                    },
                    "hover": Object {
                        "contentFormat": Array [
                            String("plaintext"),
                        ],
                        "dynamicRegistration": Bool(false),
                    },
                    "implementation": Object {
                        "dynamicRegistration": Bool(false),
                        "linkSupport": Bool(true),
                    },
                    "inlayHint": Object {
                        "dynamicRegistration": Bool(false),
                    },
                    "publishDiagnostics": Object {
                        "codeDescriptionSupport": Bool(false),
                        "relatedInformation": Bool(false),
                        "tagSupport": Object {
                            "valueSet": Array [
                                Number(1),
                                Number(2),
                            ],
                        },
                    },
                    "rangeFormatting": Object {
                        "dynamicRegistration": Bool(false),
                    },
                    "references": Object {
                        "dynamicRegistration": Bool(false),
                    },
                    "rename": Object {
                        "dynamicRegistration": Bool(false),
                    },
                    "signatureHelp": Object {
                        "dynamicRegistration": Bool(false),
                        "signatureInformation": Object {
                            "activeParameterSupport": Bool(true),
                            "documentationFormat": Array [
                                String("plaintext"),
                            ],
                            "parameterInformation": Object {
                                "labelOffsetSupport": Bool(true),
                            },
                        },
                    },
                    "synchronization": Object {
                        "didSave": Bool(true),
                        "dynamicRegistration": Bool(false),
                        "willSave": Bool(true),
                        "willSaveWaitUntil": Bool(true),
                    },
                    "typeDefinition": Object {
                        "dynamicRegistration": Bool(false),
                        "linkSupport": Bool(true),
                    },
                },
                "window": Object {
                    "showDocument": Object {
                        "support": Bool(true),
                    },
                    "workDoneProgress": Bool(true),
                },
                "workspace": Object {
                    "applyEdit": Bool(true),
                    "configuration": Bool(true),
                    "didChangeWatchedFiles": Object {
                        "dynamicRegistration": Bool(true),
                    },
                    "executeCommand": Object {
                        "dynamicRegistration": Bool(false),
                    },
                    "symbol": Object {
                        "dynamicRegistration": Bool(false),
                    },
                    "workspaceEdit": Object {
                        "documentChanges": Bool(true),
                    },
                    "workspaceFolders": Bool(true),
                },
            },
            "clientInfo": Object {
                "name": String("Eglot"),
                "version": String("1.17"),
            },
            "initializationOptions": Object {},
            "processId": Number(63260),
            "rootPath": String("/home/paag/Documents/clases/RS/s02/"),
            "rootUri": String("file:///home/paag/Documents/clases/RS/s02"),
            "workspaceFolders": Array [
                Object {
                    "name": String("~/Documents/clases/RS/s02/"),
                    "uri": String("file:///home/paag/Documents/clases/RS/s02"),
                },
            ],
        },
    },
)
DEBUG - > {"jsonrpc":"2.0","id":1,"result":{"capabilities":{"completionProvider":{"resolveProvider":true,"triggerCharacters":["\\","{","}","@","/"," "]},"definitionProvider":true,"documentFormattingProvider":true,"documentHighlightProvider":true,"documentLinkProvider":{"resolveProvider":false},"documentSymbolProvider":true,"executeCommandProvider":{"commands":["texlab.cleanAuxiliary","texlab.cleanArtifacts","texlab.changeEnvironment","texlab.findEnvironments","texlab.showDependencyGraph","texlab.cancelBuild"]},"foldingRangeProvider":true,"hoverProvider":true,"inlayHintProvider":true,"referencesProvider":true,"renameProvider":{"prepareProvider":true},"textDocumentSync":{"change":2,"openClose":true,"save":{"includeText":false}},"workspaceSymbolProvider":true},"serverInfo":{"name":"TexLab","version":"5.12.3"}}}
DEBUG - < {"jsonrpc":"2.0","method":"initialized","params":{}}
DEBUG - sending message Notification(
    Notification {
        method: "initialized",
        params: Object {},
    },
)
DEBUG - > {"jsonrpc":"2.0","id":1,"method":"workspace/configuration","params":{"items":[{"section":"texlab"}]}}
DEBUG - < {"jsonrpc":"2.0","method":"textDocument/didOpen","params":{"textDocument":{"uri":"file:///home/paag/Documents/clases/RS/s02/vmm1.tex","version":0,"languageId":"latex","text":"\\begin{tikzpicture}\n  \\tikzstyle{every node}=[align=center, font=\\sffamily]\n  \\useasboundingbox (0,0) rectangle ++(8cm,5cm);\n  %% \\draw (0,0) rectangle ++(8cm,5cm) ;\n\n  \\node  (blade) at (4cm,1cm) {\\includegraphics[width=7cm, height=2cm]{figures/sm_blade.jpg}};\n\n  %% \\draw (1cm,.5cm) [fill=green!10] rectangle ++(6cm,.5cm) ;\n  %% \\node  (hos) at (4cm,.75cm) {Host OS};\n  \\draw (1cm,1.25cm) [fill=red!10,rounded corners] rectangle ++(6cm,.5cm) ;\n  \\node  (vmm) at (4cm,1.5cm) {Type 1 Hypervisor};\n\n  \\draw (1cm, 2cm) [fill=red!25] rectangle ++(2cm,.5cm) ;\n  \\draw (1cm,2.5cm) [fill=white] rectangle ++(2cm,2cm) ;\n  \\node  (os1) at (2cm,2.25cm) {Guest OS};\n  \\node  (apps1) at (2cm, 3.5cm) {Apps};\n  \\node  (vm1) at (2cm, 5cm) {VM1};\n  \\draw (3.5cm, 2cm) [fill=red!25] rectangle ++(2cm,.5cm) ;\n  \\draw (3.5cm,2.5cm) [fill=white]rectangle ++(2cm,2cm) ;\n  \\node  (os2) at (4.5cm,2.25cm) {Guest OS};\n  \\node  (apps2) at (4.5cm, 3.5cm) {Apps};\n  \\node  (vm2) at (4.5cm, 5cm) {VM2};\n  \\node  (appsn) at (6.5cm, 3.5cm) {\\ldots};\n\\end{tikzpicture}\n"}}}
DEBUG - sending message Notification(
    Notification {
        method: "textDocument/didOpen",
        params: Object {
            "textDocument": Object {
                "languageId": String("latex"),
                "text": String("\\begin{tikzpicture}\n  \\tikzstyle{every node}=[align=center, font=\\sffamily]\n  \\useasboundingbox (0,0) rectangle ++(8cm,5cm);\n  %% \\draw (0,0) rectangle ++(8cm,5cm) ;\n\n  \\node  (blade) at (4cm,1cm) {\\includegraphics[width=7cm, height=2cm]{figures/sm_blade.jpg}};\n\n  %% \\draw (1cm,.5cm) [fill=green!10] rectangle ++(6cm,.5cm) ;\n  %% \\node  (hos) at (4cm,.75cm) {Host OS};\n  \\draw (1cm,1.25cm) [fill=red!10,rounded corners] rectangle ++(6cm,.5cm) ;\n  \\node  (vmm) at (4cm,1.5cm) {Type 1 Hypervisor};\n\n  \\draw (1cm, 2cm) [fill=red!25] rectangle ++(2cm,.5cm) ;\n  \\draw (1cm,2.5cm) [fill=white] rectangle ++(2cm,2cm) ;\n  \\node  (os1) at (2cm,2.25cm) {Guest OS};\n  \\node  (apps1) at (2cm, 3.5cm) {Apps};\n  \\node  (vm1) at (2cm, 5cm) {VM1};\n  \\draw (3.5cm, 2cm) [fill=red!25] rectangle ++(2cm,.5cm) ;\n  \\draw (3.5cm,2.5cm) [fill=white]rectangle ++(2cm,2cm) ;\n  \\node  (os2) at (4.5cm,2.25cm) {Guest OS};\n  \\node  (apps2) at (4.5cm, 3.5cm) {Apps};\n  \\node  (vm2) at (4.5cm, 5cm) {VM2};\n  \\node  (appsn) at (6.5cm, 3.5cm) {\\ldots};\n\\end{tikzpicture}\n"),
                "uri": String("file:///home/paag/Documents/clases/RS/s02/vmm1.tex"),
                "version": Number(0),
            },
        },
    },
)
DEBUG - Opening document file:///home/paag/Documents/clases/RS/s02/vmm1.tex...
DEBUG - Loading document /home/paag/Documents/clases/RS/s02/packages.tex from disk...
DEBUG - Opening document file:///home/paag/Documents/clases/RS/s02/packages.tex...
DEBUG - < {"jsonrpc":"2.0","method":"workspace/didChangeConfiguration","params":{"settings":{"pylsp":{"configurationSources":["pycodestyle"],"plugins":{"autopep8":{"enabled":true},"jedi_completion":{"include_params":true,"eager":true,"fuzzy":false},"flake8":{"enabled":false},"pylint":{"enabled":false},"pycodestyle":{"enabled":false},"pyflakes":{"enabled":true},"mccabe":{"enabled":true,"threshold":45}}},"texlab":{"completion":{"matcher":"prefix"},"experimental":{"verbatimEnvironments":["lstlisting","verbatim","luacode"]}}}}}
DEBUG - Loading document /home/paag/Documents/clases/RS/s02/full-virt.tex from disk...
DEBUG - sending message Notification(
    Notification {
        method: "workspace/didChangeConfiguration",
        params: Object {
            "settings": Object {
                "pylsp": Object {
                    "configurationSources": Array [
                        String("pycodestyle"),
                    ],
                    "plugins": Object {
                        "autopep8": Object {
                            "enabled": Bool(true),
                        },
                        "flake8": Object {
                            "enabled": Bool(false),
                        },
                        "jedi_completion": Object {
                            "eager": Bool(true),
                            "fuzzy": Bool(false),
                            "include_params": Bool(true),
                        },
                        "mccabe": Object {
                            "enabled": Bool(true),
                            "threshold": Number(45),
                        },
                        "pycodestyle": Object {
                            "enabled": Bool(false),
                        },
                        "pyflakes": Object {
                            "enabled": Bool(true),
                        },
                        "pylint": Object {
                            "enabled": Bool(false),
                        },
                    },
                },
                "texlab": Object {
                    "completion": Object {
                        "matcher": String("prefix"),
                    },
                    "experimental": Object {
                        "verbatimEnvironments": Array [
                            String("lstlisting"),
                            String("verbatim"),
                            String("luacode"),
                        ],
                    },
                },
            },
        },
    },
)
DEBUG - Opening document file:///home/paag/Documents/clases/RS/s02/full-virt.tex...
DEBUG - Loading document /home/paag/Documents/clases/RS/s02/tikz-base.tex from disk...
DEBUG - Opening document file:///home/paag/Documents/clases/RS/s02/tikz-base.tex...
DEBUG - Loading document /home/paag/Documents/clases/RS/s02/chat-gpt.tex from disk...
DEBUG - Opening document file:///home/paag/Documents/clases/RS/s02/chat-gpt.tex...
DEBUG - Loading document /home/paag/Documents/clases/RS/s02/os-rings.tex from disk...
DEBUG - Opening document file:///home/paag/Documents/clases/RS/s02/os-rings.tex...
DEBUG - Loading document /home/paag/Documents/clases/RS/s02/containers.tex from disk...
DEBUG - Opening document file:///home/paag/Documents/clases/RS/s02/containers.tex...
DEBUG - Loading document /home/paag/Documents/clases/RS/s02/hw-assist.tex from disk...
DEBUG - Opening document file:///home/paag/Documents/clases/RS/s02/hw-assist.tex...
DEBUG - Loading document /home/paag/Documents/clases/RS/s02/vmm2.tex from disk...
DEBUG - Opening document file:///home/paag/Documents/clases/RS/s02/vmm2.tex...
DEBUG - Loading document /home/paag/Documents/clases/RS/s02/acronyms.tex from disk...
DEBUG - Opening document file:///home/paag/Documents/clases/RS/s02/acronyms.tex...
DEBUG - Loading document /home/paag/Documents/clases/RS/s02/inside-vmm.tex from disk...
DEBUG - Opening document file:///home/paag/Documents/clases/RS/s02/inside-vmm.tex...
DEBUG - Loading document /home/paag/Documents/clases/RS/s02/prings.tex from disk...
DEBUG - Opening document file:///home/paag/Documents/clases/RS/s02/prings.tex...
DEBUG - Loading document /home/paag/Documents/clases/RS/s02/para-virt.tex from disk...
DEBUG - Opening document file:///home/paag/Documents/clases/RS/s02/para-virt.tex...
DEBUG - Loading document /home/paag/Documents/clases/RS/s02/hthread.tex from disk...
DEBUG - Opening document file:///home/paag/Documents/clases/RS/s02/hthread.tex...
TRACE - adding inotify watch: /home/paag/Documents/clases/RS/s02/
DEBUG - > {"jsonrpc":"2.0","id":2,"method":"workspace/configuration","params":{"items":[{"section":"texlab"}]}}
DEBUG - < {"jsonrpc":"2.0","id":2,"method":"textDocument/inlayHint","params":{"textDocument":{"uri":"file:///home/paag/Documents/clases/RS/s02/vmm1.tex"},"range":{"start":{"line":0,"character":0},"end":{"line":24,"character":0}}}}
DEBUG - sending message Request(
    Request {
        id: RequestId(
            I32(
                2,
            ),
        ),
        method: "textDocument/inlayHint",
        params: Object {
            "range": Object {
                "end": Object {
                    "character": Number(0),
                    "line": Number(24),
                },
                "start": Object {
                    "character": Number(0),
                    "line": Number(0),
                },
            },
            "textDocument": Object {
                "uri": String("file:///home/paag/Documents/clases/RS/s02/vmm1.tex"),
            },
        },
    },
)
DEBUG - > {"jsonrpc":"2.0","id":2,"result":[]}
DEBUG - < {"jsonrpc":"2.0","id":1,"result":[{"completion":{"matcher":"prefix"},"experimental":{"verbatimEnvironments":["lstlisting","verbatim","luacode"]}}]}
DEBUG - sending message Response(
    Response {
        id: RequestId(
            I32(
                1,
            ),
        ),
        result: Some(
            Array [
                Object {
                    "completion": Object {
                        "matcher": String("prefix"),
                    },
                    "experimental": Object {
                        "verbatimEnvironments": Array [
                            String("lstlisting"),
                            String("verbatim"),
                            String("luacode"),
                        ],
                    },
                },
            ],
        ),
        error: None,
    },
)
DEBUG - Opening document file:///home/paag/Documents/clases/RS/s02/prings.tex...
DEBUG - Opening document file:///home/paag/Documents/clases/RS/s02/containers.tex...
DEBUG - Opening document file:///home/paag/Documents/clases/RS/s02/vmm2.tex...
DEBUG - Opening document file:///home/paag/Documents/clases/RS/s02/hthread.tex...
DEBUG - < {"jsonrpc":"2.0","id":2,"result":[{"completion":{"matcher":"prefix"},"experimental":{"verbatimEnvironments":["lstlisting","verbatim","luacode"]}}]}
DEBUG - sending message Response(
    Response {
        id: RequestId(
            I32(
                2,
            ),
        ),
        result: Some(
            Array [
                Object {
                    "completion": Object {
                        "matcher": String("prefix"),
                    },
                    "experimental": Object {
                        "verbatimEnvironments": Array [
                            String("lstlisting"),
                            String("verbatim"),
                            String("luacode"),
                        ],
                    },
                },
            ],
        ),
        error: None,
    },
)
DEBUG - Opening document file:///home/paag/Documents/clases/RS/s02/full-virt.tex...
DEBUG - Opening document file:///home/paag/Documents/clases/RS/s02/tikz-base.tex...
DEBUG - Opening document file:///home/paag/Documents/clases/RS/s02/inside-vmm.tex...
DEBUG - Opening document file:///home/paag/Documents/clases/RS/s02/os-rings.tex...
DEBUG - Opening document file:///home/paag/Documents/clases/RS/s02/packages.tex...
DEBUG - Opening document file:///home/paag/Documents/clases/RS/s02/para-virt.tex...
DEBUG - Opening document file:///home/paag/Documents/clases/RS/s02/hw-assist.tex...
DEBUG - Opening document file:///home/paag/Documents/clases/RS/s02/chat-gpt.tex...
DEBUG - Opening document file:///home/paag/Documents/clases/RS/s02/vmm1.tex...
DEBUG - Opening document file:///home/paag/Documents/clases/RS/s02/acronyms.tex...
DEBUG - Opening document file:///home/paag/Documents/clases/RS/s02/prings.tex...
DEBUG - Opening document file:///home/paag/Documents/clases/RS/s02/containers.tex...
DEBUG - Opening document file:///home/paag/Documents/clases/RS/s02/vmm2.tex...
DEBUG - Opening document file:///home/paag/Documents/clases/RS/s02/hthread.tex...
DEBUG - Opening document file:///home/paag/Documents/clases/RS/s02/full-virt.tex...
DEBUG - Opening document file:///home/paag/Documents/clases/RS/s02/tikz-base.tex...
DEBUG - Opening document file:///home/paag/Documents/clases/RS/s02/inside-vmm.tex...
DEBUG - Opening document file:///home/paag/Documents/clases/RS/s02/os-rings.tex...
DEBUG - Opening document file:///home/paag/Documents/clases/RS/s02/packages.tex...
DEBUG - Opening document file:///home/paag/Documents/clases/RS/s02/para-virt.tex...
DEBUG - Opening document file:///home/paag/Documents/clases/RS/s02/hw-assist.tex...
DEBUG - Opening document file:///home/paag/Documents/clases/RS/s02/chat-gpt.tex...
DEBUG - Opening document file:///home/paag/Documents/clases/RS/s02/vmm1.tex...
DEBUG - Opening document file:///home/paag/Documents/clases/RS/s02/acronyms.tex...
DEBUG - > {"jsonrpc":"2.0","method":"textDocument/publishDiagnostics","params":{"diagnostics":[],"uri":"file:///home/paag/Documents/clases/RS/s02/tikz-base.tex"}}
DEBUG - > {"jsonrpc":"2.0","method":"textDocument/publishDiagnostics","params":{"diagnostics":[],"uri":"file:///home/paag/Documents/clases/RS/s02/vmm2.tex"}}
DEBUG - > {"jsonrpc":"2.0","method":"textDocument/publishDiagnostics","params":{"diagnostics":[],"uri":"file:///home/paag/Documents/clases/RS/s02/hw-assist.tex"}}
DEBUG - > {"jsonrpc":"2.0","method":"textDocument/publishDiagnostics","params":{"diagnostics":[],"uri":"file:///home/paag/Documents/clases/RS/s02/hthread.tex"}}
DEBUG - > {"jsonrpc":"2.0","method":"textDocument/publishDiagnostics","params":{"diagnostics":[],"uri":"file:///home/paag/Documents/clases/RS/s02/prings.tex"}}
DEBUG - > {"jsonrpc":"2.0","method":"textDocument/publishDiagnostics","params":{"diagnostics":[],"uri":"file:///home/paag/Documents/clases/RS/s02/os-rings.tex"}}
DEBUG - > {"jsonrpc":"2.0","method":"textDocument/publishDiagnostics","params":{"diagnostics":[],"uri":"file:///home/paag/Documents/clases/RS/s02/chat-gpt.tex"}}
DEBUG - > {"jsonrpc":"2.0","method":"textDocument/publishDiagnostics","params":{"diagnostics":[],"uri":"file:///home/paag/Documents/clases/RS/s02/full-virt.tex"}}
DEBUG - > {"jsonrpc":"2.0","method":"textDocument/publishDiagnostics","params":{"diagnostics":[],"uri":"file:///home/paag/Documents/clases/RS/s02/inside-vmm.tex"}}
DEBUG - > {"jsonrpc":"2.0","method":"textDocument/publishDiagnostics","params":{"diagnostics":[],"uri":"file:///home/paag/Documents/clases/RS/s02/packages.tex"}}
DEBUG - > {"jsonrpc":"2.0","method":"textDocument/publishDiagnostics","params":{"diagnostics":[],"uri":"file:///home/paag/Documents/clases/RS/s02/vmm1.tex"}}
DEBUG - > {"jsonrpc":"2.0","method":"textDocument/publishDiagnostics","params":{"diagnostics":[],"uri":"file:///home/paag/Documents/clases/RS/s02/acronyms.tex"}}
DEBUG - > {"jsonrpc":"2.0","method":"textDocument/publishDiagnostics","params":{"diagnostics":[],"uri":"file:///home/paag/Documents/clases/RS/s02/para-virt.tex"}}
DEBUG - > {"jsonrpc":"2.0","method":"textDocument/publishDiagnostics","params":{"diagnostics":[],"uri":"file:///home/paag/Documents/clases/RS/s02/containers.tex"}}
INFO - Detected distribution: Texlive
DEBUG - Opening document file:///home/paag/Documents/clases/RS/s02/prings.tex...
DEBUG - Opening document file:///home/paag/Documents/clases/RS/s02/containers.tex...
DEBUG - Opening document file:///home/paag/Documents/clases/RS/s02/vmm2.tex...
DEBUG - Opening document file:///home/paag/Documents/clases/RS/s02/hthread.tex...
DEBUG - Opening document file:///home/paag/Documents/clases/RS/s02/full-virt.tex...
DEBUG - Opening document file:///home/paag/Documents/clases/RS/s02/tikz-base.tex...
DEBUG - Opening document file:///home/paag/Documents/clases/RS/s02/inside-vmm.tex...
DEBUG - Opening document file:///home/paag/Documents/clases/RS/s02/os-rings.tex...
DEBUG - Opening document file:///home/paag/Documents/clases/RS/s02/packages.tex...
DEBUG - Opening document file:///home/paag/Documents/clases/RS/s02/para-virt.tex...
DEBUG - Opening document file:///home/paag/Documents/clases/RS/s02/hw-assist.tex...
DEBUG - Opening document file:///home/paag/Documents/clases/RS/s02/chat-gpt.tex...
DEBUG - Opening document file:///home/paag/Documents/clases/RS/s02/vmm1.tex...
DEBUG - Opening document file:///home/paag/Documents/clases/RS/s02/acronyms.tex...
DEBUG - < {"jsonrpc":"2.0","id":3,"method":"textDocument/hover","params":{"textDocument":{"uri":"file:///home/paag/Documents/clases/RS/s02/vmm1.tex"},"position":{"line":4,"character":0}}}
DEBUG - sending message Request(
    Request {
        id: RequestId(
            I32(
                3,
            ),
        ),
        method: "textDocument/hover",
        params: Object {
            "position": Object {
                "character": Number(0),
                "line": Number(4),
            },
            "textDocument": Object {
                "uri": String("file:///home/paag/Documents/clases/RS/s02/vmm1.tex"),
            },
        },
    },
)
DEBUG - > {"jsonrpc":"2.0","id":3,"result":null}
DEBUG - < {"jsonrpc":"2.0","id":4,"method":"textDocument/documentHighlight","params":{"textDocument":{"uri":"file:///home/paag/Documents/clases/RS/s02/vmm1.tex"},"position":{"line":4,"character":0}}}
DEBUG - sending message Request(
    Request {
        id: RequestId(
            I32(
                4,
            ),
        ),
        method: "textDocument/documentHighlight",
        params: Object {
            "position": Object {
                "character": Number(0),
                "line": Number(4),
            },
            "textDocument": Object {
                "uri": String("file:///home/paag/Documents/clases/RS/s02/vmm1.tex"),
            },
        },
    },
)
DEBUG - > {"jsonrpc":"2.0","id":4,"result":[]}
DEBUG - < {"jsonrpc":"2.0","method":"textDocument/didChange","params":{"textDocument":{"uri":"file:///home/paag/Documents/clases/RS/s02/vmm1.tex","version":1},"contentChanges":[{"range":{"start":{"line":4,"character":0},"end":{"line":4,"character":0}},"rangeLength":0,"text":"  "}]}}
DEBUG - sending message Notification(
    Notification {
        method: "textDocument/didChange",
        params: Object {
            "contentChanges": Array [
                Object {
                    "range": Object {
                        "end": Object {
                            "character": Number(0),
                            "line": Number(4),
                        },
                        "start": Object {
                            "character": Number(0),
                            "line": Number(4),
                        },
                    },
                    "rangeLength": Number(0),
                    "text": String("  "),
                },
            ],
            "textDocument": Object {
                "uri": String("file:///home/paag/Documents/clases/RS/s02/vmm1.tex"),
                "version": Number(1),
            },
        },
    },
)
DEBUG - < {"jsonrpc":"2.0","id":6,"method":"textDocument/documentHighlight","params":{"textDocument":{"uri":"file:///home/paag/Documents/clases/RS/s02/vmm1.tex"},"position":{"line":4,"character":2}}}
DEBUG - sending message Request(
    Request {
        id: RequestId(
            I32(
                6,
            ),
        ),
        method: "textDocument/documentHighlight",
        params: Object {
            "position": Object {
                "character": Number(2),
                "line": Number(4),
            },
            "textDocument": Object {
                "uri": String("file:///home/paag/Documents/clases/RS/s02/vmm1.tex"),
            },
        },
    },
)
DEBUG - Opening document file:///home/paag/Documents/clases/RS/s02/vmm1.tex...
DEBUG - < {"jsonrpc":"2.0","id":5,"method":"textDocument/hover","params":{"textDocument":{"uri":"file:///home/paag/Documents/clases/RS/s02/vmm1.tex"},"position":{"line":4,"character":2}}}
DEBUG - sending message Request(
    Request {
        id: RequestId(
            I32(
                5,
            ),
        ),
        method: "textDocument/hover",
        params: Object {
            "position": Object {
                "character": Number(2),
                "line": Number(4),
            },
            "textDocument": Object {
                "uri": String("file:///home/paag/Documents/clases/RS/s02/vmm1.tex"),
            },
        },
    },
)
DEBUG - > {"jsonrpc":"2.0","id":6,"result":[]}
DEBUG - > {"jsonrpc":"2.0","id":5,"result":null}
DEBUG - < {"jsonrpc":"2.0","id":7,"method":"textDocument/inlayHint","params":{"textDocument":{"uri":"file:///home/paag/Documents/clases/RS/s02/vmm1.tex"},"range":{"start":{"line":4,"character":0},"end":{"line":24,"character":0}}}}
DEBUG - sending message Request(
    Request {
        id: RequestId(
            I32(
                7,
            ),
        ),
        method: "textDocument/inlayHint",
        params: Object {
            "range": Object {
                "end": Object {
                    "character": Number(0),
                    "line": Number(24),
                },
                "start": Object {
                    "character": Number(0),
                    "line": Number(4),
                },
            },
            "textDocument": Object {
                "uri": String("file:///home/paag/Documents/clases/RS/s02/vmm1.tex"),
            },
        },
    },
)
DEBUG - > {"jsonrpc":"2.0","id":7,"result":[]}
DEBUG - > {"jsonrpc":"2.0","method":"textDocument/publishDiagnostics","params":{"diagnostics":[],"uri":"file:///home/paag/Documents/clases/RS/s02/hw-assist.tex"}}
DEBUG - > {"jsonrpc":"2.0","method":"textDocument/publishDiagnostics","params":{"diagnostics":[],"uri":"file:///home/paag/Documents/clases/RS/s02/chat-gpt.tex"}}
DEBUG - > {"jsonrpc":"2.0","method":"textDocument/publishDiagnostics","params":{"diagnostics":[],"uri":"file:///home/paag/Documents/clases/RS/s02/full-virt.tex"}}
DEBUG - > {"jsonrpc":"2.0","method":"textDocument/publishDiagnostics","params":{"diagnostics":[],"uri":"file:///home/paag/Documents/clases/RS/s02/vmm2.tex"}}
DEBUG - > {"jsonrpc":"2.0","method":"textDocument/publishDiagnostics","params":{"diagnostics":[],"uri":"file:///home/paag/Documents/clases/RS/s02/os-rings.tex"}}
DEBUG - > {"jsonrpc":"2.0","method":"textDocument/publishDiagnostics","params":{"diagnostics":[],"uri":"file:///home/paag/Documents/clases/RS/s02/hthread.tex"}}
DEBUG - > {"jsonrpc":"2.0","method":"textDocument/publishDiagnostics","params":{"diagnostics":[],"uri":"file:///home/paag/Documents/clases/RS/s02/packages.tex"}}
DEBUG - > {"jsonrpc":"2.0","method":"textDocument/publishDiagnostics","params":{"diagnostics":[],"uri":"file:///home/paag/Documents/clases/RS/s02/vmm1.tex"}}
DEBUG - > {"jsonrpc":"2.0","method":"textDocument/publishDiagnostics","params":{"diagnostics":[],"uri":"file:///home/paag/Documents/clases/RS/s02/inside-vmm.tex"}}
DEBUG - > {"jsonrpc":"2.0","method":"textDocument/publishDiagnostics","params":{"diagnostics":[],"uri":"file:///home/paag/Documents/clases/RS/s02/tikz-base.tex"}}
DEBUG - > {"jsonrpc":"2.0","method":"textDocument/publishDiagnostics","params":{"diagnostics":[],"uri":"file:///home/paag/Documents/clases/RS/s02/containers.tex"}}
DEBUG - > {"jsonrpc":"2.0","method":"textDocument/publishDiagnostics","params":{"diagnostics":[],"uri":"file:///home/paag/Documents/clases/RS/s02/acronyms.tex"}}
DEBUG - > {"jsonrpc":"2.0","method":"textDocument/publishDiagnostics","params":{"diagnostics":[],"uri":"file:///home/paag/Documents/clases/RS/s02/para-virt.tex"}}
DEBUG - > {"jsonrpc":"2.0","method":"textDocument/publishDiagnostics","params":{"diagnostics":[],"uri":"file:///home/paag/Documents/clases/RS/s02/prings.tex"}}
DEBUG - < {"jsonrpc":"2.0","method":"textDocument/didChange","params":{"textDocument":{"uri":"file:///home/paag/Documents/clases/RS/s02/vmm1.tex","version":2},"contentChanges":[{"range":{"start":{"line":4,"character":2},"end":{"line":4,"character":2}},"rangeLength":0,"text":"\\"}]}}
DEBUG - sending message Notification(
    Notification {
        method: "textDocument/didChange",
        params: Object {
            "contentChanges": Array [
                Object {
                    "range": Object {
                        "end": Object {
                            "character": Number(2),
                            "line": Number(4),
                        },
                        "start": Object {
                            "character": Number(2),
                            "line": Number(4),
                        },
                    },
                    "rangeLength": Number(0),
                    "text": String("\\"),
                },
            ],
            "textDocument": Object {
                "uri": String("file:///home/paag/Documents/clases/RS/s02/vmm1.tex"),
                "version": Number(2),
            },
        },
    },
)
DEBUG - < {"jsonrpc":"2.0","id":8,"method":"textDocument/completion","params":{"textDocument":{"uri":"file:///home/paag/Documents/clases/RS/s02/vmm1.tex"},"position":{"line":4,"character":3},"context":{"triggerKind":2,"triggerCharacter":"\\"}}}
DEBUG - sending message Request(
    Request {
        id: RequestId(
            I32(
                8,
            ),
        ),
        method: "textDocument/completion",
        params: Object {
            "context": Object {
                "triggerCharacter": String("\\"),
                "triggerKind": Number(2),
            },
            "position": Object {
                "character": Number(3),
                "line": Number(4),
            },
            "textDocument": Object {
                "uri": String("file:///home/paag/Documents/clases/RS/s02/vmm1.tex"),
            },
        },
    },
)
DEBUG - Opening document file:///home/paag/Documents/clases/RS/s02/vmm1.tex...
DEBUG - > {"jsonrpc":"2.0","id":8,"result":{"isIncomplete":true,"items":[{"detail":"built-in","kind":1,"label":"!","preselect":false,"sortText":"00","textEdit":{"newText":"!","range":{"end":{"character":3,"line":4},"start":{"character":3,"line":4}}}},{"detail":"built-in","kind":1,"label":"\"","preselect":false,"sortText":"01","textEdit":{"newText":"\"","range":{"end":{"character":3,"line":4},"start":{"character":3,"line":4}}}},{"detail":"built-in","kind":1,"label":"#","preselect":false,"sortText":"02","textEdit":{"newText":"#","range":{"end":{"character":3,"line":4},"start":{"character":3,"line":4}}}},{"detail":"$, built-in","kind":1,"label":"$","preselect":false,"sortText":"03","textEdit":{"newText":"$","range":{"end":{"character":3,"line":4},"start":{"character":3,"line":4}}}},{"detail":"built-in","kind":1,"label":"%","preselect":false,"sortText":"04","textEdit":{"newText":"%","range":{"end":{"character":3,"line":4},"start":{"character":3,"line":4}}}},{"detail":"built-in","kind":1,"label":"&","preselect":false,"sortText":"05","textEdit":{"newText":"&","range":{"end":{"character":3,"line":4},"start":{"character":3,"line":4}}}},{"detail":"built-in","kind":1,"label":"'","preselect":false,"sortText":"06","textEdit":{"newText":"'","range":{"end":{"character":3,"line":4},"start":{"character":3,"line":4}}}},{"detail":"built-in","kind":1,"label":"*","preselect":false,"sortText":"07","textEdit":{"newText":"*","range":{"end":{"character":3,"line":4},"start":{"character":3,"line":4}}}},{"detail":"built-in","kind":1,"label":"+","preselect":false,"sortText":"08","textEdit":{"newText":"+","range":{"end":{"character":3,"line":4},"start":{"character":3,"line":4}}}},{"detail":"built-in","kind":1,"label":",","preselect":false,"sortText":"09","textEdit":{"newText":",","range":{"end":{"character":3,"line":4},"start":{"character":3,"line":4}}}},{"detail":"built-in","kind":1,"label":"-","preselect":false,"sortText":"10","textEdit":{"newText":"-","range":{"end":{"character":3,"line":4},"start":{"character":3,"line":4}}}},{"detail":"built-in","kind":1,"label":".","preselect":false,"sortText":"11","textEdit":{"newText":".","range":{"end":{"character":3,"line":4},"start":{"character":3,"line":4}}}},{"detail":"built-in","kind":1,"label":"/","preselect":false,"sortText":"12","textEdit":{"newText":"/","range":{"end":{"character":3,"line":4},"start":{"character":3,"line":4}}}},{"detail":"built-in","kind":1,"label":":","preselect":false,"sortText":"13","textEdit":{"newText":":","range":{"end":{"character":3,"line":4},"start":{"character":3,"line":4}}}},{"detail":"built-in","kind":1,"label":"<","preselect":false,"sortText":"14","textEdit":{"newText":"<","range":{"end":{"character":3,"line":4},"start":{"character":3,"line":4}}}},{"detail":"built-in","kind":1,"label":"=","preselect":false,"sortText":"15","textEdit":{"newText":"=","range":{"end":{"character":3,"line":4},"start":{"character":3,"line":4}}}},{"detail":"built-in","kind":1,"label":">","preselect":false,"sortText":"16","textEdit":{"newText":">","range":{"end":{"character":3,"line":4},"start":{"character":3,"line":4}}}},{"detail":"built-in","kind":1,"label":"?","preselect":false,"sortText":"17","textEdit":{"newText":"?","range":{"end":{"character":3,"line":4},"start":{"character":3,"line":4}}}},{"detail":"built-in","kind":1,"label":"A","preselect":false,"sortText":"18","textEdit":{"newText":"A","range":{"end":{"character":3,"line":4},"start":{"character":3,"line":4}}}},{"detail":"built-in","kind":1,"label":"E","preselect":false,"sortText":"19","textEdit":{"newText":"E","range":{"end":{"character":3,"line":4},"start":{"character":3,"line":4}}}},{"detail":"built-in","kind":1,"label":"G","preselect":false,"sortText":"20","textEdit":{"newText":"G","range":{"end":{"character":3,"line":4},"start":{"character":3,"line":4}}}},{"detail":"built-in","kind":1,"label":"H","preselect":false,"sortText":"21","textEdit":{"newText":"H","range":{"end":{"character":3,"line":4},"start":{"character":3,"line":4}}}},{"detail":"built-in","kind":1,"label":"I","preselect":false,"sortText":"22","textEdit":{"newText":"I","range":{"end":{"character":3,"line":4},"start":{"character":3,"line":4}}}},{"detail":"built-in","kind":1,"label":"J","preselect":false,"sortText":"23","textEdit":{"newText":"J","range":{"end":{"character":3,"line":4},"start":{"character":3,"line":4}}}},{"detail":"built-in","kind":1,"label":"L","preselect":false,"sortText":"24","textEdit":{"newText":"L","range":{"end":{"character":3,"line":4},"start":{"character":3,"line":4}}}},{"detail":"built-in","kind":1,"label":"M","preselect":false,"sortText":"25","textEdit":{"newText":"M","range":{"end":{"character":3,"line":4},"start":{"character":3,"line":4}}}},{"detail":"built-in","kind":1,"label":"O","preselect":false,"sortText":"26","textEdit":{"newText":"O","range":{"end":{"character":3,"line":4},"start":{"character":3,"line":4}}}},{"detail":"built-in","kind":1,"label":"P","preselect":false,"sortText":"27","textEdit":{"newText":"P","range":{"end":{"character":3,"line":4},"start":{"character":3,"line":4}}}},{"detail":"built-in","kind":1,"label":"S","preselect":false,"sortText":"28","textEdit":{"newText":"S","range":{"end":{"character":3,"line":4},"start":{"character":3,"line":4}}}},{"detail":"built-in","kind":1,"label":"T","preselect":false,"sortText":"29","textEdit":{"newText":"T","range":{"end":{"character":3,"line":4},"start":{"character":3,"line":4}}}},{"detail":"built-in","kind":1,"label":"Z","preselect":false,"sortText":"30","textEdit":{"newText":"Z","range":{"end":{"character":3,"line":4},"start":{"character":3,"line":4}}}},{"detail":"built-in","kind":1,"label":"^","preselect":false,"sortText":"31","textEdit":{"newText":"^","range":{"end":{"character":3,"line":4},"start":{"character":3,"line":4}}}},{"detail":"_, built-in","kind":1,"label":"_","preselect":false,"sortText":"32","textEdit":{"newText":"_","range":{"end":{"character":3,"line":4},"start":{"character":3,"line":4}}}},{"detail":"built-in","kind":1,"label":"`","preselect":false,"sortText":"33","textEdit":{"newText":"`","range":{"end":{"character":3,"line":4},"start":{"character":3,"line":4}}}},{"detail":"built-in","kind":1,"label":"a","preselect":false,"sortText":"34","textEdit":{"newText":"a","range":{"end":{"character":3,"line":4},"start":{"character":3,"line":4}}}},{"detail":"built-in","kind":1,"label":"b","preselect":false,"sortText":"35","textEdit":{"newText":"b","range":{"end":{"character":3,"line":4},"start":{"character":3,"line":4}}}},{"detail":"built-in","kind":1,"label":"c","preselect":false,"sortText":"36","textEdit":{"newText":"c","range":{"end":{"character":3,"line":4},"start":{"character":3,"line":4}}}},{"detail":"built-in","kind":1,"label":"d","preselect":false,"sortText":"37","textEdit":{"newText":"d","range":{"end":{"character":3,"line":4},"start":{"character":3,"line":4}}}},{"detail":"built-in","kind":1,"label":"e","preselect":false,"sortText":"38","textEdit":{"newText":"e","range":{"end":{"character":3,"line":4},"start":{"character":3,"line":4}}}},{"detail":"built-in","kind":1,"label":"f","preselect":false,"sortText":"39","textEdit":{"newText":"f","range":{"end":{"character":3,"line":4},"start":{"character":3,"line":4}}}},{"detail":"built-in","kind":1,"label":"g","preselect":false,"sortText":"40","textEdit":{"newText":"g","range":{"end":{"character":3,"line":4},"start":{"character":3,"line":4}}}},{"detail":"built-in","kind":1,"label":"h","preselect":false,"sortText":"41","textEdit":{"newText":"h","range":{"end":{"character":3,"line":4},"start":{"character":3,"line":4}}}},{"detail":"built-in","kind":1,"label":"i","preselect":false,"sortText":"42","textEdit":{"newText":"i","range":{"end":{"character":3,"line":4},"start":{"character":3,"line":4}}}},{"detail":"built-in","kind":1,"label":"j","preselect":false,"sortText":"43","textEdit":{"newText":"j","range":{"end":{"character":3,"line":4},"start":{"character":3,"line":4}}}},{"detail":"built-in","kind":1,"label":"k","preselect":false,"sortText":"44","textEdit":{"newText":"k","range":{"end":{"character":3,"line":4},"start":{"character":3,"line":4}}}},{"detail":"built-in","kind":1,"label":"l","preselect":false,"sortText":"45","textEdit":{"newText":"l","range":{"end":{"character":3,"line":4},"start":{"character":3,"line":4}}}},{"detail":"built-in","kind":1,"label":"m","preselect":false,"sortText":"46","textEdit":{"newText":"m","range":{"end":{"character":3,"line":4},"start":{"character":3,"line":4}}}},{"detail":"built-in","kind":1,"label":"n","preselect":false,"sortText":"47","textEdit":{"newText":"n","range":{"end":{"character":3,"line":4},"start":{"character":3,"line":4}}}},{"detail":"built-in","kind":1,"label":"o","preselect":false,"sortText":"48","textEdit":{"newText":"o","range":{"end":{"character":3,"line":4},"start":{"character":3,"line":4}}}},{"detail":"built-in","kind":1,"label":"p","preselect":false,"sortText":"49","textEdit":{"newText":"p","range":{"end":{"character":3,"line":4},"start":{"character":3,"line":4}}}}]}}
DEBUG - > {"jsonrpc":"2.0","method":"textDocument/publishDiagnostics","params":{"diagnostics":[],"uri":"file:///home/paag/Documents/clases/RS/s02/packages.tex"}}
DEBUG - > {"jsonrpc":"2.0","method":"textDocument/publishDiagnostics","params":{"diagnostics":[],"uri":"file:///home/paag/Documents/clases/RS/s02/tikz-base.tex"}}
DEBUG - > {"jsonrpc":"2.0","method":"textDocument/publishDiagnostics","params":{"diagnostics":[],"uri":"file:///home/paag/Documents/clases/RS/s02/vmm2.tex"}}
DEBUG - > {"jsonrpc":"2.0","method":"textDocument/publishDiagnostics","params":{"diagnostics":[],"uri":"file:///home/paag/Documents/clases/RS/s02/os-rings.tex"}}
DEBUG - > {"jsonrpc":"2.0","method":"textDocument/publishDiagnostics","params":{"diagnostics":[],"uri":"file:///home/paag/Documents/clases/RS/s02/vmm1.tex"}}
DEBUG - > {"jsonrpc":"2.0","method":"textDocument/publishDiagnostics","params":{"diagnostics":[],"uri":"file:///home/paag/Documents/clases/RS/s02/chat-gpt.tex"}}
DEBUG - > {"jsonrpc":"2.0","method":"textDocument/publishDiagnostics","params":{"diagnostics":[],"uri":"file:///home/paag/Documents/clases/RS/s02/hthread.tex"}}
DEBUG - > {"jsonrpc":"2.0","method":"textDocument/publishDiagnostics","params":{"diagnostics":[],"uri":"file:///home/paag/Documents/clases/RS/s02/containers.tex"}}
DEBUG - > {"jsonrpc":"2.0","method":"textDocument/publishDiagnostics","params":{"diagnostics":[],"uri":"file:///home/paag/Documents/clases/RS/s02/hw-assist.tex"}}
DEBUG - > {"jsonrpc":"2.0","method":"textDocument/publishDiagnostics","params":{"diagnostics":[],"uri":"file:///home/paag/Documents/clases/RS/s02/prings.tex"}}
DEBUG - > {"jsonrpc":"2.0","method":"textDocument/publishDiagnostics","params":{"diagnostics":[],"uri":"file:///home/paag/Documents/clases/RS/s02/full-virt.tex"}}
DEBUG - > {"jsonrpc":"2.0","method":"textDocument/publishDiagnostics","params":{"diagnostics":[],"uri":"file:///home/paag/Documents/clases/RS/s02/acronyms.tex"}}
DEBUG - > {"jsonrpc":"2.0","method":"textDocument/publishDiagnostics","params":{"diagnostics":[],"uri":"file:///home/paag/Documents/clases/RS/s02/para-virt.tex"}}
DEBUG - > {"jsonrpc":"2.0","method":"textDocument/publishDiagnostics","params":{"diagnostics":[],"uri":"file:///home/paag/Documents/clases/RS/s02/inside-vmm.tex"}}
DEBUG - < {"jsonrpc":"2.0","id":9,"method":"textDocument/hover","params":{"textDocument":{"uri":"file:///home/paag/Documents/clases/RS/s02/vmm1.tex"},"position":{"line":4,"character":3}}}
DEBUG - sending message Request(
    Request {
        id: RequestId(
            I32(
                9,
            ),
        ),
        method: "textDocument/hover",
        params: Object {
            "position": Object {
                "character": Number(3),
                "line": Number(4),
            },
            "textDocument": Object {
                "uri": String("file:///home/paag/Documents/clases/RS/s02/vmm1.tex"),
            },
        },
    },
)
DEBUG - < {"jsonrpc":"2.0","id":10,"method":"textDocument/documentHighlight","params":{"textDocument":{"uri":"file:///home/paag/Documents/clases/RS/s02/vmm1.tex"},"position":{"line":4,"character":3}}}
DEBUG - sending message Request(
    Request {
        id: RequestId(
            I32(
                10,
            ),
        ),
        method: "textDocument/documentHighlight",
        params: Object {
            "position": Object {
                "character": Number(3),
                "line": Number(4),
            },
            "textDocument": Object {
                "uri": String("file:///home/paag/Documents/clases/RS/s02/vmm1.tex"),
            },
        },
    },
)
DEBUG - > {"jsonrpc":"2.0","id":9,"result":null}
DEBUG - > {"jsonrpc":"2.0","id":10,"result":[]}
DEBUG - < {"jsonrpc":"2.0","id":11,"method":"textDocument/inlayHint","params":{"textDocument":{"uri":"file:///home/paag/Documents/clases/RS/s02/vmm1.tex"},"range":{"start":{"line":4,"character":0},"end":{"line":24,"character":0}}}}
DEBUG - sending message Request(
    Request {
        id: RequestId(
            I32(
                11,
            ),
        ),
        method: "textDocument/inlayHint",
        params: Object {
            "range": Object {
                "end": Object {
                    "character": Number(0),
                    "line": Number(24),
                },
                "start": Object {
                    "character": Number(0),
                    "line": Number(4),
                },
            },
            "textDocument": Object {
                "uri": String("file:///home/paag/Documents/clases/RS/s02/vmm1.tex"),
            },
        },
    },
)
DEBUG - > {"jsonrpc":"2.0","id":11,"result":[]}
DEBUG - < {"jsonrpc":"2.0","method":"textDocument/didChange","params":{"textDocument":{"uri":"file:///home/paag/Documents/clases/RS/s02/vmm1.tex","version":3},"contentChanges":[{"range":{"start":{"line":4,"character":3},"end":{"line":4,"character":3}},"rangeLength":0,"text":"u"}]}}
DEBUG - sending message Notification(
    Notification {
        method: "textDocument/didChange",
        params: Object {
            "contentChanges": Array [
                Object {
                    "range": Object {
                        "end": Object {
                            "character": Number(3),
                            "line": Number(4),
                        },
                        "start": Object {
                            "character": Number(3),
                            "line": Number(4),
                        },
                    },
                    "rangeLength": Number(0),
                    "text": String("u"),
                },
            ],
            "textDocument": Object {
                "uri": String("file:///home/paag/Documents/clases/RS/s02/vmm1.tex"),
                "version": Number(3),
            },
        },
    },
)
DEBUG - < {"jsonrpc":"2.0","id":12,"method":"textDocument/completion","params":{"textDocument":{"uri":"file:///home/paag/Documents/clases/RS/s02/vmm1.tex"},"position":{"line":4,"character":4},"context":{"triggerKind":1}}}
DEBUG - sending message Request(
    Request {
        id: RequestId(
            I32(
                12,
            ),
        ),
        method: "textDocument/completion",
        params: Object {
            "context": Object {
                "triggerKind": Number(1),
            },
            "position": Object {
                "character": Number(4),
                "line": Number(4),
            },
            "textDocument": Object {
                "uri": String("file:///home/paag/Documents/clases/RS/s02/vmm1.tex"),
            },
        },
    },
)
DEBUG - Opening document file:///home/paag/Documents/clases/RS/s02/vmm1.tex...
DEBUG - > {"jsonrpc":"2.0","id":12,"result":{"isIncomplete":false,"items":[{"detail":"built-in","kind":1,"label":"u","preselect":false,"sortText":"00","textEdit":{"newText":"u","range":{"end":{"character":4,"line":4},"start":{"character":3,"line":4}}}},{"detail":"built-in","kind":1,"label":"use","preselect":false,"sortText":"01","textEdit":{"newText":"use","range":{"end":{"character":4,"line":4},"start":{"character":3,"line":4}}}},{"detail":"built-in","kind":1,"label":"unlhd","preselect":false,"sortText":"02","textEdit":{"newText":"unlhd","range":{"end":{"character":4,"line":4},"start":{"character":3,"line":4}}}},{"detail":"built-in","kind":1,"label":"unrhd","preselect":false,"sortText":"03","textEdit":{"newText":"unrhd","range":{"end":{"character":4,"line":4},"start":{"character":3,"line":4}}}},{"detail":"⊎, built-in","kind":1,"label":"uplus","preselect":false,"sortText":"04","textEdit":{"newText":"uplus","range":{"end":{"character":4,"line":4},"start":{"character":3,"line":4}}}},{"detail":"built-in","kind":1,"label":"upper","preselect":false,"sortText":"05","textEdit":{"newText":"upper","range":{"end":{"character":4,"line":4},"start":{"character":3,"line":4}}}},{"detail":"built-in","kind":1,"label":"uccode","preselect":false,"sortText":"06","textEdit":{"newText":"uccode","range":{"end":{"character":4,"line":4},"start":{"character":3,"line":4}}}},{"detail":"built-in","kind":1,"label":"uchyph","preselect":false,"sortText":"07","textEdit":{"newText":"uchyph","range":{"end":{"character":4,"line":4},"start":{"character":3,"line":4}}}},{"detail":"built-in","kind":1,"label":"unhbox","preselect":false,"sortText":"08","textEdit":{"newText":"unhbox","range":{"end":{"character":4,"line":4},"start":{"character":3,"line":4}}}},{"detail":"built-in","kind":1,"label":"unkern","preselect":false,"sortText":"09","textEdit":{"newText":"unkern","range":{"end":{"character":4,"line":4},"start":{"character":3,"line":4}}}},{"detail":"built-in","kind":1,"label":"unless","preselect":false,"sortText":"10","textEdit":{"newText":"unless","range":{"end":{"character":4,"line":4},"start":{"character":3,"line":4}}}},{"detail":"built-in","kind":1,"label":"unskip","preselect":false,"sortText":"11","textEdit":{"newText":"unskip","range":{"end":{"character":4,"line":4},"start":{"character":3,"line":4}}}},{"detail":"built-in","kind":1,"label":"unvbox","preselect":false,"sortText":"12","textEdit":{"newText":"unvbox","range":{"end":{"character":4,"line":4},"start":{"character":3,"line":4}}}},{"detail":"built-in","kind":1,"label":"update","preselect":false,"sortText":"13","textEdit":{"newText":"update","range":{"end":{"character":4,"line":4},"start":{"character":3,"line":4}}}},{"detail":"built-in","kind":1,"label":"usebox","preselect":false,"sortText":"14","textEdit":{"newText":"usebox","range":{"end":{"character":4,"line":4},"start":{"character":3,"line":4}}}},{"detail":"built-in","kind":1,"label":"unhcopy","preselect":false,"sortText":"15","textEdit":{"newText":"unhcopy","range":{"end":{"character":4,"line":4},"start":{"character":3,"line":4}}}},{"detail":"built-in","kind":1,"label":"unvcopy","preselect":false,"sortText":"16","textEdit":{"newText":"unvcopy","range":{"end":{"character":4,"line":4},"start":{"character":3,"line":4}}}},{"detail":"↑, built-in","kind":1,"label":"uparrow","preselect":false,"sortText":"17","textEdit":{"newText":"uparrow","range":{"end":{"character":4,"line":4},"start":{"character":3,"line":4}}}},{"detail":"built-in","kind":1,"label":"upshape","preselect":false,"sortText":"18","textEdit":{"newText":"upshape","range":{"end":{"character":4,"line":4},"start":{"character":3,"line":4}}}},{"detail":"υ, built-in","kind":1,"label":"upsilon","preselect":false,"sortText":"19","textEdit":{"newText":"upsilon","range":{"end":{"character":4,"line":4},"start":{"character":3,"line":4}}}},{"detail":"built-in","kind":1,"label":"usefont","preselect":false,"sortText":"20","textEdit":{"newText":"usefont","range":{"end":{"character":4,"line":4},"start":{"character":3,"line":4}}}},{"detail":"built-in","kind":1,"label":"underbar","preselect":false,"sortText":"21","textEdit":{"newText":"underbar","range":{"end":{"character":4,"line":4},"start":{"character":3,"line":4}}}},{"detail":"built-in","kind":1,"label":"undefined","preselect":false,"sortText":"22","textEdit":{"newText":"undefined","range":{"end":{"character":4,"line":4},"start":{"character":3,"line":4}}}},{"detail":" ̲, built-in","kind":1,"label":"underline","preselect":false,"sortText":"23","textEdit":{"newText":"underline","range":{"end":{"character":4,"line":4},"start":{"character":3,"line":4}}}},{"detail":"built-in","kind":1,"label":"uninstall","preselect":false,"sortText":"24","textEdit":{"newText":"uninstall","range":{"end":{"character":4,"line":4},"start":{"character":3,"line":4}}}},{"detail":"built-in","kind":1,"label":"unpenalty","preselect":false,"sortText":"25","textEdit":{"newText":"unpenalty","range":{"end":{"character":4,"line":4},"start":{"character":3,"line":4}}}},{"detail":"built-in","kind":1,"label":"updefault","preselect":false,"sortText":"26","textEdit":{"newText":"updefault","range":{"end":{"character":4,"line":4},"start":{"character":3,"line":4}}}},{"detail":"built-in","kind":1,"label":"uppercase","preselect":false,"sortText":"27","textEdit":{"newText":"uppercase","range":{"end":{"character":4,"line":4},"start":{"character":3,"line":4}}}},{"detail":"built-in","kind":1,"label":"unboldmath","preselect":false,"sortText":"28","textEdit":{"newText":"unboldmath","range":{"end":{"character":4,"line":4},"start":{"character":3,"line":4}}}},{"detail":"⏟, built-in","kind":1,"label":"underbrace","preselect":false,"sortText":"29","textEdit":{"newText":"underbrace","range":{"end":{"character":4,"line":4},"start":{"character":3,"line":4}}}},{"detail":"built-in","kind":1,"label":"unitlength","preselect":false,"sortText":"30","textEdit":{"newText":"unitlength","range":{"end":{"character":4,"line":4},"start":{"character":3,"line":4}}}},{"detail":"built-in","kind":1,"label":"unrestored","preselect":false,"sortText":"31","textEdit":{"newText":"unrestored","range":{"end":{"character":4,"line":4},"start":{"character":3,"line":4}}}},{"detail":"built-in","kind":1,"label":"usecounter","preselect":false,"sortText":"32","textEdit":{"newText":"usecounter","range":{"end":{"character":4,"line":4},"start":{"character":3,"line":4}}}},{"detail":"built-in","kind":1,"label":"usepackage","preselect":false,"sortText":"33","textEdit":{"newText":"usepackage","range":{"end":{"character":4,"line":4},"start":{"character":3,"line":4}}}},{"detail":"built-in","kind":1,"label":"unicoderead","preselect":false,"sortText":"34","textEdit":{"newText":"unicoderead","range":{"end":{"character":4,"line":4},"start":{"character":3,"line":4}}}},{"detail":"built-in","kind":1,"label":"upbracefill","preselect":false,"sortText":"35","textEdit":{"newText":"upbracefill","range":{"end":{"character":4,"line":4},"start":{"character":3,"line":4}}}},{"detail":"↕, built-in","kind":1,"label":"updownarrow","preselect":false,"sortText":"36","textEdit":{"newText":"updownarrow","range":{"end":{"character":4,"line":4},"start":{"character":3,"line":4}}}},{"detail":"built-in","kind":1,"label":"unsetattribute","preselect":false,"sortText":"37","textEdit":{"newText":"unsetattribute","range":{"end":{"character":4,"line":4},"start":{"character":3,"line":4}}}},{"detail":"built-in","kind":1,"label":"unicodedataline","preselect":false,"sortText":"38","textEdit":{"newText":"unicodedataline","range":{"end":{"character":4,"line":4},"start":{"character":3,"line":4}}}},{"detail":"user-defined","kind":1,"label":"useasboundingbox","preselect":false,"sortText":"39","textEdit":{"newText":"useasboundingbox","range":{"end":{"character":4,"line":4},"start":{"character":3,"line":4}}}},{"detail":"built-in","kind":1,"label":"undefinedpagestyle","preselect":false,"sortText":"40","textEdit":{"newText":"undefinedpagestyle","range":{"end":{"character":4,"line":4},"start":{"character":3,"line":4}}}}]}}
DEBUG - > {"jsonrpc":"2.0","method":"textDocument/publishDiagnostics","params":{"diagnostics":[],"uri":"file:///home/paag/Documents/clases/RS/s02/vmm2.tex"}}
DEBUG - > {"jsonrpc":"2.0","method":"textDocument/publishDiagnostics","params":{"diagnostics":[],"uri":"file:///home/paag/Documents/clases/RS/s02/chat-gpt.tex"}}
DEBUG - > {"jsonrpc":"2.0","method":"textDocument/publishDiagnostics","params":{"diagnostics":[],"uri":"file:///home/paag/Documents/clases/RS/s02/inside-vmm.tex"}}
DEBUG - > {"jsonrpc":"2.0","method":"textDocument/publishDiagnostics","params":{"diagnostics":[],"uri":"file:///home/paag/Documents/clases/RS/s02/tikz-base.tex"}}
DEBUG - > {"jsonrpc":"2.0","method":"textDocument/publishDiagnostics","params":{"diagnostics":[],"uri":"file:///home/paag/Documents/clases/RS/s02/packages.tex"}}
DEBUG - > {"jsonrpc":"2.0","method":"textDocument/publishDiagnostics","params":{"diagnostics":[],"uri":"file:///home/paag/Documents/clases/RS/s02/containers.tex"}}
DEBUG - > {"jsonrpc":"2.0","method":"textDocument/publishDiagnostics","params":{"diagnostics":[],"uri":"file:///home/paag/Documents/clases/RS/s02/hw-assist.tex"}}
DEBUG - > {"jsonrpc":"2.0","method":"textDocument/publishDiagnostics","params":{"diagnostics":[],"uri":"file:///home/paag/Documents/clases/RS/s02/os-rings.tex"}}
DEBUG - > {"jsonrpc":"2.0","method":"textDocument/publishDiagnostics","params":{"diagnostics":[],"uri":"file:///home/paag/Documents/clases/RS/s02/full-virt.tex"}}
DEBUG - > {"jsonrpc":"2.0","method":"textDocument/publishDiagnostics","params":{"diagnostics":[],"uri":"file:///home/paag/Documents/clases/RS/s02/vmm1.tex"}}
DEBUG - > {"jsonrpc":"2.0","method":"textDocument/publishDiagnostics","params":{"diagnostics":[],"uri":"file:///home/paag/Documents/clases/RS/s02/hthread.tex"}}
DEBUG - > {"jsonrpc":"2.0","method":"textDocument/publishDiagnostics","params":{"diagnostics":[],"uri":"file:///home/paag/Documents/clases/RS/s02/acronyms.tex"}}
DEBUG - > {"jsonrpc":"2.0","method":"textDocument/publishDiagnostics","params":{"diagnostics":[],"uri":"file:///home/paag/Documents/clases/RS/s02/prings.tex"}}
DEBUG - > {"jsonrpc":"2.0","method":"textDocument/publishDiagnostics","params":{"diagnostics":[],"uri":"file:///home/paag/Documents/clases/RS/s02/para-virt.tex"}}
DEBUG - < {"jsonrpc":"2.0","method":"textDocument/didChange","params":{"textDocument":{"uri":"file:///home/paag/Documents/clases/RS/s02/vmm1.tex","version":4},"contentChanges":[{"range":{"start":{"line":4,"character":4},"end":{"line":4,"character":4}},"rangeLength":0,"text":"s"}]}}
DEBUG - sending message Notification(
    Notification {
        method: "textDocument/didChange",
        params: Object {
            "contentChanges": Array [
                Object {
                    "range": Object {
                        "end": Object {
                            "character": Number(4),
                            "line": Number(4),
                        },
                        "start": Object {
                            "character": Number(4),
                            "line": Number(4),
                        },
                    },
                    "rangeLength": Number(0),
                    "text": String("s"),
                },
            ],
            "textDocument": Object {
                "uri": String("file:///home/paag/Documents/clases/RS/s02/vmm1.tex"),
                "version": Number(4),
            },
        },
    },
)
DEBUG - Opening document file:///home/paag/Documents/clases/RS/s02/vmm1.tex...
DEBUG - < {"jsonrpc":"2.0","id":13,"method":"textDocument/hover","params":{"textDocument":{"uri":"file:///home/paag/Documents/clases/RS/s02/vmm1.tex"},"position":{"line":4,"character":5}}}
DEBUG - sending message Request(
    Request {
        id: RequestId(
            I32(
                13,
            ),
        ),
        method: "textDocument/hover",
        params: Object {
            "position": Object {
                "character": Number(5),
                "line": Number(4),
            },
            "textDocument": Object {
                "uri": String("file:///home/paag/Documents/clases/RS/s02/vmm1.tex"),
            },
        },
    },
)
DEBUG - < {"jsonrpc":"2.0","id":14,"method":"textDocument/documentHighlight","params":{"textDocument":{"uri":"file:///home/paag/Documents/clases/RS/s02/vmm1.tex"},"position":{"line":4,"character":5}}}
DEBUG - sending message Request(
    Request {
        id: RequestId(
            I32(
                14,
            ),
        ),
        method: "textDocument/documentHighlight",
        params: Object {
            "position": Object {
                "character": Number(5),
                "line": Number(4),
            },
            "textDocument": Object {
                "uri": String("file:///home/paag/Documents/clases/RS/s02/vmm1.tex"),
            },
        },
    },
)
DEBUG - > {"jsonrpc":"2.0","id":13,"result":null}
DEBUG - > {"jsonrpc":"2.0","id":14,"result":[]}
DEBUG - < {"jsonrpc":"2.0","id":15,"method":"textDocument/inlayHint","params":{"textDocument":{"uri":"file:///home/paag/Documents/clases/RS/s02/vmm1.tex"},"range":{"start":{"line":4,"character":0},"end":{"line":24,"character":0}}}}
DEBUG - sending message Request(
    Request {
        id: RequestId(
            I32(
                15,
            ),
        ),
        method: "textDocument/inlayHint",
        params: Object {
            "range": Object {
                "end": Object {
                    "character": Number(0),
                    "line": Number(24),
                },
                "start": Object {
                    "character": Number(0),
                    "line": Number(4),
                },
            },
            "textDocument": Object {
                "uri": String("file:///home/paag/Documents/clases/RS/s02/vmm1.tex"),
            },
        },
    },
)
DEBUG - > {"jsonrpc":"2.0","id":15,"result":[]}
DEBUG - > {"jsonrpc":"2.0","method":"textDocument/publishDiagnostics","params":{"diagnostics":[],"uri":"file:///home/paag/Documents/clases/RS/s02/inside-vmm.tex"}}
DEBUG - > {"jsonrpc":"2.0","method":"textDocument/publishDiagnostics","params":{"diagnostics":[],"uri":"file:///home/paag/Documents/clases/RS/s02/tikz-base.tex"}}
DEBUG - > {"jsonrpc":"2.0","method":"textDocument/publishDiagnostics","params":{"diagnostics":[],"uri":"file:///home/paag/Documents/clases/RS/s02/vmm1.tex"}}
DEBUG - > {"jsonrpc":"2.0","method":"textDocument/publishDiagnostics","params":{"diagnostics":[],"uri":"file:///home/paag/Documents/clases/RS/s02/packages.tex"}}
DEBUG - > {"jsonrpc":"2.0","method":"textDocument/publishDiagnostics","params":{"diagnostics":[],"uri":"file:///home/paag/Documents/clases/RS/s02/vmm2.tex"}}
DEBUG - > {"jsonrpc":"2.0","method":"textDocument/publishDiagnostics","params":{"diagnostics":[],"uri":"file:///home/paag/Documents/clases/RS/s02/containers.tex"}}
DEBUG - > {"jsonrpc":"2.0","method":"textDocument/publishDiagnostics","params":{"diagnostics":[],"uri":"file:///home/paag/Documents/clases/RS/s02/os-rings.tex"}}
DEBUG - > {"jsonrpc":"2.0","method":"textDocument/publishDiagnostics","params":{"diagnostics":[],"uri":"file:///home/paag/Documents/clases/RS/s02/hthread.tex"}}
DEBUG - > {"jsonrpc":"2.0","method":"textDocument/publishDiagnostics","params":{"diagnostics":[],"uri":"file:///home/paag/Documents/clases/RS/s02/para-virt.tex"}}
DEBUG - > {"jsonrpc":"2.0","method":"textDocument/publishDiagnostics","params":{"diagnostics":[],"uri":"file:///home/paag/Documents/clases/RS/s02/chat-gpt.tex"}}
DEBUG - > {"jsonrpc":"2.0","method":"textDocument/publishDiagnostics","params":{"diagnostics":[],"uri":"file:///home/paag/Documents/clases/RS/s02/full-virt.tex"}}
DEBUG - > {"jsonrpc":"2.0","method":"textDocument/publishDiagnostics","params":{"diagnostics":[],"uri":"file:///home/paag/Documents/clases/RS/s02/acronyms.tex"}}
DEBUG - > {"jsonrpc":"2.0","method":"textDocument/publishDiagnostics","params":{"diagnostics":[],"uri":"file:///home/paag/Documents/clases/RS/s02/hw-assist.tex"}}
DEBUG - > {"jsonrpc":"2.0","method":"textDocument/publishDiagnostics","params":{"diagnostics":[],"uri":"file:///home/paag/Documents/clases/RS/s02/prings.tex"}}
TRACE - inotify event: Event { wd: WatchDescriptor { id: 1, fd: (Weak) }, mask: MOVED_FROM, cookie: 72458, name: Some("vmm1.tex") }
TRACE - raw event: Event { kind: Modify(Name(From)), paths: ["/home/paag/Documents/clases/RS/s02/vmm1.tex"], attr:tracker: Some(72458), attr:flag: None, attr:info: None, attr:source: None }
TRACE - inotify event: Event { wd: WatchDescriptor { id: 1, fd: (Weak) }, mask: MOVED_TO, cookie: 72458, name: Some("vmm1.tex~") }
TRACE - raw event: Event { kind: Modify(Name(To)), paths: ["/home/paag/Documents/clases/RS/s02/vmm1.tex~"], attr:tracker: Some(72458), attr:flag: None, attr:info: None, attr:source: None }
TRACE - raw event: Event { kind: Modify(Name(Both)), paths: ["/home/paag/Documents/clases/RS/s02/vmm1.tex", "/home/paag/Documents/clases/RS/s02/vmm1.tex~"], attr:tracker: Some(72458), attr:flag: None, attr:info: None, attr:source: None }
TRACE - inotify event: Event { wd: WatchDescriptor { id: 1, fd: (Weak) }, mask: CREATE, cookie: 0, name: Some("vmm1.tex") }
TRACE - raw event: Event { kind: Create(File), paths: ["/home/paag/Documents/clases/RS/s02/vmm1.tex"], attr:tracker: None, attr:flag: None, attr:info: None, attr:source: None }
TRACE - inotify event: Event { wd: WatchDescriptor { id: 1, fd: (Weak) }, mask: MODIFY, cookie: 0, name: Some("vmm1.tex") }
TRACE - raw event: Event { kind: Modify(Data(Any)), paths: ["/home/paag/Documents/clases/RS/s02/vmm1.tex"], attr:tracker: None, attr:flag: None, attr:info: None, attr:source: None }
TRACE - inotify event: Event { wd: WatchDescriptor { id: 1, fd: (Weak) }, mask: CLOSE_WRITE, cookie: 0, name: Some("vmm1.tex") }
TRACE - raw event: Event { kind: Access(Close(Write)), paths: ["/home/paag/Documents/clases/RS/s02/vmm1.tex"], attr:tracker: None, attr:flag: None, attr:info: None, attr:source: None }
TRACE - inotify event: Event { wd: WatchDescriptor { id: 1, fd: (Weak) }, mask: ATTRIB, cookie: 0, name: Some("vmm1.tex") }
TRACE - raw event: Event { kind: Modify(Metadata(Any)), paths: ["/home/paag/Documents/clases/RS/s02/vmm1.tex"], attr:tracker: None, attr:flag: None, attr:info: None, attr:source: None }
DEBUG - < {"jsonrpc":"2.0","method":"textDocument/didSave","params":{"text":"\\begin{tikzpicture}\n  \\tikzstyle{every node}=[align=center, font=\\sffamily]\n  \\useasboundingbox (0,0) rectangle ++(8cm,5cm);\n  %% \\draw (0,0) rectangle ++(8cm,5cm) ;\n  \\us\n  \\node  (blade) at (4cm,1cm) {\\includegraphics[width=7cm, height=2cm]{figures/sm_blade.jpg}};\n\n  %% \\draw (1cm,.5cm) [fill=green!10] rectangle ++(6cm,.5cm) ;\n  %% \\node  (hos) at (4cm,.75cm) {Host OS};\n  \\draw (1cm,1.25cm) [fill=red!10,rounded corners] rectangle ++(6cm,.5cm) ;\n  \\node  (vmm) at (4cm,1.5cm) {Type 1 Hypervisor};\n\n  \\draw (1cm, 2cm) [fill=red!25] rectangle ++(2cm,.5cm) ;\n  \\draw (1cm,2.5cm) [fill=white] rectangle ++(2cm,2cm) ;\n  \\node  (os1) at (2cm,2.25cm) {Guest OS};\n  \\node  (apps1) at (2cm, 3.5cm) {Apps};\n  \\node  (vm1) at (2cm, 5cm) {VM1};\n  \\draw (3.5cm, 2cm) [fill=red!25] rectangle ++(2cm,.5cm) ;\n  \\draw (3.5cm,2.5cm) [fill=white]rectangle ++(2cm,2cm) ;\n  \\node  (os2) at (4.5cm,2.25cm) {Guest OS};\n  \\node  (apps2) at (4.5cm, 3.5cm) {Apps};\n  \\node  (vm2) at (4.5cm, 5cm) {VM2};\n  \\node  (appsn) at (6.5cm, 3.5cm) {\\ldots};\n\\end{tikzpicture}\n","textDocument":{"uri":"file:///home/paag/Documents/clases/RS/s02/vmm1.tex"}}}
DEBUG - sending message Notification(
    Notification {
        method: "textDocument/didSave",
        params: Object {
            "text": String("\\begin{tikzpicture}\n  \\tikzstyle{every node}=[align=center, font=\\sffamily]\n  \\useasboundingbox (0,0) rectangle ++(8cm,5cm);\n  %% \\draw (0,0) rectangle ++(8cm,5cm) ;\n  \\us\n  \\node  (blade) at (4cm,1cm) {\\includegraphics[width=7cm, height=2cm]{figures/sm_blade.jpg}};\n\n  %% \\draw (1cm,.5cm) [fill=green!10] rectangle ++(6cm,.5cm) ;\n  %% \\node  (hos) at (4cm,.75cm) {Host OS};\n  \\draw (1cm,1.25cm) [fill=red!10,rounded corners] rectangle ++(6cm,.5cm) ;\n  \\node  (vmm) at (4cm,1.5cm) {Type 1 Hypervisor};\n\n  \\draw (1cm, 2cm) [fill=red!25] rectangle ++(2cm,.5cm) ;\n  \\draw (1cm,2.5cm) [fill=white] rectangle ++(2cm,2cm) ;\n  \\node  (os1) at (2cm,2.25cm) {Guest OS};\n  \\node  (apps1) at (2cm, 3.5cm) {Apps};\n  \\node  (vm1) at (2cm, 5cm) {VM1};\n  \\draw (3.5cm, 2cm) [fill=red!25] rectangle ++(2cm,.5cm) ;\n  \\draw (3.5cm,2.5cm) [fill=white]rectangle ++(2cm,2cm) ;\n  \\node  (os2) at (4.5cm,2.25cm) {Guest OS};\n  \\node  (apps2) at (4.5cm, 3.5cm) {Apps};\n  \\node  (vm2) at (4.5cm, 5cm) {VM2};\n  \\node  (appsn) at (6.5cm, 3.5cm) {\\ldots};\n\\end{tikzpicture}\n"),
            "textDocument": Object {
                "uri": String("file:///home/paag/Documents/clases/RS/s02/vmm1.tex"),
            },
        },
    },
)

@pfoerster pfoerster reopened this Feb 22, 2024
@pfoerster
Copy link
Member

@paaguti Thanks for providing the log file. The problem is that the server sets isIncomplete: false after the initial trigger. Then, the client is responsible for filtering and does not know about the prefix matcher. When the prefix matcher is set, the server always needs to use server-side filtering.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
2 participants