We are currently solving the following issue within our repository. Here is the issue text:
--- BEGIN ISSUE ---
[bug] CamelCase instead of snace_case 
`documentChanges` argument on the left https://github.com/tomv564/LSP/blob/5a472ba6f23d70f6f8f1ebaabb83015c066ce198/plugin/rename.py#L69
should be `document_changes`, like `LspApplyWorkspaceEditCommand` expects:
https://github.com/tomv564/LSP/blob/5a472ba6f23d70f6f8f1ebaabb83015c066ce198/plugin/core/edit.py#L19

When doing a rename, this popped up in the console
```
LSP:  --> textDocument/rename
Traceback (most recent call last):
  File "/opt/sublime_text/sublime_plugin.py", line 1034, in run_
    return self.run(**args)
TypeError: run() got an unexpected keyword argument 'documentChanges'
```

--- END ISSUE ---

Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
--- BEGIN FILES ---
Path: `plugin/rename.py`
Content:
```
1 import sublime_plugin
2 from .core.registry import client_for_view, LspTextCommand
3 from .core.protocol import Request
4 from .core.documents import get_document_position, get_position, is_at_word
5 try:
6     from typing import List, Dict, Optional
7     assert List and Dict and Optional
8 except ImportError:
9     pass
10 
11 
12 class RenameSymbolInputHandler(sublime_plugin.TextInputHandler):
13     def __init__(self, view):
14         self.view = view
15 
16     def name(self):
17         return "new_name"
18 
19     def placeholder(self):
20         return self.get_current_symbol_name()
21 
22     def initial_text(self):
23         return self.get_current_symbol_name()
24 
25     def validate(self, name):
26         return len(name) > 0
27 
28     def get_current_symbol_name(self):
29         pos = get_position(self.view)
30         current_name = self.view.substr(self.view.word(pos))
31         # Is this check necessary?
32         if not current_name:
33             current_name = ""
34         return current_name
35 
36 
37 class LspSymbolRenameCommand(LspTextCommand):
38     def __init__(self, view):
39         super().__init__(view)
40 
41     def is_enabled(self, event=None):
42         # TODO: check what kind of scope we're in.
43         if self.has_client_with_capability('renameProvider'):
44             return is_at_word(self.view, event)
45         return False
46 
47     def input(self, args):
48         if "new_name" not in args:
49             return RenameSymbolInputHandler(self.view)
50         else:
51             return None
52 
53     def run(self, edit, new_name, event=None):
54         pos = get_position(self.view, event)
55         params = get_document_position(self.view, pos)
56 
57         self.request_rename(params, new_name)
58 
59     def request_rename(self, params, new_name) -> None:
60         client = client_for_view(self.view)
61         if client:
62             params["newName"] = new_name
63             client.send_request(Request.rename(params), self.handle_response)
64 
65     def handle_response(self, response: 'Optional[Dict]') -> None:
66         if response:
67             self.view.window().run_command('lsp_apply_workspace_edit',
68                                            {'changes': response.get('changes'),
69                                             'documentChanges': response.get('documentChanges')})
70         else:
71             self.view.window().status_message('No rename edits returned')
72 
73     def want_event(self):
74         return True
75
```
--- END FILES ---

Please first localize the bug based on the issue statement, and then generate a patch according to the `git diff` format fenced by three backticks.

Here is an example:

```diff
diff --git a/examples/server_async.py b/examples/server_async.py
--- a/examples/server_async.py
+++ b/examples/server_async.py
@@ -313,4 +313,4 @@
 
 
 if __name__ == "__main__":
-    asyncio.run(run_async_server("."), debug=True)
+    asyncio.run(run_async_server(), debug=True)
diff --git a/examples/server_sync.py b/examples/server_sync.py
--- a/examples/server_sync.py
+++ b/examples/server_sync.py
@@ -313,5 +313,5 @@
 
 
 if __name__ == "__main__":
-    server = run_sync_server(".")
+    server = run_sync_server()
     server.shutdown()

```

diff --git a/plugin/rename.py b/plugin/rename.py
--- a/plugin/rename.py
+++ b/plugin/rename.py
@@ -66,7 +66,7 @@
         if response:
             self.view.window().run_command('lsp_apply_workspace_edit',
                                            {'changes': response.get('changes'),
-                                            'documentChanges': response.get('documentChanges')})
+                                            'document_changes': response.get('documentChanges')})
         else:
             self.view.window().status_message('No rename edits returned')

{"golden_diff": "diff --git a/plugin/rename.py b/plugin/rename.py\n--- a/plugin/rename.py\n+++ b/plugin/rename.py\n@@ -66,7 +66,7 @@\n         if response:\n             self.view.window().run_command('lsp_apply_workspace_edit',\n                                            {'changes': response.get('changes'),\n-                                            'documentChanges': response.get('documentChanges')})\n+                                            'document_changes': response.get('documentChanges')})\n         else:\n             self.view.window().status_message('No rename edits returned')\n", "issue": "[bug] CamelCase instead of snace_case \n`documentChanges` argument on the left https://github.com/tomv564/LSP/blob/5a472ba6f23d70f6f8f1ebaabb83015c066ce198/plugin/rename.py#L69\r\nshould be `document_changes`, like `LspApplyWorkspaceEditCommand` expects:\r\nhttps://github.com/tomv564/LSP/blob/5a472ba6f23d70f6f8f1ebaabb83015c066ce198/plugin/core/edit.py#L19\r\n\r\nWhen doing a rename, this popped up in the console\r\n```\r\nLSP:  --> textDocument/rename\r\nTraceback (most recent call last):\r\n  File \"/opt/sublime_text/sublime_plugin.py\", line 1034, in run_\r\n    return self.run(**args)\r\nTypeError: run() got an unexpected keyword argument 'documentChanges'\r\n```\n", "before_files": [{"content": "import sublime_plugin\nfrom .core.registry import client_for_view, LspTextCommand\nfrom .core.protocol import Request\nfrom .core.documents import get_document_position, get_position, is_at_word\ntry:\n    from typing import List, Dict, Optional\n    assert List and Dict and Optional\nexcept ImportError:\n    pass\n\n\nclass RenameSymbolInputHandler(sublime_plugin.TextInputHandler):\n    def __init__(self, view):\n        self.view = view\n\n    def name(self):\n        return \"new_name\"\n\n    def placeholder(self):\n        return self.get_current_symbol_name()\n\n    def initial_text(self):\n        return self.get_current_symbol_name()\n\n    def validate(self, name):\n        return len(name) > 0\n\n    def get_current_symbol_name(self):\n        pos = get_position(self.view)\n        current_name = self.view.substr(self.view.word(pos))\n        # Is this check necessary?\n        if not current_name:\n            current_name = \"\"\n        return current_name\n\n\nclass LspSymbolRenameCommand(LspTextCommand):\n    def __init__(self, view):\n        super().__init__(view)\n\n    def is_enabled(self, event=None):\n        # TODO: check what kind of scope we're in.\n        if self.has_client_with_capability('renameProvider'):\n            return is_at_word(self.view, event)\n        return False\n\n    def input(self, args):\n        if \"new_name\" not in args:\n            return RenameSymbolInputHandler(self.view)\n        else:\n            return None\n\n    def run(self, edit, new_name, event=None):\n        pos = get_position(self.view, event)\n        params = get_document_position(self.view, pos)\n\n        self.request_rename(params, new_name)\n\n    def request_rename(self, params, new_name) -> None:\n        client = client_for_view(self.view)\n        if client:\n            params[\"newName\"] = new_name\n            client.send_request(Request.rename(params), self.handle_response)\n\n    def handle_response(self, response: 'Optional[Dict]') -> None:\n        if response:\n            self.view.window().run_command('lsp_apply_workspace_edit',\n                                           {'changes': response.get('changes'),\n                                            'documentChanges': response.get('documentChanges')})\n        else:\n            self.view.window().status_message('No rename edits returned')\n\n    def want_event(self):\n        return True\n", "path": "plugin/rename.py"}], "after_files": [{"content": "import sublime_plugin\nfrom .core.registry import client_for_view, LspTextCommand\nfrom .core.protocol import Request\nfrom .core.documents import get_document_position, get_position, is_at_word\ntry:\n    from typing import List, Dict, Optional\n    assert List and Dict and Optional\nexcept ImportError:\n    pass\n\n\nclass RenameSymbolInputHandler(sublime_plugin.TextInputHandler):\n    def __init__(self, view):\n        self.view = view\n\n    def name(self):\n        return \"new_name\"\n\n    def placeholder(self):\n        return self.get_current_symbol_name()\n\n    def initial_text(self):\n        return self.get_current_symbol_name()\n\n    def validate(self, name):\n        return len(name) > 0\n\n    def get_current_symbol_name(self):\n        pos = get_position(self.view)\n        current_name = self.view.substr(self.view.word(pos))\n        # Is this check necessary?\n        if not current_name:\n            current_name = \"\"\n        return current_name\n\n\nclass LspSymbolRenameCommand(LspTextCommand):\n    def __init__(self, view):\n        super().__init__(view)\n\n    def is_enabled(self, event=None):\n        # TODO: check what kind of scope we're in.\n        if self.has_client_with_capability('renameProvider'):\n            return is_at_word(self.view, event)\n        return False\n\n    def input(self, args):\n        if \"new_name\" not in args:\n            return RenameSymbolInputHandler(self.view)\n        else:\n            return None\n\n    def run(self, edit, new_name, event=None):\n        pos = get_position(self.view, event)\n        params = get_document_position(self.view, pos)\n\n        self.request_rename(params, new_name)\n\n    def request_rename(self, params, new_name) -> None:\n        client = client_for_view(self.view)\n        if client:\n            params[\"newName\"] = new_name\n            client.send_request(Request.rename(params), self.handle_response)\n\n    def handle_response(self, response: 'Optional[Dict]') -> None:\n        if response:\n            self.view.window().run_command('lsp_apply_workspace_edit',\n                                           {'changes': response.get('changes'),\n                                            'document_changes': response.get('documentChanges')})\n        else:\n            self.view.window().status_message('No rename edits returned')\n\n    def want_event(self):\n        return True\n", "path": "plugin/rename.py"}]}