Repository: neovim
Issue: lsp: deleting inline carriage return (`\r`/`^M`) breaks incremental synchronization
Labels: bug,lsp

- `nvim --version`:
```
NVIM v0.5.0
Build type: Release
LuaJIT 2.0.5
Compilation: /usr/bin/cc -D_FORTIFY_SOURCE=2 -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1 -DNVIM_TS_HAS_SET_MATCH_LIMIT -O2 -DNDEBUG -Wall -Wextra -pedantic -Wno-unused-parameter -Wstrict-prototypes -std=gnu99 -Wshadow -Wconversion -Wmissing-prototypes -Wimplicit-fallthrough -Wvla -fstack-protector-strong -fno-common -fdiagnostics-color=always -DINCLUDE_GENERATED_DECLARATIONS -D_GNU_SOURCE -DNVIM_MSGPACK_HAS_FLOAT32 -DNVIM_UNIBI_HAS_VAR_FROM -DMIN_LOG_LEVEL=3 -I/build/neovim/src/neovim-0.5.0/build/config -I/build/neovim/src/neovim-0.5.0/src -I/usr/include -I/build/neovim/src/neovim-0.5.0/build/src/nvim/auto -I/build/neovim/src/neovim-0.5.0/build/include
Compiled by builduser

Features: +acl +iconv +tui
See ":help feature-compile"

   system vimrc file: "$VIM/sysinit.vim"
  fall-back for $VIM: "/usr/share/nvim"

Run :checkhealth for more info
```
- nvim-lspconfig version(commit hash):
  - 0eccc1a
- What language server (If the problem is related to a specific language server):
  - I've only noticed this issue with pyright and sumenko_lua. I use typescript-language-server a lot and have never had this issue
- Can you reproduce this behavior on other language server clients (vscode, languageclient-neovim, coc.nvim, etc.):
  - have not been able to reproduce with vscode
- Can you reproduce this behavior on other language servers offered in the nvim-lspconfig repo? (pyls -> pyright):
  - no
- Is the problem isolated to a particular language server:
  - seems to just be just pyright and sumenko_lua
- Operating system/version:
  - arch linux/updated today

### How to reproduce the problem from neovim startup
1. install pyright, I installed from my distro's package manager `sudo pacman -S pyright`
2. download minimal init file from: https://raw.githubusercontent.com/neovim/nvim-lspconfig/master
3. add `'tpope/vim-surround'` to packer packages list (line 11 of minimal_init.lua)
2. `nvim -u minimal_init.lua test.py`
2. insert the text `f = {"foo"}`, using `<c-s>}` and `<c-s>"` to create matching pairs
3. leave insert mode and change the bracket spacing with `cs}{`

Note: this error comes up a lot in normal use, but this is the only reproducible way to generate it I've found

### Actual behaviour
The text that the lsp is processing seems become out of sync with the text actually in the buffer. Once out of sync various errors will be shown. Re-reading the file with `:e` always fixes the issue.

https://user-images.githubusercontent.com/23488939/131427982-85d97216-6d20-4766-add6-92c662add7f8.mp4

### Expected behaviour
The errors from the lsp should match the text in nvim is showing me

### Minimal init.vim or init.lua and code sample
I'm using the minimal init as suggested: https://raw.githubusercontent.com/neovim/nvim-lspconfig/master/test/minimal_init.lua  with only one change, adding https://github.com/tpope/vim-surround/ because it makes this error easier to reproduce. I have seen this error without using this plugin, but using it is the most reliable way to reproduce.

### Health check
<details>
<summary>Checkhealth result</summary>
health#nvim#check
========================================================================
## Configuration
  - WARNING: Missing user config file: /home/jack/.config/nvim/init.vim
    - ADVICE:
      - :help |init.vim|

## Performance
  - OK: Build type: Release

## Remote Plugins
  - OK: Up to date

## terminal
  - INFO: key_backspace (kbs) terminfo entry: key_backspace=\177
  - INFO: key_dc (kdch1) terminfo entry: key_dc=\E[3~
  - INFO: $COLORTERM='truecolor'

health#provider#check
========================================================================
## Clipboard (optional)
  - OK: Clipboard tool found: xclip

## Python 2 provider (optional)
  - INFO: pyenv: Path: /usr/share/pyenv/libexec/pyenv
  - INFO: pyenv: $PYENV_ROOT is not set. Infer from `pyenv root`.
  - WARNING: pyenv: Root does not exist: /home/jack/.pyenv. Ignoring pyenv for all following checks.
  - WARNING: No Python executable found that can `import neovim`. Using the first available executable for diagnostics.
  - ERROR: Python provider error:
    - ADVICE:
      - provider/pythonx: Could not load Python 2:
          /usr/bin/python2 does not have the "neovim" module. :help |provider-python|
          /usr/bin/python2.7 does not have the "neovim" module. :help |provider-python|
          python2.6 not found in search path or not executable.
          /usr/bin/python is Python 3.9 and cannot provide Python 2.
  - INFO: Executable: Not found

## Python 3 provider (optional)
  - INFO: pyenv: Path: /usr/share/pyenv/libexec/pyenv
  - INFO: pyenv: $PYENV_ROOT is not set. Infer from `pyenv root`.
  - WARNING: pyenv: Root does not exist: /home/jack/.pyenv. Ignoring pyenv for all following checks.
  - INFO: `g:python3_host_prog` is not set.  Searching for python3 in the environment.
  - INFO: Executable: /usr/bin/python3
  - INFO: Python version: 3.9.6
  - INFO: pynvim version: 0.4.3
  - OK: Latest pynvim is installed.

## Python virtualenv
  - OK: no $VIRTUAL_ENV

## Ruby provider (optional)
  - INFO: Ruby: ruby 3.0.2p107 (2021-07-07 revision 0db68f0233) [x86_64-linux]
  - WARNING: `neovim-ruby-host` not found.
    - ADVICE:
      - Run `gem install neovim` to ensure the neovim RubyGem is installed.
      - Run `gem environment` to ensure the gem bin directory is in $PATH.
      - If you are using rvm/rbenv/chruby, try "rehashing".
      - See :help |g:ruby_host_prog| for non-standard gem installations.

## Node.js provider (optional)
  - INFO: Node.js: v16.8.0
  - INFO: Nvim node.js host: /home/jack/.config/yarn/global//node_modules/neovim/bin/cli.js
  - OK: Latest "neovim" npm/yarn package is installed: 4.10.0

## Perl provider (optional)
  - ERROR: perl provider error:
    - ADVICE:
      - "Neovim::Ext" cpan module is not installed

health#treesitter#check
========================================================================
## Checking treesitter configuration
  - INFO: Runtime ABI version : 13

health#lspconfig#check
========================================================================
## Checking language server protocol configuration
  - INFO: pyright: configuration checked.
</details>

### LSP log
<!-- If not using the minimal_init.lua please add vim.lsp.set_log_level("debug") to your lua block 
     in init.vim and paste a link to your log file, located at  $HOME/.cache/nvim/lsp.log (formerly $HOME/.local/share/nvim/lsp.log) -->
<details>
<summary>Log file</summary>
[ START ] 2021-08-31T11:49:52+1000 ] LSP logging initiated
[ INFO ] 2021-08-31T11:49:52+1000 ] /usr/share/nvim/runtime/lua/vim/lsp/rpc.lua:316 ]	"Starting RPC client"	{  args = { "--stdio" },  cmd = "pyright-langserver",  extra = {}}
[ DEBUG ] 2021-08-31T11:49:52+1000 ] /usr/share/nvim/runtime/lua/vim/lsp.lua:827 ]	"LSP[pyright]"	"initialize_params"	{  capabilities = {    callHierarchy = {      dynamicRegistration = false,      <metatable> = <1>{        __tostring = <function 1>      }    },    textDocument = {      codeAction = {        codeActionLiteralSupport = {          codeActionKind = {            valueSet = { "", "Empty", "QuickFix", "Refactor", "RefactorExtract", "RefactorInline", "RefactorRewrite", "Source", "SourceOrganizeImports", "quickfix", "refactor", "refactor.extract", "refactor.inline", "refactor.rewrite", "source", "source.organizeImports" },            <metatable> = <table 1>          },          <metatable> = <table 1>        },        dynamicRegistration = false,        <metatable> = <table 1>      },      completion = {        completionItem = {          commitCharactersSupport = false,          deprecatedSupport = false,          documentationFormat = { "markdown", "plaintext" },          preselectSupport = false,          snippetSupport = false,          <metatable> = <table 1>        },        completionItemKind = {          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 },          <metatable> = <table 1>        },        contextSupport = false,        dynamicRegistration = false,        <metatable> = <table 1>      },      declaration = {        linkSupport = true,        <metatable> = <table 1>      },      definition = {        linkSupport = true,        <metatable> = <table 1>      },      documentHighlight = {        dynamicRegistration = false,        <metatable> = <table 1>      },      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 },          <metatable> = <table 1>        },        <metatable> = <table 1>      },      hover = {        contentFormat = { "markdown", "plaintext" },        dynamicRegistration = false,        <metatable> = <table 1>      },      implementation = {        linkSupport = true,        <metatable> = <table 1>      },      publishDiagnostics = {        relatedInformation = true,        tagSupport = {          valueSet = { 1, 2 },          <metatable> = <table 1>        },        <metatable> = <table 1>      },      references = {        dynamicRegistration = false,        <metatable> = <table 1>      },      rename = {        dynamicRegistration = false,        prepareSupport = true,        <metatable> = <table 1>      },      signatureHelp = {        dynamicRegistration = false,        signatureInformation = {          documentationFormat = { "markdown", "plaintext" },          <metatable> = <table 1>        },        <metatable> = <table 1>      },      synchronization = {        didSave = true,        dynamicRegistration = false,        willSave = false,        willSaveWaitUntil = false,        <metatable> = <table 1>      },      typeDefinition = {        linkSupport = true,        <metatable> = <table 1>      },      <metatable> = <table 1>    },    window = {      showDocument = {        support = false,        <metatable> = <table 1>      },      showMessage = {        messageActionItem = {          additionalPropertiesSupport = false,          <metatable> = <table 1>        },        <metatable> = <table 1>      },      workDoneProgress = true,      <metatable> = <table 1>    },    workspace = {      applyEdit = true,      configuration = true,      symbol = {        dynamicRegistration = false,        hierarchicalWorkspaceSymbolSupport = 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 },          <metatable> = <table 1>        },        <metatable> = <table 1>      },      workspaceEdit = {        resourceOperations = { "rename", "create", "delete" },        <metatable> = <table 1>      },      workspaceFolders = true,      <metatable> = <table 1>    }  },  clientInfo = {    name = "Neovim",    version = "0.5.0"  },  initializationOptions = vim.empty_dict(),  processId = 130566,  rootPath = "/home/jack/nvim-debug",  rootUri = "file:///home/jack/nvim-debug",  trace = "off",  workspaceFolders = { {      name = "/home/jack/nvim-debug",      uri = "file:///home/jack/nvim-debug"    } }}
[ DEBUG ] 2021-08-31T11:49:52+1000 ] /usr/share/nvim/runtime/lua/vim/lsp/rpc.lua:395 ]	"rpc.send.payload"	{  id = 1,  jsonrpc = "2.0",  method = "initialize",  params = {    capabilities = {      callHierarchy = {        dynamicRegistration = false,        <metatable> = <1>{          __tostring = <function 1>        }      },      textDocument = {        codeAction = {          codeActionLiteralSupport = {            codeActionKind = {              valueSet = { "", "Empty", "QuickFix", "Refactor", "RefactorExtract", "RefactorInline", "RefactorRewrite", "Source", "SourceOrganizeImports", "quickfix", "refactor", "refactor.extract", "refactor.inline", "refactor.rewrite", "source", "source.organizeImports" },              <metatable> = <table 1>            },            <metatable> = <table 1>          },          dynamicRegistration = false,          <metatable> = <table 1>        },        completion = {          completionItem = {            commitCharactersSupport = false,            deprecatedSupport = false,            documentationFormat = { "markdown", "plaintext" },            preselectSupport = false,            snippetSupport = false,            <metatable> = <table 1>          },          completionItemKind = {            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 },            <metatable> = <table 1>          },          contextSupport = false,          dynamicRegistration = false,          <metatable> = <table 1>        },        declaration = {          linkSupport = true,          <metatable> = <table 1>        },        definition = {          linkSupport = true,          <metatable> = <table 1>        },        documentHighlight = {          dynamicRegistration = false,          <metatable> = <table 1>        },        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 },            <metatable> = <table 1>          },          <metatable> = <table 1>        },        hover = {          contentFormat = { "markdown", "plaintext" },          dynamicRegistration = false,          <metatable> = <table 1>        },        implementation = {          linkSupport = true,          <metatable> = <table 1>        },        publishDiagnostics = {          relatedInformation = true,          tagSupport = {            valueSet = { 1, 2 },            <metatable> = <table 1>          },          <metatable> = <table 1>        },        references = {          dynamicRegistration = false,          <metatable> = <table 1>        },        rename = {          dynamicRegistration = false,          prepareSupport = true,          <metatable> = <table 1>        },        signatureHelp = {          dynamicRegistration = false,          signatureInformation = {            documentationFormat = { "markdown", "plaintext" },            <metatable> = <table 1>          },          <metatable> = <table 1>        },        synchronization = {          didSave = true,          dynamicRegistration = false,          willSave = false,          willSaveWaitUntil = false,          <metatable> = <table 1>        },        typeDefinition = {          linkSupport = true,          <metatable> = <table 1>        },        <metatable> = <table 1>      },      window = {        showDocument = {          support = false,          <metatable> = <table 1>        },        showMessage = {          messageActionItem = {            additionalPropertiesSupport = false,            <metatable> = <table 1>          },          <metatable> = <table 1>        },        workDoneProgress = true,        <metatable> = <table 1>      },      workspace = {        applyEdit = true,        configuration = true,        symbol = {          dynamicRegistration = false,          hierarchicalWorkspaceSymbolSupport = 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 },            <metatable> = <table 1>          },          <metatable> = <table 1>        },        workspaceEdit = {          resourceOperations = { "rename", "create", "delete" },          <metatable> = <table 1>        },        workspaceFolders = true,        <metatable> = <table 1>      }    },    clientInfo = {      name = "Neovim",      version = "0.5.0"    },    initializationOptions = vim.empty_dict(),    processId = 130566,    rootPath = "/home/jack/nvim-debug",    rootUri = "file:///home/jack/nvim-debug",    trace = "off",    workspaceFolders = { {        name = "/home/jack/nvim-debug",        uri = "file:///home/jack/nvim-debug"      } }  }}
[ DEBUG ] 2021-08-31T11:49:53+1000 ] /usr/share/nvim/runtime/lua/vim/lsp/rpc.lua:496 ]	"decoded"	{  jsonrpc = "2.0",  method = "window/logMessage",  params = {    message = "Pyright language server 1.1.164 starting",    type = 3  }}
[ DEBUG ] 2021-08-31T11:49:53+1000 ] /usr/share/nvim/runtime/lua/vim/lsp/rpc.lua:496 ]	"decoded"	{  jsonrpc = "2.0",  method = "window/logMessage",  params = {    message = "Server root directory: /usr/lib/node_modules/pyright/dist/",    type = 3  }}
[ DEBUG ] 2021-08-31T11:49:53+1000 ] /usr/share/nvim/runtime/lua/vim/lsp.lua:680 ]	"notification"	"window/logMessage"	{  message = "Pyright language server 1.1.164 starting",  type = 3}
[ DEBUG ] 2021-08-31T11:49:53+1000 ] /usr/share/nvim/runtime/lua/vim/lsp/handlers.lua:434 ]	"default_handler"	"window/logMessage"	{  client_id = 1,  params = {    message = "Pyright language server 1.1.164 starting",    type = 3  }}
[ INFO ] 2021-08-31T11:49:53+1000 ] /usr/share/nvim/runtime/lua/vim/lsp/handlers.lua:406 ]	"Pyright language server 1.1.164 starting"
[ DEBUG ] 2021-08-31T11:49:53+1000 ] /usr/share/nvim/runtime/lua/vim/lsp.lua:680 ]	"notification"	"window/logMessage"	{  message = "Server root directory: /usr/lib/node_modules/pyright/dist/",  type = 3}
[ DEBUG ] 2021-08-31T11:49:53+1000 ] /usr/share/nvim/runtime/lua/vim/lsp/handlers.lua:434 ]	"default_handler"	"window/logMessage"	{  client_id = 1,  params = {    message = "Server root directory: /usr/lib/node_modules/pyright/dist/",    type = 3  }}
[ INFO ] 2021-08-31T11:49:53+1000 ] /usr/share/nvim/runtime/lua/vim/lsp/handlers.lua:406 ]	"Server root directory: /usr/lib/node_modules/pyright/dist/"
[ DEBUG ] 2021-08-31T11:49:53+1000 ] /usr/share/nvim/runtime/lua/vim/lsp/rpc.lua:496 ]	"decoded"	{  id = 1,  jsonrpc = "2.0",  result = {    capabilities = {      callHierarchyProvider = true,      codeActionProvider = {        codeActionKinds = { "quickfix", "source.organizeImports" },        workDoneProgress = true      },      completionProvider = {        resolveProvider = true,        triggerCharacters = { ".", "[" },        workDoneProgress = true      },      declarationProvider = {        workDoneProgress = true      },      definitionProvider = {        workDoneProgress = true      },      documentHighlightProvider = {        workDoneProgress = true      },      documentSymbolProvider = {        workDoneProgress = true      },      executeCommandProvider = {        commands = {},        workDoneProgress = true      },      hoverProvider = {        workDoneProgress = true      },      referencesProvider = {        workDoneProgress = true      },      renameProvider = {        workDoneProgress = true      },      signatureHelpProvider = {        triggerCharacters = { "(", ",", ")" },        workDoneProgress = true      },      textDocumentSync = 2,      workspaceSymbolProvider = {        workDoneProgress = true      }    }  }}
[ DEBUG ] 2021-08-31T11:49:53+1000 ] /usr/share/nvim/runtime/lua/vim/lsp/rpc.lua:395 ]	"rpc.send.payload"	{  jsonrpc = "2.0",  method = "initialized",  params = {    [true] = 6  }}
[ DEBUG ] 2021-08-31T11:49:53+1000 ] /usr/share/nvim/runtime/lua/vim/lsp/rpc.lua:395 ]	"rpc.send.payload"	{  jsonrpc = "2.0",  method = "workspace/didChangeConfiguration",  params = {    settings = {      python = {        analysis = {          autoSearchPaths = true,          diagnosticMode = "workspace",          useLibraryCodeForTypes = true,          <metatable> = <1>{            __tostring = <function 1>          }        },        <metatable> = <table 1>      },      <metatable> = <table 1>    }  }}
[ DEBUG ] 2021-08-31T11:49:53+1000 ] /usr/share/nvim/runtime/lua/vim/lsp.lua:854 ]	"LSP[pyright]"	"server_capabilities"	{  callHierarchyProvider = true,  codeActionProvider = {    codeActionKinds = { "quickfix", "source.organizeImports" },    workDoneProgress = true  },  completionProvider = {    resolveProvider = true,    triggerCharacters = { ".", "[" },    workDoneProgress = true  },  declarationProvider = {    workDoneProgress = true  },  definitionProvider = {    workDoneProgress = true  },  documentHighlightProvider = {    workDoneProgress = true  },  documentSymbolProvider = {    workDoneProgress = true  },  executeCommandProvider = {    commands = {},    workDoneProgress = true  },  hoverProvider = {    workDoneProgress = true  },  referencesProvider = {    workDoneProgress = true  },  renameProvider = {    workDoneProgress = true  },  signatureHelpProvider = {    triggerCharacters = { "(", ",", ")" },    workDoneProgress = true  },  textDocumentSync = 2,  workspaceSymbolProvider = {    workDoneProgress = true  }}
[ INFO ] 2021-08-31T11:49:53+1000 ] /usr/share/nvim/runtime/lua/vim/lsp.lua:855 ]	"LSP[pyright]"	"initialized"	{  resolved_capabilities = {    call_hierarchy = true,    code_action = {      codeActionKinds = { "quickfix", "source.organizeImports" },      workDoneProgress = true    },    code_lens = false,    code_lens_resolve = false,    completion = true,    declaration = false,    document_formatting = false,    document_highlight = {      workDoneProgress = true    },    document_range_formatting = false,    document_symbol = {      workDoneProgress = true    },    execute_command = true,    find_references = {      workDoneProgress = true    },    goto_definition = {      workDoneProgress = true    },    hover = {      workDoneProgress = true    },    implementation = false,    rename = true,    signature_help = true,    signature_help_trigger_characters = { "(", ",", ")" },    text_document_did_change = 2,    text_document_open_close = true,    text_document_save = true,    text_document_save_include_text = false,    text_document_will_save = false,    text_document_will_save_wait_until = false,    type_definition = false,    workspace_folder_properties = {      changeNotifications = false,      supported = false    },    workspace_symbol = {      workDoneProgress = true    }  }}
[ DEBUG ] 2021-08-31T11:49:53+1000 ] /usr/share/nvim/runtime/lua/vim/lsp/rpc.lua:395 ]	"rpc.send.payload"	{  jsonrpc = "2.0",  method = "textDocument/didOpen",  params = {    textDocument = {      languageId = "python",      text = 'def foo():\n    return 0\n\nf = { "foo" }\n',      uri = "file:///home/jack/nvim-debug/test.py",      version = 0    }  }}
[ DEBUG ] 2021-08-31T11:49:53+1000 ] /usr/share/nvim/runtime/lua/vim/lsp/handlers.lua:434 ]	"default_handler"	"textDocument/publishDiagnostics"	{  client_id = 1,  params = {    diagnostics = {},    uri = "file:///home/jack/nvim-debug/test.py"  }}
[ DEBUG ] 2021-08-31T11:49:53+1000 ] /usr/share/nvim/runtime/lua/vim/lsp/rpc.lua:496 ]	"decoded"	{  id = 0,  jsonrpc = "2.0",  method = "client/registerCapability",  params = {    registrations = { {        id = "64feb454-c64c-4d68-a73d-a5e0a2868171",        method = "workspace/didChangeWorkspaceFolders",        registerOptions = vim.empty_dict()      } }  }}
[ DEBUG ] 2021-08-31T11:49:53+1000 ] /usr/share/nvim/runtime/lua/vim/lsp.lua:694 ]	"server_request"	"client/registerCapability"	{  registrations = { {      id = "64feb454-c64c-4d68-a73d-a5e0a2868171",      method = "workspace/didChangeWorkspaceFolders",      registerOptions = {}    } }}
[ DEBUG ] 2021-08-31T11:49:53+1000 ] /usr/share/nvim/runtime/lua/vim/lsp.lua:697 ]	"server_request: found handler for"	"client/registerCapability"
[ DEBUG ] 2021-08-31T11:49:53+1000 ] /usr/share/nvim/runtime/lua/vim/lsp/handlers.lua:434 ]	"default_handler"	"client/registerCapability"	{  client_id = 1,  params = {    registrations = { {        id = "64feb454-c64c-4d68-a73d-a5e0a2868171",        method = "workspace/didChangeWorkspaceFolders",        registerOptions = {}      } }  }}
[ WARN ] 2021-08-31T11:49:53+1000 ] /usr/share/nvim/runtime/lua/vim/lsp/handlers.lua:108 ]	"The language server pyright triggers a registerCapability handler despite dynamicRegistration set to false. Report upstream, this warning is harmless"
[ DEBUG ] 2021-08-31T11:49:53+1000 ] /usr/share/nvim/runtime/lua/vim/lsp/rpc.lua:507 ]	"server_request: callback result"	{  result = vim.NIL,  status = true}
[ DEBUG ] 2021-08-31T11:49:53+1000 ] /usr/share/nvim/runtime/lua/vim/lsp/rpc.lua:395 ]	"rpc.send.payload"	{  id = 0,  jsonrpc = "2.0",  result = vim.NIL}
[ DEBUG ] 2021-08-31T11:49:53+1000 ] /usr/share/nvim/runtime/lua/vim/lsp/rpc.lua:496 ]	"decoded"	{  id = 1,  jsonrpc = "2.0",  method = "workspace/configuration",  params = {    items = { {        scopeUri = "file:///home/jack/nvim-debug",        section = "python"      } }  }}
[ DEBUG ] 2021-08-31T11:49:53+1000 ] /usr/share/nvim/runtime/lua/vim/lsp.lua:694 ]	"server_request"	"workspace/configuration"	{  items = { {      scopeUri = "file:///home/jack/nvim-debug",      section = "python"    } }}
[ DEBUG ] 2021-08-31T11:49:53+1000 ] /usr/share/nvim/runtime/lua/vim/lsp.lua:697 ]	"server_request: found handler for"	"workspace/configuration"
[ DEBUG ] 2021-08-31T11:49:53+1000 ] /usr/share/nvim/runtime/lua/vim/lsp/handlers.lua:434 ]	"default_handler"	"workspace/configuration"	{  client_id = 1,  params = {    items = { {        scopeUri = "file:///home/jack/nvim-debug",        section = "python"      } }  }}
[ DEBUG ] 2021-08-31T11:49:53+1000 ] /usr/share/nvim/runtime/lua/vim/lsp/rpc.lua:507 ]	"server_request: callback result"	{  result = { {      analysis = {        autoSearchPaths = true,        diagnosticMode = "workspace",        useLibraryCodeForTypes = true,        <metatable> = <1>{          __tostring = <function 1>        }      },      <metatable> = <table 1>    } },  status = true}
[ DEBUG ] 2021-08-31T11:49:53+1000 ] /usr/share/nvim/runtime/lua/vim/lsp/rpc.lua:395 ]	"rpc.send.payload"	{  id = 1,  jsonrpc = "2.0",  result = { {      analysis = {        autoSearchPaths = true,        diagnosticMode = "workspace",        useLibraryCodeForTypes = true,        <metatable> = <1>{          __tostring = <function 1>        }      },      <metatable> = <table 1>    } }}
[ DEBUG ] 2021-08-31T11:49:53+1000 ] /usr/share/nvim/runtime/lua/vim/lsp/rpc.lua:496 ]	"decoded"	{  id = 2,  jsonrpc = "2.0",  method = "workspace/configuration",  params = {    items = { {        scopeUri = "file:///home/jack/nvim-debug",        section = "python.analysis"      } }  }}
[ DEBUG ] 2021-08-31T11:49:53+1000 ] /usr/share/nvim/runtime/lua/vim/lsp.lua:694 ]	"server_request"	"workspace/configuration"	{  items = { {      scopeUri = "file:///home/jack/nvim-debug",      section = "python.analysis"    } }}
[ DEBUG ] 2021-08-31T11:49:53+1000 ] /usr/share/nvim/runtime/lua/vim/lsp.lua:697 ]	"server_request: found handler for"	"workspace/configuration"
[ DEBUG ] 2021-08-31T11:49:53+1000 ] /usr/share/nvim/runtime/lua/vim/lsp/handlers.lua:434 ]	"default_handler"	"workspace/configuration"	{  client_id = 1,  params = {    items = { {        scopeUri = "file:///home/jack/nvim-debug",        section = "python.analysis"      } }  }}
[ DEBUG ] 2021-08-31T11:49:53+1000 ] /usr/share/nvim/runtime/lua/vim/lsp/rpc.lua:507 ]	"server_request: callback result"	{  result = { {      autoSearchPaths = true,      diagnosticMode = "workspace",      useLibraryCodeForTypes = true,      <metatable> = {        __tostring = <function 1>      }    } },  status = true}
[ DEBUG ] 2021-08-31T11:49:53+1000 ] /usr/share/nvim/runtime/lua/vim/lsp/rpc.lua:395 ]	"rpc.send.payload"	{  id = 2,  jsonrpc = "2.0",  result = { {      autoSearchPaths = true,      diagnosticMode = "workspace",      useLibraryCodeForTypes = true,      <metatable> = {        __tostring = <function 1>      }    } }}
[ DEBUG ] 2021-08-31T11:49:53+1000 ] /usr/share/nvim/runtime/lua/vim/lsp/rpc.lua:496 ]	"decoded"	{  id = 3,  jsonrpc = "2.0",  method = "workspace/configuration",  params = {    items = { {        scopeUri = "file:///home/jack/nvim-debug",        section = "pyright"      } }  }}
[ DEBUG ] 2021-08-31T11:49:53+1000 ] /usr/share/nvim/runtime/lua/vim/lsp.lua:694 ]	"server_request"	"workspace/configuration"	{  items = { {      scopeUri = "file:///home/jack/nvim-debug",      section = "pyright"    } }}
[ DEBUG ] 2021-08-31T11:49:53+1000 ] /usr/share/nvim/runtime/lua/vim/lsp.lua:697 ]	"server_request: found handler for"	"workspace/configuration"
[ DEBUG ] 2021-08-31T11:49:53+1000 ] /usr/share/nvim/runtime/lua/vim/lsp/handlers.lua:434 ]	"default_handler"	"workspace/configuration"	{  client_id = 1,  params = {    items = { {        scopeUri = "file:///home/jack/nvim-debug",        section = "pyright"      } }  }}
[ DEBUG ] 2021-08-31T11:49:53+1000 ] /usr/share/nvim/runtime/lua/vim/lsp/rpc.lua:507 ]	"server_request: callback result"	{  result = { vim.NIL },  status = true}
[ DEBUG ] 2021-08-31T11:49:53+1000 ] /usr/share/nvim/runtime/lua/vim/lsp/rpc.lua:395 ]	"rpc.send.payload"	{  id = 3,  jsonrpc = "2.0",  result = { vim.NIL }}
[ DEBUG ] 2021-08-31T11:49:53+1000 ] /usr/share/nvim/runtime/lua/vim/lsp/rpc.lua:496 ]	"decoded"	{  jsonrpc = "2.0",  method = "window/logMessage",  params = {    message = "No configuration file found.",    type = 3  }}
[ DEBUG ] 2021-08-31T11:49:53+1000 ] /usr/share/nvim/runtime/lua/vim/lsp.lua:680 ]	"notification"	"window/logMessage"	{  message = "No configuration file found.",  type = 3}
[ DEBUG ] 2021-08-31T11:49:53+1000 ] /usr/share/nvim/runtime/lua/vim/lsp/handlers.lua:434 ]	"default_handler"	"window/logMessage"	{  client_id = 1,  params = {    message = "No configuration file found.",    type = 3  }}
[ INFO ] 2021-08-31T11:49:53+1000 ] /usr/share/nvim/runtime/lua/vim/lsp/handlers.lua:406 ]	"No configuration file found."
[ DEBUG ] 2021-08-31T11:49:53+1000 ] /usr/share/nvim/runtime/lua/vim/lsp/rpc.lua:496 ]	"decoded"	{  jsonrpc = "2.0",  method = "window/logMessage",  params = {    message = "No pyproject.toml file found.",    type = 3  }}
[ DEBUG ] 2021-08-31T11:49:53+1000 ] /usr/share/nvim/runtime/lua/vim/lsp/rpc.lua:496 ]	"decoded"	{  jsonrpc = "2.0",  method = "window/logMessage",  params = {    message = "stubPath /home/jack/nvim-debug/typings is not a valid directory.",    type = 2  }}
[ DEBUG ] 2021-08-31T11:49:53+1000 ] /usr/share/nvim/runtime/lua/vim/lsp.lua:680 ]	"notification"	"window/logMessage"	{  message = "No pyproject.toml file found.",  type = 3}
[ DEBUG ] 2021-08-31T11:49:53+1000 ] /usr/share/nvim/runtime/lua/vim/lsp/handlers.lua:434 ]	"default_handler"	"window/logMessage"	{  client_id = 1,  params = {    message = "No pyproject.toml file found.",    type = 3  }}
[ INFO ] 2021-08-31T11:49:53+1000 ] /usr/share/nvim/runtime/lua/vim/lsp/handlers.lua:406 ]	"No pyproject.toml file found."
[ DEBUG ] 2021-08-31T11:49:53+1000 ] /usr/share/nvim/runtime/lua/vim/lsp/rpc.lua:496 ]	"decoded"	{  jsonrpc = "2.0",  method = "window/logMessage",  params = {    message = "Assuming Python platform Linux",    type = 3  }}
[ DEBUG ] 2021-08-31T11:49:53+1000 ] /usr/share/nvim/runtime/lua/vim/lsp.lua:680 ]	"notification"	"window/logMessage"	{  message = "stubPath /home/jack/nvim-debug/typings is not a valid directory.",  type = 2}
[ DEBUG ] 2021-08-31T11:49:53+1000 ] /usr/share/nvim/runtime/lua/vim/lsp/handlers.lua:434 ]	"default_handler"	"window/logMessage"	{  client_id = 1,  params = {    message = "stubPath /home/jack/nvim-debug/typings is not a valid directory.",    type = 2  }}
[ WARN ] 2021-08-31T11:49:53+1000 ] /usr/share/nvim/runtime/lua/vim/lsp/handlers.lua:404 ]	"stubPath /home/jack/nvim-debug/typings is not a valid directory."
[ DEBUG ] 2021-08-31T11:49:53+1000 ] /usr/share/nvim/runtime/lua/vim/lsp/rpc.lua:496 ]	"decoded"	{  jsonrpc = "2.0",  method = "window/logMessage",  params = {    message = "Exception received when installing file system watcher: TypeError [ERR_FEATURE_UNAVAILABLE_ON_PLATFORM]: The feature watch recursively is unavailable on the current platform, which is being used to run Node.js",    type = 2  }}
[ DEBUG ] 2021-08-31T11:49:53+1000 ] /usr/share/nvim/runtime/lua/vim/lsp/rpc.lua:496 ]	"decoded"	{  jsonrpc = "2.0",  method = "window/logMessage",  params = {    message = "Exception received when installing file system watcher: TypeError [ERR_FEATURE_UNAVAILABLE_ON_PLATFORM]: The feature watch recursively is unavailable on the current platform, which is being used to run Node.js",    type = 2  }}
[ DEBUG ] 2021-08-31T11:49:53+1000 ] /usr/share/nvim/runtime/lua/vim/lsp.lua:680 ]	"notification"	"window/logMessage"	{  message = "Assuming Python platform Linux",  type = 3}
[ DEBUG ] 2021-08-31T11:49:53+1000 ] /usr/share/nvim/runtime/lua/vim/lsp/handlers.lua:434 ]	"default_handler"	"window/logMessage"	{  client_id = 1,  params = {    message = "Assuming Python platform Linux",    type = 3  }}
[ INFO ] 2021-08-31T11:49:53+1000 ] /usr/share/nvim/runtime/lua/vim/lsp/handlers.lua:406 ]	"Assuming Python platform Linux"
[ DEBUG ] 2021-08-31T11:49:53+1000 ] /usr/share/nvim/runtime/lua/vim/lsp/rpc.lua:496 ]	"decoded"	{  jsonrpc = "2.0",  method = "window/logMessage",  params = {    message = "Exception received when installing file system watcher: TypeError [ERR_FEATURE_UNAVAILABLE_ON_PLATFORM]: The feature watch recursively is unavailable on the current platform, which is being used to run Node.js",    type = 2  }}
[ DEBUG ] 2021-08-31T11:49:53+1000 ] /usr/share/nvim/runtime/lua/vim/lsp/rpc.lua:496 ]	"decoded"	{  jsonrpc = "2.0",  method = "window/logMessage",  params = {    message = "Exception received when installing file system watcher: TypeError [ERR_FEATURE_UNAVAILABLE_ON_PLATFORM]: The feature watch recursively is unavailable on the current platform, which is being used to run Node.js",    type = 2  }}
[ DEBUG ] 2021-08-31T11:49:53+1000 ] /usr/share/nvim/runtime/lua/vim/lsp/rpc.lua:496 ]	"decoded"	{  jsonrpc = "2.0",  method = "window/logMessage",  params = {    message = "Searching for source files",    type = 3  }}
[ DEBUG ] 2021-08-31T11:49:53+1000 ] /usr/share/nvim/runtime/lua/vim/lsp.lua:680 ]	"notification"	"window/logMessage"	{  message = "Exception received when installing file system watcher: TypeError [ERR_FEATURE_UNAVAILABLE_ON_PLATFORM]: The feature watch recursively is unavailable on the current platform, which is being used to run Node.js",  type = 2}
[ DEBUG ] 2021-08-31T11:49:53+1000 ] /usr/share/nvim/runtime/lua/vim/lsp/handlers.lua:434 ]	"default_handler"	"window/logMessage"	{  client_id = 1,  params = {    message = "Exception received when installing file system watcher: TypeError [ERR_FEATURE_UNAVAILABLE_ON_PLATFORM]: The feature watch recursively is unavailable on the current platform, which is being used to run Node.js",    type = 2  }}
[ WARN ] 2021-08-31T11:49:53+1000 ] /usr/share/nvim/runtime/lua/vim/lsp/handlers.lua:404 ]	"Exception received when installing file system watcher: TypeError [ERR_FEATURE_UNAVAILABLE_ON_PLATFORM]: The feature watch recursively is unavailable on the current platform, which is being used to run Node.js"
[ DEBUG ] 2021-08-31T11:49:53+1000 ] /usr/share/nvim/runtime/lua/vim/lsp/rpc.lua:496 ]	"decoded"	{  jsonrpc = "2.0",  method = "window/logMessage",  params = {    message = "Found 1 source file",    type = 3  }}
[ DEBUG ] 2021-08-31T11:49:53+1000 ] /usr/share/nvim/runtime/lua/vim/lsp.lua:680 ]	"notification"	"window/logMessage"	{  message = "Exception received when installing file system watcher: TypeError [ERR_FEATURE_UNAVAILABLE_ON_PLATFORM]: The feature watch recursively is unavailable on the current platform, which is being used to run Node.js",  type = 2}
[ DEBUG ] 2021-08-31T11:49:53+1000 ] /usr/share/nvim/runtime/lua/vim/lsp/handlers.lua:434 ]	"default_handler"	"window/logMessage"	{  client_id = 1,  params = {    message = "Exception received when installing file system watcher: TypeError [ERR_FEATURE_UNAVAILABLE_ON_PLATFORM]: The feature watch recursively is unavailable on the current platform, which is being used to run Node.js",    type = 2  }}
[ WARN ] 2021-08-31T11:49:53+1000 ] /usr/share/nvim/runtime/lua/vim/lsp/handlers.lua:404 ]	"Exception received when installing file system watcher: TypeError [ERR_FEATURE_UNAVAILABLE_ON_PLATFORM]: The feature watch recursively is unavailable on the current platform, which is being used to run Node.js"
[ DEBUG ] 2021-08-31T11:49:53+1000 ] /usr/share/nvim/runtime/lua/vim/lsp.lua:680 ]	"notification"	"window/logMessage"	{  message = "Exception received when installing file system watcher: TypeError [ERR_FEATURE_UNAVAILABLE_ON_PLATFORM]: The feature watch recursively is unavailable on the current platform, which is being used to run Node.js",  type = 2}
[ DEBUG ] 2021-08-31T11:49:53+1000 ] /usr/share/nvim/runtime/lua/vim/lsp/handlers.lua:434 ]	"default_handler"	"window/logMessage"	{  client_id = 1,  params = {    message = "Exception received when installing file system watcher: TypeError [ERR_FEATURE_UNAVAILABLE_ON_PLATFORM]: The feature watch recursively is unavailable on the current platform, which is being used to run Node.js",    type = 2  }}
[ WARN ] 2021-08-31T11:49:53+1000 ] /usr/share/nvim/runtime/lua/vim/lsp/handlers.lua:404 ]	"Exception received when installing file system watcher: TypeError [ERR_FEATURE_UNAVAILABLE_ON_PLATFORM]: The feature watch recursively is unavailable on the current platform, which is being used to run Node.js"
[ DEBUG ] 2021-08-31T11:49:53+1000 ] /usr/share/nvim/runtime/lua/vim/lsp.lua:680 ]	"notification"	"window/logMessage"	{  message = "Exception received when installing file system watcher: TypeError [ERR_FEATURE_UNAVAILABLE_ON_PLATFORM]: The feature watch recursively is unavailable on the current platform, which is being used to run Node.js",  type = 2}
[ DEBUG ] 2021-08-31T11:49:53+1000 ] /usr/share/nvim/runtime/lua/vim/lsp/handlers.lua:434 ]	"default_handler"	"window/logMessage"	{  client_id = 1,  params = {    message = "Exception received when installing file system watcher: TypeError [ERR_FEATURE_UNAVAILABLE_ON_PLATFORM]: The feature watch recursively is unavailable on the current platform, which is being used to run Node.js",    type = 2  }}
[ WARN ] 2021-08-31T11:49:53+1000 ] /usr/share/nvim/runtime/lua/vim/lsp/handlers.lua:404 ]	"Exception received when installing file system watcher: TypeError [ERR_FEATURE_UNAVAILABLE_ON_PLATFORM]: The feature watch recursively is unavailable on the current platform, which is being used to run Node.js"
[ DEBUG ] 2021-08-31T11:49:53+1000 ] /usr/share/nvim/runtime/lua/vim/lsp.lua:680 ]	"notification"	"window/logMessage"	{  message = "Searching for source files",  type = 3}
[ DEBUG ] 2021-08-31T11:49:53+1000 ] /usr/share/nvim/runtime/lua/vim/lsp/handlers.lua:434 ]	"default_handler"	"window/logMessage"	{  client_id = 1,  params = {    message = "Searching for source files",    type = 3  }}
[ INFO ] 2021-08-31T11:49:53+1000 ] /usr/share/nvim/runtime/lua/vim/lsp/handlers.lua:406 ]	"Searching for source files"
[ DEBUG ] 2021-08-31T11:49:53+1000 ] /usr/share/nvim/runtime/lua/vim/lsp.lua:680 ]	"notification"	"window/logMessage"	{  message = "Found 1 source file",  type = 3}
[ DEBUG ] 2021-08-31T11:49:53+1000 ] /usr/share/nvim/runtime/lua/vim/lsp/handlers.lua:434 ]	"default_handler"	"window/logMessage"	{  client_id = 1,  params = {    message = "Found 1 source file",    type = 3  }}
[ INFO ] 2021-08-31T11:49:53+1000 ] /usr/share/nvim/runtime/lua/vim/lsp/handlers.lua:406 ]	"Found 1 source file"
[ DEBUG ] 2021-08-31T11:49:54+1000 ] /usr/share/nvim/runtime/lua/vim/lsp/rpc.lua:496 ]	"decoded"	{  jsonrpc = "2.0",  method = "textDocument/publishDiagnostics",  params = {    diagnostics = {},    uri = "file:///home/jack/nvim-debug/test.py"  }}
[ DEBUG ] 2021-08-31T11:49:54+1000 ] /usr/share/nvim/runtime/lua/vim/lsp.lua:680 ]	"notification"	"textDocument/publishDiagnostics"	{  diagnostics = {},  uri = "file:///home/jack/nvim-debug/test.py"}
[ DEBUG ] 2021-08-31T11:49:54+1000 ] /usr/share/nvim/runtime/lua/vim/lsp/handlers.lua:434 ]	"default_handler"	"textDocument/publishDiagnostics"	{  client_id = 1,  params = {    diagnostics = {},    uri = "file:///home/jack/nvim-debug/test.py"  }}
[ DEBUG ] 2021-08-31T11:49:57+1000 ] /usr/share/nvim/runtime/lua/vim/lsp.lua:1035 ]	"on_lines bufnr: 1, changedtick: 4, firstline: 0, lastline: 4, new_lastline: 0, old_byte_size: 39, old_utf32_size: 39, old_utf16_size: 39"	{}
[ DEBUG ] 2021-08-31T11:49:57+1000 ] /usr/share/nvim/runtime/lua/vim/lsp/rpc.lua:395 ]	"rpc.send.payload"	{  jsonrpc = "2.0",  method = "textDocument/didChange",  params = {    contentChanges = { {        range = {          end = {            character = 13,            line = 3          },          start = {            character = 0,            line = 0          }        },        rangeLength = 38,        text = ""      } },    textDocument = {      uri = "file:///home/jack/nvim-debug/test.py",      version = 4    }  }}
[ DEBUG ] 2021-08-31T11:49:57+1000 ] /usr/share/nvim/runtime/lua/vim/lsp/rpc.lua:496 ]	"decoded"	{  jsonrpc = "2.0",  method = "textDocument/publishDiagnostics",  params = {    diagnostics = {},    uri = "file:///home/jack/nvim-debug/test.py"  }}
[ DEBUG ] 2021-08-31T11:49:57+1000 ] /usr/share/nvim/runtime/lua/vim/lsp.lua:680 ]	"notification"	"textDocument/publishDiagnostics"	{  diagnostics = {},  uri = "file:///home/jack/nvim-debug/test.py"}
[ DEBUG ] 2021-08-31T11:49:57+1000 ] /usr/share/nvim/runtime/lua/vim/lsp/handlers.lua:434 ]	"default_handler"	"textDocument/publishDiagnostics"	{  client_id = 1,  params = {    diagnostics = {},    uri = "file:///home/jack/nvim-debug/test.py"  }}
[ DEBUG ] 2021-08-31T11:49:57+1000 ] /usr/share/nvim/runtime/lua/vim/lsp.lua:1035 ]	"on_lines bufnr: 1, changedtick: 5, firstline: 0, lastline: 1, new_lastline: 1, old_byte_size: 1, old_utf32_size: 1, old_utf16_size: 1"	{ "d" }
[ DEBUG ] 2021-08-31T11:49:57+1000 ] /usr/share/nvim/runtime/lua/vim/lsp/rpc.lua:395 ]	"rpc.send.payload"	{  jsonrpc = "2.0",  method = "textDocument/didChange",  params = {    contentChanges = { {        range = {          end = {            character = 0,            line = 0          },          start = {            character = 0,            line = 0          }        },        rangeLength = 0,        text = "d"      } },    textDocument = {      uri = "file:///home/jack/nvim-debug/test.py",      version = 5    }  }}
[ DEBUG ] 2021-08-31T11:49:57+1000 ] /usr/share/nvim/runtime/lua/vim/lsp.lua:1035 ]	"on_lines bufnr: 1, changedtick: 6, firstline: 0, lastline: 1, new_lastline: 1, old_byte_size: 2, old_utf32_size: 2, old_utf16_size: 2"	{ "de" }
[ DEBUG ] 2021-08-31T11:49:57+1000 ] /usr/share/nvim/runtime/lua/vim/lsp/rpc.lua:395 ]	"rpc.send.payload"	{  jsonrpc = "2.0",  method = "textDocument/didChange",  params = {    contentChanges = { {        range = {          end = {            character = 1,            line = 0          },          start = {            character = 1,            line = 0          }        },        rangeLength = 0,        text = "e"      } },    textDocument = {      uri = "file:///home/jack/nvim-debug/test.py",      version = 6    }  }}
[ DEBUG ] 2021-08-31T11:49:57+1000 ] /usr/share/nvim/runtime/lua/vim/lsp.lua:1035 ]	"on_lines bufnr: 1, changedtick: 7, firstline: 0, lastline: 1, new_lastline: 1, old_byte_size: 3, old_utf32_size: 3, old_utf16_size: 3"	{ "def" }
[ DEBUG ] 2021-08-31T11:49:57+1000 ] /usr/share/nvim/runtime/lua/vim/lsp/rpc.lua:395 ]	"rpc.send.payload"	{  jsonrpc = "2.0",  method = "textDocument/didChange",  params = {    contentChanges = { {        range = {          end = {            character = 2,            line = 0          },          start = {            character = 2,            line = 0          }        },        rangeLength = 0,        text = "f"      } },    textDocument = {      uri = "file:///home/jack/nvim-debug/test.py",      version = 7    }  }}
[ DEBUG ] 2021-08-31T11:49:58+1000 ] /usr/share/nvim/runtime/lua/vim/lsp.lua:1035 ]	"on_lines bufnr: 1, changedtick: 8, firstline: 0, lastline: 1, new_lastline: 1, old_byte_size: 4, old_utf32_size: 4, old_utf16_size: 4"	{ "def " }
[ DEBUG ] 2021-08-31T11:49:58+1000 ] /usr/share/nvim/runtime/lua/vim/lsp/rpc.lua:395 ]	"rpc.send.payload"	{  jsonrpc = "2.0",  method = "textDocument/didChange",  params = {    contentChanges = { {        range = {          end = {            character = 3,            line = 0          },          start = {            character = 3,            line = 0          }        },        rangeLength = 0,        text = " "      } },    textDocument = {      uri = "file:///home/jack/nvim-debug/test.py",      version = 8    }  }}
[ DEBUG ] 2021-08-31T11:49:58+1000 ] /usr/share/nvim/runtime/lua/vim/lsp.lua:1035 ]	"on_lines bufnr: 1, changedtick: 9, firstline: 0, lastline: 1, new_lastline: 1, old_byte_size: 5, old_utf32_size: 5, old_utf16_size: 5"	{ "def f" }
[ DEBUG ] 2021-08-31T11:49:58+1000 ] /usr/share/nvim/runtime/lua/vim/lsp/rpc.lua:395 ]	"rpc.send.payload"	{  jsonrpc = "2.0",  method = "textDocument/didChange",  params = {    contentChanges = { {        range = {          end = {            character = 4,            line = 0          },          start = {            character = 4,            line = 0          }        },        rangeLength = 0,        text = "f"      } },    textDocument = {      uri = "file:///home/jack/nvim-debug/test.py",      version = 9    }  }}
[ DEBUG ] 2021-08-31T11:49:58+1000 ] /usr/share/nvim/runtime/lua/vim/lsp.lua:1035 ]	"on_lines bufnr: 1, changedtick: 10, firstline: 0, lastline: 1, new_lastline: 1, old_byte_size: 6, old_utf32_size: 6, old_utf16_size: 6"	{ "def fo" }
[ DEBUG ] 2021-08-31T11:49:58+1000 ] /usr/share/nvim/runtime/lua/vim/lsp/rpc.lua:395 ]	"rpc.send.payload"	{  jsonrpc = "2.0",  method = "textDocument/didChange",  params = {    contentChanges = { {        range = {          end = {            character = 5,            line = 0          },          start = {            character = 5,            line = 0          }        },        rangeLength = 0,        text = "o"      } },    textDocument = {      uri = "file:///home/jack/nvim-debug/test.py",      version = 10    }  }}
[ DEBUG ] 2021-08-31T11:49:58+1000 ] /usr/share/nvim/runtime/lua/vim/lsp.lua:1035 ]	"on_lines bufnr: 1, changedtick: 11, firstline: 0, lastline: 1, new_lastline: 1, old_byte_size: 7, old_utf32_size: 7, old_utf16_size: 7"	{ "def foo" }
[ DEBUG ] 2021-08-31T11:49:58+1000 ] /usr/share/nvim/runtime/lua/vim/lsp/rpc.lua:395 ]	"rpc.send.payload"	{  jsonrpc = "2.0",  method = "textDocument/didChange",  params = {    contentChanges = { {        range = {          end = {            character = 6,            line = 0          },          start = {            character = 6,            line = 0          }        },        rangeLength = 0,        text = "o"      } },    textDocument = {      uri = "file:///home/jack/nvim-debug/test.py",      version = 11    }  }}
[ DEBUG ] 2021-08-31T11:49:58+1000 ] /usr/share/nvim/runtime/lua/vim/lsp.lua:1035 ]	"on_lines bufnr: 1, changedtick: 12, firstline: 0, lastline: 1, new_lastline: 1, old_byte_size: 8, old_utf32_size: 8, old_utf16_size: 8"	{ "def foo(" }
[ DEBUG ] 2021-08-31T11:49:58+1000 ] /usr/share/nvim/runtime/lua/vim/lsp/rpc.lua:395 ]	"rpc.send.payload"	{  jsonrpc = "2.0",  method = "textDocument/didChange",  params = {    contentChanges = { {        range = {          end = {            character = 7,            line = 0          },          start = {            character = 7,            line = 0          }        },        rangeLength = 0,        text = "("      } },    textDocument = {      uri = "file:///home/jack/nvim-debug/test.py",      version = 12    }  }}
[ DEBUG ] 2021-08-31T11:49:58+1000 ] /usr/share/nvim/runtime/lua/vim/lsp.lua:1035 ]	"on_lines bufnr: 1, changedtick: 13, firstline: 0, lastline: 1, new_lastline: 1, old_byte_size: 9, old_utf32_size: 9, old_utf16_size: 9"	{ "def foo()" }
[ DEBUG ] 2021-08-31T11:49:58+1000 ] /usr/share/nvim/runtime/lua/vim/lsp/rpc.lua:395 ]	"rpc.send.payload"	{  jsonrpc = "2.0",  method = "textDocument/didChange",  params = {    contentChanges = { {        range = {          end = {            character = 8,            line = 0          },          start = {            character = 8,            line = 0          }        },        rangeLength = 0,        text = ")"      } },    textDocument = {      uri = "file:///home/jack/nvim-debug/test.py",      version = 13    }  }}
[ DEBUG ] 2021-08-31T11:49:59+1000 ] /usr/share/nvim/runtime/lua/vim/lsp/rpc.lua:496 ]	"decoded"	{  jsonrpc = "2.0",  method = "textDocument/publishDiagnostics",  params = {    diagnostics = { {        message = 'Expected ":"',        range = {          end = {            character = 10,            line = 0          },          start = {            character = 9,            line = 0          }        },        severity = 1,        source = "Pyright"      }, {        message = "Expected expression",        range = {          end = {            character = 10,            line = 0          },          start = {            character = 10,            line = 0          }        },        severity = 1,        source = "Pyright"      }, {        message = "Statements must be separated by newlines or semicolons",        range = {          end = {            character = 10,            line = 0          },          start = {            character = 10,            line = 0          }        },        severity = 1,        source = "Pyright"      } },    uri = "file:///home/jack/nvim-debug/test.py"  }}
[ DEBUG ] 2021-08-31T11:49:59+1000 ] /usr/share/nvim/runtime/lua/vim/lsp.lua:680 ]	"notification"	"textDocument/publishDiagnostics"	{  diagnostics = { {      message = 'Expected ":"',      range = {        end = {          character = 10,          line = 0        },        start = {          character = 9,          line = 0        }      },      severity = 1,      source = "Pyright"    }, {      message = "Expected expression",      range = {        end = {          character = 10,          line = 0        },        start = {          character = 10,          line = 0        }      },      severity = 1,      source = "Pyright"    }, {      message = "Statements must be separated by newlines or semicolons",      range = {        end = {          character = 10,          line = 0        },        start = {          character = 10,          line = 0        }      },      severity = 1,      source = "Pyright"    } },  uri = "file:///home/jack/nvim-debug/test.py"}
[ DEBUG ] 2021-08-31T11:49:59+1000 ] /usr/share/nvim/runtime/lua/vim/lsp/handlers.lua:434 ]	"default_handler"	"textDocument/publishDiagnostics"	{  client_id = 1,  params = {    diagnostics = { {        message = 'Expected ":"',        range = {          end = {            character = 10,            line = 0          },          start = {            character = 9,            line = 0          }        },        severity = 1,        source = "Pyright"      }, {        message = "Expected expression",        range = {          end = {            character = 10,            line = 0          },          start = {            character = 10,            line = 0          }        },        severity = 1,        source = "Pyright"      }, {        message = "Statements must be separated by newlines or semicolons",        range = {          end = {            character = 10,            line = 0          },          start = {            character = 10,            line = 0          }        },        severity = 1,        source = "Pyright"      } },    uri = "file:///home/jack/nvim-debug/test.py"  }}
[ DEBUG ] 2021-08-31T11:49:59+1000 ] /usr/share/nvim/runtime/lua/vim/lsp.lua:1035 ]	"on_lines bufnr: 1, changedtick: 14, firstline: 0, lastline: 1, new_lastline: 1, old_byte_size: 10, old_utf32_size: 10, old_utf16_size: 10"	{ "def foo():" }
[ DEBUG ] 2021-08-31T11:49:59+1000 ] /usr/share/nvim/runtime/lua/vim/lsp/rpc.lua:395 ]	"rpc.send.payload"	{  jsonrpc = "2.0",  method = "textDocument/didChange",  params = {    contentChanges = { {        range = {          end = {            character = 9,            line = 0          },          start = {            character = 9,            line = 0          }        },        rangeLength = 0,        text = ":"      } },    textDocument = {      uri = "file:///home/jack/nvim-debug/test.py",      version = 14    }  }}
[ DEBUG ] 2021-08-31T11:49:59+1000 ] /usr/share/nvim/runtime/lua/vim/lsp.lua:1035 ]	"on_lines bufnr: 1, changedtick: 15, firstline: 0, lastline: 1, new_lastline: 2, old_byte_size: 11, old_utf32_size: 11, old_utf16_size: 11"	{ "def foo():", "" }
[ DEBUG ] 2021-08-31T11:49:59+1000 ] /usr/share/nvim/runtime/lua/vim/lsp/rpc.lua:395 ]	"rpc.send.payload"	{  jsonrpc = "2.0",  method = "textDocument/didChange",  params = {    contentChanges = { {        range = {          end = {            character = 10,            line = 0          },          start = {            character = 10,            line = 0          }        },        rangeLength = 0,        text = "\n"      } },    textDocument = {      uri = "file:///home/jack/nvim-debug/test.py",      version = 15    }  }}
[ DEBUG ] 2021-08-31T11:49:59+1000 ] /usr/share/nvim/runtime/lua/vim/lsp.lua:1035 ]	"on_lines bufnr: 1, changedtick: 16, firstline: 1, lastline: 2, new_lastline: 2, old_byte_size: 1, old_utf32_size: 1, old_utf16_size: 1"	{ "    " }
[ DEBUG ] 2021-08-31T11:49:59+1000 ] /usr/share/nvim/runtime/lua/vim/lsp/rpc.lua:395 ]	"rpc.send.payload"	{  jsonrpc = "2.0",  method = "textDocument/didChange",  params = {    contentChanges = { {        range = {          end = {            character = 0,            line = 1          },          start = {            character = 0,            line = 1          }        },        rangeLength = 0,        text = "    "      } },    textDocument = {      uri = "file:///home/jack/nvim-debug/test.py",      version = 16    }  }}
[ DEBUG ] 2021-08-31T11:49:59+1000 ] /usr/share/nvim/runtime/lua/vim/lsp/rpc.lua:496 ]	"decoded"	{  jsonrpc = "2.0",  method = "textDocument/publishDiagnostics",  params = {    diagnostics = { {        message = "Expected indented block",        range = {          end = {            character = 11,            line = 0          },          start = {            character = 11,            line = 0          }        },        severity = 1,        source = "Pyright"      }, {        message = "Expected expression",        range = {          end = {            character = 11,            line = 0          },          start = {            character = 11,            line = 0          }        },        severity = 1,        source = "Pyright"      }, {        message = "Statements must be separated by newlines or semicolons",        range = {          end = {            character = 11,            line = 0          },          start = {            character = 11,            line = 0          }        },        severity = 1,        source = "Pyright"      } },    uri = "file:///home/jack/nvim-debug/test.py"  }}
[ DEBUG ] 2021-08-31T11:49:59+1000 ] /usr/share/nvim/runtime/lua/vim/lsp.lua:680 ]	"notification"	"textDocument/publishDiagnostics"	{  diagnostics = { {      message = "Expected indented block",      range = {        end = {          character = 11,          line = 0        },        start = {          character = 11,          line = 0        }      },      severity = 1,      source = "Pyright"    }, {      message = "Expected expression",      range = {        end = {          character = 11,          line = 0        },        start = {          character = 11,          line = 0        }      },      severity = 1,      source = "Pyright"    }, {      message = "Statements must be separated by newlines or semicolons",      range = {        end = {          character = 11,          line = 0        },        start = {          character = 11,          line = 0        }      },      severity = 1,      source = "Pyright"    } },  uri = "file:///home/jack/nvim-debug/test.py"}
[ DEBUG ] 2021-08-31T11:49:59+1000 ] /usr/share/nvim/runtime/lua/vim/lsp/handlers.lua:434 ]	"default_handler"	"textDocument/publishDiagnostics"	{  client_id = 1,  params = {    diagnostics = { {        message = "Expected indented block",        range = {          end = {            character = 11,            line = 0          },          start = {            character = 11,            line = 0          }        },        severity = 1,        source = "Pyright"      }, {        message = "Expected expression",        range = {          end = {            character = 11,            line = 0          },          start = {            character = 11,            line = 0          }        },        severity = 1,        source = "Pyright"      }, {        message = "Statements must be separated by newlines or semicolons",        range = {          end = {            character = 11,            line = 0          },          start = {            character = 11,            line = 0          }        },        severity = 1,        source = "Pyright"      } },    uri = "file:///home/jack/nvim-debug/test.py"  }}
[ DEBUG ] 2021-08-31T11:49:59+1000 ] /usr/share/nvim/runtime/lua/vim/lsp/rpc.lua:496 ]	"decoded"	{  jsonrpc = "2.0",  method = "textDocument/publishDiagnostics",  params = {    diagnostics = { {        message = "Expected indented block",        range = {          end = {            character = 5,            line = 1          },          start = {            character = 5,            line = 1          }        },        severity = 1,        source = "Pyright"      }, {        message = "Expected expression",        range = {          end = {            character = 5,            line = 1          },          start = {            character = 5,            line = 1          }        },        severity = 1,        source = "Pyright"      }, {        message = "Statements must be separated by newlines or semicolons",        range = {          end = {            character = 5,            line = 1          },          start = {            character = 5,            line = 1          }        },        severity = 1,        source = "Pyright"      } },    uri = "file:///home/jack/nvim-debug/test.py"  }}
[ DEBUG ] 2021-08-31T11:49:59+1000 ] /usr/share/nvim/runtime/lua/vim/lsp.lua:680 ]	"notification"	"textDocument/publishDiagnostics"	{  diagnostics = { {      message = "Expected indented block",      range = {        end = {          character = 5,          line = 1        },        start = {          character = 5,          line = 1        }      },      severity = 1,      source = "Pyright"    }, {      message = "Expected expression",      range = {        end = {          character = 5,          line = 1        },        start = {          character = 5,          line = 1        }      },      severity = 1,      source = "Pyright"    }, {      message = "Statements must be separated by newlines or semicolons",      range = {        end = {          character = 5,          line = 1        },        start = {          character = 5,          line = 1        }      },      severity = 1,      source = "Pyright"    } },  uri = "file:///home/jack/nvim-debug/test.py"}
[ DEBUG ] 2021-08-31T11:49:59+1000 ] /usr/share/nvim/runtime/lua/vim/lsp/handlers.lua:434 ]	"default_handler"	"textDocument/publishDiagnostics"	{  client_id = 1,  params = {    diagnostics = { {        message = "Expected indented block",        range = {          end = {            character = 5,            line = 1          },          start = {            character = 5,            line = 1          }        },        severity = 1,        source = "Pyright"      }, {        message = "Expected expression",        range = {          end = {            character = 5,            line = 1          },          start = {            character = 5,            line = 1          }        },        severity = 1,        source = "Pyright"      }, {        message = "Statements must be separated by newlines or semicolons",        range = {          end = {            character = 5,            line = 1          },          start = {            character = 5,            line = 1          }        },        severity = 1,        source = "Pyright"      } },    uri = "file:///home/jack/nvim-debug/test.py"  }}
[ DEBUG ] 2021-08-31T11:49:59+1000 ] /usr/share/nvim/runtime/lua/vim/lsp.lua:1035 ]	"on_lines bufnr: 1, changedtick: 17, firstline: 1, lastline: 2, new_lastline: 2, old_byte_size: 5, old_utf32_size: 5, old_utf16_size: 5"	{ "    r" }
[ DEBUG ] 2021-08-31T11:49:59+1000 ] /usr/share/nvim/runtime/lua/vim/lsp/rpc.lua:395 ]	"rpc.send.payload"	{  jsonrpc = "2.0",  method = "textDocument/didChange",  params = {    contentChanges = { {        range = {          end = {            character = 4,            line = 1          },          start = {            character = 4,            line = 1          }        },        rangeLength = 0,        text = "r"      } },    textDocument = {      uri = "file:///home/jack/nvim-debug/test.py",      version = 17    }  }}
[ DEBUG ] 2021-08-31T11:49:59+1000 ] /usr/share/nvim/runtime/lua/vim/lsp.lua:1035 ]	"on_lines bufnr: 1, changedtick: 18, firstline: 1, lastline: 2, new_lastline: 2, old_byte_size: 6, old_utf32_size: 6, old_utf16_size: 6"	{ "    re" }
[ DEBUG ] 2021-08-31T11:49:59+1000 ] /usr/share/nvim/runtime/lua/vim/lsp/rpc.lua:395 ]	"rpc.send.payload"	{  jsonrpc = "2.0",  method = "textDocument/didChange",  params = {    contentChanges = { {        range = {          end = {            character = 5,            line = 1          },          start = {            character = 5,            line = 1          }        },        rangeLength = 0,        text = "e"      } },    textDocument = {      uri = "file:///home/jack/nvim-debug/test.py",      version = 18    }  }}
[ DEBUG ] 2021-08-31T11:50:00+1000 ] /usr/share/nvim/runtime/lua/vim/lsp.lua:1035 ]	"on_lines bufnr: 1, changedtick: 19, firstline: 1, lastline: 2, new_lastline: 2, old_byte_size: 7, old_utf32_size: 7, old_utf16_size: 7"	{ "    ret" }
[ DEBUG ] 2021-08-31T11:50:00+1000 ] /usr/share/nvim/runtime/lua/vim/lsp/rpc.lua:395 ]	"rpc.send.payload"	{  jsonrpc = "2.0",  method = "textDocument/didChange",  params = {    contentChanges = { {        range = {          end = {            character = 6,            line = 1          },          start = {            character = 6,            line = 1          }        },        rangeLength = 0,        text = "t"      } },    textDocument = {      uri = "file:///home/jack/nvim-debug/test.py",      version = 19    }  }}
[ DEBUG ] 2021-08-31T11:50:00+1000 ] /usr/share/nvim/runtime/lua/vim/lsp.lua:1035 ]	"on_lines bufnr: 1, changedtick: 20, firstline: 1, lastline: 2, new_lastline: 2, old_byte_size: 8, old_utf32_size: 8, old_utf16_size: 8"	{ "    retu" }
[ DEBUG ] 2021-08-31T11:50:00+1000 ] /usr/share/nvim/runtime/lua/vim/lsp/rpc.lua:395 ]	"rpc.send.payload"	{  jsonrpc = "2.0",  method = "textDocument/didChange",  params = {    contentChanges = { {        range = {          end = {            character = 7,            line = 1          },          start = {            character = 7,            line = 1          }        },        rangeLength = 0,        text = "u"      } },    textDocument = {      uri = "file:///home/jack/nvim-debug/test.py",      version = 20    }  }}
[ DEBUG ] 2021-08-31T11:50:00+1000 ] /usr/share/nvim/runtime/lua/vim/lsp.lua:1035 ]	"on_lines bufnr: 1, changedtick: 21, firstline: 1, lastline: 2, new_lastline: 2, old_byte_size: 9, old_utf32_size: 9, old_utf16_size: 9"	{ "    retur" }
[ DEBUG ] 2021-08-31T11:50:00+1000 ] /usr/share/nvim/runtime/lua/vim/lsp/rpc.lua:395 ]	"rpc.send.payload"	{  jsonrpc = "2.0",  method = "textDocument/didChange",  params = {    contentChanges = { {        range = {          end = {            character = 8,            line = 1          },          start = {            character = 8,            line = 1          }        },        rangeLength = 0,        text = "r"      } },    textDocument = {      uri = "file:///home/jack/nvim-debug/test.py",      version = 21    }  }}
[ DEBUG ] 2021-08-31T11:50:00+1000 ] /usr/share/nvim/runtime/lua/vim/lsp.lua:1035 ]	"on_lines bufnr: 1, changedtick: 22, firstline: 1, lastline: 2, new_lastline: 2, old_byte_size: 10, old_utf32_size: 10, old_utf16_size: 10"	{ "    return" }
[ DEBUG ] 2021-08-31T11:50:00+1000 ] /usr/share/nvim/runtime/lua/vim/lsp/rpc.lua:395 ]	"rpc.send.payload"	{  jsonrpc = "2.0",  method = "textDocument/didChange",  params = {    contentChanges = { {        range = {          end = {            character = 9,            line = 1          },          start = {            character = 9,            line = 1          }        },        rangeLength = 0,        text = "n"      } },    textDocument = {      uri = "file:///home/jack/nvim-debug/test.py",      version = 22    }  }}
[ DEBUG ] 2021-08-31T11:50:00+1000 ] /usr/share/nvim/runtime/lua/vim/lsp.lua:1035 ]	"on_lines bufnr: 1, changedtick: 23, firstline: 1, lastline: 2, new_lastline: 2, old_byte_size: 11, old_utf32_size: 11, old_utf16_size: 11"	{ "    return " }
[ DEBUG ] 2021-08-31T11:50:00+1000 ] /usr/share/nvim/runtime/lua/vim/lsp/rpc.lua:395 ]	"rpc.send.payload"	{  jsonrpc = "2.0",  method = "textDocument/didChange",  params = {    contentChanges = { {        range = {          end = {            character = 10,            line = 1          },          start = {            character = 10,            line = 1          }        },        rangeLength = 0,        text = " "      } },    textDocument = {      uri = "file:///home/jack/nvim-debug/test.py",      version = 23    }  }}
[ DEBUG ] 2021-08-31T11:50:00+1000 ] /usr/share/nvim/runtime/lua/vim/lsp.lua:1035 ]	"on_lines bufnr: 1, changedtick: 24, firstline: 1, lastline: 2, new_lastline: 2, old_byte_size: 12, old_utf32_size: 12, old_utf16_size: 12"	{ "    return 0" }
[ DEBUG ] 2021-08-31T11:50:00+1000 ] /usr/share/nvim/runtime/lua/vim/lsp/rpc.lua:395 ]	"rpc.send.payload"	{  jsonrpc = "2.0",  method = "textDocument/didChange",  params = {    contentChanges = { {        range = {          end = {            character = 11,            line = 1          },          start = {            character = 11,            line = 1          }        },        rangeLength = 0,        text = "0"      } },    textDocument = {      uri = "file:///home/jack/nvim-debug/test.py",      version = 24    }  }}
[ DEBUG ] 2021-08-31T11:50:00+1000 ] /usr/share/nvim/runtime/lua/vim/lsp/rpc.lua:496 ]	"decoded"	{  jsonrpc = "2.0",  method = "textDocument/publishDiagnostics",  params = {    diagnostics = {},    uri = "file:///home/jack/nvim-debug/test.py"  }}
[ DEBUG ] 2021-08-31T11:50:00+1000 ] /usr/share/nvim/runtime/lua/vim/lsp.lua:680 ]	"notification"	"textDocument/publishDiagnostics"	{  diagnostics = {},  uri = "file:///home/jack/nvim-debug/test.py"}
[ DEBUG ] 2021-08-31T11:50:00+1000 ] /usr/share/nvim/runtime/lua/vim/lsp/handlers.lua:434 ]	"default_handler"	"textDocument/publishDiagnostics"	{  client_id = 1,  params = {    diagnostics = {},    uri = "file:///home/jack/nvim-debug/test.py"  }}
[ DEBUG ] 2021-08-31T11:50:00+1000 ] /usr/share/nvim/runtime/lua/vim/lsp.lua:1035 ]	"on_lines bufnr: 1, changedtick: 25, firstline: 1, lastline: 2, new_lastline: 3, old_byte_size: 13, old_utf32_size: 13, old_utf16_size: 13"	{ "    return 0", "    " }
[ DEBUG ] 2021-08-31T11:50:00+1000 ] /usr/share/nvim/runtime/lua/vim/lsp/rpc.lua:395 ]	"rpc.send.payload"	{  jsonrpc = "2.0",  method = "textDocument/didChange",  params = {    contentChanges = { {        range = {          end = {            character = 12,            line = 1          },          start = {            character = 12,            line = 1          }        },        rangeLength = 0,        text = "\n    "      } },    textDocument = {      uri = "file:///home/jack/nvim-debug/test.py",      version = 25    }  }}
[ DEBUG ] 2021-08-31T11:50:00+1000 ] /usr/share/nvim/runtime/lua/vim/lsp.lua:1035 ]	"on_lines bufnr: 1, changedtick: 26, firstline: 2, lastline: 3, new_lastline: 3, old_byte_size: 5, old_utf32_size: 5, old_utf16_size: 5"	{ "" }
[ DEBUG ] 2021-08-31T11:50:00+1000 ] /usr/share/nvim/runtime/lua/vim/lsp/rpc.lua:395 ]	"rpc.send.payload"	{  jsonrpc = "2.0",  method = "textDocument/didChange",  params = {    contentChanges = { {        range = {          end = {            character = 4,            line = 2          },          start = {            character = 0,            line = 2          }        },        rangeLength = 4,        text = ""      } },    textDocument = {      uri = "file:///home/jack/nvim-debug/test.py",      version = 26    }  }}
[ DEBUG ] 2021-08-31T11:50:01+1000 ] /usr/share/nvim/runtime/lua/vim/lsp.lua:1035 ]	"on_lines bufnr: 1, changedtick: 27, firstline: 2, lastline: 3, new_lastline: 4, old_byte_size: 1, old_utf32_size: 1, old_utf16_size: 1"	{ "", "" }
[ DEBUG ] 2021-08-31T11:50:01+1000 ] /usr/share/nvim/runtime/lua/vim/lsp/rpc.lua:395 ]	"rpc.send.payload"	{  jsonrpc = "2.0",  method = "textDocument/didChange",  params = {    contentChanges = { {        range = {          end = {            character = 0,            line = 2          },          start = {            character = 0,            line = 2          }        },        rangeLength = 0,        text = "\n"      } },    textDocument = {      uri = "file:///home/jack/nvim-debug/test.py",      version = 27    }  }}
[ DEBUG ] 2021-08-31T11:50:01+1000 ] /usr/share/nvim/runtime/lua/vim/lsp/rpc.lua:496 ]	"decoded"	{  jsonrpc = "2.0",  method = "textDocument/publishDiagnostics",  params = {    diagnostics = {},    uri = "file:///home/jack/nvim-debug/test.py"  }}
[ DEBUG ] 2021-08-31T11:50:01+1000 ] /usr/share/nvim/runtime/lua/vim/lsp.lua:680 ]	"notification"	"textDocument/publishDiagnostics"	{  diagnostics = {},  uri = "file:///home/jack/nvim-debug/test.py"}
[ DEBUG ] 2021-08-31T11:50:01+1000 ] /usr/share/nvim/runtime/lua/vim/lsp/handlers.lua:434 ]	"default_handler"	"textDocument/publishDiagnostics"	{  client_id = 1,  params = {    diagnostics = {},    uri = "file:///home/jack/nvim-debug/test.py"  }}
[ DEBUG ] 2021-08-31T11:50:01+1000 ] /usr/share/nvim/runtime/lua/vim/lsp.lua:1035 ]	"on_lines bufnr: 1, changedtick: 28, firstline: 3, lastline: 4, new_lastline: 4, old_byte_size: 1, old_utf32_size: 1, old_utf16_size: 1"	{ "f" }
[ DEBUG ] 2021-08-31T11:50:01+1000 ] /usr/share/nvim/runtime/lua/vim/lsp/rpc.lua:395 ]	"rpc.send.payload"	{  jsonrpc = "2.0",  method = "textDocument/didChange",  params = {    contentChanges = { {        range = {          end = {            character = 0,            line = 3          },          start = {            character = 0,            line = 3          }        },        rangeLength = 0,        text = "f"      } },    textDocument = {      uri = "file:///home/jack/nvim-debug/test.py",      version = 28    }  }}
[ DEBUG ] 2021-08-31T11:50:01+1000 ] /usr/share/nvim/runtime/lua/vim/lsp.lua:1035 ]	"on_lines bufnr: 1, changedtick: 29, firstline: 3, lastline: 4, new_lastline: 4, old_byte_size: 2, old_utf32_size: 2, old_utf16_size: 2"	{ "f " }
[ DEBUG ] 2021-08-31T11:50:01+1000 ] /usr/share/nvim/runtime/lua/vim/lsp/rpc.lua:395 ]	"rpc.send.payload"	{  jsonrpc = "2.0",  method = "textDocument/didChange",  params = {    contentChanges = { {        range = {          end = {            character = 1,            line = 3          },          start = {            character = 1,            line = 3          }        },        rangeLength = 0,        text = " "      } },    textDocument = {      uri = "file:///home/jack/nvim-debug/test.py",      version = 29    }  }}
[ DEBUG ] 2021-08-31T11:50:01+1000 ] /usr/share/nvim/runtime/lua/vim/lsp.lua:1035 ]	"on_lines bufnr: 1, changedtick: 30, firstline: 3, lastline: 4, new_lastline: 4, old_byte_size: 3, old_utf32_size: 3, old_utf16_size: 3"	{ "f =" }
[ DEBUG ] 2021-08-31T11:50:01+1000 ] /usr/share/nvim/runtime/lua/vim/lsp/rpc.lua:395 ]	"rpc.send.payload"	{  jsonrpc = "2.0",  method = "textDocument/didChange",  params = {    contentChanges = { {        range = {          end = {            character = 2,            line = 3          },          start = {            character = 2,            line = 3          }        },        rangeLength = 0,        text = "="      } },    textDocument = {      uri = "file:///home/jack/nvim-debug/test.py",      version = 30    }  }}
[ DEBUG ] 2021-08-31T11:50:02+1000 ] /usr/share/nvim/runtime/lua/vim/lsp.lua:1035 ]	"on_lines bufnr: 1, changedtick: 31, firstline: 3, lastline: 4, new_lastline: 4, old_byte_size: 4, old_utf32_size: 4, old_utf16_size: 4"	{ "f = " }
[ DEBUG ] 2021-08-31T11:50:02+1000 ] /usr/share/nvim/runtime/lua/vim/lsp/rpc.lua:395 ]	"rpc.send.payload"	{  jsonrpc = "2.0",  method = "textDocument/didChange",  params = {    contentChanges = { {        range = {          end = {            character = 3,            line = 3          },          start = {            character = 3,            line = 3          }        },        rangeLength = 0,        text = " "      } },    textDocument = {      uri = "file:///home/jack/nvim-debug/test.py",      version = 31    }  }}
[ DEBUG ] 2021-08-31T11:50:02+1000 ] /usr/share/nvim/runtime/lua/vim/lsp/rpc.lua:496 ]	"decoded"	{  jsonrpc = "2.0",  method = "textDocument/publishDiagnostics",  params = {    diagnostics = { {        message = 'Expected expression to the right of "="',        range = {          end = {            character = 5,            line = 3          },          start = {            character = 4,            line = 3          }        },        severity = 1,        source = "Pyright"      } },    uri = "file:///home/jack/nvim-debug/test.py"  }}
[ DEBUG ] 2021-08-31T11:50:02+1000 ] /usr/share/nvim/runtime/lua/vim/lsp.lua:680 ]	"notification"	"textDocument/publishDiagnostics"	{  diagnostics = { {      message = 'Expected expression to the right of "="',      range = {        end = {          character = 5,          line = 3        },        start = {          character = 4,          line = 3        }      },      severity = 1,      source = "Pyright"    } },  uri = "file:///home/jack/nvim-debug/test.py"}
[ DEBUG ] 2021-08-31T11:50:02+1000 ] /usr/share/nvim/runtime/lua/vim/lsp/handlers.lua:434 ]	"default_handler"	"textDocument/publishDiagnostics"	{  client_id = 1,  params = {    diagnostics = { {        message = 'Expected expression to the right of "="',        range = {          end = {            character = 5,            line = 3          },          start = {            character = 4,            line = 3          }        },        severity = 1,        source = "Pyright"      } },    uri = "file:///home/jack/nvim-debug/test.py"  }}
[ DEBUG ] 2021-08-31T11:50:03+1000 ] /usr/share/nvim/runtime/lua/vim/lsp.lua:1035 ]	"on_lines bufnr: 1, changedtick: 32, firstline: 3, lastline: 4, new_lastline: 4, old_byte_size: 5, old_utf32_size: 5, old_utf16_size: 5"	{ "f = {\r}" }
[ DEBUG ] 2021-08-31T11:50:03+1000 ] /usr/share/nvim/runtime/lua/vim/lsp/rpc.lua:395 ]	"rpc.send.payload"	{  jsonrpc = "2.0",  method = "textDocument/didChange",  params = {    contentChanges = { {        range = {          end = {            character = 4,            line = 3          },          start = {            character = 4,            line = 3          }        },        rangeLength = 0,        text = "{\r}"      } },    textDocument = {      uri = "file:///home/jack/nvim-debug/test.py",      version = 32    }  }}
[ DEBUG ] 2021-08-31T11:50:03+1000 ] /usr/share/nvim/runtime/lua/vim/lsp.lua:1035 ]	"on_lines bufnr: 1, changedtick: 33, firstline: 3, lastline: 4, new_lastline: 4, old_byte_size: 8, old_utf32_size: 8, old_utf16_size: 8"	{ "f = {}" }
[ DEBUG ] 2021-08-31T11:50:03+1000 ] /usr/share/nvim/runtime/lua/vim/lsp/rpc.lua:395 ]	"rpc.send.payload"	{  jsonrpc = "2.0",  method = "textDocument/didChange",  params = {    contentChanges = { {        range = {          end = {            character = 6,            line = 3          },          start = {            character = 5,            line = 3          }        },        rangeLength = 1,        text = ""      } },    textDocument = {      uri = "file:///home/jack/nvim-debug/test.py",      version = 33    }  }}
[ DEBUG ] 2021-08-31T11:50:03+1000 ] /usr/share/nvim/runtime/lua/vim/lsp/rpc.lua:496 ]	"decoded"	{  jsonrpc = "2.0",  method = "textDocument/publishDiagnostics",  params = {    diagnostics = {},    uri = "file:///home/jack/nvim-debug/test.py"  }}
[ DEBUG ] 2021-08-31T11:50:03+1000 ] /usr/share/nvim/runtime/lua/vim/lsp.lua:680 ]	"notification"	"textDocument/publishDiagnostics"	{  diagnostics = {},  uri = "file:///home/jack/nvim-debug/test.py"}
[ DEBUG ] 2021-08-31T11:50:03+1000 ] /usr/share/nvim/runtime/lua/vim/lsp/handlers.lua:434 ]	"default_handler"	"textDocument/publishDiagnostics"	{  client_id = 1,  params = {    diagnostics = {},    uri = "file:///home/jack/nvim-debug/test.py"  }}
[ DEBUG ] 2021-08-31T11:50:04+1000 ] /usr/share/nvim/runtime/lua/vim/lsp.lua:1035 ]	"on_lines bufnr: 1, changedtick: 34, firstline: 3, lastline: 4, new_lastline: 4, old_byte_size: 7, old_utf32_size: 7, old_utf16_size: 7"	{ 'f = {"\r"}' }
[ DEBUG ] 2021-08-31T11:50:04+1000 ] /usr/share/nvim/runtime/lua/vim/lsp/rpc.lua:395 ]	"rpc.send.payload"	{  jsonrpc = "2.0",  method = "textDocument/didChange",  params = {    contentChanges = { {        range = {          end = {            character = 5,            line = 3          },          start = {            character = 5,            line = 3          }        },        rangeLength = 0,        text = '"\r"'      } },    textDocument = {      uri = "file:///home/jack/nvim-debug/test.py",      version = 34    }  }}
[ DEBUG ] 2021-08-31T11:50:04+1000 ] /usr/share/nvim/runtime/lua/vim/lsp.lua:1035 ]	"on_lines bufnr: 1, changedtick: 35, firstline: 3, lastline: 4, new_lastline: 4, old_byte_size: 10, old_utf32_size: 10, old_utf16_size: 10"	{ 'f = {""}' }
[ DEBUG ] 2021-08-31T11:50:04+1000 ] /usr/share/nvim/runtime/lua/vim/lsp/rpc.lua:395 ]	"rpc.send.payload"	{  jsonrpc = "2.0",  method = "textDocument/didChange",  params = {    contentChanges = { {        range = {          end = {            character = 7,            line = 3          },          start = {            character = 6,            line = 3          }        },        rangeLength = 1,        text = ""      } },    textDocument = {      uri = "file:///home/jack/nvim-debug/test.py",      version = 35    }  }}
[ DEBUG ] 2021-08-31T11:50:04+1000 ] /usr/share/nvim/runtime/lua/vim/lsp.lua:1035 ]	"on_lines bufnr: 1, changedtick: 36, firstline: 3, lastline: 4, new_lastline: 4, old_byte_size: 9, old_utf32_size: 9, old_utf16_size: 9"	{ 'f = {"f"}' }
[ DEBUG ] 2021-08-31T11:50:04+1000 ] /usr/share/nvim/runtime/lua/vim/lsp/rpc.lua:395 ]	"rpc.send.payload"	{  jsonrpc = "2.0",  method = "textDocument/didChange",  params = {    contentChanges = { {        range = {          end = {            character = 6,            line = 3          },          start = {            character = 6,            line = 3          }        },        rangeLength = 0,        text = "f"      } },    textDocument = {      uri = "file:///home/jack/nvim-debug/test.py",      version = 36    }  }}
[ DEBUG ] 2021-08-31T11:50:04+1000 ] /usr/share/nvim/runtime/lua/vim/lsp.lua:1035 ]	"on_lines bufnr: 1, changedtick: 37, firstline: 3, lastline: 4, new_lastline: 4, old_byte_size: 10, old_utf32_size: 10, old_utf16_size: 10"	{ 'f = {"fo"}' }
[ DEBUG ] 2021-08-31T11:50:04+1000 ] /usr/share/nvim/runtime/lua/vim/lsp/rpc.lua:395 ]	"rpc.send.payload"	{  jsonrpc = "2.0",  method = "textDocument/didChange",  params = {    contentChanges = { {        range = {          end = {            character = 7,            line = 3          },          start = {            character = 7,            line = 3          }        },        rangeLength = 0,        text = "o"      } },    textDocument = {      uri = "file:///home/jack/nvim-debug/test.py",      version = 37    }  }}
[ DEBUG ] 2021-08-31T11:50:04+1000 ] /usr/share/nvim/runtime/lua/vim/lsp.lua:1035 ]	"on_lines bufnr: 1, changedtick: 38, firstline: 3, lastline: 4, new_lastline: 4, old_byte_size: 11, old_utf32_size: 11, old_utf16_size: 11"	{ 'f = {"foo"}' }
[ DEBUG ] 2021-08-31T11:50:04+1000 ] /usr/share/nvim/runtime/lua/vim/lsp/rpc.lua:395 ]	"rpc.send.payload"	{  jsonrpc = "2.0",  method = "textDocument/didChange",  params = {    contentChanges = { {        range = {          end = {            character = 8,            line = 3          },          start = {            character = 8,            line = 3          }        },        rangeLength = 0,        text = "o"      } },    textDocument = {      uri = "file:///home/jack/nvim-debug/test.py",      version = 38    }  }}
[ DEBUG ] 2021-08-31T11:50:05+1000 ] /usr/share/nvim/runtime/lua/vim/lsp/rpc.lua:496 ]	"decoded"	{  jsonrpc = "2.0",  method = "textDocument/publishDiagnostics",  params = {    diagnostics = {},    uri = "file:///home/jack/nvim-debug/test.py"  }}
[ DEBUG ] 2021-08-31T11:50:05+1000 ] /usr/share/nvim/runtime/lua/vim/lsp.lua:680 ]	"notification"	"textDocument/publishDiagnostics"	{  diagnostics = {},  uri = "file:///home/jack/nvim-debug/test.py"}
[ DEBUG ] 2021-08-31T11:50:05+1000 ] /usr/share/nvim/runtime/lua/vim/lsp/handlers.lua:434 ]	"default_handler"	"textDocument/publishDiagnostics"	{  client_id = 1,  params = {    diagnostics = {},    uri = "file:///home/jack/nvim-debug/test.py"  }}
[ DEBUG ] 2021-08-31T11:50:06+1000 ] /usr/share/nvim/runtime/lua/vim/lsp/rpc.lua:395 ]	"rpc.send.payload"	{  jsonrpc = "2.0",  method = "textDocument/didSave",  params = {    textDocument = {      uri = "file:///home/jack/nvim-debug/test.py"    }  }}
[ DEBUG ] 2021-08-31T11:50:07+1000 ] /usr/share/nvim/runtime/lua/vim/lsp.lua:1035 ]	"on_lines bufnr: 1, changedtick: 40, firstline: 3, lastline: 4, new_lastline: 4, old_byte_size: 12, old_utf32_size: 12, old_utf16_size: 12"	{ "f = {}" }
[ DEBUG ] 2021-08-31T11:50:07+1000 ] /usr/share/nvim/runtime/lua/vim/lsp/rpc.lua:395 ]	"rpc.send.payload"	{  jsonrpc = "2.0",  method = "textDocument/didChange",  params = {    contentChanges = { {        range = {          end = {            character = 10,            line = 3          },          start = {            character = 5,            line = 3          }        },        rangeLength = 5,        text = ""      } },    textDocument = {      uri = "file:///home/jack/nvim-debug/test.py",      version = 40    }  }}
[ DEBUG ] 2021-08-31T11:50:07+1000 ] /usr/share/nvim/runtime/lua/vim/lsp.lua:1035 ]	"on_lines bufnr: 1, changedtick: 41, firstline: 3, lastline: 4, new_lastline: 4, old_byte_size: 7, old_utf32_size: 7, old_utf16_size: 7"	{ "f = " }
[ DEBUG ] 2021-08-31T11:50:07+1000 ] /usr/share/nvim/runtime/lua/vim/lsp/rpc.lua:395 ]	"rpc.send.payload"	{  jsonrpc = "2.0",  method = "textDocument/didChange",  params = {    contentChanges = { {        range = {          end = {            character = 6,            line = 3          },          start = {            character = 4,            line = 3          }        },        rangeLength = 2,        text = ""      } },    textDocument = {      uri = "file:///home/jack/nvim-debug/test.py",      version = 41    }  }}
[ DEBUG ] 2021-08-31T11:50:07+1000 ] /usr/share/nvim/runtime/lua/vim/lsp.lua:1035 ]	"on_lines bufnr: 1, changedtick: 42, firstline: 3, lastline: 4, new_lastline: 4, old_byte_size: 5, old_utf32_size: 5, old_utf16_size: 5"	{ 'f = { "foo" }' }
[ DEBUG ] 2021-08-31T11:50:07+1000 ] /usr/share/nvim/runtime/lua/vim/lsp/rpc.lua:395 ]	"rpc.send.payload"	{  jsonrpc = "2.0",  method = "textDocument/didChange",  params = {    contentChanges = { {        range = {          end = {            character = 4,            line = 3          },          start = {            character = 4,            line = 3          }        },        rangeLength = 0,        text = '{ "foo" }'      } },    textDocument = {      uri = "file:///home/jack/nvim-debug/test.py",      version = 42    }  }}
[ DEBUG ] 2021-08-31T11:50:08+1000 ] /usr/share/nvim/runtime/lua/vim/lsp/rpc.lua:496 ]	"decoded"	{  jsonrpc = "2.0",  method = "textDocument/publishDiagnostics",  params = {    diagnostics = { {        message = "Statements must be separated by newlines or semicolons",        range = {          end = {            character = 15,            line = 3          },          start = {            character = 13,            line = 3          }        },        severity = 1,        source = "Pyright"      }, {        message = "String literal is unterminated",        range = {          end = {            character = 15,            line = 3          },          start = {            character = 13,            line = 3          }        },        severity = 1,        source = "Pyright"      } },    uri = "file:///home/jack/nvim-debug/test.py"  }}
[ DEBUG ] 2021-08-31T11:50:08+1000 ] /usr/share/nvim/runtime/lua/vim/lsp.lua:680 ]	"notification"	"textDocument/publishDiagnostics"	{  diagnostics = { {      message = "Statements must be separated by newlines or semicolons",      range = {        end = {          character = 15,          line = 3        },        start = {          character = 13,          line = 3        }      },      severity = 1,      source = "Pyright"    }, {      message = "String literal is unterminated",      range = {        end = {          character = 15,          line = 3        },        start = {          character = 13,          line = 3        }      },      severity = 1,      source = "Pyright"    } },  uri = "file:///home/jack/nvim-debug/test.py"}
[ DEBUG ] 2021-08-31T11:50:08+1000 ] /usr/share/nvim/runtime/lua/vim/lsp/handlers.lua:434 ]	"default_handler"	"textDocument/publishDiagnostics"	{  client_id = 1,  params = {    diagnostics = { {        message = "Statements must be separated by newlines or semicolons",        range = {          end = {            character = 15,            line = 3          },          start = {            character = 13,            line = 3          }        },        severity = 1,        source = "Pyright"      }, {        message = "String literal is unterminated",        range = {          end = {            character = 15,            line = 3          },          start = {            character = 13,            line = 3          }        },        severity = 1,        source = "Pyright"      } },    uri = "file:///home/jack/nvim-debug/test.py"  }}
[ DEBUG ] 2021-08-31T11:50:11+1000 ] /usr/share/nvim/runtime/lua/vim/lsp/rpc.lua:395 ]	"rpc.send.payload"	{  jsonrpc = "2.0",  method = "textDocument/didSave",  params = {    textDocument = {      uri = "file:///home/jack/nvim-debug/test.py"    }  }}
[ INFO ] 2021-08-31T11:50:11+1000 ] /usr/share/nvim/runtime/lua/vim/lsp.lua:1214 ]	"exit_handler"	{ {    _on_attach = <function 1>,    cancel_request = <function 2>,    config = {      _on_attach = <function 3>,      autostart = true,      capabilities = {        callHierarchy = {          dynamicRegistration = false,          <metatable> = <1>{            __tostring = <function 4>          }        },        textDocument = {          codeAction = {            codeActionLiteralSupport = {              codeActionKind = {                valueSet = { "", "Empty", "QuickFix", "Refactor", "RefactorExtract", "RefactorInline", "RefactorRewrite", "Source", "SourceOrganizeImports", "quickfix", "refactor", "refactor.extract", "refactor.inline", "refactor.rewrite", "source", "source.organizeImports" },                <metatable> = <table 1>              },              <metatable> = <table 1>            },            dynamicRegistration = false,            <metatable> = <table 1>          },          completion = {            completionItem = {              commitCharactersSupport = false,              deprecatedSupport = false,              documentationFormat = { "markdown", "plaintext" },              preselectSupport = false,              snippetSupport = false,              <metatable> = <table 1>            },            completionItemKind = {              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 },              <metatable> = <table 1>            },            contextSupport = false,            dynamicRegistration = false,            <metatable> = <table 1>          },          declaration = {            linkSupport = true,            <metatable> = <table 1>          },          definition = {            linkSupport = true,            <metatable> = <table 1>          },          documentHighlight = {            dynamicRegistration = false,            <metatable> = <table 1>          },          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 },              <metatable> = <table 1>            },            <metatable> = <table 1>          },          hover = {            contentFormat = { "markdown", "plaintext" },            dynamicRegistration = false,            <metatable> = <table 1>          },          implementation = {            linkSupport = true,            <metatable> = <table 1>          },          publishDiagnostics = {            relatedInformation = true,            tagSupport = {              valueSet = { 1, 2 },              <metatable> = <table 1>            },            <metatable> = <table 1>          },          references = {            dynamicRegistration = false,            <metatable> = <table 1>          },          rename = {            dynamicRegistration = false,            prepareSupport = true,            <metatable> = <table 1>          },          signatureHelp = {            dynamicRegistration = false,            signatureInformation = {              documentationFormat = { "markdown", "plaintext" },              <metatable> = <table 1>            },            <metatable> = <table 1>          },          synchronization = {            didSave = true,            dynamicRegistration = false,            willSave = false,            willSaveWaitUntil = false,            <metatable> = <table 1>          },          typeDefinition = {            linkSupport = true,            <metatable> = <table 1>          },          <metatable> = <table 1>        },        window = {          showDocument = {            support = false,            <metatable> = <table 1>          },          showMessage = {            messageActionItem = {              additionalPropertiesSupport = false,              <metatable> = <table 1>            },            <metatable> = <table 1>          },          workDoneProgress = true,          <metatable> = <table 1>        },        workspace = {          applyEdit = true,          configuration = true,          symbol = {            dynamicRegistration = false,            hierarchicalWorkspaceSymbolSupport = 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 },              <metatable> = <table 1>            },            <metatable> = <table 1>          },          workspaceEdit = {            resourceOperations = { "rename", "create", "delete" },            <metatable> = <table 1>          },          workspaceFolders = true,          <metatable> = <table 1>        }      },      cmd = { "pyright-langserver", "--stdio" },      filetypes = { "python" },      flags = {},      get_language_id = <function 5>,      handlers = <2>{},      init_options = vim.empty_dict(),      log_level = 2,      message_level = 2,      name = "pyright",      on_attach = <function 6>,      on_exit = <function 7>,      on_init = <function 8>,      root_dir = "/home/jack/nvim-debug",      settings = {        python = {          analysis = {            autoSearchPaths = true,            diagnosticMode = "workspace",            useLibraryCodeForTypes = true,            <metatable> = <table 1>          },          <metatable> = <table 1>        },        <metatable> = <table 1>      },      <metatable> = <table 1>    },    handlers = <table 2>,    id = 1,    initialized = true,    is_stopped = <function 9>,    messages = {      messages = {},      name = "pyright",      progress = {},      status = {}    },    name = "pyright",    notify = <function 10>,    offset_encoding = "utf-16",    request = <function 11>,    request_sync = <function 12>,    resolved_capabilities = {      call_hierarchy = true,      code_action = <3>{        codeActionKinds = { "quickfix", "source.organizeImports" },        workDoneProgress = true      },      code_lens = false,      code_lens_resolve = false,      completion = true,      declaration = false,      document_formatting = false,      document_highlight = <4>{        workDoneProgress = true      },      document_range_formatting = false,      document_symbol = <5>{        workDoneProgress = true      },      execute_command = true,      find_references = <6>{        workDoneProgress = true      },      goto_definition = <7>{        workDoneProgress = true      },      hover = <8>{        workDoneProgress = true      },      implementation = false,      rename = true,      signature_help = true,      signature_help_trigger_characters = <9>{ "(", ",", ")" },      text_document_did_change = 2,      text_document_open_close = true,      text_document_save = true,      text_document_save_include_text = false,      text_document_will_save = false,      text_document_will_save_wait_until = false,      type_definition = false,      workspace_folder_properties = {        changeNotifications = false,        supported = false      },      workspace_symbol = <10>{        workDoneProgress = true      }    },    rpc = {      handle = <userdata 1>,      notify = <function 13>,      pid = 130568,      request = <function 14>    },    server_capabilities = {      callHierarchyProvider = true,      codeActionProvider = <table 3>,      completionProvider = {        resolveProvider = true,        triggerCharacters = { ".", "[" },        workDoneProgress = true      },      declarationProvider = {        workDoneProgress = true      },      definitionProvider = <table 7>,      documentHighlightProvider = <table 4>,      documentSymbolProvider = <table 5>,      executeCommandProvider = {        commands = {},        workDoneProgress = true      },      hoverProvider = <table 8>,      referencesProvider = <table 6>,      renameProvider = {        workDoneProgress = true      },      signatureHelpProvider = {        triggerCharacters = <table 9>,        workDoneProgress = true      },      textDocumentSync = 2,      workspaceSymbolProvider = <table 10>    },    stop = <function 15>,    supports_method = <function 16>,    workspaceFolders = { {        name = "/home/jack/nvim-debug",        uri = "file:///home/jack/nvim-debug"      } },    workspace_did_change_configuration = <function 17>  } }
[ DEBUG ] 2021-08-31T11:50:11+1000 ] /usr/share/nvim/runtime/lua/vim/lsp/rpc.lua:395 ]	"rpc.send.payload"	{  id = 2,  jsonrpc = "2.0",  method = "shutdown"}
[ DEBUG ] 2021-08-31T11:50:11+1000 ] /usr/share/nvim/runtime/lua/vim/lsp/rpc.lua:496 ]	"decoded"	{  id = 2,  jsonrpc = "2.0",  result = vim.NIL}
[ DEBUG ] 2021-08-31T11:50:11+1000 ] /usr/share/nvim/runtime/lua/vim/lsp/rpc.lua:395 ]	"rpc.send.payload"	{  jsonrpc = "2.0",  method = "exit"}
</details>