We are currently solving the following issue within our repository. Here is the issue text:
--- BEGIN ISSUE ---
:completion-item-del with :bookmark-load/:quickmark-load
Ctrl-D should also delete quickmarks/bookmarks with `:bookmark-load` and `:quickmark-load` (it also doesn't on v0.11.0)

cc @rcorre 

--- END ISSUE ---

Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
--- BEGIN FILES ---
Path: `qutebrowser/completion/models/miscmodels.py`
Content:
```
1 # vim: ft=python fileencoding=utf-8 sts=4 sw=4 et:
2 
3 # Copyright 2014-2017 Florian Bruhin (The Compiler) <mail@qutebrowser.org>
4 #
5 # This file is part of qutebrowser.
6 #
7 # qutebrowser is free software: you can redistribute it and/or modify
8 # it under the terms of the GNU General Public License as published by
9 # the Free Software Foundation, either version 3 of the License, or
10 # (at your option) any later version.
11 #
12 # qutebrowser is distributed in the hope that it will be useful,
13 # but WITHOUT ANY WARRANTY; without even the implied warranty of
14 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15 # GNU General Public License for more details.
16 #
17 # You should have received a copy of the GNU General Public License
18 # along with qutebrowser.  If not, see <http://www.gnu.org/licenses/>.
19 
20 """Functions that return miscellaneous completion models."""
21 
22 from qutebrowser.config import config, configdata
23 from qutebrowser.utils import objreg, log
24 from qutebrowser.commands import cmdutils
25 from qutebrowser.completion.models import completionmodel, listcategory
26 
27 
28 def command():
29     """A CompletionModel filled with non-hidden commands and descriptions."""
30     model = completionmodel.CompletionModel(column_widths=(20, 60, 20))
31     cmdlist = _get_cmd_completions(include_aliases=True, include_hidden=False)
32     model.add_category(listcategory.ListCategory("Commands", cmdlist))
33     return model
34 
35 
36 def helptopic():
37     """A CompletionModel filled with help topics."""
38     model = completionmodel.CompletionModel()
39 
40     cmdlist = _get_cmd_completions(include_aliases=False, include_hidden=True,
41                                    prefix=':')
42     settings = []
43     for sectname, sectdata in configdata.DATA.items():
44         for optname in sectdata:
45             try:
46                 desc = sectdata.descriptions[optname]
47             except (KeyError, AttributeError):
48                 # Some stuff (especially ValueList items) don't have a
49                 # description.
50                 desc = ""
51             else:
52                 desc = desc.splitlines()[0]
53             name = '{}->{}'.format(sectname, optname)
54             settings.append((name, desc))
55 
56     model.add_category(listcategory.ListCategory("Commands", cmdlist))
57     model.add_category(listcategory.ListCategory("Settings", settings))
58     return model
59 
60 
61 def quickmark():
62     """A CompletionModel filled with all quickmarks."""
63     model = completionmodel.CompletionModel(column_widths=(30, 70, 0))
64     marks = objreg.get('quickmark-manager').marks.items()
65     model.add_category(listcategory.ListCategory('Quickmarks', marks))
66     return model
67 
68 
69 def bookmark():
70     """A CompletionModel filled with all bookmarks."""
71     model = completionmodel.CompletionModel(column_widths=(30, 70, 0))
72     marks = objreg.get('bookmark-manager').marks.items()
73     model.add_category(listcategory.ListCategory('Bookmarks', marks))
74     return model
75 
76 
77 def session():
78     """A CompletionModel filled with session names."""
79     model = completionmodel.CompletionModel()
80     try:
81         manager = objreg.get('session-manager')
82         sessions = ((name,) for name in manager.list_sessions()
83                     if not name.startswith('_'))
84         model.add_category(listcategory.ListCategory("Sessions", sessions))
85     except OSError:
86         log.completion.exception("Failed to list sessions!")
87     return model
88 
89 
90 def buffer():
91     """A model to complete on open tabs across all windows.
92 
93     Used for switching the buffer command.
94     """
95     def delete_buffer(data):
96         """Close the selected tab."""
97         win_id, tab_index = data[0].split('/')
98         tabbed_browser = objreg.get('tabbed-browser', scope='window',
99                                     window=int(win_id))
100         tabbed_browser.on_tab_close_requested(int(tab_index) - 1)
101 
102     model = completionmodel.CompletionModel(column_widths=(6, 40, 54))
103 
104     for win_id in objreg.window_registry:
105         tabbed_browser = objreg.get('tabbed-browser', scope='window',
106                                     window=win_id)
107         if tabbed_browser.shutting_down:
108             continue
109         tabs = []
110         for idx in range(tabbed_browser.count()):
111             tab = tabbed_browser.widget(idx)
112             tabs.append(("{}/{}".format(win_id, idx + 1),
113                          tab.url().toDisplayString(),
114                          tabbed_browser.page_title(idx)))
115         cat = listcategory.ListCategory("{}".format(win_id), tabs,
116             delete_func=delete_buffer)
117         model.add_category(cat)
118 
119     return model
120 
121 
122 def bind(key):
123     """A CompletionModel filled with all bindable commands and descriptions.
124 
125     Args:
126         key: the key being bound.
127     """
128     model = completionmodel.CompletionModel(column_widths=(20, 60, 20))
129     cmd_text = objreg.get('key-config').get_bindings_for('normal').get(key)
130 
131     if cmd_text:
132         cmd_name = cmd_text.split(' ')[0]
133         cmd = cmdutils.cmd_dict.get(cmd_name)
134         data = [(cmd_text, cmd.desc, key)]
135         model.add_category(listcategory.ListCategory("Current", data))
136 
137     cmdlist = _get_cmd_completions(include_hidden=True, include_aliases=True)
138     model.add_category(listcategory.ListCategory("Commands", cmdlist))
139     return model
140 
141 
142 def _get_cmd_completions(include_hidden, include_aliases, prefix=''):
143     """Get a list of completions info for commands, sorted by name.
144 
145     Args:
146         include_hidden: True to include commands annotated with hide=True.
147         include_aliases: True to include command aliases.
148         prefix: String to append to the command name.
149 
150     Return: A list of tuples of form (name, description, bindings).
151     """
152     assert cmdutils.cmd_dict
153     cmdlist = []
154     cmd_to_keys = objreg.get('key-config').get_reverse_bindings_for('normal')
155     for obj in set(cmdutils.cmd_dict.values()):
156         hide_debug = obj.debug and not objreg.get('args').debug
157         hide_hidden = obj.hide and not include_hidden
158         if not (hide_debug or hide_hidden or obj.deprecated):
159             bindings = ', '.join(cmd_to_keys.get(obj.name, []))
160             cmdlist.append((prefix + obj.name, obj.desc, bindings))
161 
162     if include_aliases:
163         for name, cmd in config.section('aliases').items():
164             bindings = ', '.join(cmd_to_keys.get(name, []))
165             cmdlist.append((name, "Alias for '{}'".format(cmd), bindings))
166 
167     return cmdlist
168
```
--- 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/qutebrowser/completion/models/miscmodels.py b/qutebrowser/completion/models/miscmodels.py
--- a/qutebrowser/completion/models/miscmodels.py
+++ b/qutebrowser/completion/models/miscmodels.py
@@ -60,17 +60,33 @@
 
 def quickmark():
     """A CompletionModel filled with all quickmarks."""
+    def delete(data):
+        """Delete a quickmark from the completion menu."""
+        name = data[0]
+        quickmark_manager = objreg.get('quickmark-manager')
+        log.completion.debug('Deleting quickmark {}'.format(name))
+        quickmark_manager.delete(name)
+
     model = completionmodel.CompletionModel(column_widths=(30, 70, 0))
     marks = objreg.get('quickmark-manager').marks.items()
-    model.add_category(listcategory.ListCategory('Quickmarks', marks))
+    model.add_category(listcategory.ListCategory('Quickmarks', marks,
+                                                 delete_func=delete))
     return model
 
 
 def bookmark():
     """A CompletionModel filled with all bookmarks."""
+    def delete(data):
+        """Delete a bookmark from the completion menu."""
+        urlstr = data[0]
+        log.completion.debug('Deleting bookmark {}'.format(urlstr))
+        bookmark_manager = objreg.get('bookmark-manager')
+        bookmark_manager.delete(urlstr)
+
     model = completionmodel.CompletionModel(column_widths=(30, 70, 0))
     marks = objreg.get('bookmark-manager').marks.items()
-    model.add_category(listcategory.ListCategory('Bookmarks', marks))
+    model.add_category(listcategory.ListCategory('Bookmarks', marks,
+                                                 delete_func=delete))
     return model

{"golden_diff": "diff --git a/qutebrowser/completion/models/miscmodels.py b/qutebrowser/completion/models/miscmodels.py\n--- a/qutebrowser/completion/models/miscmodels.py\n+++ b/qutebrowser/completion/models/miscmodels.py\n@@ -60,17 +60,33 @@\n \n def quickmark():\n     \"\"\"A CompletionModel filled with all quickmarks.\"\"\"\n+    def delete(data):\n+        \"\"\"Delete a quickmark from the completion menu.\"\"\"\n+        name = data[0]\n+        quickmark_manager = objreg.get('quickmark-manager')\n+        log.completion.debug('Deleting quickmark {}'.format(name))\n+        quickmark_manager.delete(name)\n+\n     model = completionmodel.CompletionModel(column_widths=(30, 70, 0))\n     marks = objreg.get('quickmark-manager').marks.items()\n-    model.add_category(listcategory.ListCategory('Quickmarks', marks))\n+    model.add_category(listcategory.ListCategory('Quickmarks', marks,\n+                                                 delete_func=delete))\n     return model\n \n \n def bookmark():\n     \"\"\"A CompletionModel filled with all bookmarks.\"\"\"\n+    def delete(data):\n+        \"\"\"Delete a bookmark from the completion menu.\"\"\"\n+        urlstr = data[0]\n+        log.completion.debug('Deleting bookmark {}'.format(urlstr))\n+        bookmark_manager = objreg.get('bookmark-manager')\n+        bookmark_manager.delete(urlstr)\n+\n     model = completionmodel.CompletionModel(column_widths=(30, 70, 0))\n     marks = objreg.get('bookmark-manager').marks.items()\n-    model.add_category(listcategory.ListCategory('Bookmarks', marks))\n+    model.add_category(listcategory.ListCategory('Bookmarks', marks,\n+                                                 delete_func=delete))\n     return model\n", "issue": ":completion-item-del with :bookmark-load/:quickmark-load\nCtrl-D should also delete quickmarks/bookmarks with `:bookmark-load` and `:quickmark-load` (it also doesn't on v0.11.0)\r\n\r\ncc @rcorre \n", "before_files": [{"content": "# vim: ft=python fileencoding=utf-8 sts=4 sw=4 et:\n\n# Copyright 2014-2017 Florian Bruhin (The Compiler) <mail@qutebrowser.org>\n#\n# This file is part of qutebrowser.\n#\n# qutebrowser is free software: you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation, either version 3 of the License, or\n# (at your option) any later version.\n#\n# qutebrowser is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with qutebrowser.  If not, see <http://www.gnu.org/licenses/>.\n\n\"\"\"Functions that return miscellaneous completion models.\"\"\"\n\nfrom qutebrowser.config import config, configdata\nfrom qutebrowser.utils import objreg, log\nfrom qutebrowser.commands import cmdutils\nfrom qutebrowser.completion.models import completionmodel, listcategory\n\n\ndef command():\n    \"\"\"A CompletionModel filled with non-hidden commands and descriptions.\"\"\"\n    model = completionmodel.CompletionModel(column_widths=(20, 60, 20))\n    cmdlist = _get_cmd_completions(include_aliases=True, include_hidden=False)\n    model.add_category(listcategory.ListCategory(\"Commands\", cmdlist))\n    return model\n\n\ndef helptopic():\n    \"\"\"A CompletionModel filled with help topics.\"\"\"\n    model = completionmodel.CompletionModel()\n\n    cmdlist = _get_cmd_completions(include_aliases=False, include_hidden=True,\n                                   prefix=':')\n    settings = []\n    for sectname, sectdata in configdata.DATA.items():\n        for optname in sectdata:\n            try:\n                desc = sectdata.descriptions[optname]\n            except (KeyError, AttributeError):\n                # Some stuff (especially ValueList items) don't have a\n                # description.\n                desc = \"\"\n            else:\n                desc = desc.splitlines()[0]\n            name = '{}->{}'.format(sectname, optname)\n            settings.append((name, desc))\n\n    model.add_category(listcategory.ListCategory(\"Commands\", cmdlist))\n    model.add_category(listcategory.ListCategory(\"Settings\", settings))\n    return model\n\n\ndef quickmark():\n    \"\"\"A CompletionModel filled with all quickmarks.\"\"\"\n    model = completionmodel.CompletionModel(column_widths=(30, 70, 0))\n    marks = objreg.get('quickmark-manager').marks.items()\n    model.add_category(listcategory.ListCategory('Quickmarks', marks))\n    return model\n\n\ndef bookmark():\n    \"\"\"A CompletionModel filled with all bookmarks.\"\"\"\n    model = completionmodel.CompletionModel(column_widths=(30, 70, 0))\n    marks = objreg.get('bookmark-manager').marks.items()\n    model.add_category(listcategory.ListCategory('Bookmarks', marks))\n    return model\n\n\ndef session():\n    \"\"\"A CompletionModel filled with session names.\"\"\"\n    model = completionmodel.CompletionModel()\n    try:\n        manager = objreg.get('session-manager')\n        sessions = ((name,) for name in manager.list_sessions()\n                    if not name.startswith('_'))\n        model.add_category(listcategory.ListCategory(\"Sessions\", sessions))\n    except OSError:\n        log.completion.exception(\"Failed to list sessions!\")\n    return model\n\n\ndef buffer():\n    \"\"\"A model to complete on open tabs across all windows.\n\n    Used for switching the buffer command.\n    \"\"\"\n    def delete_buffer(data):\n        \"\"\"Close the selected tab.\"\"\"\n        win_id, tab_index = data[0].split('/')\n        tabbed_browser = objreg.get('tabbed-browser', scope='window',\n                                    window=int(win_id))\n        tabbed_browser.on_tab_close_requested(int(tab_index) - 1)\n\n    model = completionmodel.CompletionModel(column_widths=(6, 40, 54))\n\n    for win_id in objreg.window_registry:\n        tabbed_browser = objreg.get('tabbed-browser', scope='window',\n                                    window=win_id)\n        if tabbed_browser.shutting_down:\n            continue\n        tabs = []\n        for idx in range(tabbed_browser.count()):\n            tab = tabbed_browser.widget(idx)\n            tabs.append((\"{}/{}\".format(win_id, idx + 1),\n                         tab.url().toDisplayString(),\n                         tabbed_browser.page_title(idx)))\n        cat = listcategory.ListCategory(\"{}\".format(win_id), tabs,\n            delete_func=delete_buffer)\n        model.add_category(cat)\n\n    return model\n\n\ndef bind(key):\n    \"\"\"A CompletionModel filled with all bindable commands and descriptions.\n\n    Args:\n        key: the key being bound.\n    \"\"\"\n    model = completionmodel.CompletionModel(column_widths=(20, 60, 20))\n    cmd_text = objreg.get('key-config').get_bindings_for('normal').get(key)\n\n    if cmd_text:\n        cmd_name = cmd_text.split(' ')[0]\n        cmd = cmdutils.cmd_dict.get(cmd_name)\n        data = [(cmd_text, cmd.desc, key)]\n        model.add_category(listcategory.ListCategory(\"Current\", data))\n\n    cmdlist = _get_cmd_completions(include_hidden=True, include_aliases=True)\n    model.add_category(listcategory.ListCategory(\"Commands\", cmdlist))\n    return model\n\n\ndef _get_cmd_completions(include_hidden, include_aliases, prefix=''):\n    \"\"\"Get a list of completions info for commands, sorted by name.\n\n    Args:\n        include_hidden: True to include commands annotated with hide=True.\n        include_aliases: True to include command aliases.\n        prefix: String to append to the command name.\n\n    Return: A list of tuples of form (name, description, bindings).\n    \"\"\"\n    assert cmdutils.cmd_dict\n    cmdlist = []\n    cmd_to_keys = objreg.get('key-config').get_reverse_bindings_for('normal')\n    for obj in set(cmdutils.cmd_dict.values()):\n        hide_debug = obj.debug and not objreg.get('args').debug\n        hide_hidden = obj.hide and not include_hidden\n        if not (hide_debug or hide_hidden or obj.deprecated):\n            bindings = ', '.join(cmd_to_keys.get(obj.name, []))\n            cmdlist.append((prefix + obj.name, obj.desc, bindings))\n\n    if include_aliases:\n        for name, cmd in config.section('aliases').items():\n            bindings = ', '.join(cmd_to_keys.get(name, []))\n            cmdlist.append((name, \"Alias for '{}'\".format(cmd), bindings))\n\n    return cmdlist\n", "path": "qutebrowser/completion/models/miscmodels.py"}], "after_files": [{"content": "# vim: ft=python fileencoding=utf-8 sts=4 sw=4 et:\n\n# Copyright 2014-2017 Florian Bruhin (The Compiler) <mail@qutebrowser.org>\n#\n# This file is part of qutebrowser.\n#\n# qutebrowser is free software: you can redistribute it and/or modify\n# it under the terms of the GNU General Public License as published by\n# the Free Software Foundation, either version 3 of the License, or\n# (at your option) any later version.\n#\n# qutebrowser is distributed in the hope that it will be useful,\n# but WITHOUT ANY WARRANTY; without even the implied warranty of\n# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n# GNU General Public License for more details.\n#\n# You should have received a copy of the GNU General Public License\n# along with qutebrowser.  If not, see <http://www.gnu.org/licenses/>.\n\n\"\"\"Functions that return miscellaneous completion models.\"\"\"\n\nfrom qutebrowser.config import config, configdata\nfrom qutebrowser.utils import objreg, log\nfrom qutebrowser.commands import cmdutils\nfrom qutebrowser.completion.models import completionmodel, listcategory\n\n\ndef command():\n    \"\"\"A CompletionModel filled with non-hidden commands and descriptions.\"\"\"\n    model = completionmodel.CompletionModel(column_widths=(20, 60, 20))\n    cmdlist = _get_cmd_completions(include_aliases=True, include_hidden=False)\n    model.add_category(listcategory.ListCategory(\"Commands\", cmdlist))\n    return model\n\n\ndef helptopic():\n    \"\"\"A CompletionModel filled with help topics.\"\"\"\n    model = completionmodel.CompletionModel()\n\n    cmdlist = _get_cmd_completions(include_aliases=False, include_hidden=True,\n                                   prefix=':')\n    settings = []\n    for sectname, sectdata in configdata.DATA.items():\n        for optname in sectdata:\n            try:\n                desc = sectdata.descriptions[optname]\n            except (KeyError, AttributeError):\n                # Some stuff (especially ValueList items) don't have a\n                # description.\n                desc = \"\"\n            else:\n                desc = desc.splitlines()[0]\n            name = '{}->{}'.format(sectname, optname)\n            settings.append((name, desc))\n\n    model.add_category(listcategory.ListCategory(\"Commands\", cmdlist))\n    model.add_category(listcategory.ListCategory(\"Settings\", settings))\n    return model\n\n\ndef quickmark():\n    \"\"\"A CompletionModel filled with all quickmarks.\"\"\"\n    def delete(data):\n        \"\"\"Delete a quickmark from the completion menu.\"\"\"\n        name = data[0]\n        quickmark_manager = objreg.get('quickmark-manager')\n        log.completion.debug('Deleting quickmark {}'.format(name))\n        quickmark_manager.delete(name)\n\n    model = completionmodel.CompletionModel(column_widths=(30, 70, 0))\n    marks = objreg.get('quickmark-manager').marks.items()\n    model.add_category(listcategory.ListCategory('Quickmarks', marks,\n                                                 delete_func=delete))\n    return model\n\n\ndef bookmark():\n    \"\"\"A CompletionModel filled with all bookmarks.\"\"\"\n    def delete(data):\n        \"\"\"Delete a bookmark from the completion menu.\"\"\"\n        urlstr = data[0]\n        log.completion.debug('Deleting bookmark {}'.format(urlstr))\n        bookmark_manager = objreg.get('bookmark-manager')\n        bookmark_manager.delete(urlstr)\n\n    model = completionmodel.CompletionModel(column_widths=(30, 70, 0))\n    marks = objreg.get('bookmark-manager').marks.items()\n    model.add_category(listcategory.ListCategory('Bookmarks', marks,\n                                                 delete_func=delete))\n    return model\n\n\ndef session():\n    \"\"\"A CompletionModel filled with session names.\"\"\"\n    model = completionmodel.CompletionModel()\n    try:\n        manager = objreg.get('session-manager')\n        sessions = ((name,) for name in manager.list_sessions()\n                    if not name.startswith('_'))\n        model.add_category(listcategory.ListCategory(\"Sessions\", sessions))\n    except OSError:\n        log.completion.exception(\"Failed to list sessions!\")\n    return model\n\n\ndef buffer():\n    \"\"\"A model to complete on open tabs across all windows.\n\n    Used for switching the buffer command.\n    \"\"\"\n    def delete_buffer(data):\n        \"\"\"Close the selected tab.\"\"\"\n        win_id, tab_index = data[0].split('/')\n        tabbed_browser = objreg.get('tabbed-browser', scope='window',\n                                    window=int(win_id))\n        tabbed_browser.on_tab_close_requested(int(tab_index) - 1)\n\n    model = completionmodel.CompletionModel(column_widths=(6, 40, 54))\n\n    for win_id in objreg.window_registry:\n        tabbed_browser = objreg.get('tabbed-browser', scope='window',\n                                    window=win_id)\n        if tabbed_browser.shutting_down:\n            continue\n        tabs = []\n        for idx in range(tabbed_browser.count()):\n            tab = tabbed_browser.widget(idx)\n            tabs.append((\"{}/{}\".format(win_id, idx + 1),\n                         tab.url().toDisplayString(),\n                         tabbed_browser.page_title(idx)))\n        cat = listcategory.ListCategory(\"{}\".format(win_id), tabs,\n            delete_func=delete_buffer)\n        model.add_category(cat)\n\n    return model\n\n\ndef bind(key):\n    \"\"\"A CompletionModel filled with all bindable commands and descriptions.\n\n    Args:\n        key: the key being bound.\n    \"\"\"\n    model = completionmodel.CompletionModel(column_widths=(20, 60, 20))\n    cmd_text = objreg.get('key-config').get_bindings_for('normal').get(key)\n\n    if cmd_text:\n        cmd_name = cmd_text.split(' ')[0]\n        cmd = cmdutils.cmd_dict.get(cmd_name)\n        data = [(cmd_text, cmd.desc, key)]\n        model.add_category(listcategory.ListCategory(\"Current\", data))\n\n    cmdlist = _get_cmd_completions(include_hidden=True, include_aliases=True)\n    model.add_category(listcategory.ListCategory(\"Commands\", cmdlist))\n    return model\n\n\ndef _get_cmd_completions(include_hidden, include_aliases, prefix=''):\n    \"\"\"Get a list of completions info for commands, sorted by name.\n\n    Args:\n        include_hidden: True to include commands annotated with hide=True.\n        include_aliases: True to include command aliases.\n        prefix: String to append to the command name.\n\n    Return: A list of tuples of form (name, description, bindings).\n    \"\"\"\n    assert cmdutils.cmd_dict\n    cmdlist = []\n    cmd_to_keys = objreg.get('key-config').get_reverse_bindings_for('normal')\n    for obj in set(cmdutils.cmd_dict.values()):\n        hide_debug = obj.debug and not objreg.get('args').debug\n        hide_hidden = obj.hide and not include_hidden\n        if not (hide_debug or hide_hidden or obj.deprecated):\n            bindings = ', '.join(cmd_to_keys.get(obj.name, []))\n            cmdlist.append((prefix + obj.name, obj.desc, bindings))\n\n    if include_aliases:\n        for name, cmd in config.section('aliases').items():\n            bindings = ', '.join(cmd_to_keys.get(name, []))\n            cmdlist.append((name, \"Alias for '{}'\".format(cmd), bindings))\n\n    return cmdlist\n", "path": "qutebrowser/completion/models/miscmodels.py"}]}