From 9edf1be5e6f91ac82e70789457a49651db728988 Mon Sep 17 00:00:00 2001 From: marvim Date: Sat, 5 Aug 2023 02:01:47 +0000 Subject: [PATCH] Backup update --- last_update | 2 +- repositories/neovim/issues/1029.json | 190 +- repositories/neovim/issues/11468.json | 232 +++ repositories/neovim/issues/12587.json | 1851 ++++++++++++++++++ repositories/neovim/issues/18046.json | 161 ++ repositories/neovim/issues/18122.json | 680 +++++++ repositories/neovim/issues/19125.json | 1173 +++++++++++ repositories/neovim/issues/19918.json | 22 +- repositories/neovim/issues/19985.json | 275 +++ repositories/neovim/issues/20029.json | 152 ++ repositories/neovim/issues/20183.json | 161 ++ repositories/neovim/issues/20456.json | 1050 ++++++++++ repositories/neovim/issues/21106.json | 49 +- repositories/neovim/issues/22877.json | 134 ++ repositories/neovim/issues/23294.json | 17 +- repositories/neovim/issues/23519.json | 169 ++ repositories/neovim/issues/24475.json | 48 +- repositories/neovim/issues/24532.json | 52 +- repositories/neovim/issues/24539.json | 507 ++++- repositories/neovim/issues/24540.json | 57 +- repositories/neovim/issues/24543.json | 59 +- repositories/neovim/issues/24546.json | 776 +++++++- repositories/neovim/issues/24548.json | 49 +- repositories/neovim/issues/24556.json | 258 +++ repositories/neovim/issues/24557.json | 214 ++ repositories/neovim/issues/24562.json | 169 ++ repositories/neovim/issues/24563.json | 116 ++ repositories/neovim/issues/24567.json | 557 ++++++ repositories/neovim/issues/24569.json | 134 ++ repositories/neovim/issues/8704.json | 135 +- repositories/neovim/pulls/23211.json | 889 +++++++++ repositories/neovim/pulls/23224.json | 416 ++++ repositories/neovim/pulls/24314.json | 407 ++++ repositories/neovim/pulls/24524.json | 62 +- repositories/neovim/pulls/24528.json | 1217 +++++++++++- repositories/neovim/pulls/24535.json | 311 ++- repositories/neovim/pulls/24545.json | 120 +- repositories/neovim/pulls/24547.json | 60 +- repositories/neovim/pulls/24549.json | 72 +- repositories/neovim/pulls/24550.json | 103 +- repositories/neovim/pulls/24551.json | 42 +- repositories/neovim/pulls/24552.json | 68 +- repositories/neovim/pulls/24553.json | 362 ++++ repositories/neovim/pulls/24554.json | 352 ++++ repositories/neovim/pulls/24555.json | 360 ++++ repositories/neovim/pulls/24558.json | 362 ++++ repositories/neovim/pulls/24559.json | 362 ++++ repositories/neovim/pulls/24560.json | 508 +++++ repositories/neovim/pulls/24561.json | 352 ++++ repositories/neovim/pulls/24564.json | 635 ++++++ repositories/neovim/pulls/24565.json | 589 ++++++ repositories/neovim/pulls/24568.json | 371 ++++ repositories/neovim/pulls/24570.json | 412 ++++ repositories/neovim/pulls/8107.json | 1764 +++++++++++++++++ repositories/nvim-lspconfig/issues/2465.json | 48 +- repositories/nvim-lspconfig/issues/2733.json | 48 +- repositories/nvim-lspconfig/pulls/2746.json | 28 +- 57 files changed, 19311 insertions(+), 458 deletions(-) create mode 100644 repositories/neovim/issues/11468.json create mode 100644 repositories/neovim/issues/12587.json create mode 100644 repositories/neovim/issues/18046.json create mode 100644 repositories/neovim/issues/18122.json create mode 100644 repositories/neovim/issues/19125.json create mode 100644 repositories/neovim/issues/19985.json create mode 100644 repositories/neovim/issues/20029.json create mode 100644 repositories/neovim/issues/20183.json create mode 100644 repositories/neovim/issues/20456.json create mode 100644 repositories/neovim/issues/22877.json create mode 100644 repositories/neovim/issues/23519.json create mode 100644 repositories/neovim/issues/24556.json create mode 100644 repositories/neovim/issues/24557.json create mode 100644 repositories/neovim/issues/24562.json create mode 100644 repositories/neovim/issues/24563.json create mode 100644 repositories/neovim/issues/24567.json create mode 100644 repositories/neovim/issues/24569.json create mode 100644 repositories/neovim/pulls/23211.json create mode 100644 repositories/neovim/pulls/23224.json create mode 100644 repositories/neovim/pulls/24314.json create mode 100644 repositories/neovim/pulls/24553.json create mode 100644 repositories/neovim/pulls/24554.json create mode 100644 repositories/neovim/pulls/24555.json create mode 100644 repositories/neovim/pulls/24558.json create mode 100644 repositories/neovim/pulls/24559.json create mode 100644 repositories/neovim/pulls/24560.json create mode 100644 repositories/neovim/pulls/24561.json create mode 100644 repositories/neovim/pulls/24564.json create mode 100644 repositories/neovim/pulls/24565.json create mode 100644 repositories/neovim/pulls/24568.json create mode 100644 repositories/neovim/pulls/24570.json create mode 100644 repositories/neovim/pulls/8107.json diff --git a/last_update b/last_update index db920301..cc7d2bc3 100644 --- a/last_update +++ b/last_update @@ -1 +1 @@ -2023-08-04T01:04:48Z \ No newline at end of file +2023-08-05T00:23:23Z \ No newline at end of file diff --git a/repositories/neovim/issues/1029.json b/repositories/neovim/issues/1029.json index a8538bc5..4dd2d6d7 100644 --- a/repositories/neovim/issues/1029.json +++ b/repositories/neovim/issues/1029.json @@ -930,50 +930,6 @@ "url": "https://api.github.com/users/wsdjeg" } }, - { - "author_association": "NONE", - "body": "For anybody who finds this in a web search, I got around this by adding an additional `` at the end of my command. It's not exactly what is being asked for, but for many it should be a suitable workaround.", - "created_at": "2023-01-01T06:40:32Z", - "html_url": "https://github.com/neovim/neovim/issues/1029#issuecomment-1368367427", - "id": 1368367427, - "issue_url": "https://api.github.com/repos/neovim/neovim/issues/1029", - "node_id": "IC_kwDOAPphoM5Rj6FD", - "performed_via_github_app": null, - "reactions": { - "+1": 0, - "-1": 0, - "confused": 0, - "eyes": 0, - "heart": 0, - "hooray": 0, - "laugh": 0, - "rocket": 0, - "total_count": 0, - "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1368367427/reactions" - }, - "updated_at": "2023-01-01T06:40:32Z", - "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1368367427", - "user": { - "avatar_url": "https://avatars.githubusercontent.com/u/1041653?v=4", - "events_url": "https://api.github.com/users/fred-drake/events{/privacy}", - "followers_url": "https://api.github.com/users/fred-drake/followers", - "following_url": "https://api.github.com/users/fred-drake/following{/other_user}", - "gists_url": "https://api.github.com/users/fred-drake/gists{/gist_id}", - "gravatar_id": "", - "html_url": "https://github.com/fred-drake", - "id": 1041653, - "login": "fred-drake", - "node_id": "MDQ6VXNlcjEwNDE2NTM=", - "organizations_url": "https://api.github.com/users/fred-drake/orgs", - "received_events_url": "https://api.github.com/users/fred-drake/received_events", - "repos_url": "https://api.github.com/users/fred-drake/repos", - "site_admin": false, - "starred_url": "https://api.github.com/users/fred-drake/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/fred-drake/subscriptions", - "type": "User", - "url": "https://api.github.com/users/fred-drake" - } - }, { "author_association": "NONE", "body": "This has been an issue for me when attempting to use `vim.api.nvim_echo()` to display information that usually ends up being wider than the window size. Setting `cmdheight` prior to calling `vim.api.nvim_echo()` with the intent to reset it post-echo didn't seem to help. Based on the information in https://github.com/neovim/neovim/issues/16462, I wrote the following function that truncates the middle section of the message in order to display a message that has some start/end context and also doesn't elicit the forsaken 'Press ENTER or type command to continue'.\r\n```lua\r\nlocal test_message = \"This long message will not display on a single line on most screens. If it does, ensure your window size is smaller.\"\r\n\r\nlocal function non_disruptive_echo(message)\r\n if #message > vim.v.echospace then\r\n local trunc_fill = \"...\"\r\n local first_part = string.sub(message, 1, vim.v.echospace/2 - #trunc_fill)\r\n local second_part = string.sub(message, #message - math.floor((vim.v.echospace/2)), #message)\r\n vim.api.nvim_echo({{first_part .. trunc_fill .. second_part}}, false, {})\r\n else\r\n vim.api.nvim_echo({{message}}, false {})\r\n end\r\nend\r\n\r\nnon_disruptive_echo(test_message)\r\n```\r\nOutput on a very small window: `This long messag...dow size is smaller.`\r\n\r\nIt would be really good to have an option to disable the 'Press ENTER...' prompt when using `vim.api.nvim_echo()` and still display the full string to be echoed.", @@ -1020,12 +976,12 @@ }, { "author_association": "CONTRIBUTOR", - "body": "The option can be added. But I don't know it is better solution.", - "created_at": "2023-08-04T01:05:47Z", - "html_url": "https://github.com/neovim/neovim/issues/1029#issuecomment-1664830902", - "id": 1664830902, + "body": "Please see the documentation.\r\n\r\n```\r\n\t\t\t\t\t\t*'more'* *'nomore'*\r\n'more'\t\t\tboolean\t(default: on)\r\n\t\t\tglobal\r\n\tWhen on, listings pause when the whole screen is filled. You will get\r\n\tthe |more-prompt|. When this option is off there are no pauses, the\r\n\tlisting continues until finished.\r\n```", + "created_at": "2023-08-04T03:04:40Z", + "html_url": "https://github.com/neovim/neovim/issues/1029#issuecomment-1664906903", + "id": 1664906903, "issue_url": "https://api.github.com/repos/neovim/neovim/issues/1029", - "node_id": "IC_kwDOAPphoM5jO022", + "node_id": "IC_kwDOAPphoM5jPHaX", "performed_via_github_app": null, "reactions": { "+1": 0, @@ -1037,10 +993,10 @@ "laugh": 0, "rocket": 0, "total_count": 0, - "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1664830902/reactions" + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1664906903/reactions" }, - "updated_at": "2023-08-04T01:05:47Z", - "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1664830902", + "updated_at": "2023-08-04T11:09:44Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1664906903", "user": { "avatar_url": "https://avatars.githubusercontent.com/u/41495?v=4", "events_url": "https://api.github.com/users/Shougo/events{/privacy}", @@ -1064,12 +1020,12 @@ }, { "author_association": "CONTRIBUTOR", - "body": "@kylefhartzenberg You can use `nomore` option for it.", - "created_at": "2023-08-04T01:07:27Z", - "html_url": "https://github.com/neovim/neovim/issues/1029#issuecomment-1664831948", - "id": 1664831948, + "body": "Hm... more does not work for `press-enter` prompt.\r\n\r\nBut you can use it.\r\n\r\n```vim\r\nfunction! s:echo(msg) abort\r\n const more_save = &more\r\n const showcmd_save = &showcmd\r\n const ruler_save = &ruler\r\n try\r\n set nomore\r\n set noshowcmd\r\n set noruler\r\n\r\n const height = [1, &cmdheight]->max()\r\n echo ''\r\n for i in range(0, a:msg->len() - 1, height)\r\n redraw\r\n\r\n let m = a:msg[i : i+height-1]->join(\"\\n\")\r\n echo m\r\n if has('vim_starting')\r\n echo ''\r\n endif\r\n endfor\r\n finally\r\n let &more = more_save\r\n let &showcmd = showcmd_save\r\n let &ruler = ruler_save\r\n endtry\r\nendfunction\r\n```", + "created_at": "2023-08-04T03:10:13Z", + "html_url": "https://github.com/neovim/neovim/issues/1029#issuecomment-1664910120", + "id": 1664910120, "issue_url": "https://api.github.com/repos/neovim/neovim/issues/1029", - "node_id": "IC_kwDOAPphoM5jO1HM", + "node_id": "IC_kwDOAPphoM5jPIMo", "performed_via_github_app": null, "reactions": { "+1": 0, @@ -1081,10 +1037,10 @@ "laugh": 0, "rocket": 0, "total_count": 0, - "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1664831948/reactions" + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1664910120/reactions" }, - "updated_at": "2023-08-04T01:07:27Z", - "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1664831948", + "updated_at": "2023-08-04T11:09:34Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1664910120", "user": { "avatar_url": "https://avatars.githubusercontent.com/u/41495?v=4", "events_url": "https://api.github.com/users/Shougo/events{/privacy}", @@ -1108,12 +1064,12 @@ }, { "author_association": "NONE", - "body": "@Shougo Could you please provide an example of how to use the `nomore` option? The documentation for [nvim_echo](https://neovim.io/doc/user/api.html#nvim_echo()) doesn't seem to mention anything about it so I am not sure what you have in mind.", - "created_at": "2023-08-04T01:59:16Z", - "html_url": "https://github.com/neovim/neovim/issues/1029#issuecomment-1664866434", - "id": 1664866434, + "body": "@Shougo Yes, setting `nomore` doesn't seem to help when it comes to `nvim_echo`. I've tried to convert your function to the equivalent Lua code along with the appropriate Neovim API calls but there are still some issues (I don't have much experience with VimL to Lua conversion). Could you please have a look and provide the Lua equivalent so I can test whether this function provides the desired behaviour?\r\n```lua\r\nlocal function echo(message)\r\n -- Save original values\r\n local more_orig = vim.opt.more:get()\r\n local showcmd_orig = vim.opt.showcmd:get()\r\n local ruler_orig = vim.opt.ruler:get()\r\n\r\n -- Set new temporary values\r\n vim.opt.more = false\r\n vim.opt.showcmd = false\r\n vim.opt.ruler = false\r\n \r\n local height = math.max(1, vim.opt.cmdheight:get())\r\n \r\n vim.api.nvim_echo({{\"\"}}, false, {})\r\n\r\n local m\r\n for i = 1, #message, height do -- note Lua uses 1 indexing\r\n vim.fn.redraw()\r\n m = string.sub(message, i, i+height-1) -- Add join(\"\\n\") equivalent here?\r\n vim.api.nvim_echo({{m}}, false, {})\r\n -- Add has('has_starting') equivalent here?\r\n end\r\n\r\n -- Reset original values\r\n vim.opt.more = more_orig\r\n vim.opt.showcmd = showcmd_orig\r\n vim.opt.ruler = ruler_orig\r\nend\r\n```", + "created_at": "2023-08-04T06:40:06Z", + "html_url": "https://github.com/neovim/neovim/issues/1029#issuecomment-1665089983", + "id": 1665089983, "issue_url": "https://api.github.com/repos/neovim/neovim/issues/1029", - "node_id": "IC_kwDOAPphoM5jO9iC", + "node_id": "IC_kwDOAPphoM5jP0G_", "performed_via_github_app": null, "reactions": { "+1": 0, @@ -1125,10 +1081,10 @@ "laugh": 0, "rocket": 0, "total_count": 0, - "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1664866434/reactions" + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1665089983/reactions" }, - "updated_at": "2023-08-04T01:59:16Z", - "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1664866434", + "updated_at": "2023-08-04T11:09:24Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1665089983", "user": { "avatar_url": "https://avatars.githubusercontent.com/u/113495179?v=4", "events_url": "https://api.github.com/users/kylefhartzenberg/events{/privacy}", @@ -1149,9 +1105,97 @@ "type": "User", "url": "https://api.github.com/users/kylefhartzenberg" } + }, + { + "author_association": "CONTRIBUTOR", + "body": "Hi. I don't know about the Lua...\r\n\r\nThis script works for me.\r\n\r\n```vim\r\nfunction! s:echo(msgs) abort\r\n const more_save = &more\r\n const showcmd_save = &showcmd\r\n const ruler_save = &ruler\r\n try\r\n set nomore\r\n set noshowcmd\r\n set noruler\r\n\r\n const height = [1, &cmdheight]->max()\r\n echo ''\r\n for i in range(0, a:msgs->len() - 1, height)\r\n redraw\r\n\r\n let m = a:msgs[i : i+height-1]->join(\"\\n\")\r\n echo m\r\n endfor\r\n finally\r\n let &more = more_save\r\n let &showcmd = showcmd_save\r\n let &ruler = ruler_save\r\n endtry\r\nendfunction\r\nset cmdheight=3\r\ncall s:echo(\"foo\\nbar\\nbaz\"->split(\"\\n\"))\r\n```", + "created_at": "2023-08-04T09:19:21Z", + "html_url": "https://github.com/neovim/neovim/issues/1029#issuecomment-1665301439", + "id": 1665301439, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/1029", + "node_id": "IC_kwDOAPphoM5jQnu_", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1665301439/reactions" + }, + "updated_at": "2023-08-04T11:09:15Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1665301439", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/41495?v=4", + "events_url": "https://api.github.com/users/Shougo/events{/privacy}", + "followers_url": "https://api.github.com/users/Shougo/followers", + "following_url": "https://api.github.com/users/Shougo/following{/other_user}", + "gists_url": "https://api.github.com/users/Shougo/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/Shougo", + "id": 41495, + "login": "Shougo", + "node_id": "MDQ6VXNlcjQxNDk1", + "organizations_url": "https://api.github.com/users/Shougo/orgs", + "received_events_url": "https://api.github.com/users/Shougo/received_events", + "repos_url": "https://api.github.com/users/Shougo/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/Shougo/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Shougo/subscriptions", + "type": "User", + "url": "https://api.github.com/users/Shougo" + } + }, + { + "author_association": "CONTRIBUTOR", + "body": "` vim.fn.redraw()` must be `vim.cmd.redraw()`.\r\n\r\n`m = string.sub(message, i, i+height-1)` does not work.\r\n\r\n```lua\r\nlocal function echo(msgs)\r\n -- Save original values\r\n local more_orig = vim.opt.more:get()\r\n local showcmd_orig = vim.opt.showcmd:get()\r\n local ruler_orig = vim.opt.ruler:get()\r\n\r\n -- Set new temporary values\r\n vim.opt.more = false\r\n vim.opt.showcmd = false\r\n vim.opt.ruler = false\r\n \r\n local height = math.max(1, vim.opt.cmdheight:get())\r\n \r\n vim.api.nvim_echo({{\"\"}}, false, {})\r\n\r\n local m\r\n for i = 1, #msgs, height do -- note Lua uses 1 indexing\r\n vim.cmd.redraw()\r\n -- NOTE: does not work\r\n --m = string.sub(message, i, i+height-1) -- Add join(\"\\n\") equivalent here?\r\n --vim.api.nvim_echo({{m}}, false, {})\r\n -- Add has('has_starting') equivalent here?\r\n end\r\n\r\n -- Reset original values\r\n vim.opt.more = more_orig\r\n vim.opt.showcmd = showcmd_orig\r\n vim.opt.ruler = ruler_orig\r\nend\r\necho({\"foo\", \"bar\", \"baz\"})\r\n```", + "created_at": "2023-08-04T09:21:37Z", + "html_url": "https://github.com/neovim/neovim/issues/1029#issuecomment-1665304176", + "id": 1665304176, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/1029", + "node_id": "IC_kwDOAPphoM5jQoZw", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1665304176/reactions" + }, + "updated_at": "2023-08-04T09:21:37Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1665304176", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/41495?v=4", + "events_url": "https://api.github.com/users/Shougo/events{/privacy}", + "followers_url": "https://api.github.com/users/Shougo/followers", + "following_url": "https://api.github.com/users/Shougo/following{/other_user}", + "gists_url": "https://api.github.com/users/Shougo/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/Shougo", + "id": 41495, + "login": "Shougo", + "node_id": "MDQ6VXNlcjQxNDk1", + "organizations_url": "https://api.github.com/users/Shougo/orgs", + "received_events_url": "https://api.github.com/users/Shougo/received_events", + "repos_url": "https://api.github.com/users/Shougo/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/Shougo/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Shougo/subscriptions", + "type": "User", + "url": "https://api.github.com/users/Shougo" + } } ], - "comments": 26, + "comments": 27, "comments_url": "https://api.github.com/repos/neovim/neovim/issues/1029/comments", "created_at": "2014-08-03T22:02:00Z", "events_url": "https://api.github.com/repos/neovim/neovim/issues/1029/events", @@ -1190,7 +1234,7 @@ "locked": false, "milestone": { "closed_at": null, - "closed_issues": 569, + "closed_issues": 570, "created_at": "2014-05-10T20:43:04Z", "creator": { "avatar_url": "https://avatars.githubusercontent.com/u/1359421?v=4", @@ -1219,10 +1263,10 @@ "labels_url": "https://api.github.com/repos/neovim/neovim/milestones/6/labels", "node_id": "MDk6TWlsZXN0b25lNjU1MDM3", "number": 6, - "open_issues": 415, + "open_issues": 417, "state": "open", "title": "backlog", - "updated_at": "2023-08-04T00:06:59Z", + "updated_at": "2023-08-04T21:11:41Z", "url": "https://api.github.com/repos/neovim/neovim/milestones/6" }, "node_id": "MDU6SXNzdWUzOTM4MDU1NQ==", @@ -1245,7 +1289,7 @@ "state_reason": null, "timeline_url": "https://api.github.com/repos/neovim/neovim/issues/1029/timeline", "title": "Remove 'Press ENTER or type command to continue'", - "updated_at": "2023-08-04T01:59:16Z", + "updated_at": "2023-08-04T11:10:04Z", "url": "https://api.github.com/repos/neovim/neovim/issues/1029", "user": { "avatar_url": "https://avatars.githubusercontent.com/u/7731696?v=4", diff --git a/repositories/neovim/issues/11468.json b/repositories/neovim/issues/11468.json new file mode 100644 index 00000000..7044ab93 --- /dev/null +++ b/repositories/neovim/issues/11468.json @@ -0,0 +1,232 @@ +{ + "active_lock_reason": null, + "assignee": null, + "assignees": [], + "author_association": "MEMBER", + "body": "- `nvim --version`: NVIM v0.5.0-180-g222637c34\r\n- Operating system/version: Linux 5.0.0-32-generic #34~18.04.2-Ubuntu SMP Thu Oct 10 10:36:02 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux\r\n- Terminal name/version: Doesn't matter, also happens in GUIs\r\n- `$TERM`: Doesn't matter, also happens in GUIs\r\n\r\n### Steps to reproduce using `nvim -u NORC`\r\n\r\n```\r\nnvim -u NORC\r\n:call nvim_input(\"a\")\r\n```\r\n\r\n### Actual behaviour\r\n`` is inserted in the buffer.\r\n\r\n### Expected behaviour\r\n`` is inserted in the buffer.", + "closed_at": "2022-01-27T08:00:02Z", + "comment_data": [ + { + "author_association": "MEMBER", + "body": "`nvim_input` isn't required to reproduce this, also happens interactively:\r\n\r\n i\r\n\r\nThat's a bit weird, but it works if you \r\n\r\n1. remove the ``\r\n2. map ALT-1 to something: `:inoremap foo`\r\n ```\r\n :call nvim_input(\"a\")\r\n foofoofoo \" inserted text\r\n ```\r\n\r\nThis might be a side-effect of 224ebc0078f29ac3189 (`:help i_META`), which somehow confuses ``.\r\n\r\nIs there an actual problem, other than `` showing something weird? ALT-1 (including mappings to it) should work.", + "created_at": "2019-11-28T06:18:34Z", + "html_url": "https://github.com/neovim/neovim/issues/11468#issuecomment-559357988", + "id": 559357988, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/11468", + "node_id": "MDEyOklzc3VlQ29tbWVudDU1OTM1Nzk4OA==", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/559357988/reactions" + }, + "updated_at": "2019-11-28T06:25:18Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/559357988", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/1359421?v=4", + "events_url": "https://api.github.com/users/justinmk/events{/privacy}", + "followers_url": "https://api.github.com/users/justinmk/followers", + "following_url": "https://api.github.com/users/justinmk/following{/other_user}", + "gists_url": "https://api.github.com/users/justinmk/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/justinmk", + "id": 1359421, + "login": "justinmk", + "node_id": "MDQ6VXNlcjEzNTk0MjE=", + "organizations_url": "https://api.github.com/users/justinmk/orgs", + "received_events_url": "https://api.github.com/users/justinmk/received_events", + "repos_url": "https://api.github.com/users/justinmk/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/justinmk/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/justinmk/subscriptions", + "type": "User", + "url": "https://api.github.com/users/justinmk" + } + }, + { + "author_association": "MEMBER", + "body": "No \"real\" problem as far as I know - I just found this issue while testing something in firenvim and thought I'd report it :).", + "created_at": "2019-11-28T06:24:45Z", + "html_url": "https://github.com/neovim/neovim/issues/11468#issuecomment-559359325", + "id": 559359325, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/11468", + "node_id": "MDEyOklzc3VlQ29tbWVudDU1OTM1OTMyNQ==", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/559359325/reactions" + }, + "updated_at": "2019-11-28T06:24:45Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/559359325", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/11534587?v=4", + "events_url": "https://api.github.com/users/glacambre/events{/privacy}", + "followers_url": "https://api.github.com/users/glacambre/followers", + "following_url": "https://api.github.com/users/glacambre/following{/other_user}", + "gists_url": "https://api.github.com/users/glacambre/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/glacambre", + "id": 11534587, + "login": "glacambre", + "node_id": "MDQ6VXNlcjExNTM0NTg3", + "organizations_url": "https://api.github.com/users/glacambre/orgs", + "received_events_url": "https://api.github.com/users/glacambre/received_events", + "repos_url": "https://api.github.com/users/glacambre/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/glacambre/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/glacambre/subscriptions", + "type": "User", + "url": "https://api.github.com/users/glacambre" + } + } + ], + "comments": 2, + "comments_url": "https://api.github.com/repos/neovim/neovim/issues/11468/comments", + "created_at": "2019-11-27T06:18:44Z", + "events_url": "https://api.github.com/repos/neovim/neovim/issues/11468/events", + "html_url": "https://github.com/neovim/neovim/issues/11468", + "id": 529141349, + "labels": [ + { + "color": "f9d0c4", + "default": true, + "description": "issues reporting wrong behavior", + "id": 77997474, + "name": "bug", + "node_id": "MDU6TGFiZWw3Nzk5NzQ3NA==", + "url": "https://api.github.com/repos/neovim/neovim/labels/bug" + }, + { + "color": "0E8A16", + "default": false, + "description": "issue is fixed in vim and patch needs to be ported", + "id": 152276149, + "name": "has:vim-patch", + "node_id": "MDU6TGFiZWwxNTIyNzYxNDk=", + "url": "https://api.github.com/repos/neovim/neovim/labels/has:vim-patch" + }, + { + "color": "0E8A16", + "default": false, + "description": "issue contains minimal reproducing steps", + "id": 435851959, + "name": "has:repro", + "node_id": "MDU6TGFiZWw0MzU4NTE5NTk=", + "url": "https://api.github.com/repos/neovim/neovim/labels/has:repro" + }, + { + "color": "0E8A16", + "default": false, + "description": "", + "id": 606691254, + "name": "has:plan", + "node_id": "MDU6TGFiZWw2MDY2OTEyNTQ=", + "url": "https://api.github.com/repos/neovim/neovim/labels/has:plan" + }, + { + "color": "c5def5", + "default": false, + "description": "Nvim core functionality or code", + "id": 858327504, + "name": "core", + "node_id": "MDU6TGFiZWw4NTgzMjc1MDQ=", + "url": "https://api.github.com/repos/neovim/neovim/labels/core" + } + ], + "labels_url": "https://api.github.com/repos/neovim/neovim/issues/11468/labels{/name}", + "locked": false, + "milestone": { + "closed_at": null, + "closed_issues": 189, + "created_at": "2014-11-26T22:13:11Z", + "creator": { + "avatar_url": "https://avatars.githubusercontent.com/u/1359421?v=4", + "events_url": "https://api.github.com/users/justinmk/events{/privacy}", + "followers_url": "https://api.github.com/users/justinmk/followers", + "following_url": "https://api.github.com/users/justinmk/following{/other_user}", + "gists_url": "https://api.github.com/users/justinmk/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/justinmk", + "id": 1359421, + "login": "justinmk", + "node_id": "MDQ6VXNlcjEzNTk0MjE=", + "organizations_url": "https://api.github.com/users/justinmk/orgs", + "received_events_url": "https://api.github.com/users/justinmk/received_events", + "repos_url": "https://api.github.com/users/justinmk/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/justinmk/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/justinmk/subscriptions", + "type": "User", + "url": "https://api.github.com/users/justinmk" + }, + "description": "Zero priority; no timeline. Promote an item from this state by taking ownership of it.", + "due_on": null, + "html_url": "https://github.com/neovim/neovim/milestone/9", + "id": 881978, + "labels_url": "https://api.github.com/repos/neovim/neovim/milestones/9/labels", + "node_id": "MDk6TWlsZXN0b25lODgxOTc4", + "number": 9, + "open_issues": 219, + "state": "open", + "title": "unplanned", + "updated_at": "2023-08-04T13:50:38Z", + "url": "https://api.github.com/repos/neovim/neovim/milestones/9" + }, + "node_id": "MDU6SXNzdWU1MjkxNDEzNDk=", + "number": 11468, + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/11468/reactions" + }, + "repository_url": "https://api.github.com/repos/neovim/neovim", + "state": "closed", + "state_reason": "completed", + "timeline_url": "https://api.github.com/repos/neovim/neovim/issues/11468/timeline", + "title": "\"i_CTRL-v ALT-1 ALT-1 ALT-1\" prints instead of ", + "updated_at": "2023-08-04T03:26:19Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/11468", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/11534587?v=4", + "events_url": "https://api.github.com/users/glacambre/events{/privacy}", + "followers_url": "https://api.github.com/users/glacambre/followers", + "following_url": "https://api.github.com/users/glacambre/following{/other_user}", + "gists_url": "https://api.github.com/users/glacambre/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/glacambre", + "id": 11534587, + "login": "glacambre", + "node_id": "MDQ6VXNlcjExNTM0NTg3", + "organizations_url": "https://api.github.com/users/glacambre/orgs", + "received_events_url": "https://api.github.com/users/glacambre/received_events", + "repos_url": "https://api.github.com/users/glacambre/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/glacambre/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/glacambre/subscriptions", + "type": "User", + "url": "https://api.github.com/users/glacambre" + } +} \ No newline at end of file diff --git a/repositories/neovim/issues/12587.json b/repositories/neovim/issues/12587.json new file mode 100644 index 00000000..7deb6a9d --- /dev/null +++ b/repositories/neovim/issues/12587.json @@ -0,0 +1,1851 @@ +{ + "active_lock_reason": null, + "assignee": null, + "assignees": [], + "author_association": "NONE", + "body": ":warning: **we only talk about ```CursorHold``` here, but the same bug also applies for ```CursorHoldI```** :warning: \r\n\r\n\r\n\r\n- `nvim --version`:\r\n```\r\nNVIM v0.5.0-575-g225f0bcd9\r\nBuild type: Release\r\nLuaJIT 2.1.0-beta3\r\nCompilation: /usr/bin/cc -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/home/antoine/src/neovim/build/config -I/home/antoine/src/neovim/src -I/home/antoine/src/neovim/.deps/usr/include -I/usr/include -I/home/antoine/src/neovim/build/src/nvim/auto -I/home/antoine/src/neovim/build/include\r\n```\r\n- `vim -u DEFAULTS` (version: ) behaves differently? **vim 8.2.716 behaves differently**\r\n- Operating system/version: Debian testing up-to-date\r\n- Terminal name/version: alacritty 0.4.3\r\n- `$TERM`: alacritty\r\n\r\n### Steps to reproduce using `nvim -u NORC`\r\n\r\n``` sh\r\nnvim -u NORC\r\n```\r\n\r\nThen, source ```test.vim``` where test.vim is:\r\n```vim\r\nset updatetime=100\r\n\r\nautocmd CursorMoved * echom \"CursorMoved\"\r\nautocmd CursorHold * echom \"CursorHold\"\r\n\r\nfunction! s:timer_callback(timer_id)\r\nendfunction\r\n\r\nlet w:matchup_timer = timer_start(50,\r\n \\ function('s:timer_callback'),\r\n \\ {'repeat': -1})\r\n```\r\n\r\n### Actual behaviour\r\n```neovim``` never echoes **CursorHold**, only **CursorMoved**\r\n```vim``` echoes both **CursorHold** and **CursorMoved**\r\n\r\nThis seems to indicate that ```neovim``` ```CursorHold``` autocmd can be blocked by timers, when ```vim``` uses a different _thread_ to deal with ```CursorHold```?\r\n\r\n**Note**: when ```timer_start```'s delay is greater than ```update_time```, ```neovim``` displays **CursorHold**, but it seems more laggy than ```vim```.\r\n\r\n### Expected behaviour\r\nI expect ```CursorHold``` execution not to depend on whether ```timers``` are running or not.\r\nEspecially when this results in blocking it completely or making it laggy.\r\n\r\nAlso, thanks a lot for this amazing editor :heart: \r\n\r\nThanks,\r\nAntoine", + "closed_at": "2022-09-18T09:37:23Z", + "comment_data": [ + { + "author_association": "NONE", + "body": "Here is a testcase that supports my claim:\r\n\r\n> Note: when timer_start's delay is greater than update_time, neovim displays CursorHold, but it seems more laggy than vim.\r\n\r\n- ```vim```: **CursorHold** is executed after **CursorMoved** in **105 ms** maximum\r\n- ```neovim```: **CursorHold** is executed after **CursorMoved** in **up to 500 ms**\r\n\r\n```vim\r\nset updatetime=100\r\n\r\nfunction s:Start() abort\r\n let g:start_time = reltimefloat(reltime())\r\nendfunction\r\n\r\nfunction s:End() abort\r\n let g:end_time = reltimefloat(reltime())\r\n let g:diff_time = g:end_time - g:start_time\r\n echom g:diff_time\r\nendfunction\r\n\r\nautocmd CursorMoved * call s:Start()\r\nautocmd CursorHold * call s:End()\r\n\r\nfunction! s:timer_callback(timer_id)\r\nendfunction\r\n\r\nlet w:matchup_timer = timer_start(101,\r\n \\ function('s:timer_callback'),\r\n \\ {'repeat': -1})\r\n```", + "created_at": "2020-07-03T19:58:05Z", + "html_url": "https://github.com/neovim/neovim/issues/12587#issuecomment-653664346", + "id": 653664346, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/12587", + "node_id": "MDEyOklzc3VlQ29tbWVudDY1MzY2NDM0Ng==", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/653664346/reactions" + }, + "updated_at": "2020-07-03T20:03:12Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/653664346", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/10830594?v=4", + "events_url": "https://api.github.com/users/antoinemadec/events{/privacy}", + "followers_url": "https://api.github.com/users/antoinemadec/followers", + "following_url": "https://api.github.com/users/antoinemadec/following{/other_user}", + "gists_url": "https://api.github.com/users/antoinemadec/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/antoinemadec", + "id": 10830594, + "login": "antoinemadec", + "node_id": "MDQ6VXNlcjEwODMwNTk0", + "organizations_url": "https://api.github.com/users/antoinemadec/orgs", + "received_events_url": "https://api.github.com/users/antoinemadec/received_events", + "repos_url": "https://api.github.com/users/antoinemadec/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/antoinemadec/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/antoinemadec/subscriptions", + "type": "User", + "url": "https://api.github.com/users/antoinemadec" + } + }, + { + "author_association": "NONE", + "body": "@tarruda @justinmk , could it be related to this comment in https://github.com/neovim/neovim/blob/master/src/nvim/os/input.c#L95 ?\r\n\r\n> // TODO(tarruda): Cursorhold should be implemented as a timer set during the\r\n> // `state_check` callback for the states where it can be triggered.\r\n", + "created_at": "2020-07-03T23:09:56Z", + "html_url": "https://github.com/neovim/neovim/issues/12587#issuecomment-653693222", + "id": 653693222, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/12587", + "node_id": "MDEyOklzc3VlQ29tbWVudDY1MzY5MzIyMg==", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/653693222/reactions" + }, + "updated_at": "2020-07-03T23:09:56Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/653693222", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/10830594?v=4", + "events_url": "https://api.github.com/users/antoinemadec/events{/privacy}", + "followers_url": "https://api.github.com/users/antoinemadec/followers", + "following_url": "https://api.github.com/users/antoinemadec/following{/other_user}", + "gists_url": "https://api.github.com/users/antoinemadec/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/antoinemadec", + "id": 10830594, + "login": "antoinemadec", + "node_id": "MDQ6VXNlcjEwODMwNTk0", + "organizations_url": "https://api.github.com/users/antoinemadec/orgs", + "received_events_url": "https://api.github.com/users/antoinemadec/received_events", + "repos_url": "https://api.github.com/users/antoinemadec/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/antoinemadec/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/antoinemadec/subscriptions", + "type": "User", + "url": "https://api.github.com/users/antoinemadec" + } + }, + { + "author_association": "CONTRIBUTOR", + "body": "I get the reason. But it is not easy to fix...\r\n\r\n`CursorHold` events check events key is empty.\r\nBut timer events put events repeatedly.\r\nSo if timer events exists, `CursorHold` events never fired!", + "created_at": "2020-07-07T10:53:57Z", + "html_url": "https://github.com/neovim/neovim/issues/12587#issuecomment-654771630", + "id": 654771630, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/12587", + "node_id": "MDEyOklzc3VlQ29tbWVudDY1NDc3MTYzMA==", + "performed_via_github_app": null, + "reactions": { + "+1": 8, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 8, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/654771630/reactions" + }, + "updated_at": "2020-07-07T10:53:57Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/654771630", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/41495?v=4", + "events_url": "https://api.github.com/users/Shougo/events{/privacy}", + "followers_url": "https://api.github.com/users/Shougo/followers", + "following_url": "https://api.github.com/users/Shougo/following{/other_user}", + "gists_url": "https://api.github.com/users/Shougo/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/Shougo", + "id": 41495, + "login": "Shougo", + "node_id": "MDQ6VXNlcjQxNDk1", + "organizations_url": "https://api.github.com/users/Shougo/orgs", + "received_events_url": "https://api.github.com/users/Shougo/received_events", + "repos_url": "https://api.github.com/users/Shougo/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/Shougo/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Shougo/subscriptions", + "type": "User", + "url": "https://api.github.com/users/Shougo" + } + }, + { + "author_association": "NONE", + "body": "@Shougo do you know how Vim handles that differently?", + "created_at": "2020-07-07T21:53:07Z", + "html_url": "https://github.com/neovim/neovim/issues/12587#issuecomment-655155607", + "id": 655155607, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/12587", + "node_id": "MDEyOklzc3VlQ29tbWVudDY1NTE1NTYwNw==", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/655155607/reactions" + }, + "updated_at": "2020-07-07T21:53:07Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/655155607", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/10830594?v=4", + "events_url": "https://api.github.com/users/antoinemadec/events{/privacy}", + "followers_url": "https://api.github.com/users/antoinemadec/followers", + "following_url": "https://api.github.com/users/antoinemadec/following{/other_user}", + "gists_url": "https://api.github.com/users/antoinemadec/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/antoinemadec", + "id": 10830594, + "login": "antoinemadec", + "node_id": "MDQ6VXNlcjEwODMwNTk0", + "organizations_url": "https://api.github.com/users/antoinemadec/orgs", + "received_events_url": "https://api.github.com/users/antoinemadec/received_events", + "repos_url": "https://api.github.com/users/antoinemadec/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/antoinemadec/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/antoinemadec/subscriptions", + "type": "User", + "url": "https://api.github.com/users/antoinemadec" + } + }, + { + "author_association": "CONTRIBUTOR", + "body": "> @Shougo do you know how Vim handles that differently?\r\n\r\nYes. It is different implementation.\r\nVim does not check the event queue.", + "created_at": "2020-07-08T00:33:01Z", + "html_url": "https://github.com/neovim/neovim/issues/12587#issuecomment-655210519", + "id": 655210519, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/12587", + "node_id": "MDEyOklzc3VlQ29tbWVudDY1NTIxMDUxOQ==", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/655210519/reactions" + }, + "updated_at": "2020-07-08T00:33:01Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/655210519", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/41495?v=4", + "events_url": "https://api.github.com/users/Shougo/events{/privacy}", + "followers_url": "https://api.github.com/users/Shougo/followers", + "following_url": "https://api.github.com/users/Shougo/following{/other_user}", + "gists_url": "https://api.github.com/users/Shougo/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/Shougo", + "id": 41495, + "login": "Shougo", + "node_id": "MDQ6VXNlcjQxNDk1", + "organizations_url": "https://api.github.com/users/Shougo/orgs", + "received_events_url": "https://api.github.com/users/Shougo/received_events", + "repos_url": "https://api.github.com/users/Shougo/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/Shougo/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Shougo/subscriptions", + "type": "User", + "url": "https://api.github.com/users/Shougo" + } + }, + { + "author_association": "CONTRIBUTOR", + "body": "I don't recommend to use CursorHold events for neovim.", + "created_at": "2020-07-08T02:05:19Z", + "html_url": "https://github.com/neovim/neovim/issues/12587#issuecomment-655236436", + "id": 655236436, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/12587", + "node_id": "MDEyOklzc3VlQ29tbWVudDY1NTIzNjQzNg==", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 17, + "eyes": 4, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 21, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/655236436/reactions" + }, + "updated_at": "2020-07-08T02:05:19Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/655236436", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/41495?v=4", + "events_url": "https://api.github.com/users/Shougo/events{/privacy}", + "followers_url": "https://api.github.com/users/Shougo/followers", + "following_url": "https://api.github.com/users/Shougo/following{/other_user}", + "gists_url": "https://api.github.com/users/Shougo/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/Shougo", + "id": 41495, + "login": "Shougo", + "node_id": "MDQ6VXNlcjQxNDk1", + "organizations_url": "https://api.github.com/users/Shougo/orgs", + "received_events_url": "https://api.github.com/users/Shougo/received_events", + "repos_url": "https://api.github.com/users/Shougo/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/Shougo/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Shougo/subscriptions", + "type": "User", + "url": "https://api.github.com/users/Shougo" + } + }, + { + "author_association": "NONE", + "body": "@Shougo , you said:\r\n> I don't recommend to use CursorHold events for neovim.\r\n\r\nthis is a bummer as a bunch of popular plugins rely heavily on ```CursorHold```, for instance: **coc.nvim**, **tagbar**, **vim-devicons**, **vim-polyglot**, etc.\r\n\r\n", + "created_at": "2020-07-12T16:55:10Z", + "html_url": "https://github.com/neovim/neovim/issues/12587#issuecomment-657248664", + "id": 657248664, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/12587", + "node_id": "MDEyOklzc3VlQ29tbWVudDY1NzI0ODY2NA==", + "performed_via_github_app": null, + "reactions": { + "+1": 5, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 5, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/657248664/reactions" + }, + "updated_at": "2020-07-12T17:06:22Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/657248664", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/10830594?v=4", + "events_url": "https://api.github.com/users/antoinemadec/events{/privacy}", + "followers_url": "https://api.github.com/users/antoinemadec/followers", + "following_url": "https://api.github.com/users/antoinemadec/following{/other_user}", + "gists_url": "https://api.github.com/users/antoinemadec/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/antoinemadec", + "id": 10830594, + "login": "antoinemadec", + "node_id": "MDQ6VXNlcjEwODMwNTk0", + "organizations_url": "https://api.github.com/users/antoinemadec/orgs", + "received_events_url": "https://api.github.com/users/antoinemadec/received_events", + "repos_url": "https://api.github.com/users/antoinemadec/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/antoinemadec/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/antoinemadec/subscriptions", + "type": "User", + "url": "https://api.github.com/users/antoinemadec" + } + }, + { + "author_association": "NONE", + "body": "@Shougo , @tarruda , @mroavi , @lambdalisue , FYI, here is the proof that a ```CursorHold``` using timers would fix the performance issues: I used a User autocomand starting a timer on ```CursorMoved```.\r\n\r\n```MyCursorHold``` is not blocking anymore:\r\n```vim\r\nset updatetime=100\r\n\r\n\"--------------------------------------------------------------\r\n\" user autocmd\r\n\"--------------------------------------------------------------\r\nautocmd CursorMoved * call s:MyCursorHold()\r\n\r\nfunction s:MyCursorHold_Cb(timer_id) abort\r\n doautocmd User MyCursorHold\r\nendfunction\r\n\r\nfunction s:MyCursorHold() abort\r\n if exists('g:my_cursorhold_timer')\r\n call timer_stop(g:my_cursorhold_timer)\r\n endif\r\n let g:my_cursorhold_timer = timer_start(&updatetime, function('s:MyCursorHold_Cb'))\r\nendfunction\r\n\"--------------------------------------------------------------\r\n\r\nautocmd CursorMoved * echom \"CursorMoved\"\r\nautocmd User MyCursorHold echom \"MyCursorHold\"\r\n\r\nfunction! s:timer_callback(timer_id)\r\nendfunction\r\n\r\nlet w:matchup_timer = timer_start(50,\r\n \\ function('s:timer_callback'),\r\n \\ {'repeat': -1})\r\n```\r\n\r\n```MyCursorHold``` is not slow anymore:\r\n```vim\r\nset updatetime=100\r\n\r\n\"--------------------------------------------------------------\r\n\" user autocmd\r\n\"--------------------------------------------------------------\r\nautocmd CursorMoved * call s:MyCursorHold()\r\n\r\nfunction s:MyCursorHold_Cb(timer_id) abort\r\n doautocmd User MyCursorHold\r\nendfunction\r\n\r\nfunction s:MyCursorHold() abort\r\n if exists('g:my_cursorhold_timer')\r\n call timer_stop(g:my_cursorhold_timer)\r\n endif\r\n let g:my_cursorhold_timer = timer_start(&updatetime, function('s:MyCursorHold_Cb'))\r\nendfunction\r\n\"--------------------------------------------------------------\r\n\"\r\nfunction s:Start() abort\r\n let g:start_time = reltimefloat(reltime())\r\nendfunction\r\n\r\nfunction s:End() abort\r\n let g:end_time = reltimefloat(reltime())\r\n let g:diff_time = g:end_time - g:start_time\r\n echom g:diff_time\r\nendfunction\r\n\r\nautocmd CursorMoved * call s:Start()\r\nautocmd User MyCursorHold call s:End()\r\n\r\nfunction! s:timer_callback(timer_id)\r\nendfunction\r\n\r\nlet w:matchup_timer = timer_start(101,\r\n \\ function('s:timer_callback'),\r\n \\ {'repeat': -1})\r\n```\r\n\r\nUnfortunately I am not knowledgeable enough to fix the source code.\r\nI will try to spend some time understanding the code this summer, but I am afraid this might be too complex for me.", + "created_at": "2020-07-12T17:02:27Z", + "html_url": "https://github.com/neovim/neovim/issues/12587#issuecomment-657249646", + "id": 657249646, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/12587", + "node_id": "MDEyOklzc3VlQ29tbWVudDY1NzI0OTY0Ng==", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 7, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 7, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/657249646/reactions" + }, + "updated_at": "2020-07-12T17:02:27Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/657249646", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/10830594?v=4", + "events_url": "https://api.github.com/users/antoinemadec/events{/privacy}", + "followers_url": "https://api.github.com/users/antoinemadec/followers", + "following_url": "https://api.github.com/users/antoinemadec/following{/other_user}", + "gists_url": "https://api.github.com/users/antoinemadec/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/antoinemadec", + "id": 10830594, + "login": "antoinemadec", + "node_id": "MDQ6VXNlcjEwODMwNTk0", + "organizations_url": "https://api.github.com/users/antoinemadec/orgs", + "received_events_url": "https://api.github.com/users/antoinemadec/received_events", + "repos_url": "https://api.github.com/users/antoinemadec/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/antoinemadec/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/antoinemadec/subscriptions", + "type": "User", + "url": "https://api.github.com/users/antoinemadec" + } + }, + { + "author_association": "MEMBER", + "body": "One \"hack\" could be to do what you did above, but instead of issuing a user autocmd, you could just do `doautocmd CursorHold` I believe.\r\n\r\nSo then it would make all existing plugins \"work\"", + "created_at": "2020-07-12T18:40:46Z", + "html_url": "https://github.com/neovim/neovim/issues/12587#issuecomment-657259684", + "id": 657259684, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/12587", + "node_id": "MDEyOklzc3VlQ29tbWVudDY1NzI1OTY4NA==", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/657259684/reactions" + }, + "updated_at": "2020-07-12T18:40:46Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/657259684", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/4466899?v=4", + "events_url": "https://api.github.com/users/tjdevries/events{/privacy}", + "followers_url": "https://api.github.com/users/tjdevries/followers", + "following_url": "https://api.github.com/users/tjdevries/following{/other_user}", + "gists_url": "https://api.github.com/users/tjdevries/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/tjdevries", + "id": 4466899, + "login": "tjdevries", + "node_id": "MDQ6VXNlcjQ0NjY4OTk=", + "organizations_url": "https://api.github.com/users/tjdevries/orgs", + "received_events_url": "https://api.github.com/users/tjdevries/received_events", + "repos_url": "https://api.github.com/users/tjdevries/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/tjdevries/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/tjdevries/subscriptions", + "type": "User", + "url": "https://api.github.com/users/tjdevries" + } + }, + { + "author_association": "NONE", + "body": "@tjdevries , this would fix the scenario where ```CursorHold``` is **blocked**.\r\nHowever, in the case where ```CursorHold``` is not blocked, just **slow**, this would trigger all the ```CursorHold``` autocmd twice as many times as expected. Which could also result in a performance hit.\r\n\r\nAfter testing this solution on my config, it seems to be more beneficial than detrimental.\r\nIn other word, the reduce latency is worth running the ```CusorHold``` autocmds twice. I will create a plugin for that.", + "created_at": "2020-07-13T00:26:27Z", + "html_url": "https://github.com/neovim/neovim/issues/12587#issuecomment-657299853", + "id": 657299853, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/12587", + "node_id": "MDEyOklzc3VlQ29tbWVudDY1NzI5OTg1Mw==", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/657299853/reactions" + }, + "updated_at": "2020-07-13T00:38:10Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/657299853", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/10830594?v=4", + "events_url": "https://api.github.com/users/antoinemadec/events{/privacy}", + "followers_url": "https://api.github.com/users/antoinemadec/followers", + "following_url": "https://api.github.com/users/antoinemadec/following{/other_user}", + "gists_url": "https://api.github.com/users/antoinemadec/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/antoinemadec", + "id": 10830594, + "login": "antoinemadec", + "node_id": "MDQ6VXNlcjEwODMwNTk0", + "organizations_url": "https://api.github.com/users/antoinemadec/orgs", + "received_events_url": "https://api.github.com/users/antoinemadec/received_events", + "repos_url": "https://api.github.com/users/antoinemadec/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/antoinemadec/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/antoinemadec/subscriptions", + "type": "User", + "url": "https://api.github.com/users/antoinemadec" + } + }, + { + "author_association": "CONTRIBUTOR", + "body": "> Unfortunately I am not knowledgeable enough to fix the source code.\r\n> I will try to spend some time understanding the code this summer, but I am afraid this might be too complex for me.\r\n\r\nI have read the code to fix the problem, but it is not so easy.", + "created_at": "2020-07-13T01:28:06Z", + "html_url": "https://github.com/neovim/neovim/issues/12587#issuecomment-657312509", + "id": 657312509, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/12587", + "node_id": "MDEyOklzc3VlQ29tbWVudDY1NzMxMjUwOQ==", + "performed_via_github_app": null, + "reactions": { + "+1": 3, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 3, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/657312509/reactions" + }, + "updated_at": "2020-07-13T01:28:06Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/657312509", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/41495?v=4", + "events_url": "https://api.github.com/users/Shougo/events{/privacy}", + "followers_url": "https://api.github.com/users/Shougo/followers", + "following_url": "https://api.github.com/users/Shougo/following{/other_user}", + "gists_url": "https://api.github.com/users/Shougo/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/Shougo", + "id": 41495, + "login": "Shougo", + "node_id": "MDQ6VXNlcjQxNDk1", + "organizations_url": "https://api.github.com/users/Shougo/orgs", + "received_events_url": "https://api.github.com/users/Shougo/received_events", + "repos_url": "https://api.github.com/users/Shougo/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/Shougo/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Shougo/subscriptions", + "type": "User", + "url": "https://api.github.com/users/Shougo" + } + }, + { + "author_association": "NONE", + "body": "Here is a temporary plugin to fix this bug: https://github.com/antoinemadec/FixCursorHold.nvim\r\n- fixes slowdowns and untriggered events\r\n- add ```g:cursorhold_updatetime``` variable to leave ```updatetime``` untouched (and avoid unnecessary swap writes)\r\n\r\nThe plugin also makes sure not to fire those event twice.", + "created_at": "2020-07-13T01:36:21Z", + "html_url": "https://github.com/neovim/neovim/issues/12587#issuecomment-657314347", + "id": 657314347, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/12587", + "node_id": "MDEyOklzc3VlQ29tbWVudDY1NzMxNDM0Nw==", + "performed_via_github_app": null, + "reactions": { + "+1": 37, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 7, + "hooray": 12, + "laugh": 0, + "rocket": 7, + "total_count": 63, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/657314347/reactions" + }, + "updated_at": "2020-07-20T19:54:42Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/657314347", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/10830594?v=4", + "events_url": "https://api.github.com/users/antoinemadec/events{/privacy}", + "followers_url": "https://api.github.com/users/antoinemadec/followers", + "following_url": "https://api.github.com/users/antoinemadec/following{/other_user}", + "gists_url": "https://api.github.com/users/antoinemadec/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/antoinemadec", + "id": 10830594, + "login": "antoinemadec", + "node_id": "MDQ6VXNlcjEwODMwNTk0", + "organizations_url": "https://api.github.com/users/antoinemadec/orgs", + "received_events_url": "https://api.github.com/users/antoinemadec/received_events", + "repos_url": "https://api.github.com/users/antoinemadec/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/antoinemadec/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/antoinemadec/subscriptions", + "type": "User", + "url": "https://api.github.com/users/antoinemadec" + } + }, + { + "author_association": "NONE", + "body": "@erw7 , could we add this in the 0.5 milestones, or is it too much of a complex bug to be fixed in the 0.5 version?", + "created_at": "2020-08-17T17:03:39Z", + "html_url": "https://github.com/neovim/neovim/issues/12587#issuecomment-674998575", + "id": 674998575, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/12587", + "node_id": "MDEyOklzc3VlQ29tbWVudDY3NDk5ODU3NQ==", + "performed_via_github_app": null, + "reactions": { + "+1": 5, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 5, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/674998575/reactions" + }, + "updated_at": "2020-08-17T17:04:17Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/674998575", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/10830594?v=4", + "events_url": "https://api.github.com/users/antoinemadec/events{/privacy}", + "followers_url": "https://api.github.com/users/antoinemadec/followers", + "following_url": "https://api.github.com/users/antoinemadec/following{/other_user}", + "gists_url": "https://api.github.com/users/antoinemadec/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/antoinemadec", + "id": 10830594, + "login": "antoinemadec", + "node_id": "MDQ6VXNlcjEwODMwNTk0", + "organizations_url": "https://api.github.com/users/antoinemadec/orgs", + "received_events_url": "https://api.github.com/users/antoinemadec/received_events", + "repos_url": "https://api.github.com/users/antoinemadec/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/antoinemadec/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/antoinemadec/subscriptions", + "type": "User", + "url": "https://api.github.com/users/antoinemadec" + } + }, + { + "author_association": "MEMBER", + "body": "I'm not familiar with this part of neovim, but I suspect it would be difficult to fix this behavior. I suppose it's possible to change it to use a timer, but I don't think that would work any differently than the plugin in https://github.com/neovim/neovim/issues/12587#issuecomment-657314347. I think we might consider adding a plugin like https://github.com/neovim/neovim/issues/12587#issuecomment-657314347 to runtime.", + "created_at": "2020-08-24T18:34:28Z", + "html_url": "https://github.com/neovim/neovim/issues/12587#issuecomment-679295125", + "id": 679295125, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/12587", + "node_id": "MDEyOklzc3VlQ29tbWVudDY3OTI5NTEyNQ==", + "performed_via_github_app": null, + "reactions": { + "+1": 3, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 3, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/679295125/reactions" + }, + "updated_at": "2020-08-24T18:34:28Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/679295125", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/11682285?v=4", + "events_url": "https://api.github.com/users/erw7/events{/privacy}", + "followers_url": "https://api.github.com/users/erw7/followers", + "following_url": "https://api.github.com/users/erw7/following{/other_user}", + "gists_url": "https://api.github.com/users/erw7/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/erw7", + "id": 11682285, + "login": "erw7", + "node_id": "MDQ6VXNlcjExNjgyMjg1", + "organizations_url": "https://api.github.com/users/erw7/orgs", + "received_events_url": "https://api.github.com/users/erw7/received_events", + "repos_url": "https://api.github.com/users/erw7/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/erw7/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/erw7/subscriptions", + "type": "User", + "url": "https://api.github.com/users/erw7" + } + }, + { + "author_association": "NONE", + "body": "I ran into this problem using the built-in LSP and gitgutter or signify. Both plugins work great if I'm not using the LSP, but then it seems the `CursorHold` events rarely fire.", + "created_at": "2020-09-02T17:33:51Z", + "html_url": "https://github.com/neovim/neovim/issues/12587#issuecomment-685888988", + "id": 685888988, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/12587", + "node_id": "MDEyOklzc3VlQ29tbWVudDY4NTg4ODk4OA==", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/685888988/reactions" + }, + "updated_at": "2020-09-02T17:33:51Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/685888988", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/26119366?v=4", + "events_url": "https://api.github.com/users/comfortablynick/events{/privacy}", + "followers_url": "https://api.github.com/users/comfortablynick/followers", + "following_url": "https://api.github.com/users/comfortablynick/following{/other_user}", + "gists_url": "https://api.github.com/users/comfortablynick/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/comfortablynick", + "id": 26119366, + "login": "comfortablynick", + "node_id": "MDQ6VXNlcjI2MTE5MzY2", + "organizations_url": "https://api.github.com/users/comfortablynick/orgs", + "received_events_url": "https://api.github.com/users/comfortablynick/received_events", + "repos_url": "https://api.github.com/users/comfortablynick/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/comfortablynick/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/comfortablynick/subscriptions", + "type": "User", + "url": "https://api.github.com/users/comfortablynick" + } + }, + { + "author_association": "NONE", + "body": "@comfortablynick the issue appears when a plugin uses a recurring timer ```start_timer(...,{repeat: -1)}```.\n\nThe closer the delay is to your \"updatetime\" the more likely you are to notice slowdowns on CursoHold auto cmds.\n\nDid you try https://github.com/antoinemadec/FixCursorHold.nvim ?\nThis will fix your issue.", + "created_at": "2020-09-02T18:30:10Z", + "html_url": "https://github.com/neovim/neovim/issues/12587#issuecomment-685919298", + "id": 685919298, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/12587", + "node_id": "MDEyOklzc3VlQ29tbWVudDY4NTkxOTI5OA==", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/685919298/reactions" + }, + "updated_at": "2020-09-02T18:30:10Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/685919298", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/10830594?v=4", + "events_url": "https://api.github.com/users/antoinemadec/events{/privacy}", + "followers_url": "https://api.github.com/users/antoinemadec/followers", + "following_url": "https://api.github.com/users/antoinemadec/following{/other_user}", + "gists_url": "https://api.github.com/users/antoinemadec/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/antoinemadec", + "id": 10830594, + "login": "antoinemadec", + "node_id": "MDQ6VXNlcjEwODMwNTk0", + "organizations_url": "https://api.github.com/users/antoinemadec/orgs", + "received_events_url": "https://api.github.com/users/antoinemadec/received_events", + "repos_url": "https://api.github.com/users/antoinemadec/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/antoinemadec/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/antoinemadec/subscriptions", + "type": "User", + "url": "https://api.github.com/users/antoinemadec" + } + }, + { + "author_association": "NONE", + "body": "> Did you try https://github.com/antoinemadec/FixCursorHold.nvim ?\r\n> This will fix your issue.\r\n\r\nYes, it seems to have fixed it. Thanks!", + "created_at": "2020-09-03T21:53:41Z", + "html_url": "https://github.com/neovim/neovim/issues/12587#issuecomment-686783211", + "id": 686783211, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/12587", + "node_id": "MDEyOklzc3VlQ29tbWVudDY4Njc4MzIxMQ==", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 5, + "laugh": 0, + "rocket": 0, + "total_count": 5, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/686783211/reactions" + }, + "updated_at": "2020-09-03T21:53:41Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/686783211", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/26119366?v=4", + "events_url": "https://api.github.com/users/comfortablynick/events{/privacy}", + "followers_url": "https://api.github.com/users/comfortablynick/followers", + "following_url": "https://api.github.com/users/comfortablynick/following{/other_user}", + "gists_url": "https://api.github.com/users/comfortablynick/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/comfortablynick", + "id": 26119366, + "login": "comfortablynick", + "node_id": "MDQ6VXNlcjI2MTE5MzY2", + "organizations_url": "https://api.github.com/users/comfortablynick/orgs", + "received_events_url": "https://api.github.com/users/comfortablynick/received_events", + "repos_url": "https://api.github.com/users/comfortablynick/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/comfortablynick/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/comfortablynick/subscriptions", + "type": "User", + "url": "https://api.github.com/users/comfortablynick" + } + }, + { + "author_association": "MEMBER", + "body": "OK, I may see what I can do about this internally since it seems like a bit of fun. If I don't get it done in a month, remind me to un-assign myself :)", + "created_at": "2020-10-25T04:38:00Z", + "html_url": "https://github.com/neovim/neovim/issues/12587#issuecomment-716092961", + "id": 716092961, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/12587", + "node_id": "MDEyOklzc3VlQ29tbWVudDcxNjA5Mjk2MQ==", + "performed_via_github_app": null, + "reactions": { + "+1": 11, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 7, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 18, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/716092961/reactions" + }, + "updated_at": "2020-10-25T04:38:00Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/716092961", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/4466899?v=4", + "events_url": "https://api.github.com/users/tjdevries/events{/privacy}", + "followers_url": "https://api.github.com/users/tjdevries/followers", + "following_url": "https://api.github.com/users/tjdevries/following{/other_user}", + "gists_url": "https://api.github.com/users/tjdevries/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/tjdevries", + "id": 4466899, + "login": "tjdevries", + "node_id": "MDQ6VXNlcjQ0NjY4OTk=", + "organizations_url": "https://api.github.com/users/tjdevries/orgs", + "received_events_url": "https://api.github.com/users/tjdevries/received_events", + "repos_url": "https://api.github.com/users/tjdevries/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/tjdevries/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/tjdevries/subscriptions", + "type": "User", + "url": "https://api.github.com/users/tjdevries" + } + }, + { + "author_association": "NONE", + "body": "@tjdevries did you get a chance to take a look at it ? :pray: :raised_hands:", + "created_at": "2020-12-05T15:57:34Z", + "html_url": "https://github.com/neovim/neovim/issues/12587#issuecomment-739313901", + "id": 739313901, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/12587", + "node_id": "MDEyOklzc3VlQ29tbWVudDczOTMxMzkwMQ==", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/739313901/reactions" + }, + "updated_at": "2020-12-05T15:57:34Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/739313901", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/10830594?v=4", + "events_url": "https://api.github.com/users/antoinemadec/events{/privacy}", + "followers_url": "https://api.github.com/users/antoinemadec/followers", + "following_url": "https://api.github.com/users/antoinemadec/following{/other_user}", + "gists_url": "https://api.github.com/users/antoinemadec/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/antoinemadec", + "id": 10830594, + "login": "antoinemadec", + "node_id": "MDQ6VXNlcjEwODMwNTk0", + "organizations_url": "https://api.github.com/users/antoinemadec/orgs", + "received_events_url": "https://api.github.com/users/antoinemadec/received_events", + "repos_url": "https://api.github.com/users/antoinemadec/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/antoinemadec/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/antoinemadec/subscriptions", + "type": "User", + "url": "https://api.github.com/users/antoinemadec" + } + }, + { + "author_association": "MEMBER", + "body": "Ha, yeah! Sorry, I took a look at it but it was indeed quite involved and I've been more focused on the Lua side at the moment.\r\n\r\nPerhaps @bfredl has some ideas or we could just do the \"hack\" version with a timer if people want to enable it.", + "created_at": "2021-02-05T02:34:12Z", + "html_url": "https://github.com/neovim/neovim/issues/12587#issuecomment-773741273", + "id": 773741273, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/12587", + "node_id": "MDEyOklzc3VlQ29tbWVudDc3Mzc0MTI3Mw==", + "performed_via_github_app": null, + "reactions": { + "+1": 1, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 1, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/773741273/reactions" + }, + "updated_at": "2021-02-05T02:34:12Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/773741273", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/4466899?v=4", + "events_url": "https://api.github.com/users/tjdevries/events{/privacy}", + "followers_url": "https://api.github.com/users/tjdevries/followers", + "following_url": "https://api.github.com/users/tjdevries/following{/other_user}", + "gists_url": "https://api.github.com/users/tjdevries/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/tjdevries", + "id": 4466899, + "login": "tjdevries", + "node_id": "MDQ6VXNlcjQ0NjY4OTk=", + "organizations_url": "https://api.github.com/users/tjdevries/orgs", + "received_events_url": "https://api.github.com/users/tjdevries/received_events", + "repos_url": "https://api.github.com/users/tjdevries/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/tjdevries/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/tjdevries/subscriptions", + "type": "User", + "url": "https://api.github.com/users/tjdevries" + } + }, + { + "author_association": "CONTRIBUTOR", + "body": "I can well understand that this is complicated and is down the importance ladder.\r\n\r\nI should note, folks like us only made our way here because certain plugins that use CursorHold events don't work without the use of @antoinemadec's [FixCursorHold](https://github.com/antoinemadec/FixCursorHold.nvim) plugin (which works around this issue). In my case it is the [fern](https://github.com/lambdalisue/fern.vim) file explorer plugin that does not work correctly.\r\n\r\nFor now there is a workaround of sorts. But eventually it would be nice to get this sorted out.\r\n\r\nBest regards.", + "created_at": "2021-02-05T02:42:52Z", + "html_url": "https://github.com/neovim/neovim/issues/12587#issuecomment-773744489", + "id": 773744489, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/12587", + "node_id": "MDEyOklzc3VlQ29tbWVudDc3Mzc0NDQ4OQ==", + "performed_via_github_app": null, + "reactions": { + "+1": 3, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 3, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/773744489/reactions" + }, + "updated_at": "2021-02-05T02:42:52Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/773744489", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/11382509?v=4", + "events_url": "https://api.github.com/users/bluz71/events{/privacy}", + "followers_url": "https://api.github.com/users/bluz71/followers", + "following_url": "https://api.github.com/users/bluz71/following{/other_user}", + "gists_url": "https://api.github.com/users/bluz71/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/bluz71", + "id": 11382509, + "login": "bluz71", + "node_id": "MDQ6VXNlcjExMzgyNTA5", + "organizations_url": "https://api.github.com/users/bluz71/orgs", + "received_events_url": "https://api.github.com/users/bluz71/received_events", + "repos_url": "https://api.github.com/users/bluz71/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/bluz71/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/bluz71/subscriptions", + "type": "User", + "url": "https://api.github.com/users/bluz71" + } + }, + { + "author_association": "NONE", + "body": "Just wanted to add that I am here for https://neovim.io/doc/user/lsp.html#vim.lsp.buf.document_highlight()\r\nThe documentation currently recommends using `CursorHold` for document_highlight, but it was also recommended above NOT to use that event.\r\n\r\nThank you @antoinemadec for the plugin, it works great :)\r\nAnd a big thank you to Neovim maintainers for an awesome editor! :) Cheers!", + "created_at": "2021-03-04T12:01:21Z", + "html_url": "https://github.com/neovim/neovim/issues/12587#issuecomment-790564831", + "id": 790564831, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/12587", + "node_id": "MDEyOklzc3VlQ29tbWVudDc5MDU2NDgzMQ==", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 3, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 3, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/790564831/reactions" + }, + "updated_at": "2021-03-04T12:01:21Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/790564831", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/85237?v=4", + "events_url": "https://api.github.com/users/alexaandru/events{/privacy}", + "followers_url": "https://api.github.com/users/alexaandru/followers", + "following_url": "https://api.github.com/users/alexaandru/following{/other_user}", + "gists_url": "https://api.github.com/users/alexaandru/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/alexaandru", + "id": 85237, + "login": "alexaandru", + "node_id": "MDQ6VXNlcjg1MjM3", + "organizations_url": "https://api.github.com/users/alexaandru/orgs", + "received_events_url": "https://api.github.com/users/alexaandru/received_events", + "repos_url": "https://api.github.com/users/alexaandru/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/alexaandru/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/alexaandru/subscriptions", + "type": "User", + "url": "https://api.github.com/users/alexaandru" + } + }, + { + "author_association": "NONE", + "body": "@clason @erw7 do you think we could add this in the 0.7 milestone or the backlog ?", + "created_at": "2022-01-03T16:22:57Z", + "html_url": "https://github.com/neovim/neovim/issues/12587#issuecomment-1004204479", + "id": 1004204479, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/12587", + "node_id": "IC_kwDOAPphoM472vG_", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1004204479/reactions" + }, + "updated_at": "2022-01-03T16:22:57Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1004204479", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/10830594?v=4", + "events_url": "https://api.github.com/users/antoinemadec/events{/privacy}", + "followers_url": "https://api.github.com/users/antoinemadec/followers", + "following_url": "https://api.github.com/users/antoinemadec/following{/other_user}", + "gists_url": "https://api.github.com/users/antoinemadec/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/antoinemadec", + "id": 10830594, + "login": "antoinemadec", + "node_id": "MDQ6VXNlcjEwODMwNTk0", + "organizations_url": "https://api.github.com/users/antoinemadec/orgs", + "received_events_url": "https://api.github.com/users/antoinemadec/received_events", + "repos_url": "https://api.github.com/users/antoinemadec/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/antoinemadec/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/antoinemadec/subscriptions", + "type": "User", + "url": "https://api.github.com/users/antoinemadec" + } + }, + { + "author_association": "MEMBER", + "body": "That wouldn't change anything -- somebody needs to make a PR with a fix (which even the resident experts struggle with).", + "created_at": "2022-01-03T16:25:11Z", + "html_url": "https://github.com/neovim/neovim/issues/12587#issuecomment-1004206044", + "id": 1004206044, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/12587", + "node_id": "IC_kwDOAPphoM472vfc", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1004206044/reactions" + }, + "updated_at": "2022-01-03T17:13:32Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1004206044", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/2361214?v=4", + "events_url": "https://api.github.com/users/clason/events{/privacy}", + "followers_url": "https://api.github.com/users/clason/followers", + "following_url": "https://api.github.com/users/clason/following{/other_user}", + "gists_url": "https://api.github.com/users/clason/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/clason", + "id": 2361214, + "login": "clason", + "node_id": "MDQ6VXNlcjIzNjEyMTQ=", + "organizations_url": "https://api.github.com/users/clason/orgs", + "received_events_url": "https://api.github.com/users/clason/received_events", + "repos_url": "https://api.github.com/users/clason/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/clason/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/clason/subscriptions", + "type": "User", + "url": "https://api.github.com/users/clason" + } + }, + { + "author_association": "CONTRIBUTOR", + "body": "You should avoid to use CursorHold events.\nIt is hard to fix.", + "created_at": "2022-01-03T23:44:01Z", + "html_url": "https://github.com/neovim/neovim/issues/12587#issuecomment-1004431220", + "id": 1004431220, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/12587", + "node_id": "IC_kwDOAPphoM473md0", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 6, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 6, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1004431220/reactions" + }, + "updated_at": "2022-01-03T23:44:01Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1004431220", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/41495?v=4", + "events_url": "https://api.github.com/users/Shougo/events{/privacy}", + "followers_url": "https://api.github.com/users/Shougo/followers", + "following_url": "https://api.github.com/users/Shougo/following{/other_user}", + "gists_url": "https://api.github.com/users/Shougo/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/Shougo", + "id": 41495, + "login": "Shougo", + "node_id": "MDQ6VXNlcjQxNDk1", + "organizations_url": "https://api.github.com/users/Shougo/orgs", + "received_events_url": "https://api.github.com/users/Shougo/received_events", + "repos_url": "https://api.github.com/users/Shougo/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/Shougo/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Shougo/subscriptions", + "type": "User", + "url": "https://api.github.com/users/Shougo" + } + }, + { + "author_association": "CONTRIBUTOR", + "body": "**Lots** of plugins leverage `CursorHold`. That's how most of us encountered this issue, via the plugins we use, not `CursorHold` init scripts we write ourselves.\r\n\r\nAnd it's not just a legacy Vimscript plugins issue.\r\n\r\nEven completely modern Neovim **Lua-based** plugins, for example [lsp_signature.nvim](https://github.com/ray-x/lsp_signature.nvim/blob/master/lua/lsp_signature/init.lua#L613) and [nvim-ts-context-commentstring](https://github.com/JoosepAlviste/nvim-ts-context-commentstring/blob/main/lua/ts_context_commentstring/internal.lua#L94), use `CursorHold`.\r\n\r\n`CursorHold` usages can't be wished away. \r\n\r\nAlso, I have yet to see a statement from the Neovim core-team that clearly states that plugin authors should stop using `CursorHold`. Until that happens, plugins, both old and new, Vimscript or Lua, will continue to use `CursorHold`.", + "created_at": "2022-01-04T00:06:19Z", + "html_url": "https://github.com/neovim/neovim/issues/12587#issuecomment-1004438252", + "id": 1004438252, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/12587", + "node_id": "IC_kwDOAPphoM473oLs", + "performed_via_github_app": null, + "reactions": { + "+1": 9, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 9, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1004438252/reactions" + }, + "updated_at": "2022-01-04T00:06:19Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1004438252", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/11382509?v=4", + "events_url": "https://api.github.com/users/bluz71/events{/privacy}", + "followers_url": "https://api.github.com/users/bluz71/followers", + "following_url": "https://api.github.com/users/bluz71/following{/other_user}", + "gists_url": "https://api.github.com/users/bluz71/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/bluz71", + "id": 11382509, + "login": "bluz71", + "node_id": "MDQ6VXNlcjExMzgyNTA5", + "organizations_url": "https://api.github.com/users/bluz71/orgs", + "received_events_url": "https://api.github.com/users/bluz71/received_events", + "repos_url": "https://api.github.com/users/bluz71/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/bluz71/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/bluz71/subscriptions", + "type": "User", + "url": "https://api.github.com/users/bluz71" + } + }, + { + "author_association": "CONTRIBUTOR", + "body": "If it can be fixed, it is very happy for me.\r\nBut neovim implementation is not same with Vim. And I have tried to fix the problem but failed.\r\nI gave up.", + "created_at": "2022-01-04T00:38:21Z", + "html_url": "https://github.com/neovim/neovim/issues/12587#issuecomment-1004449318", + "id": 1004449318, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/12587", + "node_id": "IC_kwDOAPphoM473q4m", + "performed_via_github_app": null, + "reactions": { + "+1": 4, + "-1": 0, + "confused": 0, + "eyes": 3, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 7, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1004449318/reactions" + }, + "updated_at": "2022-01-04T00:38:21Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1004449318", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/41495?v=4", + "events_url": "https://api.github.com/users/Shougo/events{/privacy}", + "followers_url": "https://api.github.com/users/Shougo/followers", + "following_url": "https://api.github.com/users/Shougo/following{/other_user}", + "gists_url": "https://api.github.com/users/Shougo/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/Shougo", + "id": 41495, + "login": "Shougo", + "node_id": "MDQ6VXNlcjQxNDk1", + "organizations_url": "https://api.github.com/users/Shougo/orgs", + "received_events_url": "https://api.github.com/users/Shougo/received_events", + "repos_url": "https://api.github.com/users/Shougo/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/Shougo/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Shougo/subscriptions", + "type": "User", + "url": "https://api.github.com/users/Shougo" + } + }, + { + "author_association": "MEMBER", + "body": "> Also, I have yet to see a statement from the Neovim core-team that clearly states that plugin authors should stop using CursorHold. Until that happens, plugins, both old and new, Vimscript or Lua, will continue to use CursorHold.\r\n\r\nPR welcome. Until then, plugin authors should either not rely on CursorHold or apply the straightforward mitigation from https://github.com/antoinemadec/FixCursorHold.nvim.", + "created_at": "2022-01-04T12:18:51Z", + "html_url": "https://github.com/neovim/neovim/issues/12587#issuecomment-1004760815", + "id": 1004760815, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/12587", + "node_id": "IC_kwDOAPphoM47427v", + "performed_via_github_app": null, + "reactions": { + "+1": 1, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 1, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1004760815/reactions" + }, + "updated_at": "2022-01-04T12:18:51Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1004760815", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/2361214?v=4", + "events_url": "https://api.github.com/users/clason/events{/privacy}", + "followers_url": "https://api.github.com/users/clason/followers", + "following_url": "https://api.github.com/users/clason/following{/other_user}", + "gists_url": "https://api.github.com/users/clason/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/clason", + "id": 2361214, + "login": "clason", + "node_id": "MDQ6VXNlcjIzNjEyMTQ=", + "organizations_url": "https://api.github.com/users/clason/orgs", + "received_events_url": "https://api.github.com/users/clason/received_events", + "repos_url": "https://api.github.com/users/clason/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/clason/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/clason/subscriptions", + "type": "User", + "url": "https://api.github.com/users/clason" + } + }, + { + "author_association": "CONTRIBUTOR", + "body": "> > Also, I have yet to see a statement from the Neovim core-team that clearly states that plugin authors should stop using CursorHold. Until that happens, plugins, both old and new, Vimscript or Lua, will continue to use CursorHold.\r\n> \r\n> PR welcome. Until then, plugin authors should either not rely on CursorHold or apply the straightforward mitigation from https://github.com/antoinemadec/FixCursorHold.nvim.\r\n\r\nI am not the target audience, since I have not written a plugin that uses CursorHold. \r\n\r\nHowever, it probably would be best to inform the wider community via Reddit and Discourse of this position. Most especially since modern Lua plugins, such as lsp_signature and ts-context-commentstring, are still using CursorHold. They are brand spanking new, someone should tell them they are doing it wrong?\r\n\r\nI use the workaround plugin since a number of plugins I use do call CursorHold. So I am fine. I am more interested if Neovim core team has a non CursorHold position, if so then that position should be clearly articulated widely, rather than being buried in this discussion where 99% of plugin authors, even Lua authors, would have no idea that CursorHold is now frowned upon.", + "created_at": "2022-01-04T21:21:12Z", + "html_url": "https://github.com/neovim/neovim/issues/12587#issuecomment-1005179310", + "id": 1005179310, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/12587", + "node_id": "IC_kwDOAPphoM476dGu", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1005179310/reactions" + }, + "updated_at": "2022-01-04T21:21:12Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1005179310", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/11382509?v=4", + "events_url": "https://api.github.com/users/bluz71/events{/privacy}", + "followers_url": "https://api.github.com/users/bluz71/followers", + "following_url": "https://api.github.com/users/bluz71/following{/other_user}", + "gists_url": "https://api.github.com/users/bluz71/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/bluz71", + "id": 11382509, + "login": "bluz71", + "node_id": "MDQ6VXNlcjExMzgyNTA5", + "organizations_url": "https://api.github.com/users/bluz71/orgs", + "received_events_url": "https://api.github.com/users/bluz71/received_events", + "repos_url": "https://api.github.com/users/bluz71/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/bluz71/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/bluz71/subscriptions", + "type": "User", + "url": "https://api.github.com/users/bluz71" + } + }, + { + "author_association": "MEMBER", + "body": "There is no \"CursorHold position\" -- there are issues with that autocommand in connection with timers; the problem is known but a fix is not; on the other hand, there's a simple workaround. I'm also not aware of a wider audience outside this comment thread that considers this a pressing problem. I'm sure there are enough vocal users of plugins that are seriously affected by this that we can assume the relevant developers are aware of it.\r\n\r\nI'm also honestly not sure what you are trying to achieve by your comments here.", + "created_at": "2022-01-04T21:25:56Z", + "html_url": "https://github.com/neovim/neovim/issues/12587#issuecomment-1005182043", + "id": 1005182043, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/12587", + "node_id": "IC_kwDOAPphoM476dxb", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1005182043/reactions" + }, + "updated_at": "2022-01-04T21:28:30Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1005182043", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/2361214?v=4", + "events_url": "https://api.github.com/users/clason/events{/privacy}", + "followers_url": "https://api.github.com/users/clason/followers", + "following_url": "https://api.github.com/users/clason/following{/other_user}", + "gists_url": "https://api.github.com/users/clason/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/clason", + "id": 2361214, + "login": "clason", + "node_id": "MDQ6VXNlcjIzNjEyMTQ=", + "organizations_url": "https://api.github.com/users/clason/orgs", + "received_events_url": "https://api.github.com/users/clason/received_events", + "repos_url": "https://api.github.com/users/clason/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/clason/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/clason/subscriptions", + "type": "User", + "url": "https://api.github.com/users/clason" + } + }, + { + "author_association": "CONTRIBUTOR", + "body": "@bluz71 Please read why the fix is hard.\r\n\r\nhttps://github.com/neovim/neovim/issues/12587#issuecomment-654771630", + "created_at": "2022-01-04T23:39:55Z", + "html_url": "https://github.com/neovim/neovim/issues/12587#issuecomment-1005254919", + "id": 1005254919, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/12587", + "node_id": "IC_kwDOAPphoM476vkH", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1005254919/reactions" + }, + "updated_at": "2022-01-04T23:39:55Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1005254919", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/41495?v=4", + "events_url": "https://api.github.com/users/Shougo/events{/privacy}", + "followers_url": "https://api.github.com/users/Shougo/followers", + "following_url": "https://api.github.com/users/Shougo/following{/other_user}", + "gists_url": "https://api.github.com/users/Shougo/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/Shougo", + "id": 41495, + "login": "Shougo", + "node_id": "MDQ6VXNlcjQxNDk1", + "organizations_url": "https://api.github.com/users/Shougo/orgs", + "received_events_url": "https://api.github.com/users/Shougo/received_events", + "repos_url": "https://api.github.com/users/Shougo/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/Shougo/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Shougo/subscriptions", + "type": "User", + "url": "https://api.github.com/users/Shougo" + } + }, + { + "author_association": "CONTRIBUTOR", + "body": "I have tried to fix it again. But I don't know it is the right fix.", + "created_at": "2022-01-05T00:00:21Z", + "html_url": "https://github.com/neovim/neovim/issues/12587#issuecomment-1005263414", + "id": 1005263414, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/12587", + "node_id": "IC_kwDOAPphoM476xo2", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 9, + "hooray": 0, + "laugh": 0, + "rocket": 4, + "total_count": 13, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1005263414/reactions" + }, + "updated_at": "2022-01-05T00:00:21Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1005263414", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/41495?v=4", + "events_url": "https://api.github.com/users/Shougo/events{/privacy}", + "followers_url": "https://api.github.com/users/Shougo/followers", + "following_url": "https://api.github.com/users/Shougo/following{/other_user}", + "gists_url": "https://api.github.com/users/Shougo/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/Shougo", + "id": 41495, + "login": "Shougo", + "node_id": "MDQ6VXNlcjQxNDk1", + "organizations_url": "https://api.github.com/users/Shougo/orgs", + "received_events_url": "https://api.github.com/users/Shougo/received_events", + "repos_url": "https://api.github.com/users/Shougo/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/Shougo/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Shougo/subscriptions", + "type": "User", + "url": "https://api.github.com/users/Shougo" + } + }, + { + "author_association": "CONTRIBUTOR", + "body": "> There is no \"CursorHold position\"\r\n\r\nYou now say *there is no CursorHold position*, yet a couple posts up you say *plugin authors should not rely on CursorHold*.\r\n\r\nWhich is it? No position, or stop using CursorHold?\r\n\r\n> I'm also honestly not sure what you are trying to achieve by your comments here.\r\n\r\nRead my posts carefully, I am asking whether plugin authors should stop using CursorHold or not, and is that an official position of the Neovim project?\r\n\r\nWhy am I asking?\r\n\r\nBecause plugin authors, even Neovim-only Lua authors, are still using CursorHold today as if it is sunshine and roses. They may be blissfully unaware of this issue until issues get lodged against their plugin.", + "created_at": "2022-01-05T00:13:05Z", + "html_url": "https://github.com/neovim/neovim/issues/12587#issuecomment-1005269837", + "id": 1005269837, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/12587", + "node_id": "IC_kwDOAPphoM476zNN", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1005269837/reactions" + }, + "updated_at": "2022-01-05T00:13:05Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1005269837", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/11382509?v=4", + "events_url": "https://api.github.com/users/bluz71/events{/privacy}", + "followers_url": "https://api.github.com/users/bluz71/followers", + "following_url": "https://api.github.com/users/bluz71/following{/other_user}", + "gists_url": "https://api.github.com/users/bluz71/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/bluz71", + "id": 11382509, + "login": "bluz71", + "node_id": "MDQ6VXNlcjExMzgyNTA5", + "organizations_url": "https://api.github.com/users/bluz71/orgs", + "received_events_url": "https://api.github.com/users/bluz71/received_events", + "repos_url": "https://api.github.com/users/bluz71/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/bluz71/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/bluz71/subscriptions", + "type": "User", + "url": "https://api.github.com/users/bluz71" + } + }, + { + "author_association": "CONTRIBUTOR", + "body": "> @bluz71 Please read why the fix is hard.\r\n> \r\n> [#12587 (comment)](https://github.com/neovim/neovim/issues/12587#issuecomment-654771630)\r\n\r\nYou misunderstand my posts, I am not asking for anyone to fix this issue. I use the workaround plugin, and that is just fine for me.\r\n\r\nI am asking whether **plugin authors** should stop using CursorHold and whether that is official position of the Neovim project itself **since** even the most modern of Neovim plugins are **still** using CursorHold today (which will be a ticking time bomb).\r\n\r\nIf using CursorHold is now a bad thing then the wider plugin community should be informed of that position (via Reddit and Discourse Neovim communities). For example, Michael Lingelbach - Neovim LSP head honcho, has done just that sometimes with major LSP changes.\r\n\r\nAt the moment, it appears, there is a massive grey zone of whether CursorHold usage is acceptable or not in Neovim.", + "created_at": "2022-01-05T00:22:35Z", + "html_url": "https://github.com/neovim/neovim/issues/12587#issuecomment-1005274247", + "id": 1005274247, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/12587", + "node_id": "IC_kwDOAPphoM4760SH", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1005274247/reactions" + }, + "updated_at": "2022-01-05T00:22:35Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1005274247", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/11382509?v=4", + "events_url": "https://api.github.com/users/bluz71/events{/privacy}", + "followers_url": "https://api.github.com/users/bluz71/followers", + "following_url": "https://api.github.com/users/bluz71/following{/other_user}", + "gists_url": "https://api.github.com/users/bluz71/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/bluz71", + "id": 11382509, + "login": "bluz71", + "node_id": "MDQ6VXNlcjExMzgyNTA5", + "organizations_url": "https://api.github.com/users/bluz71/orgs", + "received_events_url": "https://api.github.com/users/bluz71/received_events", + "repos_url": "https://api.github.com/users/bluz71/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/bluz71/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/bluz71/subscriptions", + "type": "User", + "url": "https://api.github.com/users/bluz71" + } + }, + { + "author_association": "CONTRIBUTOR", + "body": "My answer is: until the issue is fixed, plugin author should not use CursorHold events.\r\nUnfortunately it is broken now.", + "created_at": "2022-01-05T00:27:44Z", + "html_url": "https://github.com/neovim/neovim/issues/12587#issuecomment-1005276592", + "id": 1005276592, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/12587", + "node_id": "IC_kwDOAPphoM47602w", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 5, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 5, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1005276592/reactions" + }, + "updated_at": "2022-01-05T00:27:44Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1005276592", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/41495?v=4", + "events_url": "https://api.github.com/users/Shougo/events{/privacy}", + "followers_url": "https://api.github.com/users/Shougo/followers", + "following_url": "https://api.github.com/users/Shougo/following{/other_user}", + "gists_url": "https://api.github.com/users/Shougo/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/Shougo", + "id": 41495, + "login": "Shougo", + "node_id": "MDQ6VXNlcjQxNDk1", + "organizations_url": "https://api.github.com/users/Shougo/orgs", + "received_events_url": "https://api.github.com/users/Shougo/received_events", + "repos_url": "https://api.github.com/users/Shougo/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/Shougo/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Shougo/subscriptions", + "type": "User", + "url": "https://api.github.com/users/Shougo" + } + }, + { + "author_association": "CONTRIBUTOR", + "body": "> My answer is: until the issue is fixed, plugin author should not use CursorHold events. Unfortunately it is broken now.\r\n\r\nPlugin authors, I suspect, mostly would be unaware of that, for example [lsp_signature.nvim](https://github.com/ray-x/lsp_signature.nvim) and [nvim-ts-context-commentstring](https://github.com/JoosepAlviste/nvim-ts-context-commentstring), both are **very new** Lua plugins that do use `CursorHold`.\r\n\r\nShouldn't they, and most other plugin authors, be made aware of the dangers of relying on `CursorHold`?", + "created_at": "2022-01-05T00:34:42Z", + "html_url": "https://github.com/neovim/neovim/issues/12587#issuecomment-1005279969", + "id": 1005279969, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/12587", + "node_id": "IC_kwDOAPphoM4761rh", + "performed_via_github_app": null, + "reactions": { + "+1": 1, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 1, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1005279969/reactions" + }, + "updated_at": "2022-01-05T00:34:42Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1005279969", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/11382509?v=4", + "events_url": "https://api.github.com/users/bluz71/events{/privacy}", + "followers_url": "https://api.github.com/users/bluz71/followers", + "following_url": "https://api.github.com/users/bluz71/following{/other_user}", + "gists_url": "https://api.github.com/users/bluz71/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/bluz71", + "id": 11382509, + "login": "bluz71", + "node_id": "MDQ6VXNlcjExMzgyNTA5", + "organizations_url": "https://api.github.com/users/bluz71/orgs", + "received_events_url": "https://api.github.com/users/bluz71/received_events", + "repos_url": "https://api.github.com/users/bluz71/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/bluz71/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/bluz71/subscriptions", + "type": "User", + "url": "https://api.github.com/users/bluz71" + } + }, + { + "author_association": "CONTRIBUTOR", + "body": "https://neovim.discourse.group/t/psa-dont-rely-on-cursorhold-yet/1813", + "created_at": "2022-01-05T00:42:52Z", + "html_url": "https://github.com/neovim/neovim/issues/12587#issuecomment-1005284282", + "id": 1005284282, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/12587", + "node_id": "IC_kwDOAPphoM4762u6", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 6, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 6, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1005284282/reactions" + }, + "updated_at": "2022-01-05T00:42:52Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1005284282", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/13316262?v=4", + "events_url": "https://api.github.com/users/mjlbach/events{/privacy}", + "followers_url": "https://api.github.com/users/mjlbach/followers", + "following_url": "https://api.github.com/users/mjlbach/following{/other_user}", + "gists_url": "https://api.github.com/users/mjlbach/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/mjlbach", + "id": 13316262, + "login": "mjlbach", + "node_id": "MDQ6VXNlcjEzMzE2MjYy", + "organizations_url": "https://api.github.com/users/mjlbach/orgs", + "received_events_url": "https://api.github.com/users/mjlbach/received_events", + "repos_url": "https://api.github.com/users/mjlbach/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/mjlbach/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/mjlbach/subscriptions", + "type": "User", + "url": "https://api.github.com/users/mjlbach" + } + }, + { + "author_association": "NONE", + "body": "Hi, I'm a user of [windwp/windline.nvim](https://github.com/windwp/windline.nvim/), could you guys experts help me check that whether my issue [The autocmd CursorHold will fail if animation is triggered - windwp/windline.nvim](https://github.com/windwp/windline.nvim/issues/34) is related to this? In short, this line from [#Show line diagnostics automatically in hover window - neovim/nvim-lspconfig](https://github.com/neovim/nvim-lspconfig/wiki/UI-Customization#show-line-diagnostics-automatically-in-hover-window) doesn't work:\r\n\r\n```\r\nvim.cmd [[autocmd CursorHold,CursorHoldI * lua vim.diagnostic.open_float(nil, {focus=false, scope=\"cursor\"})]]\r\n```\r\n\r\nThis happened after I update to the newest version on `master` upon I'm writing this.\r\n\r\nnvim -v:\r\n\r\n```\r\nNVIM v0.7.0-dev+886-ga88046fe2\r\nBuild type: Release\r\nLuaJIT 2.1.0-beta3\r\n```", + "created_at": "2022-01-14T15:40:52Z", + "html_url": "https://github.com/neovim/neovim/issues/12587#issuecomment-1013234080", + "id": 1013234080, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/12587", + "node_id": "IC_kwDOAPphoM48ZLmg", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1013234080/reactions" + }, + "updated_at": "2022-01-14T15:45:50Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1013234080", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/24765272?v=4", + "events_url": "https://api.github.com/users/nyngwang/events{/privacy}", + "followers_url": "https://api.github.com/users/nyngwang/followers", + "following_url": "https://api.github.com/users/nyngwang/following{/other_user}", + "gists_url": "https://api.github.com/users/nyngwang/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/nyngwang", + "id": 24765272, + "login": "nyngwang", + "node_id": "MDQ6VXNlcjI0NzY1Mjcy", + "organizations_url": "https://api.github.com/users/nyngwang/orgs", + "received_events_url": "https://api.github.com/users/nyngwang/received_events", + "repos_url": "https://api.github.com/users/nyngwang/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/nyngwang/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/nyngwang/subscriptions", + "type": "User", + "url": "https://api.github.com/users/nyngwang" + } + }, + { + "author_association": "NONE", + "body": "> Here is a temporary plugin to fix this bug: https://github.com/antoinemadec/FixCursorHold.nvim\r\n> \r\n> * fixes slowdowns and untriggered events\r\n> * add `g:cursorhold_updatetime` variable to leave `updatetime` untouched (and avoid unnecessary swap writes)\r\n> \r\n> The plugin also makes sure not to fire those event twice.\r\n\r\n@antoinemadec Your awesome plugin resolves my issue! So I think I can confirm myself my previous comment.", + "created_at": "2022-01-14T15:54:30Z", + "html_url": "https://github.com/neovim/neovim/issues/12587#issuecomment-1013244915", + "id": 1013244915, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/12587", + "node_id": "IC_kwDOAPphoM48ZOPz", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 1, + "heart": 2, + "hooray": 4, + "laugh": 0, + "rocket": 0, + "total_count": 7, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1013244915/reactions" + }, + "updated_at": "2022-01-14T15:54:30Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1013244915", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/24765272?v=4", + "events_url": "https://api.github.com/users/nyngwang/events{/privacy}", + "followers_url": "https://api.github.com/users/nyngwang/followers", + "following_url": "https://api.github.com/users/nyngwang/following{/other_user}", + "gists_url": "https://api.github.com/users/nyngwang/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/nyngwang", + "id": 24765272, + "login": "nyngwang", + "node_id": "MDQ6VXNlcjI0NzY1Mjcy", + "organizations_url": "https://api.github.com/users/nyngwang/orgs", + "received_events_url": "https://api.github.com/users/nyngwang/received_events", + "repos_url": "https://api.github.com/users/nyngwang/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/nyngwang/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/nyngwang/subscriptions", + "type": "User", + "url": "https://api.github.com/users/nyngwang" + } + } + ], + "comments": 39, + "comments_url": "https://api.github.com/repos/neovim/neovim/issues/12587/comments", + "created_at": "2020-07-02T20:18:23Z", + "events_url": "https://api.github.com/repos/neovim/neovim/issues/12587/events", + "html_url": "https://github.com/neovim/neovim/issues/12587", + "id": 650181670, + "labels": [ + { + "color": "f9d0c4", + "default": true, + "description": "issues reporting wrong behavior", + "id": 77997474, + "name": "bug", + "node_id": "MDU6TGFiZWw3Nzk5NzQ3NA==", + "url": "https://api.github.com/repos/neovim/neovim/labels/bug" + }, + { + "color": "C5DEF5", + "default": false, + "description": "compatibility with Vim or older Neovim", + "id": 109899712, + "name": "compatibility", + "node_id": "MDU6TGFiZWwxMDk4OTk3MTI=", + "url": "https://api.github.com/repos/neovim/neovim/labels/compatibility" + }, + { + "color": "c5def5", + "default": false, + "description": null, + "id": 520282574, + "name": "event-loop", + "node_id": "MDU6TGFiZWw1MjAyODI1NzQ=", + "url": "https://api.github.com/repos/neovim/neovim/labels/event-loop" + }, + { + "color": "C5DEF5", + "default": false, + "description": "events, autocommands", + "id": 3341085842, + "name": "events", + "node_id": "MDU6TGFiZWwzMzQxMDg1ODQy", + "url": "https://api.github.com/repos/neovim/neovim/labels/events" + } + ], + "labels_url": "https://api.github.com/repos/neovim/neovim/issues/12587/labels{/name}", + "locked": false, + "milestone": { + "closed_at": "2022-10-01T21:48:50Z", + "closed_issues": 156, + "created_at": "2022-08-18T10:21:07Z", + "creator": { + "avatar_url": "https://avatars.githubusercontent.com/u/1363104?v=4", + "events_url": "https://api.github.com/users/bfredl/events{/privacy}", + "followers_url": "https://api.github.com/users/bfredl/followers", + "following_url": "https://api.github.com/users/bfredl/following{/other_user}", + "gists_url": "https://api.github.com/users/bfredl/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/bfredl", + "id": 1363104, + "login": "bfredl", + "node_id": "MDQ6VXNlcjEzNjMxMDQ=", + "organizations_url": "https://api.github.com/users/bfredl/orgs", + "received_events_url": "https://api.github.com/users/bfredl/received_events", + "repos_url": "https://api.github.com/users/bfredl/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/bfredl/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/bfredl/subscriptions", + "type": "User", + "url": "https://api.github.com/users/bfredl" + }, + "description": "", + "due_on": "2022-09-30T07:00:00Z", + "html_url": "https://github.com/neovim/neovim/milestone/32", + "id": 8320818, + "labels_url": "https://api.github.com/repos/neovim/neovim/milestones/32/labels", + "node_id": "MI_kwDOAPphoM4Afvcy", + "number": 32, + "open_issues": 0, + "state": "closed", + "title": "0.8", + "updated_at": "2022-12-29T00:32:30Z", + "url": "https://api.github.com/repos/neovim/neovim/milestones/32" + }, + "node_id": "MDU6SXNzdWU2NTAxODE2NzA=", + "number": 12587, + "performed_via_github_app": null, + "reactions": { + "+1": 41, + "-1": 0, + "confused": 0, + "eyes": 6, + "heart": 6, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 53, + "url": "https://api.github.com/repos/neovim/neovim/issues/12587/reactions" + }, + "repository_url": "https://api.github.com/repos/neovim/neovim", + "state": "closed", + "state_reason": "completed", + "timeline_url": "https://api.github.com/repos/neovim/neovim/issues/12587/timeline", + "title": "autocmd CursorHold and CursorHoldI are blocked by timer_start()", + "updated_at": "2023-08-04T03:25:01Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/12587", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/10830594?v=4", + "events_url": "https://api.github.com/users/antoinemadec/events{/privacy}", + "followers_url": "https://api.github.com/users/antoinemadec/followers", + "following_url": "https://api.github.com/users/antoinemadec/following{/other_user}", + "gists_url": "https://api.github.com/users/antoinemadec/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/antoinemadec", + "id": 10830594, + "login": "antoinemadec", + "node_id": "MDQ6VXNlcjEwODMwNTk0", + "organizations_url": "https://api.github.com/users/antoinemadec/orgs", + "received_events_url": "https://api.github.com/users/antoinemadec/received_events", + "repos_url": "https://api.github.com/users/antoinemadec/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/antoinemadec/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/antoinemadec/subscriptions", + "type": "User", + "url": "https://api.github.com/users/antoinemadec" + } +} \ No newline at end of file diff --git a/repositories/neovim/issues/18046.json b/repositories/neovim/issues/18046.json new file mode 100644 index 00000000..1d6a915b --- /dev/null +++ b/repositories/neovim/issues/18046.json @@ -0,0 +1,161 @@ +{ + "active_lock_reason": null, + "assignee": null, + "assignees": [], + "author_association": "CONTRIBUTOR", + "body": "### Neovim version (nvim -v)\n\nNVIM v0.7.0-dev+1416-g012c055804\n\n### Vim (not Nvim) behaves the same?\n\nno\n\n### Operating system/version\n\nDebian bullseye\n\n### Terminal name/version\n\nalacritty 0.11.0-dev (6737104)\n\n### $TERM environment variable\n\nalacritty\n\n### Installation\n\nrepo\n\n### How to reproduce the issue\n\nensure propper alacritty mapping in `.config/alacritty/alacritty.yml`:\r\n\r\n```\r\n # http://www.leonerd.org.uk/hacks/fixterms/\r\n - { key: Key1, mods: Control, chars: \"\\x1b[49;5u\" }\r\n - { key: Key2, mods: Control, chars: \"\\x1b[50;5u\" }\r\n - { key: Key3, mods: Control, chars: \"\\x1b[51;5u\" }\r\n - { key: Key4, mods: Control, chars: \"\\x1b[52;5u\" }\r\n - { key: Key5, mods: Control, chars: \"\\x1b[53;5u\" }\r\n - { key: Key6, mods: Control, chars: \"\\x1b[54;5u\" }\r\n - { key: Key7, mods: Control, chars: \"\\x1b[55;5u\" }\r\n - { key: Key8, mods: Control, chars: \"\\x1b[56;5u\" }\r\n - { key: Key9, mods: Control, chars: \"\\x1b[57;5u\" }\r\n```\r\n\r\nthen run `nvim --clean`, open 2 files, try to toggle visible file using `` (:h ctrl-6)\n\n### Expected behavior\n\n`` works same as ``\n\n### Actual behavior\n\n`` works as pressing `6`\r\n\r\nthe workaround is to explicitly specify mapping:\r\n```\r\nvim.keymap.set('n', '', '', { noremap = true })\r\n```\r\nwhich should not be needed.", + "closed_at": "2022-04-09T05:31:42Z", + "comment_data": [ + { + "author_association": "MEMBER", + "body": "Porting should fix this. That patch cannot be fully ported though.", + "created_at": "2022-04-09T03:06:17Z", + "html_url": "https://github.com/neovim/neovim/issues/18046#issuecomment-1093625109", + "id": 1093625109, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/18046", + "node_id": "IC_kwDOAPphoM5BL2UV", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1093625109/reactions" + }, + "updated_at": "2022-04-09T03:06:44Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1093625109", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/35768171?v=4", + "events_url": "https://api.github.com/users/zeertzjq/events{/privacy}", + "followers_url": "https://api.github.com/users/zeertzjq/followers", + "following_url": "https://api.github.com/users/zeertzjq/following{/other_user}", + "gists_url": "https://api.github.com/users/zeertzjq/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/zeertzjq", + "id": 35768171, + "login": "zeertzjq", + "node_id": "MDQ6VXNlcjM1NzY4MTcx", + "organizations_url": "https://api.github.com/users/zeertzjq/orgs", + "received_events_url": "https://api.github.com/users/zeertzjq/received_events", + "repos_url": "https://api.github.com/users/zeertzjq/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/zeertzjq/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/zeertzjq/subscriptions", + "type": "User", + "url": "https://api.github.com/users/zeertzjq" + } + } + ], + "comments": 1, + "comments_url": "https://api.github.com/repos/neovim/neovim/issues/18046/comments", + "created_at": "2022-04-08T23:11:04Z", + "events_url": "https://api.github.com/repos/neovim/neovim/issues/18046/events", + "html_url": "https://github.com/neovim/neovim/issues/18046", + "id": 1197923447, + "labels": [ + { + "color": "f9d0c4", + "default": true, + "description": "issues reporting wrong behavior", + "id": 77997474, + "name": "bug", + "node_id": "MDU6TGFiZWw3Nzk5NzQ3NA==", + "url": "https://api.github.com/repos/neovim/neovim/labels/bug" + }, + { + "color": "0E8A16", + "default": false, + "description": "issue is fixed in vim and patch needs to be ported", + "id": 152276149, + "name": "has:vim-patch", + "node_id": "MDU6TGFiZWwxNTIyNzYxNDk=", + "url": "https://api.github.com/repos/neovim/neovim/labels/has:vim-patch" + } + ], + "labels_url": "https://api.github.com/repos/neovim/neovim/issues/18046/labels{/name}", + "locked": false, + "milestone": { + "closed_at": "2022-04-15T12:49:05Z", + "closed_issues": 93, + "created_at": "2022-03-12T14:48:49Z", + "creator": { + "avatar_url": "https://avatars.githubusercontent.com/u/1363104?v=4", + "events_url": "https://api.github.com/users/bfredl/events{/privacy}", + "followers_url": "https://api.github.com/users/bfredl/followers", + "following_url": "https://api.github.com/users/bfredl/following{/other_user}", + "gists_url": "https://api.github.com/users/bfredl/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/bfredl", + "id": 1363104, + "login": "bfredl", + "node_id": "MDQ6VXNlcjEzNjMxMDQ=", + "organizations_url": "https://api.github.com/users/bfredl/orgs", + "received_events_url": "https://api.github.com/users/bfredl/received_events", + "repos_url": "https://api.github.com/users/bfredl/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/bfredl/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/bfredl/subscriptions", + "type": "User", + "url": "https://api.github.com/users/bfredl" + }, + "description": "", + "due_on": "2022-04-15T07:00:00Z", + "html_url": "https://github.com/neovim/neovim/milestone/29", + "id": 7760912, + "labels_url": "https://api.github.com/repos/neovim/neovim/milestones/29/labels", + "node_id": "MI_kwDOAPphoM4AdmwQ", + "number": 29, + "open_issues": 0, + "state": "closed", + "title": "0.7", + "updated_at": "2022-05-06T11:35:38Z", + "url": "https://api.github.com/repos/neovim/neovim/milestones/29" + }, + "node_id": "I_kwDOAPphoM5HZtx3", + "number": 18046, + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/18046/reactions" + }, + "repository_url": "https://api.github.com/repos/neovim/neovim", + "state": "closed", + "state_reason": "completed", + "timeline_url": "https://api.github.com/repos/neovim/neovim/issues/18046/timeline", + "title": " does not work (c-^ does)", + "updated_at": "2023-08-04T03:26:08Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/18046", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/2602750?v=4", + "events_url": "https://api.github.com/users/doubleloop/events{/privacy}", + "followers_url": "https://api.github.com/users/doubleloop/followers", + "following_url": "https://api.github.com/users/doubleloop/following{/other_user}", + "gists_url": "https://api.github.com/users/doubleloop/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/doubleloop", + "id": 2602750, + "login": "doubleloop", + "node_id": "MDQ6VXNlcjI2MDI3NTA=", + "organizations_url": "https://api.github.com/users/doubleloop/orgs", + "received_events_url": "https://api.github.com/users/doubleloop/received_events", + "repos_url": "https://api.github.com/users/doubleloop/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/doubleloop/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/doubleloop/subscriptions", + "type": "User", + "url": "https://api.github.com/users/doubleloop" + } +} \ No newline at end of file diff --git a/repositories/neovim/issues/18122.json b/repositories/neovim/issues/18122.json new file mode 100644 index 00000000..73647b52 --- /dev/null +++ b/repositories/neovim/issues/18122.json @@ -0,0 +1,680 @@ +{ + "active_lock_reason": null, + "assignee": null, + "assignees": [], + "author_association": "NONE", + "body": "### Neovim version (nvim -v)\n\nNVIM v0.7.0\n\n### Vim (not Nvim) behaves the same?\n\ni don't know. i use neovim only\n\n### Operating system/version\n\nWindows 11\n\n### Terminal name/version\n\nWindows Terminal\n\n### $TERM environment variable\n\nI'm not using linux and I'm using powershell\n\n### Installation\n\ndownloaded from release page\n\n### How to reproduce the issue\n\nuse Windows \r\ncreate an user with Chinese characters such as `测试` \r\nuse config file `init.lua` \r\nopen `nvim` \r\nit'll report errors\r\n```\r\nError detected while processing C:\\Users\\测试\\AppData\\Local\\nvim\\init.lua:\r\nE5112: Error while creating lua chunk: cannot open C:\\Users\\测试\\AppData\\Local\\nvim\\init.lua: No such file or directory\r\n```\n\n### Expected behavior\n\nconfig files should be loaded successfully\n\n### Actual behavior\n\ninit.lua and other lua files can't be loaded if the username has Chinese characters(there are Chinese characters in pathname)", + "closed_at": "2023-02-26T00:12:43Z", + "comment_data": [ + { + "author_association": "NONE", + "body": "This is actually far more widespread than exclusive to chinese characters, it seems to be the case with **any non-ASCII character**.\r\n\r\nI've got an `é` in my name (which is only the 3rd added character in the Extended ASCII table) and I've uselessly spent hours trying to solve the issue investigating package management and filesystem permissions/company restrictions, only to understand in the end that it was yet again the same old diacritic issue.\r\n\r\nOn the same system than @Geniucker but on **nvim 0.8**, i.e. one major version later. Please devs, understand that you're impacting almost all non native-english speakers.\r\n\r\n@Geniucker I highly advise you to change your title to \"[...] if the username _has non-ASCII characters_\" to greatly increase visibility on this issue. \r\n\r\nSystem Info:\r\nWindows 11\r\nWindows Terminal\r\nNVIM v0.8.0-1210-gd367ed9b2 (installed with `scoop` package manager)\r\n", + "created_at": "2022-10-28T09:12:30Z", + "html_url": "https://github.com/neovim/neovim/issues/18122#issuecomment-1294741295", + "id": 1294741295, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/18122", + "node_id": "IC_kwDOAPphoM5NLC8v", + "performed_via_github_app": null, + "reactions": { + "+1": 4, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 4, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1294741295/reactions" + }, + "updated_at": "2022-10-28T09:21:57Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1294741295", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/77821695?v=4", + "events_url": "https://api.github.com/users/adamency/events{/privacy}", + "followers_url": "https://api.github.com/users/adamency/followers", + "following_url": "https://api.github.com/users/adamency/following{/other_user}", + "gists_url": "https://api.github.com/users/adamency/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/adamency", + "id": 77821695, + "login": "adamency", + "node_id": "MDQ6VXNlcjc3ODIxNjk1", + "organizations_url": "https://api.github.com/users/adamency/orgs", + "received_events_url": "https://api.github.com/users/adamency/received_events", + "repos_url": "https://api.github.com/users/adamency/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/adamency/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/adamency/subscriptions", + "type": "User", + "url": "https://api.github.com/users/adamency" + } + }, + { + "author_association": "NONE", + "body": "Same issue. Unfortunately, the only workaround I can find for now is to create an init file in a root directory and manually select it on startup with `-u`", + "created_at": "2022-10-29T17:06:33Z", + "html_url": "https://github.com/neovim/neovim/issues/18122#issuecomment-1295904146", + "id": 1295904146, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/18122", + "node_id": "IC_kwDOAPphoM5NPe2S", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1295904146/reactions" + }, + "updated_at": "2023-01-23T10:12:12Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1295904146", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/20693460?v=4", + "events_url": "https://api.github.com/users/RoyalTwo/events{/privacy}", + "followers_url": "https://api.github.com/users/RoyalTwo/followers", + "following_url": "https://api.github.com/users/RoyalTwo/following{/other_user}", + "gists_url": "https://api.github.com/users/RoyalTwo/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/RoyalTwo", + "id": 20693460, + "login": "RoyalTwo", + "node_id": "MDQ6VXNlcjIwNjkzNDYw", + "organizations_url": "https://api.github.com/users/RoyalTwo/orgs", + "received_events_url": "https://api.github.com/users/RoyalTwo/received_events", + "repos_url": "https://api.github.com/users/RoyalTwo/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/RoyalTwo/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/RoyalTwo/subscriptions", + "type": "User", + "url": "https://api.github.com/users/RoyalTwo" + } + }, + { + "author_association": "NONE", + "body": "Same issue here.\r\nHowever, I still use `init.vim`, which works fine until I try to load any lua plugins.", + "created_at": "2023-01-21T09:30:45Z", + "html_url": "https://github.com/neovim/neovim/issues/18122#issuecomment-1399216126", + "id": 1399216126, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/18122", + "node_id": "IC_kwDOAPphoM5TZlf-", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1399216126/reactions" + }, + "updated_at": "2023-01-23T10:12:19Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1399216126", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/1187242?v=4", + "events_url": "https://api.github.com/users/JD557/events{/privacy}", + "followers_url": "https://api.github.com/users/JD557/followers", + "following_url": "https://api.github.com/users/JD557/following{/other_user}", + "gists_url": "https://api.github.com/users/JD557/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/JD557", + "id": 1187242, + "login": "JD557", + "node_id": "MDQ6VXNlcjExODcyNDI=", + "organizations_url": "https://api.github.com/users/JD557/orgs", + "received_events_url": "https://api.github.com/users/JD557/received_events", + "repos_url": "https://api.github.com/users/JD557/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/JD557/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/JD557/subscriptions", + "type": "User", + "url": "https://api.github.com/users/JD557" + } + }, + { + "author_association": "MEMBER", + "body": "A possible workaround is to override the `loadfile()` global function to use `loadstring()` and `vim.fn.readfile()` before loading config:\r\n```sh\r\nnvim --cmd \"lua function loadfile(filename) return loadstring(vim.fn.readfile(filename, 'B')) end\"\r\n```\r\nI guess it is also possible to put this in `sysinit.vim`.", + "created_at": "2023-01-25T09:07:42Z", + "html_url": "https://github.com/neovim/neovim/issues/18122#issuecomment-1403293386", + "id": 1403293386, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/18122", + "node_id": "IC_kwDOAPphoM5TpI7K", + "performed_via_github_app": null, + "reactions": { + "+1": 1, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 1, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1403293386/reactions" + }, + "updated_at": "2023-01-25T09:09:19Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1403293386", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/35768171?v=4", + "events_url": "https://api.github.com/users/zeertzjq/events{/privacy}", + "followers_url": "https://api.github.com/users/zeertzjq/followers", + "following_url": "https://api.github.com/users/zeertzjq/following{/other_user}", + "gists_url": "https://api.github.com/users/zeertzjq/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/zeertzjq", + "id": 35768171, + "login": "zeertzjq", + "node_id": "MDQ6VXNlcjM1NzY4MTcx", + "organizations_url": "https://api.github.com/users/zeertzjq/orgs", + "received_events_url": "https://api.github.com/users/zeertzjq/received_events", + "repos_url": "https://api.github.com/users/zeertzjq/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/zeertzjq/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/zeertzjq/subscriptions", + "type": "User", + "url": "https://api.github.com/users/zeertzjq" + } + }, + { + "author_association": "MEMBER", + "body": "lua's `loadfile()` implementation uses `fopen()` internally. On MS WINDOWS, the standard C API can be configured between behaving _either_ like ca 1985 MS-DOS _or_ latin-1-ish (\"ANSI\"):\r\n\r\n> The fopen function opens the file that is specified by filename. By default, a narrow filename string is interpreted using the ANSI codepage (CP_ACP). In Windows Desktop applications, it can be changed to the OEM codepage (CP_OEMCP) by using the SetFileApisToOEM function. You can use the AreFileApisANSI function to determine whether filename is interpreted using the ANSI or the system default OEM codepage.\r\n\r\nThus, the easiest approach would be for us to replace the builtin `loadfile()` with our own function behaving more or less like zeertzjq's snippet, on windows. We should do this early at startup before `--cmd`, so user can still override it.\r\n", + "created_at": "2023-01-25T12:52:06Z", + "html_url": "https://github.com/neovim/neovim/issues/18122#issuecomment-1403559935", + "id": 1403559935, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/18122", + "node_id": "IC_kwDOAPphoM5TqJ__", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1403559935/reactions" + }, + "updated_at": "2023-01-25T12:52:06Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1403559935", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/1363104?v=4", + "events_url": "https://api.github.com/users/bfredl/events{/privacy}", + "followers_url": "https://api.github.com/users/bfredl/followers", + "following_url": "https://api.github.com/users/bfredl/following{/other_user}", + "gists_url": "https://api.github.com/users/bfredl/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/bfredl", + "id": 1363104, + "login": "bfredl", + "node_id": "MDQ6VXNlcjEzNjMxMDQ=", + "organizations_url": "https://api.github.com/users/bfredl/orgs", + "received_events_url": "https://api.github.com/users/bfredl/received_events", + "repos_url": "https://api.github.com/users/bfredl/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/bfredl/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/bfredl/subscriptions", + "type": "User", + "url": "https://api.github.com/users/bfredl" + } + }, + { + "author_association": "MEMBER", + "body": "the `io.open` function of the lua io library will be similarily broken. this cannot as easily be replaced from the outside. Perhaps we should patch luajit on windows to use our `os_fopen()` emulation instead of the CRT `fopen()` ", + "created_at": "2023-01-25T13:23:38Z", + "html_url": "https://github.com/neovim/neovim/issues/18122#issuecomment-1403602151", + "id": 1403602151, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/18122", + "node_id": "IC_kwDOAPphoM5TqUTn", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1403602151/reactions" + }, + "updated_at": "2023-01-25T13:23:38Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1403602151", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/1363104?v=4", + "events_url": "https://api.github.com/users/bfredl/events{/privacy}", + "followers_url": "https://api.github.com/users/bfredl/followers", + "following_url": "https://api.github.com/users/bfredl/following{/other_user}", + "gists_url": "https://api.github.com/users/bfredl/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/bfredl", + "id": 1363104, + "login": "bfredl", + "node_id": "MDQ6VXNlcjEzNjMxMDQ=", + "organizations_url": "https://api.github.com/users/bfredl/orgs", + "received_events_url": "https://api.github.com/users/bfredl/received_events", + "repos_url": "https://api.github.com/users/bfredl/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/bfredl/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/bfredl/subscriptions", + "type": "User", + "url": "https://api.github.com/users/bfredl" + } + }, + { + "author_association": "NONE", + "body": "FWIW, this seems to solve the problem: https://b.s5.pm/os/2021/08/28/windows-setup.html#using-utf-8-instead-of-latin-1-by-default\r\n\r\nI didn't do any extensive testing, though. Also, I had to revert that flag, as it broke other tools 🙃 ", + "created_at": "2023-02-13T14:41:52Z", + "html_url": "https://github.com/neovim/neovim/issues/18122#issuecomment-1428055012", + "id": 1428055012, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/18122", + "node_id": "IC_kwDOAPphoM5VHmPk", + "performed_via_github_app": null, + "reactions": { + "+1": 4, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 4, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1428055012/reactions" + }, + "updated_at": "2023-02-13T14:53:51Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1428055012", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/1187242?v=4", + "events_url": "https://api.github.com/users/JD557/events{/privacy}", + "followers_url": "https://api.github.com/users/JD557/followers", + "following_url": "https://api.github.com/users/JD557/following{/other_user}", + "gists_url": "https://api.github.com/users/JD557/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/JD557", + "id": 1187242, + "login": "JD557", + "node_id": "MDQ6VXNlcjExODcyNDI=", + "organizations_url": "https://api.github.com/users/JD557/orgs", + "received_events_url": "https://api.github.com/users/JD557/received_events", + "repos_url": "https://api.github.com/users/JD557/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/JD557/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/JD557/subscriptions", + "type": "User", + "url": "https://api.github.com/users/JD557" + } + }, + { + "author_association": "MEMBER", + "body": "`UTF-8` can be set in `ucrt` with `setlocale`. The `ucrt` is already used in `MSVC` builds. Therefore, setting the appropriate value in the `LANG` environment variable, such as `set LANG=.UTF-8` or `set LANG=en_us.utf8` etc, will solve this problem.\r\n\r\nRef. https://learn.microsoft.com/en-us/cpp/c-runtime-library/reference/setlocale-wsetlocale?view=msvc-170#utf-8-support\r\n\r\nIt should be possible to remove some of the codes that use `utf8_to_utf16()` by using `manifest` to set encoding to `UTF-8`.\r\n\r\n", + "created_at": "2023-02-23T12:24:00Z", + "html_url": "https://github.com/neovim/neovim/issues/18122#issuecomment-1441675503", + "id": 1441675503, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/18122", + "node_id": "IC_kwDOAPphoM5V7jjv", + "performed_via_github_app": null, + "reactions": { + "+1": 1, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 1, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1441675503/reactions" + }, + "updated_at": "2023-02-23T12:24:00Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1441675503", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/11682285?v=4", + "events_url": "https://api.github.com/users/erw7/events{/privacy}", + "followers_url": "https://api.github.com/users/erw7/followers", + "following_url": "https://api.github.com/users/erw7/following{/other_user}", + "gists_url": "https://api.github.com/users/erw7/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/erw7", + "id": 11682285, + "login": "erw7", + "node_id": "MDQ6VXNlcjExNjgyMjg1", + "organizations_url": "https://api.github.com/users/erw7/orgs", + "received_events_url": "https://api.github.com/users/erw7/received_events", + "repos_url": "https://api.github.com/users/erw7/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/erw7/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/erw7/subscriptions", + "type": "User", + "url": "https://api.github.com/users/erw7" + } + }, + { + "author_association": "MEMBER", + "body": "> It should be possible to remove some of the codes that use `utf8_to_utf16()` by using `manifest` to set encoding to `UTF-8`.\r\n\r\nGreat idea, to be clear that's this file? https://github.com/neovim/neovim/blob/09b6a68c3700aa5d8ae26a62896b091572ae0a8d/src/nvim/os/nvim.manifest\r\n\r\n> setting the appropriate value in the `LANG` environment variable, such as `set LANG=.UTF-8` or `set LANG=en_us.utf8` etc, will solve this problem.\r\n\r\nAs a first step, we could check for this in `:checkhealth nvim`.\r\n\r\nLater we could consider forcing it at startup? (Though the \"manifest\" approach is better.)", + "created_at": "2023-02-23T12:46:16Z", + "html_url": "https://github.com/neovim/neovim/issues/18122#issuecomment-1441711780", + "id": 1441711780, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/18122", + "node_id": "IC_kwDOAPphoM5V7sak", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1441711780/reactions" + }, + "updated_at": "2023-02-23T12:48:42Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1441711780", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/1359421?v=4", + "events_url": "https://api.github.com/users/justinmk/events{/privacy}", + "followers_url": "https://api.github.com/users/justinmk/followers", + "following_url": "https://api.github.com/users/justinmk/following{/other_user}", + "gists_url": "https://api.github.com/users/justinmk/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/justinmk", + "id": 1359421, + "login": "justinmk", + "node_id": "MDQ6VXNlcjEzNTk0MjE=", + "organizations_url": "https://api.github.com/users/justinmk/orgs", + "received_events_url": "https://api.github.com/users/justinmk/received_events", + "repos_url": "https://api.github.com/users/justinmk/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/justinmk/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/justinmk/subscriptions", + "type": "User", + "url": "https://api.github.com/users/justinmk" + } + }, + { + "author_association": "MEMBER", + "body": "> Great idea, to be clear that's this file? \r\n\r\nThe relevant file has `main_lib` as `target`. I think we need to create a separate file with `nvim` as the `target`.\r\n\r\nCc: @dundargoc \r\n\r\n> As a first step, we could check for this in :checkhealth nvim.\r\n>\r\n> Later we could consider forcing it at startup? (Though the \"manifest\" approach is better.)\r\n\r\nIn the meantime, I think it would be a good idea to call `setlocale(LC_ALL, \".UTF8\");` in [`lang_init()`](https://github.com/neovim/neovim/blob/f140175564001cc1ad84128a0147a5d2f7798a63/src/nvim/os/lang.c#L21). That may be sufficient unless we change to use `main` instead of `wmain`.", + "created_at": "2023-02-23T13:18:41Z", + "html_url": "https://github.com/neovim/neovim/issues/18122#issuecomment-1441768546", + "id": 1441768546, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/18122", + "node_id": "IC_kwDOAPphoM5V76Ri", + "performed_via_github_app": null, + "reactions": { + "+1": 1, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 1, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1441768546/reactions" + }, + "updated_at": "2023-02-23T13:18:41Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1441768546", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/11682285?v=4", + "events_url": "https://api.github.com/users/erw7/events{/privacy}", + "followers_url": "https://api.github.com/users/erw7/followers", + "following_url": "https://api.github.com/users/erw7/following{/other_user}", + "gists_url": "https://api.github.com/users/erw7/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/erw7", + "id": 11682285, + "login": "erw7", + "node_id": "MDQ6VXNlcjExNjgyMjg1", + "organizations_url": "https://api.github.com/users/erw7/orgs", + "received_events_url": "https://api.github.com/users/erw7/received_events", + "repos_url": "https://api.github.com/users/erw7/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/erw7/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/erw7/subscriptions", + "type": "User", + "url": "https://api.github.com/users/erw7" + } + }, + { + "author_association": "MEMBER", + "body": "Hmm, I don't think there should be any difference between main_lib and nvim, they should both inherit the manifest file. But we can change main_lib to nvim if that solves it.", + "created_at": "2023-02-23T21:12:37Z", + "html_url": "https://github.com/neovim/neovim/issues/18122#issuecomment-1442439285", + "id": 1442439285, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/18122", + "node_id": "IC_kwDOAPphoM5V-eB1", + "performed_via_github_app": null, + "reactions": { + "+1": 1, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 1, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1442439285/reactions" + }, + "updated_at": "2023-02-23T21:12:37Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1442439285", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/33953936?v=4", + "events_url": "https://api.github.com/users/dundargoc/events{/privacy}", + "followers_url": "https://api.github.com/users/dundargoc/followers", + "following_url": "https://api.github.com/users/dundargoc/following{/other_user}", + "gists_url": "https://api.github.com/users/dundargoc/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/dundargoc", + "id": 33953936, + "login": "dundargoc", + "node_id": "MDQ6VXNlcjMzOTUzOTM2", + "organizations_url": "https://api.github.com/users/dundargoc/orgs", + "received_events_url": "https://api.github.com/users/dundargoc/received_events", + "repos_url": "https://api.github.com/users/dundargoc/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/dundargoc/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/dundargoc/subscriptions", + "type": "User", + "url": "https://api.github.com/users/dundargoc" + } + }, + { + "author_association": "MEMBER", + "body": "Can people who have this problem test this [PR](https://github.com/neovim/neovim/pull/22384) and see if it solves it for them?", + "created_at": "2023-02-23T21:46:26Z", + "html_url": "https://github.com/neovim/neovim/issues/18122#issuecomment-1442472583", + "id": 1442472583, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/18122", + "node_id": "IC_kwDOAPphoM5V-mKH", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1442472583/reactions" + }, + "updated_at": "2023-02-23T21:46:26Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1442472583", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/33953936?v=4", + "events_url": "https://api.github.com/users/dundargoc/events{/privacy}", + "followers_url": "https://api.github.com/users/dundargoc/followers", + "following_url": "https://api.github.com/users/dundargoc/following{/other_user}", + "gists_url": "https://api.github.com/users/dundargoc/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/dundargoc", + "id": 33953936, + "login": "dundargoc", + "node_id": "MDQ6VXNlcjMzOTUzOTM2", + "organizations_url": "https://api.github.com/users/dundargoc/orgs", + "received_events_url": "https://api.github.com/users/dundargoc/received_events", + "repos_url": "https://api.github.com/users/dundargoc/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/dundargoc/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/dundargoc/subscriptions", + "type": "User", + "url": "https://api.github.com/users/dundargoc" + } + }, + { + "author_association": "MEMBER", + "body": "You can test [this artifact](https://github.com/zeertzjq/neovim/suites/11200235690/artifacts/572715558)", + "created_at": "2023-02-25T11:38:09Z", + "html_url": "https://github.com/neovim/neovim/issues/18122#issuecomment-1445061900", + "id": 1445061900, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/18122", + "node_id": "IC_kwDOAPphoM5WIeUM", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1445061900/reactions" + }, + "updated_at": "2023-02-25T11:38:09Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1445061900", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/35768171?v=4", + "events_url": "https://api.github.com/users/zeertzjq/events{/privacy}", + "followers_url": "https://api.github.com/users/zeertzjq/followers", + "following_url": "https://api.github.com/users/zeertzjq/following{/other_user}", + "gists_url": "https://api.github.com/users/zeertzjq/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/zeertzjq", + "id": 35768171, + "login": "zeertzjq", + "node_id": "MDQ6VXNlcjM1NzY4MTcx", + "organizations_url": "https://api.github.com/users/zeertzjq/orgs", + "received_events_url": "https://api.github.com/users/zeertzjq/received_events", + "repos_url": "https://api.github.com/users/zeertzjq/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/zeertzjq/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/zeertzjq/subscriptions", + "type": "User", + "url": "https://api.github.com/users/zeertzjq" + } + } + ], + "comments": 13, + "comments_url": "https://api.github.com/repos/neovim/neovim/issues/18122/comments", + "created_at": "2022-04-15T17:53:42Z", + "events_url": "https://api.github.com/repos/neovim/neovim/issues/18122/events", + "html_url": "https://github.com/neovim/neovim/issues/18122", + "id": 1205761390, + "labels": [ + { + "color": "f9d0c4", + "default": true, + "description": "issues reporting wrong behavior", + "id": 77997474, + "name": "bug", + "node_id": "MDU6TGFiZWw3Nzk5NzQ3NA==", + "url": "https://api.github.com/repos/neovim/neovim/labels/bug" + }, + { + "color": "d4c5f9", + "default": false, + "description": null, + "id": 109461219, + "name": "platform:windows", + "node_id": "MDU6TGFiZWwxMDk0NjEyMTk=", + "url": "https://api.github.com/repos/neovim/neovim/labels/platform:windows" + }, + { + "color": "c5def5", + "default": false, + "description": "", + "id": 158930125, + "name": "encoding", + "node_id": "MDU6TGFiZWwxNTg5MzAxMjU=", + "url": "https://api.github.com/repos/neovim/neovim/labels/encoding" + }, + { + "color": "c5def5", + "default": false, + "description": null, + "id": 573222693, + "name": "lua", + "node_id": "MDU6TGFiZWw1NzMyMjI2OTM=", + "url": "https://api.github.com/repos/neovim/neovim/labels/lua" + }, + { + "color": "c5def5", + "default": false, + "description": "(multibyte) unicode characters", + "id": 2882115256, + "name": "unicode 💩", + "node_id": "MDU6TGFiZWwyODgyMTE1MjU2", + "url": "https://api.github.com/repos/neovim/neovim/labels/unicode%20%20%F0%9F%92%A9" + } + ], + "labels_url": "https://api.github.com/repos/neovim/neovim/issues/18122/labels{/name}", + "locked": false, + "milestone": null, + "node_id": "I_kwDOAPphoM5H3nVu", + "number": 18122, + "performed_via_github_app": null, + "reactions": { + "+1": 3, + "-1": 0, + "confused": 5, + "eyes": 1, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 9, + "url": "https://api.github.com/repos/neovim/neovim/issues/18122/reactions" + }, + "repository_url": "https://api.github.com/repos/neovim/neovim", + "state": "closed", + "state_reason": "completed", + "timeline_url": "https://api.github.com/repos/neovim/neovim/issues/18122/timeline", + "title": "[windows] init.lua and other lua files can't be loaded if there are non-ASCII characters in pathname", + "updated_at": "2023-08-04T03:23:59Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/18122", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/61449208?v=4", + "events_url": "https://api.github.com/users/Geniucker/events{/privacy}", + "followers_url": "https://api.github.com/users/Geniucker/followers", + "following_url": "https://api.github.com/users/Geniucker/following{/other_user}", + "gists_url": "https://api.github.com/users/Geniucker/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/Geniucker", + "id": 61449208, + "login": "Geniucker", + "node_id": "MDQ6VXNlcjYxNDQ5MjA4", + "organizations_url": "https://api.github.com/users/Geniucker/orgs", + "received_events_url": "https://api.github.com/users/Geniucker/received_events", + "repos_url": "https://api.github.com/users/Geniucker/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/Geniucker/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Geniucker/subscriptions", + "type": "User", + "url": "https://api.github.com/users/Geniucker" + } +} \ No newline at end of file diff --git a/repositories/neovim/issues/19125.json b/repositories/neovim/issues/19125.json new file mode 100644 index 00000000..8e5c4be6 --- /dev/null +++ b/repositories/neovim/issues/19125.json @@ -0,0 +1,1173 @@ +{ + "active_lock_reason": null, + "assignee": null, + "assignees": [], + "author_association": "NONE", + "body": "### Neovim version (nvim -v)\n\nNVIM v0.7.2\n\n### Vim (not Nvim) behaves the same?\n\nno, vim 8.2.5046\n\n### Operating system/version\n\nArchLinux\n\n### Terminal name/version\n\nKonsole 22.04.2 / TMux 3.3_a\n\n### $TERM environment variable\n\nscreen-256color\n\n### Installation\n\nArchLinux community repository\n\n### How to reproduce the issue\n\nnvim --clean\r\n:let &stl = \"hello\"\r\n:let &stl .= \" world\"\n\n### Expected behavior\n\nStatus line should read: `hello world`\n\n### Actual behavior\n\nStatus line reads: ` world`", + "closed_at": "2022-08-21T22:37:33Z", + "comment_data": [ + { + "author_association": "MEMBER", + "body": "Works for me. (Sorry, not sure what else I can say here.)\r\n", + "created_at": "2022-06-27T16:49:21Z", + "html_url": "https://github.com/neovim/neovim/issues/19125#issuecomment-1167601154", + "id": 1167601154, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/19125", + "node_id": "IC_kwDOAPphoM5FmC4C", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1167601154/reactions" + }, + "updated_at": "2022-06-27T16:51:25Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1167601154", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/2361214?v=4", + "events_url": "https://api.github.com/users/clason/events{/privacy}", + "followers_url": "https://api.github.com/users/clason/followers", + "following_url": "https://api.github.com/users/clason/following{/other_user}", + "gists_url": "https://api.github.com/users/clason/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/clason", + "id": 2361214, + "login": "clason", + "node_id": "MDQ6VXNlcjIzNjEyMTQ=", + "organizations_url": "https://api.github.com/users/clason/orgs", + "received_events_url": "https://api.github.com/users/clason/received_events", + "repos_url": "https://api.github.com/users/clason/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/clason/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/clason/subscriptions", + "type": "User", + "url": "https://api.github.com/users/clason" + } + }, + { + "author_association": "MEMBER", + "body": "Seems only reproducible with Arch Linux community package, not with appimage.", + "created_at": "2022-06-27T21:47:36Z", + "html_url": "https://github.com/neovim/neovim/issues/19125#issuecomment-1167944557", + "id": 1167944557, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/19125", + "node_id": "IC_kwDOAPphoM5FnWtt", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 3, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 3, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1167944557/reactions" + }, + "updated_at": "2022-06-27T21:47:48Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1167944557", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/35768171?v=4", + "events_url": "https://api.github.com/users/zeertzjq/events{/privacy}", + "followers_url": "https://api.github.com/users/zeertzjq/followers", + "following_url": "https://api.github.com/users/zeertzjq/following{/other_user}", + "gists_url": "https://api.github.com/users/zeertzjq/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/zeertzjq", + "id": 35768171, + "login": "zeertzjq", + "node_id": "MDQ6VXNlcjM1NzY4MTcx", + "organizations_url": "https://api.github.com/users/zeertzjq/orgs", + "received_events_url": "https://api.github.com/users/zeertzjq/received_events", + "repos_url": "https://api.github.com/users/zeertzjq/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/zeertzjq/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/zeertzjq/subscriptions", + "type": "User", + "url": "https://api.github.com/users/zeertzjq" + } + }, + { + "author_association": "MEMBER", + "body": "It's very strange that this bug is only present in `Release` build, but not in `RelWithDebInfo` or `Debug` build, so this may be a bug in GCC 12.", + "created_at": "2022-06-27T22:43:07Z", + "html_url": "https://github.com/neovim/neovim/issues/19125#issuecomment-1168000495", + "id": 1168000495, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/19125", + "node_id": "IC_kwDOAPphoM5FnkXv", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1168000495/reactions" + }, + "updated_at": "2022-06-27T22:43:07Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1168000495", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/35768171?v=4", + "events_url": "https://api.github.com/users/zeertzjq/events{/privacy}", + "followers_url": "https://api.github.com/users/zeertzjq/followers", + "following_url": "https://api.github.com/users/zeertzjq/following{/other_user}", + "gists_url": "https://api.github.com/users/zeertzjq/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/zeertzjq", + "id": 35768171, + "login": "zeertzjq", + "node_id": "MDQ6VXNlcjM1NzY4MTcx", + "organizations_url": "https://api.github.com/users/zeertzjq/orgs", + "received_events_url": "https://api.github.com/users/zeertzjq/received_events", + "repos_url": "https://api.github.com/users/zeertzjq/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/zeertzjq/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/zeertzjq/subscriptions", + "type": "User", + "url": "https://api.github.com/users/zeertzjq" + } + }, + { + "author_association": "MEMBER", + "body": "Using `objdump`, I found a problem:\r\n\r\nAt the beginning of `ex_let_one()`, `arg` is stored in `%rdi`, and is copied to both `%r14` and `0x28(%rsp)`:\r\n```\r\n 112070:\t41 57 \tpush %r15\r\n 112072:\t41 89 cf \tmov %ecx,%r15d\r\n 112075:\t41 56 \tpush %r14\r\n 112077:\t49 89 fe \tmov %rdi,%r14\r\n 11207a:\t41 55 \tpush %r13\r\n 11207c:\t49 89 f5 \tmov %rsi,%r13\r\n 11207f:\t41 54 \tpush %r12\r\n 112081:\t4d 89 c4 \tmov %r8,%r12\r\n 112084:\t55 \tpush %rbp\r\n 112085:\t4c 89 cd \tmov %r9,%rbp\r\n 112088:\t53 \tpush %rbx\r\n 112089:\t48 81 ec d8 00 00 00 \tsub $0xd8,%rsp\r\n 112090:\t48 89 7c 24 28 \tmov %rdi,0x28(%rsp)\r\n 112095:\t64 48 8b 04 25 28 00 \tmov %fs:0x28,%rax\r\n```\r\n\r\n`find_option_end()` modifies the value stored in `0x28(%rsp)`, while the value in `%r14` is still the initial value of `arg`:\r\n```\r\n 1121e4:\t48 8d 74 24 34 \tlea 0x34(%rsp),%rsi\r\n 1121e9:\t48 8d 7c 24 28 \tlea 0x28(%rsp),%rdi\r\n 1121ee:\te8 8d f3 00 00 \tcall 121580 \r\n```\r\n\r\n`%r14` instead of `0x28(%rsp)` is passed to `get_option_value()` here, causing `get_option_value()` to fail to find the option:\r\n```\r\n 1126e6:\t8b 4c 24 34 \tmov 0x34(%rsp),%ecx\r\n 1126ea:\t0f 84 b0 fb ff ff \tje 1122a0 \r\n 1126f0:\t4c 89 44 24 18 \tmov %r8,0x18(%rsp)\r\n 1126f5:\t48 8d 54 24 38 \tlea 0x38(%rsp),%rdx\r\n 1126fa:\t4c 89 fe \tmov %r15,%rsi\r\n 1126fd:\t4c 89 f7 \tmov %r14,%rdi\r\n 112700:\t89 4c 24 08 \tmov %ecx,0x8(%rsp)\r\n 112704:\t48 89 44 24 10 \tmov %rax,0x10(%rsp)\r\n 112709:\t67 e8 71 2f 14 00 \taddr32 call 255680 \r\n```\r\n\r\nMeanwhile, `0x28(%rsp)` is passed correctly to `set_option_value()`:\r\n```\r\n 112296:\t8b 4c 24 34 \tmov 0x34(%rsp),%ecx\r\n 11229a:\t45 31 d2 \txor %r10d,%r10d\r\n 11229d:\t45 31 c9 \txor %r9d,%r9d\r\n 1122a0:\t4c 89 54 24 08 \tmov %r10,0x8(%rsp)\r\n 1122a5:\t48 8b 7c 24 28 \tmov 0x28(%rsp),%rdi\r\n 1122aa:\t4c 89 ca \tmov %r9,%rdx\r\n 1122ad:\t4c 89 c6 \tmov %r8,%rsi\r\n 1122b0:\t67 e8 4a 4f 14 00 \taddr32 call 257200 \r\n```", + "created_at": "2022-06-28T03:21:04Z", + "html_url": "https://github.com/neovim/neovim/issues/19125#issuecomment-1168171644", + "id": 1168171644, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/19125", + "node_id": "IC_kwDOAPphoM5FoOJ8", + "performed_via_github_app": null, + "reactions": { + "+1": 1, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 1, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1168171644/reactions" + }, + "updated_at": "2022-06-28T04:00:03Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1168171644", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/35768171?v=4", + "events_url": "https://api.github.com/users/zeertzjq/events{/privacy}", + "followers_url": "https://api.github.com/users/zeertzjq/followers", + "following_url": "https://api.github.com/users/zeertzjq/following{/other_user}", + "gists_url": "https://api.github.com/users/zeertzjq/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/zeertzjq", + "id": 35768171, + "login": "zeertzjq", + "node_id": "MDQ6VXNlcjM1NzY4MTcx", + "organizations_url": "https://api.github.com/users/zeertzjq/orgs", + "received_events_url": "https://api.github.com/users/zeertzjq/received_events", + "repos_url": "https://api.github.com/users/zeertzjq/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/zeertzjq/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/zeertzjq/subscriptions", + "type": "User", + "url": "https://api.github.com/users/zeertzjq" + } + }, + { + "author_association": "MEMBER", + "body": "What's stranger is that if I pass the value of `p` to an external function in `find_option_end()`, this bug no longer happens:\r\n```diff\r\ndiff --git a/src/nvim/eval.c b/src/nvim/eval.c\r\nindex 7b6e954b3..732837f4f 100644\r\n--- a/src/nvim/eval.c\r\n+++ b/src/nvim/eval.c\r\n@@ -9547,6 +9547,7 @@ static const char *find_option_end(const char **const arg, int *const opt_flags)\r\n return NULL;\r\n }\r\n *arg = p;\r\n+ (void)_(p);\r\n \r\n if (p[0] == 't' && p[1] == '_' && p[2] != NUL && p[3] != NUL) {\r\n p += 4; // t_xx/termcap option\r\n```", + "created_at": "2022-06-28T03:43:20Z", + "html_url": "https://github.com/neovim/neovim/issues/19125#issuecomment-1168183923", + "id": 1168183923, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/19125", + "node_id": "IC_kwDOAPphoM5FoRJz", + "performed_via_github_app": null, + "reactions": { + "+1": 2, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 2, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1168183923/reactions" + }, + "updated_at": "2022-06-28T03:43:20Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1168183923", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/35768171?v=4", + "events_url": "https://api.github.com/users/zeertzjq/events{/privacy}", + "followers_url": "https://api.github.com/users/zeertzjq/followers", + "following_url": "https://api.github.com/users/zeertzjq/following{/other_user}", + "gists_url": "https://api.github.com/users/zeertzjq/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/zeertzjq", + "id": 35768171, + "login": "zeertzjq", + "node_id": "MDQ6VXNlcjM1NzY4MTcx", + "organizations_url": "https://api.github.com/users/zeertzjq/orgs", + "received_events_url": "https://api.github.com/users/zeertzjq/received_events", + "repos_url": "https://api.github.com/users/zeertzjq/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/zeertzjq/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/zeertzjq/subscriptions", + "type": "User", + "url": "https://api.github.com/users/zeertzjq" + } + }, + { + "author_association": "CONTRIBUTOR", + "body": "My setup broke because I used `let &runtimepath .=` and got hit with this bug.\r\n\r\nBuilding with `-fno-strict-aliasing` helps. Maybe because `char` and `char_u` shouldn't alias?\r\n\r\nLooks like there's been some work to replace `char_u` with `char`. Is this still broken on master?", + "created_at": "2022-06-28T08:27:47Z", + "html_url": "https://github.com/neovim/neovim/issues/19125#issuecomment-1168402756", + "id": 1168402756, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/19125", + "node_id": "IC_kwDOAPphoM5FpGlE", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1168402756/reactions" + }, + "updated_at": "2022-06-28T08:27:47Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1168402756", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/204006?v=4", + "events_url": "https://api.github.com/users/heftig/events{/privacy}", + "followers_url": "https://api.github.com/users/heftig/followers", + "following_url": "https://api.github.com/users/heftig/following{/other_user}", + "gists_url": "https://api.github.com/users/heftig/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/heftig", + "id": 204006, + "login": "heftig", + "node_id": "MDQ6VXNlcjIwNDAwNg==", + "organizations_url": "https://api.github.com/users/heftig/orgs", + "received_events_url": "https://api.github.com/users/heftig/received_events", + "repos_url": "https://api.github.com/users/heftig/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/heftig/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/heftig/subscriptions", + "type": "User", + "url": "https://api.github.com/users/heftig" + } + }, + { + "author_association": "MEMBER", + "body": "`char_u` and `char` are allowed to alias. Seems like a compiler bug.", + "created_at": "2022-06-28T09:37:16Z", + "html_url": "https://github.com/neovim/neovim/issues/19125#issuecomment-1168482280", + "id": 1168482280, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/19125", + "node_id": "IC_kwDOAPphoM5FpZ_o", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1168482280/reactions" + }, + "updated_at": "2022-06-28T09:37:16Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1168482280", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/1363104?v=4", + "events_url": "https://api.github.com/users/bfredl/events{/privacy}", + "followers_url": "https://api.github.com/users/bfredl/followers", + "following_url": "https://api.github.com/users/bfredl/following{/other_user}", + "gists_url": "https://api.github.com/users/bfredl/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/bfredl", + "id": 1363104, + "login": "bfredl", + "node_id": "MDQ6VXNlcjEzNjMxMDQ=", + "organizations_url": "https://api.github.com/users/bfredl/orgs", + "received_events_url": "https://api.github.com/users/bfredl/received_events", + "repos_url": "https://api.github.com/users/bfredl/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/bfredl/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/bfredl/subscriptions", + "type": "User", + "url": "https://api.github.com/users/bfredl" + } + }, + { + "author_association": "NONE", + "body": "I've ran into the same issue earlier today.\r\n\r\n> char_u and char are allowed to alias. Seems like a compiler bug.\r\n\r\nYes, char_u and char are allowed to alias, but we're casting `char_u**` to `char**`, which are unrelated pointer types.", + "created_at": "2022-06-28T18:35:51Z", + "html_url": "https://github.com/neovim/neovim/issues/19125#issuecomment-1169086965", + "id": 1169086965, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/19125", + "node_id": "IC_kwDOAPphoM5Frtn1", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1169086965/reactions" + }, + "updated_at": "2022-06-28T18:35:51Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1169086965", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/9192733?v=4", + "events_url": "https://api.github.com/users/foonathan/events{/privacy}", + "followers_url": "https://api.github.com/users/foonathan/followers", + "following_url": "https://api.github.com/users/foonathan/following{/other_user}", + "gists_url": "https://api.github.com/users/foonathan/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/foonathan", + "id": 9192733, + "login": "foonathan", + "node_id": "MDQ6VXNlcjkxOTI3MzM=", + "organizations_url": "https://api.github.com/users/foonathan/orgs", + "received_events_url": "https://api.github.com/users/foonathan/received_events", + "repos_url": "https://api.github.com/users/foonathan/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/foonathan/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/foonathan/subscriptions", + "type": "User", + "url": "https://api.github.com/users/foonathan" + } + }, + { + "author_association": "MEMBER", + "body": "> we're casting char_u** to char**, which are unrelated pointer types.\r\n\r\nBoth are addresses of pointers to arbitrary bytes of memory, they are pretty much as related as two pointer types ever could be. But it seems even byte-level addressing is something that GCC wants to fuck up because some footnote to a footnote in the standard could be interpreted as allowing to fuck it up.", + "created_at": "2022-06-29T08:13:46Z", + "html_url": "https://github.com/neovim/neovim/issues/19125#issuecomment-1169671584", + "id": 1169671584, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/19125", + "node_id": "IC_kwDOAPphoM5Ft8Wg", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1169671584/reactions" + }, + "updated_at": "2022-06-29T08:13:46Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1169671584", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/1363104?v=4", + "events_url": "https://api.github.com/users/bfredl/events{/privacy}", + "followers_url": "https://api.github.com/users/bfredl/followers", + "following_url": "https://api.github.com/users/bfredl/following{/other_user}", + "gists_url": "https://api.github.com/users/bfredl/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/bfredl", + "id": 1363104, + "login": "bfredl", + "node_id": "MDQ6VXNlcjEzNjMxMDQ=", + "organizations_url": "https://api.github.com/users/bfredl/orgs", + "received_events_url": "https://api.github.com/users/bfredl/received_events", + "repos_url": "https://api.github.com/users/bfredl/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/bfredl/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/bfredl/subscriptions", + "type": "User", + "url": "https://api.github.com/users/bfredl" + } + }, + { + "author_association": "CONTRIBUTOR", + "body": "I believe type compatibility is preserved by pointers, i.e. *if `T` and `U` are compatible, then `T*` and `U*` are compatible*, and thus `T**` and `U**` are compatible, etc. \r\n\r\nThat said, if you don't want to worry about the standard's aliasing rules you should add the `-fno-strict-aliasing` to the compiler flags.", + "created_at": "2022-06-29T08:43:12Z", + "html_url": "https://github.com/neovim/neovim/issues/19125#issuecomment-1169700589", + "id": 1169700589, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/19125", + "node_id": "IC_kwDOAPphoM5FuDbt", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1169700589/reactions" + }, + "updated_at": "2022-06-29T08:43:12Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1169700589", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/204006?v=4", + "events_url": "https://api.github.com/users/heftig/events{/privacy}", + "followers_url": "https://api.github.com/users/heftig/followers", + "following_url": "https://api.github.com/users/heftig/following{/other_user}", + "gists_url": "https://api.github.com/users/heftig/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/heftig", + "id": 204006, + "login": "heftig", + "node_id": "MDQ6VXNlcjIwNDAwNg==", + "organizations_url": "https://api.github.com/users/heftig/orgs", + "received_events_url": "https://api.github.com/users/heftig/received_events", + "repos_url": "https://api.github.com/users/heftig/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/heftig/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/heftig/subscriptions", + "type": "User", + "url": "https://api.github.com/users/heftig" + } + }, + { + "author_association": "NONE", + "body": "> I believe type compatibility is preserved by pointers, i.e. if T and U are compatible, then T* and U* are compatible, and thus T** and U** are compatible, etc.\r\n\r\nType compatibility isn't relevant here, strict aliasing is. The code tries to access a `char_u*` via a pointer to `char*`, which is undefined behavior: https://eel.is/c++draft/basic.lval\r\n\r\n> That said, if you don't want to worry about the standard's aliasing rules you should add the -fno-strict-aliasing to the compiler flags.\r\n\r\nCan the flag be added to the build system by default? Because otherwise, the compiler is pretty much allowed to do that, and getting a ton of `unknown option &foo` errors on startup because every single `let &foo = bar` is broken, having to debug that, and then having to rebuild, isn't great user experience.", + "created_at": "2022-06-29T09:23:30Z", + "html_url": "https://github.com/neovim/neovim/issues/19125#issuecomment-1169744305", + "id": 1169744305, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/19125", + "node_id": "IC_kwDOAPphoM5FuOGx", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1169744305/reactions" + }, + "updated_at": "2022-06-29T12:42:32Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1169744305", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/9192733?v=4", + "events_url": "https://api.github.com/users/foonathan/events{/privacy}", + "followers_url": "https://api.github.com/users/foonathan/followers", + "following_url": "https://api.github.com/users/foonathan/following{/other_user}", + "gists_url": "https://api.github.com/users/foonathan/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/foonathan", + "id": 9192733, + "login": "foonathan", + "node_id": "MDQ6VXNlcjkxOTI3MzM=", + "organizations_url": "https://api.github.com/users/foonathan/orgs", + "received_events_url": "https://api.github.com/users/foonathan/received_events", + "repos_url": "https://api.github.com/users/foonathan/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/foonathan/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/foonathan/subscriptions", + "type": "User", + "url": "https://api.github.com/users/foonathan" + } + }, + { + "author_association": "CONTRIBUTOR", + "body": "> Type compatibility isn't relevant here, strict aliasing is. The code tries to access a char_u* via a pointer to char*, which is undefined behavior: https://eel.is/c++draft/basic.lval\r\n\r\nThat's C++, not C. The languages have very different rules. See https://gist.github.com/shafik/848ae25ee209f698763cffee272a58f8 for a pretty good overview.", + "created_at": "2022-06-29T09:32:37Z", + "html_url": "https://github.com/neovim/neovim/issues/19125#issuecomment-1169756046", + "id": 1169756046, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/19125", + "node_id": "IC_kwDOAPphoM5FuQ-O", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1169756046/reactions" + }, + "updated_at": "2022-06-29T09:32:37Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1169756046", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/204006?v=4", + "events_url": "https://api.github.com/users/heftig/events{/privacy}", + "followers_url": "https://api.github.com/users/heftig/followers", + "following_url": "https://api.github.com/users/heftig/following{/other_user}", + "gists_url": "https://api.github.com/users/heftig/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/heftig", + "id": 204006, + "login": "heftig", + "node_id": "MDQ6VXNlcjIwNDAwNg==", + "organizations_url": "https://api.github.com/users/heftig/orgs", + "received_events_url": "https://api.github.com/users/heftig/received_events", + "repos_url": "https://api.github.com/users/heftig/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/heftig/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/heftig/subscriptions", + "type": "User", + "url": "https://api.github.com/users/heftig" + } + }, + { + "author_association": "NONE", + "body": "Ahh, it's a C source file, my bad.\r\n\r\n> I believe type compatibility is preserved by pointers, i.e. if T and U are compatible, then T* and U* are compatible, and thus T** and U** are compatible, etc.\r\n\r\nThen this applies, but char and unsigned char are not compatible types (C11 standard, section 6.2.7 - it's copyrighted, so I can only link to cppreference: https://en.cppreference.com/w/c/language/type#Compatible_types).", + "created_at": "2022-06-29T09:41:36Z", + "html_url": "https://github.com/neovim/neovim/issues/19125#issuecomment-1169765015", + "id": 1169765015, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/19125", + "node_id": "IC_kwDOAPphoM5FuTKX", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1169765015/reactions" + }, + "updated_at": "2022-06-29T09:41:36Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1169765015", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/9192733?v=4", + "events_url": "https://api.github.com/users/foonathan/events{/privacy}", + "followers_url": "https://api.github.com/users/foonathan/followers", + "following_url": "https://api.github.com/users/foonathan/following{/other_user}", + "gists_url": "https://api.github.com/users/foonathan/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/foonathan", + "id": 9192733, + "login": "foonathan", + "node_id": "MDQ6VXNlcjkxOTI3MzM=", + "organizations_url": "https://api.github.com/users/foonathan/orgs", + "received_events_url": "https://api.github.com/users/foonathan/received_events", + "repos_url": "https://api.github.com/users/foonathan/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/foonathan/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/foonathan/subscriptions", + "type": "User", + "url": "https://api.github.com/users/foonathan" + } + }, + { + "author_association": "CONTRIBUTOR", + "body": "Look for document N2176; it's the final draft of the C17 standard and publicly available.\r\n\r\nAnd yeah, you're right. The types aren't compatible.", + "created_at": "2022-06-29T09:58:45Z", + "html_url": "https://github.com/neovim/neovim/issues/19125#issuecomment-1169782348", + "id": 1169782348, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/19125", + "node_id": "IC_kwDOAPphoM5FuXZM", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1169782348/reactions" + }, + "updated_at": "2022-06-29T09:58:45Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1169782348", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/204006?v=4", + "events_url": "https://api.github.com/users/heftig/events{/privacy}", + "followers_url": "https://api.github.com/users/heftig/followers", + "following_url": "https://api.github.com/users/heftig/following{/other_user}", + "gists_url": "https://api.github.com/users/heftig/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/heftig", + "id": 204006, + "login": "heftig", + "node_id": "MDQ6VXNlcjIwNDAwNg==", + "organizations_url": "https://api.github.com/users/heftig/orgs", + "received_events_url": "https://api.github.com/users/heftig/received_events", + "repos_url": "https://api.github.com/users/heftig/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/heftig/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/heftig/subscriptions", + "type": "User", + "url": "https://api.github.com/users/heftig" + } + }, + { + "author_association": "MEMBER", + "body": "So it looks like this is a plan:\r\n\r\n1. set `-fno-strict-aliasing` for now, to fix the build (backport to 0.7.x)\r\n2. in order to remove `-fno-strict-aliasing`, we need these changes:\r\n - anywhere we are casting to `(char **)`, change the `char_u**` source to `char**` and remove the cast \r\n - anywhere we are casting to `(char_u **)`, change the `char_u**` target to `char**` and remove the cast \r\n\r\nAdded wiki page: https://github.com/neovim/neovim/wiki/Removing-char_u", + "created_at": "2022-06-29T11:41:04Z", + "html_url": "https://github.com/neovim/neovim/issues/19125#issuecomment-1169877648", + "id": 1169877648, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/19125", + "node_id": "IC_kwDOAPphoM5FuuqQ", + "performed_via_github_app": null, + "reactions": { + "+1": 1, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 1, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1169877648/reactions" + }, + "updated_at": "2022-06-29T12:04:26Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1169877648", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/1359421?v=4", + "events_url": "https://api.github.com/users/justinmk/events{/privacy}", + "followers_url": "https://api.github.com/users/justinmk/followers", + "following_url": "https://api.github.com/users/justinmk/following{/other_user}", + "gists_url": "https://api.github.com/users/justinmk/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/justinmk", + "id": 1359421, + "login": "justinmk", + "node_id": "MDQ6VXNlcjEzNTk0MjE=", + "organizations_url": "https://api.github.com/users/justinmk/orgs", + "received_events_url": "https://api.github.com/users/justinmk/received_events", + "repos_url": "https://api.github.com/users/justinmk/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/justinmk/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/justinmk/subscriptions", + "type": "User", + "url": "https://api.github.com/users/justinmk" + } + }, + { + "author_association": "MEMBER", + "body": "> Look for document N2176; it's the final draft of the C17 standard and publicly available\r\n\r\nidk about N2176, but here's an older version: http://port70.net/~nsz/c/c99/n1256.html#6.5p7\r\n\r\n> An object shall have its stored value accessed only by an lvalue expression that has one of the following types\r\n> ...\r\n> a type that is the signed or unsigned type corresponding to the effective type of the object,\r\n\r\nThat seems to allow char_u <=> char, no?\r\n\r\nThough this part is interesting:\r\n\r\n```\r\nBetween the previous and next sequence point an object shall have its stored value modified at most once by the evaluation of an expression.[72)](http://port70.net/~nsz/c/c99/n1256.html#note72) Furthermore, the prior value shall be read only to determine the value to be stored.[73)](http://port70.net/~nsz/c/c99/n1256.html#note73)\r\n\r\nThis renders undefined statement expressions such as\r\n\r\n i = ++i + 1;\r\n a[i++] = i;\r\nwhile allowing\r\n i = i + 1;\r\n a[i] = i;\r\n```\r\n ", + "created_at": "2022-06-29T11:56:19Z", + "html_url": "https://github.com/neovim/neovim/issues/19125#issuecomment-1169890943", + "id": 1169890943, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/19125", + "node_id": "IC_kwDOAPphoM5Fux5_", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1169890943/reactions" + }, + "updated_at": "2022-06-29T12:02:07Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1169890943", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/1359421?v=4", + "events_url": "https://api.github.com/users/justinmk/events{/privacy}", + "followers_url": "https://api.github.com/users/justinmk/followers", + "following_url": "https://api.github.com/users/justinmk/following{/other_user}", + "gists_url": "https://api.github.com/users/justinmk/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/justinmk", + "id": 1359421, + "login": "justinmk", + "node_id": "MDQ6VXNlcjEzNTk0MjE=", + "organizations_url": "https://api.github.com/users/justinmk/orgs", + "received_events_url": "https://api.github.com/users/justinmk/received_events", + "repos_url": "https://api.github.com/users/justinmk/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/justinmk/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/justinmk/subscriptions", + "type": "User", + "url": "https://api.github.com/users/justinmk" + } + }, + { + "author_association": "CONTRIBUTOR", + "body": "> That seems to allow char_u <=> char, no?\r\n\r\nYes, but only directly: You can access a `char` via a `char_u*`. Accessing a `char*` via a `char_u**` remains undefined.\r\n\r\n`char*` is a pointer and has no \"corresponding unsigned type\".", + "created_at": "2022-06-29T12:05:33Z", + "html_url": "https://github.com/neovim/neovim/issues/19125#issuecomment-1169899002", + "id": 1169899002, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/19125", + "node_id": "IC_kwDOAPphoM5Fuz36", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1169899002/reactions" + }, + "updated_at": "2022-06-29T12:07:52Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1169899002", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/204006?v=4", + "events_url": "https://api.github.com/users/heftig/events{/privacy}", + "followers_url": "https://api.github.com/users/heftig/followers", + "following_url": "https://api.github.com/users/heftig/following{/other_user}", + "gists_url": "https://api.github.com/users/heftig/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/heftig", + "id": 204006, + "login": "heftig", + "node_id": "MDQ6VXNlcjIwNDAwNg==", + "organizations_url": "https://api.github.com/users/heftig/orgs", + "received_events_url": "https://api.github.com/users/heftig/received_events", + "repos_url": "https://api.github.com/users/heftig/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/heftig/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/heftig/subscriptions", + "type": "User", + "url": "https://api.github.com/users/heftig" + } + }, + { + "author_association": "MEMBER", + "body": "> Yes, but only directly: You can access a `char` via a `char_u*`. Accessing a `char*` via a `char_u**` remains undefined.\r\n\r\nAh, undefined here literally means \"they don't address it at all in the standard\"? That's hilarious. So the way to figure out how C works is to comb through every sentence in the standard and then decide if the exact thing you want to do was or wasn't explicitly mentioned.", + "created_at": "2022-06-29T12:12:19Z", + "html_url": "https://github.com/neovim/neovim/issues/19125#issuecomment-1169904956", + "id": 1169904956, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/19125", + "node_id": "IC_kwDOAPphoM5Fu1U8", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1169904956/reactions" + }, + "updated_at": "2022-06-29T12:13:14Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1169904956", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/1359421?v=4", + "events_url": "https://api.github.com/users/justinmk/events{/privacy}", + "followers_url": "https://api.github.com/users/justinmk/followers", + "following_url": "https://api.github.com/users/justinmk/following{/other_user}", + "gists_url": "https://api.github.com/users/justinmk/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/justinmk", + "id": 1359421, + "login": "justinmk", + "node_id": "MDQ6VXNlcjEzNTk0MjE=", + "organizations_url": "https://api.github.com/users/justinmk/orgs", + "received_events_url": "https://api.github.com/users/justinmk/received_events", + "repos_url": "https://api.github.com/users/justinmk/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/justinmk/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/justinmk/subscriptions", + "type": "User", + "url": "https://api.github.com/users/justinmk" + } + }, + { + "author_association": "MEMBER", + "body": "Yes, anything which is not specified in exact detail in the standard in enough lawyer-proof language can be reinterpreted in any new compiler version to screw over working code that more or less universally was accepted by all existing compilers.", + "created_at": "2022-06-29T12:16:28Z", + "html_url": "https://github.com/neovim/neovim/issues/19125#issuecomment-1169908701", + "id": 1169908701, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/19125", + "node_id": "IC_kwDOAPphoM5Fu2Pd", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 1, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 1, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1169908701/reactions" + }, + "updated_at": "2022-06-29T12:16:28Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1169908701", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/1363104?v=4", + "events_url": "https://api.github.com/users/bfredl/events{/privacy}", + "followers_url": "https://api.github.com/users/bfredl/followers", + "following_url": "https://api.github.com/users/bfredl/following{/other_user}", + "gists_url": "https://api.github.com/users/bfredl/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/bfredl", + "id": 1363104, + "login": "bfredl", + "node_id": "MDQ6VXNlcjEzNjMxMDQ=", + "organizations_url": "https://api.github.com/users/bfredl/orgs", + "received_events_url": "https://api.github.com/users/bfredl/received_events", + "repos_url": "https://api.github.com/users/bfredl/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/bfredl/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/bfredl/subscriptions", + "type": "User", + "url": "https://api.github.com/users/bfredl" + } + }, + { + "author_association": "NONE", + "body": "> > An object shall have its stored value accessed only by an lvalue expression that has one of the following types\r\n> > ...\r\n> > a type that is the signed or unsigned type corresponding to the effective type of the object,\r\n> \r\n> That seems to allow char_u <=> char, no?\r\n\r\nchar_u <=> char is allowed, but only because char_u can alias anything, not because of the quoted line. The signed type corresponding to `unsigned char` isn't `char`, it's `signed char`. `char`, `signed char`, and `unsigned char` are three separate types (but `int` and `signed int` is the same type). C's weird.\r\n", + "created_at": "2022-06-29T12:49:16Z", + "html_url": "https://github.com/neovim/neovim/issues/19125#issuecomment-1169939389", + "id": 1169939389, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/19125", + "node_id": "IC_kwDOAPphoM5Fu9u9", + "performed_via_github_app": null, + "reactions": { + "+1": 2, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 2, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1169939389/reactions" + }, + "updated_at": "2022-06-29T12:49:16Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1169939389", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/9192733?v=4", + "events_url": "https://api.github.com/users/foonathan/events{/privacy}", + "followers_url": "https://api.github.com/users/foonathan/followers", + "following_url": "https://api.github.com/users/foonathan/following{/other_user}", + "gists_url": "https://api.github.com/users/foonathan/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/foonathan", + "id": 9192733, + "login": "foonathan", + "node_id": "MDQ6VXNlcjkxOTI3MzM=", + "organizations_url": "https://api.github.com/users/foonathan/orgs", + "received_events_url": "https://api.github.com/users/foonathan/received_events", + "repos_url": "https://api.github.com/users/foonathan/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/foonathan/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/foonathan/subscriptions", + "type": "User", + "url": "https://api.github.com/users/foonathan" + } + }, + { + "author_association": "NONE", + "body": "> C's weird.\r\n\r\nTime to port neovim to Rust? :laughing: ", + "created_at": "2022-06-29T15:37:22Z", + "html_url": "https://github.com/neovim/neovim/issues/19125#issuecomment-1170136430", + "id": 1170136430, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/19125", + "node_id": "IC_kwDOAPphoM5Fvt1u", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1170136430/reactions" + }, + "updated_at": "2022-06-29T15:38:17Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1170136430", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/10906?v=4", + "events_url": "https://api.github.com/users/giddie/events{/privacy}", + "followers_url": "https://api.github.com/users/giddie/followers", + "following_url": "https://api.github.com/users/giddie/following{/other_user}", + "gists_url": "https://api.github.com/users/giddie/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/giddie", + "id": 10906, + "login": "giddie", + "node_id": "MDQ6VXNlcjEwOTA2", + "organizations_url": "https://api.github.com/users/giddie/orgs", + "received_events_url": "https://api.github.com/users/giddie/received_events", + "repos_url": "https://api.github.com/users/giddie/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/giddie/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/giddie/subscriptions", + "type": "User", + "url": "https://api.github.com/users/giddie" + } + }, + { + "author_association": "MEMBER", + "body": "@foonathan thanks for that note, added to https://github.com/neovim/neovim/wiki/Removing-char_u", + "created_at": "2022-06-29T16:08:01Z", + "html_url": "https://github.com/neovim/neovim/issues/19125#issuecomment-1170180158", + "id": 1170180158, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/19125", + "node_id": "IC_kwDOAPphoM5Fv4g-", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1170180158/reactions" + }, + "updated_at": "2022-06-29T16:08:01Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1170180158", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/1359421?v=4", + "events_url": "https://api.github.com/users/justinmk/events{/privacy}", + "followers_url": "https://api.github.com/users/justinmk/followers", + "following_url": "https://api.github.com/users/justinmk/following{/other_user}", + "gists_url": "https://api.github.com/users/justinmk/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/justinmk", + "id": 1359421, + "login": "justinmk", + "node_id": "MDQ6VXNlcjEzNTk0MjE=", + "organizations_url": "https://api.github.com/users/justinmk/orgs", + "received_events_url": "https://api.github.com/users/justinmk/received_events", + "repos_url": "https://api.github.com/users/justinmk/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/justinmk/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/justinmk/subscriptions", + "type": "User", + "url": "https://api.github.com/users/justinmk" + } + }, + { + "author_association": "MEMBER", + "body": "Is this still an issue on latest nightly?", + "created_at": "2022-08-21T21:54:06Z", + "html_url": "https://github.com/neovim/neovim/issues/19125#issuecomment-1221627490", + "id": 1221627490, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/19125", + "node_id": "IC_kwDOAPphoM5I0I5i", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1221627490/reactions" + }, + "updated_at": "2022-08-21T21:54:06Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1221627490", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/1359421?v=4", + "events_url": "https://api.github.com/users/justinmk/events{/privacy}", + "followers_url": "https://api.github.com/users/justinmk/followers", + "following_url": "https://api.github.com/users/justinmk/following{/other_user}", + "gists_url": "https://api.github.com/users/justinmk/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/justinmk", + "id": 1359421, + "login": "justinmk", + "node_id": "MDQ6VXNlcjEzNTk0MjE=", + "organizations_url": "https://api.github.com/users/justinmk/orgs", + "received_events_url": "https://api.github.com/users/justinmk/received_events", + "repos_url": "https://api.github.com/users/justinmk/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/justinmk/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/justinmk/subscriptions", + "type": "User", + "url": "https://api.github.com/users/justinmk" + } + }, + { + "author_association": "MEMBER", + "body": "IIRC it has been fixed by a PR removing char_u.", + "created_at": "2022-08-21T22:14:09Z", + "html_url": "https://github.com/neovim/neovim/issues/19125#issuecomment-1221630289", + "id": 1221630289, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/19125", + "node_id": "IC_kwDOAPphoM5I0JlR", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1221630289/reactions" + }, + "updated_at": "2022-08-21T22:14:09Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1221630289", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/35768171?v=4", + "events_url": "https://api.github.com/users/zeertzjq/events{/privacy}", + "followers_url": "https://api.github.com/users/zeertzjq/followers", + "following_url": "https://api.github.com/users/zeertzjq/following{/other_user}", + "gists_url": "https://api.github.com/users/zeertzjq/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/zeertzjq", + "id": 35768171, + "login": "zeertzjq", + "node_id": "MDQ6VXNlcjM1NzY4MTcx", + "organizations_url": "https://api.github.com/users/zeertzjq/orgs", + "received_events_url": "https://api.github.com/users/zeertzjq/received_events", + "repos_url": "https://api.github.com/users/zeertzjq/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/zeertzjq/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/zeertzjq/subscriptions", + "type": "User", + "url": "https://api.github.com/users/zeertzjq" + } + } + ], + "comments": 24, + "comments_url": "https://api.github.com/repos/neovim/neovim/issues/19125/comments", + "created_at": "2022-06-27T13:26:08Z", + "events_url": "https://api.github.com/repos/neovim/neovim/issues/19125/events", + "html_url": "https://github.com/neovim/neovim/issues/19125", + "id": 1285807998, + "labels": [ + { + "color": "f9d0c4", + "default": true, + "description": "issues reporting wrong behavior", + "id": 77997474, + "name": "bug", + "node_id": "MDU6TGFiZWw3Nzk5NzQ3NA==", + "url": "https://api.github.com/repos/neovim/neovim/labels/bug" + }, + { + "color": "c5def5", + "default": false, + "description": "building and installing Neovim using the provided scripts", + "id": 84723321, + "name": "build", + "node_id": "MDU6TGFiZWw4NDcyMzMyMQ==", + "url": "https://api.github.com/repos/neovim/neovim/labels/build" + } + ], + "labels_url": "https://api.github.com/repos/neovim/neovim/issues/19125/labels{/name}", + "locked": false, + "milestone": { + "closed_at": "2022-10-01T21:48:50Z", + "closed_issues": 156, + "created_at": "2022-08-18T10:21:07Z", + "creator": { + "avatar_url": "https://avatars.githubusercontent.com/u/1363104?v=4", + "events_url": "https://api.github.com/users/bfredl/events{/privacy}", + "followers_url": "https://api.github.com/users/bfredl/followers", + "following_url": "https://api.github.com/users/bfredl/following{/other_user}", + "gists_url": "https://api.github.com/users/bfredl/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/bfredl", + "id": 1363104, + "login": "bfredl", + "node_id": "MDQ6VXNlcjEzNjMxMDQ=", + "organizations_url": "https://api.github.com/users/bfredl/orgs", + "received_events_url": "https://api.github.com/users/bfredl/received_events", + "repos_url": "https://api.github.com/users/bfredl/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/bfredl/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/bfredl/subscriptions", + "type": "User", + "url": "https://api.github.com/users/bfredl" + }, + "description": "", + "due_on": "2022-09-30T07:00:00Z", + "html_url": "https://github.com/neovim/neovim/milestone/32", + "id": 8320818, + "labels_url": "https://api.github.com/repos/neovim/neovim/milestones/32/labels", + "node_id": "MI_kwDOAPphoM4Afvcy", + "number": 32, + "open_issues": 0, + "state": "closed", + "title": "0.8", + "updated_at": "2022-12-29T00:32:30Z", + "url": "https://api.github.com/repos/neovim/neovim/milestones/32" + }, + "node_id": "I_kwDOAPphoM5Mo99-", + "number": 19125, + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/19125/reactions" + }, + "repository_url": "https://api.github.com/repos/neovim/neovim", + "state": "closed", + "state_reason": "completed", + "timeline_url": "https://api.github.com/repos/neovim/neovim/issues/19125/timeline", + "title": "Concatenation operator \".=\" does not work for &statusline with GCC 12 Release build", + "updated_at": "2023-08-04T03:25:13Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/19125", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/10906?v=4", + "events_url": "https://api.github.com/users/giddie/events{/privacy}", + "followers_url": "https://api.github.com/users/giddie/followers", + "following_url": "https://api.github.com/users/giddie/following{/other_user}", + "gists_url": "https://api.github.com/users/giddie/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/giddie", + "id": 10906, + "login": "giddie", + "node_id": "MDQ6VXNlcjEwOTA2", + "organizations_url": "https://api.github.com/users/giddie/orgs", + "received_events_url": "https://api.github.com/users/giddie/received_events", + "repos_url": "https://api.github.com/users/giddie/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/giddie/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/giddie/subscriptions", + "type": "User", + "url": "https://api.github.com/users/giddie" + } +} \ No newline at end of file diff --git a/repositories/neovim/issues/19918.json b/repositories/neovim/issues/19918.json index beeb2a72..8e85fc30 100644 --- a/repositories/neovim/issues/19918.json +++ b/repositories/neovim/issues/19918.json @@ -3,7 +3,7 @@ "assignee": null, "assignees": [], "author_association": "MEMBER", - "body": "## Problem\r\n\r\nWhere should \"core introspection\" stuff live? Currently we have introspection interfaces in these places:\r\n\r\n1. `context.c`\r\n2. `nvim_get_api`,\r\n3. `nvim_get_commands`, [nvim_get_functions](https://github.com/neovim/neovim/pull/19667)\r\n4. `src/nvim/eval.lua` (internal)\r\n\r\n## Proposal\r\n\r\n\r\n1. ✅ `context.c` (`nvim_get_context`) is for mutable state that can be _saved and restored_.\r\n - variables, regs, jumps, bufs, gvars, …\r\n2. ✅ `nvim_get_api` is for C/RPC API only.\r\n3. ✅ user-defined Vimscript functions/commands are introspectable via `nvim_get_commands`, [nvim_get_functions](https://github.com/neovim/neovim/pull/19667)\r\n4. [runtime/…/_meta/*.lua](https://github.com/neovim/neovim/tree/master/runtime/lua/vim/_meta) provides docstring annotations for internal functions.\r\n - ✅ `_meta/options.lua` provides annotations for options. [#24528](https://github.com/neovim/neovim/pull/24528)\r\n - ✅ `_meta/vimfn.lua` provides annotations for builtin Vimscript functions. [#24493](https://github.com/neovim/neovim/pull/24493)\r\n - TODO: `_meta/vimcmd.lua` provides annotations for builtin Ex commands.\r\n - TODO: `_meta/vimnormal.lua` provides annotations for builtin Normal commands. [#8029](https://github.com/neovim/neovim/issues/8029) [#18750](https://github.com/neovim/neovim/issues/18750)\r\n\r\n## TODO\r\n\r\n- Document the above.\r\n- Document `runtime/doc/api.mpack` and related `runtime/doc/*.mpack` files that we already ship!\r\n- Provide a util function that makes it easy for plugins to get a Lua structure from docstring annotations.\r\n - This allows \"which-key\" and fuzzy-finder plugins to easily present the info from `_meta/vimfn.lua`.", + "body": "## Problem\r\n\r\nWhere should \"core introspection\" stuff live? Currently we have introspection interfaces in these places:\r\n\r\n1. `context.c`\r\n2. `nvim_get_api`,\r\n3. `nvim_get_commands`, [nvim_get_functions](https://github.com/neovim/neovim/pull/19667)\r\n4. `src/nvim/eval.lua` (internal)\r\n\r\n## Proposal\r\n\r\n\r\n1. ✅ `context.c` (`nvim_get_context`) is for mutable state that can be _saved and restored_.\r\n - variables, regs, jumps, bufs, gvars, …\r\n2. ✅ `nvim_get_api` is for C/RPC API only.\r\n3. ✅ user-defined Vimscript functions/commands are introspectable via:\r\n - `nvim_get_commands`\r\n - [nvim_get_functions](https://github.com/neovim/neovim/pull/19667)\r\n5. [runtime/…/_meta/*.lua](https://github.com/neovim/neovim/tree/master/runtime/lua/vim/_meta) provides docstring annotations for internal functions.\r\n - ✅ `_meta/options.lua` provides annotations for options. [#24528](https://github.com/neovim/neovim/pull/24528)\r\n - ✅ `_meta/vimfn.lua` provides annotations for builtin Vimscript functions. [#24493](https://github.com/neovim/neovim/pull/24493)\r\n - TODO: `_meta/vimcmd.lua` provides annotations for builtin Ex commands.\r\n - TODO: `_meta/vimnormal.lua` provides annotations for builtin Normal commands. [#8029](https://github.com/neovim/neovim/issues/8029) [#18750](https://github.com/neovim/neovim/issues/18750)\r\n\r\n## TODO\r\n\r\n- Document the above.\r\n- Document `runtime/doc/api.mpack` and related `runtime/doc/*.mpack` files that we already ship!\r\n- Provide a util function that makes it easy for plugins to get a Lua structure from docstring annotations.\r\n - This allows \"which-key\" and fuzzy-finder plugins to easily present the info from `_meta/vimfn.lua`.", "closed_at": null, "comment_data": [], "comments": 0, @@ -13,15 +13,6 @@ "html_url": "https://github.com/neovim/neovim/issues/19918", "id": 1348691943, "labels": [ - { - "color": "FBCA04", - "default": false, - "description": "A discussion has run its course and a decision has to be made how to proceed", - "id": 83851236, - "name": "needs:decision", - "node_id": "MDU6TGFiZWw4Mzg1MTIzNg==", - "url": "https://api.github.com/repos/neovim/neovim/labels/needs:decision" - }, { "color": "c5def5", "default": true, @@ -40,15 +31,6 @@ "node_id": "MDU6TGFiZWwxMDM4MTk2NzE=", "url": "https://api.github.com/repos/neovim/neovim/labels/api" }, - { - "color": "FBCA04", - "default": false, - "description": "For PRs that propose significant changes to some part of the architecture or API", - "id": 212680983, - "name": "needs:discussion", - "node_id": "MDU6TGFiZWwyMTI2ODA5ODM=", - "url": "https://api.github.com/repos/neovim/neovim/labels/needs:discussion" - }, { "color": "c5def5", "default": false, @@ -91,7 +73,7 @@ "state_reason": null, "timeline_url": "https://api.github.com/repos/neovim/neovim/issues/19918/timeline", "title": "How should \"introspection\" be exposed?", - "updated_at": "2023-08-02T19:49:56Z", + "updated_at": "2023-08-04T18:25:45Z", "url": "https://api.github.com/repos/neovim/neovim/issues/19918", "user": { "avatar_url": "https://avatars.githubusercontent.com/u/1359421?v=4", diff --git a/repositories/neovim/issues/19985.json b/repositories/neovim/issues/19985.json new file mode 100644 index 00000000..51ee3dc0 --- /dev/null +++ b/repositories/neovim/issues/19985.json @@ -0,0 +1,275 @@ +{ + "active_lock_reason": null, + "assignee": null, + "assignees": [], + "author_association": "CONTRIBUTOR", + "body": "### Neovim version (nvim -v)\n\nNVIM v0.7.2\n\n### Vim (not Nvim) behaves the same?\n\n(doesn't have TermOpen event)\n\n### Operating system/version\n\nlinux 5.19.4-arch1-1\n\n### Terminal name/version\n\nfoot version: 1.13.0 +pgo +ime +graphemes -assertions\n\n### $TERM environment variable\n\nfoot-extra\n\n### Installation\n\nofficial arch repos\n\n### How to reproduce the issue\n\n- `nvim --clean`\r\n- `:autocmd TermOpen * startinsert`\r\n- insert mode, enter `()`, observe how they are highlighted\r\n- `:tabnew | term echo foobar`\n\n### Expected behavior\n\n`foobar` is printed in new terminal tab\n\n### Actual behavior\n\n`foobar` is printed in new terminal tab, but `fo` is highlighted (coordinates where the `()` in the previous tab were highlighted):\r\n\r\n![slurp_2022-08-28_195305](https://user-images.githubusercontent.com/6276613/187088049-db271460-070a-4d04-995a-04b26b004eba.png)\r\n", + "closed_at": "2022-11-29T02:17:58Z", + "comment_data": [ + { + "author_association": "MEMBER", + "body": "Workaround: trigger `CursorMoved` on `TermOpen`:\r\n```vim\r\nautocmd TermOpen * doautocmd CursorMoved\r\n```", + "created_at": "2022-08-28T23:56:33Z", + "html_url": "https://github.com/neovim/neovim/issues/19985#issuecomment-1229586224", + "id": 1229586224, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/19985", + "node_id": "IC_kwDOAPphoM5JSf8w", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1229586224/reactions" + }, + "updated_at": "2022-08-28T23:56:33Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1229586224", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/35768171?v=4", + "events_url": "https://api.github.com/users/zeertzjq/events{/privacy}", + "followers_url": "https://api.github.com/users/zeertzjq/followers", + "following_url": "https://api.github.com/users/zeertzjq/following{/other_user}", + "gists_url": "https://api.github.com/users/zeertzjq/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/zeertzjq", + "id": 35768171, + "login": "zeertzjq", + "node_id": "MDQ6VXNlcjM1NzY4MTcx", + "organizations_url": "https://api.github.com/users/zeertzjq/orgs", + "received_events_url": "https://api.github.com/users/zeertzjq/received_events", + "repos_url": "https://api.github.com/users/zeertzjq/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/zeertzjq/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/zeertzjq/subscriptions", + "type": "User", + "url": "https://api.github.com/users/zeertzjq" + } + }, + { + "author_association": "CONTRIBUTOR", + "body": "Thanks!", + "created_at": "2022-08-29T03:13:51Z", + "html_url": "https://github.com/neovim/neovim/issues/19985#issuecomment-1229702244", + "id": 1229702244, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/19985", + "node_id": "IC_kwDOAPphoM5JS8Rk", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1229702244/reactions" + }, + "updated_at": "2022-08-29T03:13:51Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1229702244", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/6276613?v=4", + "events_url": "https://api.github.com/users/camoz/events{/privacy}", + "followers_url": "https://api.github.com/users/camoz/followers", + "following_url": "https://api.github.com/users/camoz/following{/other_user}", + "gists_url": "https://api.github.com/users/camoz/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/camoz", + "id": 6276613, + "login": "camoz", + "node_id": "MDQ6VXNlcjYyNzY2MTM=", + "organizations_url": "https://api.github.com/users/camoz/orgs", + "received_events_url": "https://api.github.com/users/camoz/received_events", + "repos_url": "https://api.github.com/users/camoz/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/camoz/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/camoz/subscriptions", + "type": "User", + "url": "https://api.github.com/users/camoz" + } + }, + { + "author_association": "NONE", + "body": "I'm not 100% sure it's related, but found a similar issue with VimTex a year ago (the relevant comment is https://github.com/lervag/vimtex/issues/1595#issuecomment-731883512, mid-paragraph) and traced its origin to this Neovim bug: https://github.com/neovim/neovim/issues/11878", + "created_at": "2022-08-29T18:49:36Z", + "html_url": "https://github.com/neovim/neovim/issues/19985#issuecomment-1230719297", + "id": 1230719297, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/19985", + "node_id": "IC_kwDOAPphoM5JW0lB", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1230719297/reactions" + }, + "updated_at": "2022-08-29T18:49:48Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1230719297", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/29781022?v=4", + "events_url": "https://api.github.com/users/andryandrew/events{/privacy}", + "followers_url": "https://api.github.com/users/andryandrew/followers", + "following_url": "https://api.github.com/users/andryandrew/following{/other_user}", + "gists_url": "https://api.github.com/users/andryandrew/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/andryandrew", + "id": 29781022, + "login": "andryandrew", + "node_id": "MDQ6VXNlcjI5NzgxMDIy", + "organizations_url": "https://api.github.com/users/andryandrew/orgs", + "received_events_url": "https://api.github.com/users/andryandrew/received_events", + "repos_url": "https://api.github.com/users/andryandrew/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/andryandrew/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/andryandrew/subscriptions", + "type": "User", + "url": "https://api.github.com/users/andryandrew" + } + }, + { + "author_association": "MEMBER", + "body": "Actually in Vim the matches also exist in terminal buffer when doing a similar thing. They are just not drawn in Vim.", + "created_at": "2022-08-29T22:21:29Z", + "html_url": "https://github.com/neovim/neovim/issues/19985#issuecomment-1230933220", + "id": 1230933220, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/19985", + "node_id": "IC_kwDOAPphoM5JXozk", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1230933220/reactions" + }, + "updated_at": "2022-08-29T22:22:37Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1230933220", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/35768171?v=4", + "events_url": "https://api.github.com/users/zeertzjq/events{/privacy}", + "followers_url": "https://api.github.com/users/zeertzjq/followers", + "following_url": "https://api.github.com/users/zeertzjq/following{/other_user}", + "gists_url": "https://api.github.com/users/zeertzjq/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/zeertzjq", + "id": 35768171, + "login": "zeertzjq", + "node_id": "MDQ6VXNlcjM1NzY4MTcx", + "organizations_url": "https://api.github.com/users/zeertzjq/orgs", + "received_events_url": "https://api.github.com/users/zeertzjq/received_events", + "repos_url": "https://api.github.com/users/zeertzjq/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/zeertzjq/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/zeertzjq/subscriptions", + "type": "User", + "url": "https://api.github.com/users/zeertzjq" + } + } + ], + "comments": 4, + "comments_url": "https://api.github.com/repos/neovim/neovim/issues/19985/comments", + "created_at": "2022-08-28T17:57:27Z", + "events_url": "https://api.github.com/repos/neovim/neovim/issues/19985/events", + "html_url": "https://github.com/neovim/neovim/issues/19985", + "id": 1353425974, + "labels": [ + { + "color": "c5def5", + "default": false, + "description": "funtime", + "id": 120251370, + "name": "runtime", + "node_id": "MDU6TGFiZWwxMjAyNTEzNzA=", + "url": "https://api.github.com/repos/neovim/neovim/labels/runtime" + }, + { + "color": "F9D0C4", + "default": false, + "description": "wrong behavior inherited from vim", + "id": 154310492, + "name": "bug-vim", + "node_id": "MDU6TGFiZWwxNTQzMTA0OTI=", + "url": "https://api.github.com/repos/neovim/neovim/labels/bug-vim" + }, + { + "color": "c5def5", + "default": false, + "description": "built-in :terminal or :shell", + "id": 212696822, + "name": "terminal", + "node_id": "MDU6TGFiZWwyMTI2OTY4MjI=", + "url": "https://api.github.com/repos/neovim/neovim/labels/terminal" + }, + { + "color": "C5DEF5", + "default": false, + "description": "events, autocommands", + "id": 3341085842, + "name": "events", + "node_id": "MDU6TGFiZWwzMzQxMDg1ODQy", + "url": "https://api.github.com/repos/neovim/neovim/labels/events" + } + ], + "labels_url": "https://api.github.com/repos/neovim/neovim/issues/19985/labels{/name}", + "locked": false, + "milestone": null, + "node_id": "I_kwDOAPphoM5Qq6Q2", + "number": 19985, + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/19985/reactions" + }, + "repository_url": "https://api.github.com/repos/neovim/neovim", + "state": "closed", + "state_reason": "completed", + "timeline_url": "https://api.github.com/repos/neovim/neovim/issues/19985/timeline", + "title": "Highlighting \"bleeds\" into terminal buffer", + "updated_at": "2023-08-04T03:24:46Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/19985", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/6276613?v=4", + "events_url": "https://api.github.com/users/camoz/events{/privacy}", + "followers_url": "https://api.github.com/users/camoz/followers", + "following_url": "https://api.github.com/users/camoz/following{/other_user}", + "gists_url": "https://api.github.com/users/camoz/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/camoz", + "id": 6276613, + "login": "camoz", + "node_id": "MDQ6VXNlcjYyNzY2MTM=", + "organizations_url": "https://api.github.com/users/camoz/orgs", + "received_events_url": "https://api.github.com/users/camoz/received_events", + "repos_url": "https://api.github.com/users/camoz/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/camoz/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/camoz/subscriptions", + "type": "User", + "url": "https://api.github.com/users/camoz" + } +} \ No newline at end of file diff --git a/repositories/neovim/issues/20029.json b/repositories/neovim/issues/20029.json new file mode 100644 index 00000000..05531a81 --- /dev/null +++ b/repositories/neovim/issues/20029.json @@ -0,0 +1,152 @@ +{ + "active_lock_reason": null, + "assignee": null, + "assignees": [], + "author_association": "NONE", + "body": "### Neovim version (nvim -v)\r\n\r\n0.7.2\r\n\r\n### Vim (not Nvim) behaves the same?\r\n\r\nno, vim 9.0\r\n\r\n### Operating system/version\r\n\r\nmacOS 12.3.1\r\n\r\n### Terminal name/version\r\n\r\nHyper 3.3.0 (stable), Terminal 2.12.5\r\n\r\n### $TERM environment variable\r\n\r\nscreen-256color\r\n\r\n### Installation\r\n\r\nbrew\r\n\r\n### How to reproduce the issue\r\n\r\nnvim --clean\r\n```\r\n:vnoremap rcd ``>o# rubocop:enable asdfV`\r\n< Visual-block select a few lines >\r\nrcd\r\n\r\n### Expected behavior\r\n\r\nThe selected text should be surrounded by\r\n`# rubocop:disable `\r\n`# rubocop:enable `\r\nand the command line should contain\r\n`:'<,'>s/asdf/`\r\nwith the cursor at the end, ready for me to replace `asdf`. I then type a string \"Lint/EmptyBlock\" and the two `rubocop` lines now read\r\n`# rubocop:disable Lint/EmptyBlock`\r\n`# rubocop:enable Lint/EmptyBlock`.\r\n\r\n### Actual behavior\r\n\r\nWhen I hit any key after `rcd`, both of my `rubocop` lines completely vanish, while my cursor is still down in the command line. Hitting `Enter` leads to the error `E486: Pattern not found: asdf`", + "closed_at": "2022-09-25T23:00:38Z", + "comment_data": [ + { + "author_association": "MEMBER", + "body": "In v0.7.2 you can work around this by breaking undo before starting the substitution:\r\n```vim\r\n:vnoremap rcd ``>o# rubocop:enable asdfV`let &undolevels = &undolevels:s/asdf/\r\n```", + "created_at": "2022-08-31T23:04:36Z", + "html_url": "https://github.com/neovim/neovim/issues/20029#issuecomment-1233530819", + "id": 1233530819, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/20029", + "node_id": "IC_kwDOAPphoM5Jhi_D", + "performed_via_github_app": null, + "reactions": { + "+1": 2, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 2, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1233530819/reactions" + }, + "updated_at": "2022-08-31T23:04:36Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1233530819", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/35768171?v=4", + "events_url": "https://api.github.com/users/zeertzjq/events{/privacy}", + "followers_url": "https://api.github.com/users/zeertzjq/followers", + "following_url": "https://api.github.com/users/zeertzjq/following{/other_user}", + "gists_url": "https://api.github.com/users/zeertzjq/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/zeertzjq", + "id": 35768171, + "login": "zeertzjq", + "node_id": "MDQ6VXNlcjM1NzY4MTcx", + "organizations_url": "https://api.github.com/users/zeertzjq/orgs", + "received_events_url": "https://api.github.com/users/zeertzjq/received_events", + "repos_url": "https://api.github.com/users/zeertzjq/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/zeertzjq/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/zeertzjq/subscriptions", + "type": "User", + "url": "https://api.github.com/users/zeertzjq" + } + } + ], + "comments": 1, + "comments_url": "https://api.github.com/repos/neovim/neovim/issues/20029/comments", + "created_at": "2022-08-31T18:42:28Z", + "events_url": "https://api.github.com/repos/neovim/neovim/issues/20029/events", + "html_url": "https://github.com/neovim/neovim/issues/20029", + "id": 1357717346, + "labels": [ + { + "color": "f9d0c4", + "default": true, + "description": "issues reporting wrong behavior", + "id": 77997474, + "name": "bug", + "node_id": "MDU6TGFiZWw3Nzk5NzQ3NA==", + "url": "https://api.github.com/repos/neovim/neovim/labels/bug" + } + ], + "labels_url": "https://api.github.com/repos/neovim/neovim/issues/20029/labels{/name}", + "locked": false, + "milestone": { + "closed_at": "2022-10-01T21:48:50Z", + "closed_issues": 156, + "created_at": "2022-08-18T10:21:07Z", + "creator": { + "avatar_url": "https://avatars.githubusercontent.com/u/1363104?v=4", + "events_url": "https://api.github.com/users/bfredl/events{/privacy}", + "followers_url": "https://api.github.com/users/bfredl/followers", + "following_url": "https://api.github.com/users/bfredl/following{/other_user}", + "gists_url": "https://api.github.com/users/bfredl/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/bfredl", + "id": 1363104, + "login": "bfredl", + "node_id": "MDQ6VXNlcjEzNjMxMDQ=", + "organizations_url": "https://api.github.com/users/bfredl/orgs", + "received_events_url": "https://api.github.com/users/bfredl/received_events", + "repos_url": "https://api.github.com/users/bfredl/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/bfredl/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/bfredl/subscriptions", + "type": "User", + "url": "https://api.github.com/users/bfredl" + }, + "description": "", + "due_on": "2022-09-30T07:00:00Z", + "html_url": "https://github.com/neovim/neovim/milestone/32", + "id": 8320818, + "labels_url": "https://api.github.com/repos/neovim/neovim/milestones/32/labels", + "node_id": "MI_kwDOAPphoM4Afvcy", + "number": 32, + "open_issues": 0, + "state": "closed", + "title": "0.8", + "updated_at": "2022-12-29T00:32:30Z", + "url": "https://api.github.com/repos/neovim/neovim/milestones/32" + }, + "node_id": "I_kwDOAPphoM5Q7R9i", + "number": 20029, + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/20029/reactions" + }, + "repository_url": "https://api.github.com/repos/neovim/neovim", + "state": "closed", + "state_reason": "completed", + "timeline_url": "https://api.github.com/repos/neovim/neovim/issues/20029/timeline", + "title": "inccommand: Visual remapping with regex substitution behaves unexpectedly", + "updated_at": "2023-08-04T03:24:32Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/20029", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/5301614?v=4", + "events_url": "https://api.github.com/users/bassguitarbill/events{/privacy}", + "followers_url": "https://api.github.com/users/bassguitarbill/followers", + "following_url": "https://api.github.com/users/bassguitarbill/following{/other_user}", + "gists_url": "https://api.github.com/users/bassguitarbill/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/bassguitarbill", + "id": 5301614, + "login": "bassguitarbill", + "node_id": "MDQ6VXNlcjUzMDE2MTQ=", + "organizations_url": "https://api.github.com/users/bassguitarbill/orgs", + "received_events_url": "https://api.github.com/users/bassguitarbill/received_events", + "repos_url": "https://api.github.com/users/bassguitarbill/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/bassguitarbill/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/bassguitarbill/subscriptions", + "type": "User", + "url": "https://api.github.com/users/bassguitarbill" + } +} \ No newline at end of file diff --git a/repositories/neovim/issues/20183.json b/repositories/neovim/issues/20183.json new file mode 100644 index 00000000..9ade9ef4 --- /dev/null +++ b/repositories/neovim/issues/20183.json @@ -0,0 +1,161 @@ +{ + "active_lock_reason": null, + "assignee": null, + "assignees": [], + "author_association": "CONTRIBUTOR", + "body": "### Feature already in Vim?\r\n\r\nNo\r\n\r\n### Feature description\r\n\r\nDynamic registration of textDocument/didSave is convenient for language servers to be made aware of configuration changes in files with different file types. An example of this is `rust-analyzer`, which reloads on changes to `Cargo.toml`, which is not a rust file:\r\n\r\n```json\r\n\"registrations\": [\r\n {\r\n \"id\": \"textDocument/didSave\",\r\n \"method\": \"textDocument/didSave\",\r\n \"registerOptions\": {\r\n \"includeText\": false,\r\n \"documentSelector\": [\r\n {\r\n \"pattern\": \"**/*.rs\"\r\n },\r\n {\r\n \"pattern\": \"**/Cargo.toml\"\r\n },\r\n {\r\n \"pattern\": \"**/Cargo.lock\"\r\n }\r\n ]\r\n }\r\n }\r\n ]\r\n```", + "closed_at": null, + "comment_data": [ + { + "author_association": "MEMBER", + "body": "this should be supported now ", + "created_at": "2023-08-05T01:42:43Z", + "html_url": "https://github.com/neovim/neovim/issues/20183#issuecomment-1666340996", + "id": 1666340996, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/20183", + "node_id": "IC_kwDOAPphoM5jUliE", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1666340996/reactions" + }, + "updated_at": "2023-08-05T01:42:43Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1666340996", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/41671631?v=4", + "events_url": "https://api.github.com/users/glepnir/events{/privacy}", + "followers_url": "https://api.github.com/users/glepnir/followers", + "following_url": "https://api.github.com/users/glepnir/following{/other_user}", + "gists_url": "https://api.github.com/users/glepnir/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/glepnir", + "id": 41671631, + "login": "glepnir", + "node_id": "MDQ6VXNlcjQxNjcxNjMx", + "organizations_url": "https://api.github.com/users/glepnir/orgs", + "received_events_url": "https://api.github.com/users/glepnir/received_events", + "repos_url": "https://api.github.com/users/glepnir/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/glepnir/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/glepnir/subscriptions", + "type": "User", + "url": "https://api.github.com/users/glepnir" + } + } + ], + "comments": 1, + "comments_url": "https://api.github.com/repos/neovim/neovim/issues/20183/comments", + "created_at": "2022-09-13T11:26:50Z", + "events_url": "https://api.github.com/repos/neovim/neovim/issues/20183/events", + "html_url": "https://github.com/neovim/neovim/issues/20183", + "id": 1371294023, + "labels": [ + { + "color": "c2e0c6", + "default": true, + "description": "feature request", + "id": 77997476, + "name": "enhancement", + "node_id": "MDU6TGFiZWw3Nzk5NzQ3Ng==", + "url": "https://api.github.com/repos/neovim/neovim/labels/enhancement" + }, + { + "color": "c5def5", + "default": false, + "description": null, + "id": 662566370, + "name": "lsp", + "node_id": "MDU6TGFiZWw2NjI1NjYzNzA=", + "url": "https://api.github.com/repos/neovim/neovim/labels/lsp" + } + ], + "labels_url": "https://api.github.com/repos/neovim/neovim/issues/20183/labels{/name}", + "locked": false, + "milestone": { + "closed_at": null, + "closed_issues": 570, + "created_at": "2014-05-10T20:43:04Z", + "creator": { + "avatar_url": "https://avatars.githubusercontent.com/u/1359421?v=4", + "events_url": "https://api.github.com/users/justinmk/events{/privacy}", + "followers_url": "https://api.github.com/users/justinmk/followers", + "following_url": "https://api.github.com/users/justinmk/following{/other_user}", + "gists_url": "https://api.github.com/users/justinmk/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/justinmk", + "id": 1359421, + "login": "justinmk", + "node_id": "MDQ6VXNlcjEzNTk0MjE=", + "organizations_url": "https://api.github.com/users/justinmk/orgs", + "received_events_url": "https://api.github.com/users/justinmk/received_events", + "repos_url": "https://api.github.com/users/justinmk/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/justinmk/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/justinmk/subscriptions", + "type": "User", + "url": "https://api.github.com/users/justinmk" + }, + "description": "Low priority. Not planned for the current target, may be reassigned.", + "due_on": null, + "html_url": "https://github.com/neovim/neovim/milestone/6", + "id": 655037, + "labels_url": "https://api.github.com/repos/neovim/neovim/milestones/6/labels", + "node_id": "MDk6TWlsZXN0b25lNjU1MDM3", + "number": 6, + "open_issues": 417, + "state": "open", + "title": "backlog", + "updated_at": "2023-08-04T21:11:41Z", + "url": "https://api.github.com/repos/neovim/neovim/milestones/6" + }, + "node_id": "I_kwDOAPphoM5RvElH", + "number": 20183, + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/20183/reactions" + }, + "repository_url": "https://api.github.com/repos/neovim/neovim", + "state": "open", + "state_reason": null, + "timeline_url": "https://api.github.com/repos/neovim/neovim/issues/20183/timeline", + "title": "lsp: Dynamic registration for textDocument/didSave", + "updated_at": "2023-08-05T01:42:43Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/20183", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/22473248?v=4", + "events_url": "https://api.github.com/users/Jesse-Bakker/events{/privacy}", + "followers_url": "https://api.github.com/users/Jesse-Bakker/followers", + "following_url": "https://api.github.com/users/Jesse-Bakker/following{/other_user}", + "gists_url": "https://api.github.com/users/Jesse-Bakker/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/Jesse-Bakker", + "id": 22473248, + "login": "Jesse-Bakker", + "node_id": "MDQ6VXNlcjIyNDczMjQ4", + "organizations_url": "https://api.github.com/users/Jesse-Bakker/orgs", + "received_events_url": "https://api.github.com/users/Jesse-Bakker/received_events", + "repos_url": "https://api.github.com/users/Jesse-Bakker/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/Jesse-Bakker/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/Jesse-Bakker/subscriptions", + "type": "User", + "url": "https://api.github.com/users/Jesse-Bakker" + } +} \ No newline at end of file diff --git a/repositories/neovim/issues/20456.json b/repositories/neovim/issues/20456.json new file mode 100644 index 00000000..0f92b1a3 --- /dev/null +++ b/repositories/neovim/issues/20456.json @@ -0,0 +1,1050 @@ +{ + "active_lock_reason": null, + "assignee": null, + "assignees": [], + "author_association": "CONTRIBUTOR", + "body": "### Neovim version (nvim -v)\n\nNVIM v0.8.0-1210-gd367ed9b2\n\n### Vim (not Nvim) behaves the same?\n\nno, vim 9.0.354\n\n### Operating system/version\n\nLinux 5.19.12-arch1-1\n\n### Terminal name/version\n\nalacritty 0.10.1\n\n### $TERM environment variable\n\nalacritty\n\n### Installation\n\nArch Linux Pacman\n\n### How to reproduce the issue\n\nCreate a test.vim file with the following contents and open it.\r\n\r\n```vim\r\nlua < Can you reproduce this with Nvim 0.8 release and `nvim --clean`?\r\n\r\nYes, the reproduction steps I provided were tested with Nvim 0.8 release and `nvim -u NORC`.\r\n\r\nI don't think this issue is with marcuscf/vim-lua... Using the latest syntax file from that repo I can reproduce the issue in Nvim 0.8 but not in 0.7.\r\n\r\nAnd as I said in the issue I also saw this happen with another language syntax (TovarishFin/vim-solidity).", + "created_at": "2022-10-03T21:22:36Z", + "html_url": "https://github.com/neovim/neovim/issues/20456#issuecomment-1266068383", + "id": 1266068383, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/20456", + "node_id": "IC_kwDOAPphoM5Ldquf", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1266068383/reactions" + }, + "updated_at": "2022-10-04T03:19:36Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1266068383", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/481465?v=4", + "events_url": "https://api.github.com/users/frangio/events{/privacy}", + "followers_url": "https://api.github.com/users/frangio/followers", + "following_url": "https://api.github.com/users/frangio/following{/other_user}", + "gists_url": "https://api.github.com/users/frangio/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/frangio", + "id": 481465, + "login": "frangio", + "node_id": "MDQ6VXNlcjQ4MTQ2NQ==", + "organizations_url": "https://api.github.com/users/frangio/orgs", + "received_events_url": "https://api.github.com/users/frangio/received_events", + "repos_url": "https://api.github.com/users/frangio/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/frangio/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/frangio/subscriptions", + "type": "User", + "url": "https://api.github.com/users/frangio" + } + }, + { + "author_association": "MEMBER", + "body": "I can now reproduce this issue with Vim 9.0.0650, so this _is_ an upstream bug with the syntax files. Please report this at vim/vim (as this may be related to the injection in VimL and not the Lua syntax file).", + "created_at": "2022-10-05T10:27:34Z", + "html_url": "https://github.com/neovim/neovim/issues/20456#issuecomment-1268246890", + "id": 1268246890, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/20456", + "node_id": "IC_kwDOAPphoM5Ll-lq", + "performed_via_github_app": null, + "reactions": { + "+1": 1, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 1, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1268246890/reactions" + }, + "updated_at": "2022-10-05T10:27:34Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1268246890", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/2361214?v=4", + "events_url": "https://api.github.com/users/clason/events{/privacy}", + "followers_url": "https://api.github.com/users/clason/followers", + "following_url": "https://api.github.com/users/clason/following{/other_user}", + "gists_url": "https://api.github.com/users/clason/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/clason", + "id": 2361214, + "login": "clason", + "node_id": "MDQ6VXNlcjIzNjEyMTQ=", + "organizations_url": "https://api.github.com/users/clason/orgs", + "received_events_url": "https://api.github.com/users/clason/received_events", + "repos_url": "https://api.github.com/users/clason/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/clason/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/clason/subscriptions", + "type": "User", + "url": "https://api.github.com/users/clason" + } + }, + { + "author_association": "MEMBER", + "body": "This is a bug in Vim's syntax engine, not syntax files. Reported at https://github.com/vim/vim/issues/11277", + "created_at": "2022-10-05T10:35:38Z", + "html_url": "https://github.com/neovim/neovim/issues/20456#issuecomment-1268254839", + "id": 1268254839, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/20456", + "node_id": "IC_kwDOAPphoM5LmAh3", + "performed_via_github_app": null, + "reactions": { + "+1": 6, + "-1": 1, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 3, + "total_count": 10, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1268254839/reactions" + }, + "updated_at": "2022-10-05T10:37:43Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1268254839", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/35768171?v=4", + "events_url": "https://api.github.com/users/zeertzjq/events{/privacy}", + "followers_url": "https://api.github.com/users/zeertzjq/followers", + "following_url": "https://api.github.com/users/zeertzjq/following{/other_user}", + "gists_url": "https://api.github.com/users/zeertzjq/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/zeertzjq", + "id": 35768171, + "login": "zeertzjq", + "node_id": "MDQ6VXNlcjM1NzY4MTcx", + "organizations_url": "https://api.github.com/users/zeertzjq/orgs", + "received_events_url": "https://api.github.com/users/zeertzjq/received_events", + "repos_url": "https://api.github.com/users/zeertzjq/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/zeertzjq/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/zeertzjq/subscriptions", + "type": "User", + "url": "https://api.github.com/users/zeertzjq" + } + }, + { + "author_association": "MEMBER", + "body": "Ah. Good thing we have treesitter for these languages now, then ;)", + "created_at": "2022-10-05T10:37:33Z", + "html_url": "https://github.com/neovim/neovim/issues/20456#issuecomment-1268256558", + "id": 1268256558, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/20456", + "node_id": "IC_kwDOAPphoM5LmA8u", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1268256558/reactions" + }, + "updated_at": "2022-10-05T10:37:33Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1268256558", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/2361214?v=4", + "events_url": "https://api.github.com/users/clason/events{/privacy}", + "followers_url": "https://api.github.com/users/clason/followers", + "following_url": "https://api.github.com/users/clason/following{/other_user}", + "gists_url": "https://api.github.com/users/clason/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/clason", + "id": 2361214, + "login": "clason", + "node_id": "MDQ6VXNlcjIzNjEyMTQ=", + "organizations_url": "https://api.github.com/users/clason/orgs", + "received_events_url": "https://api.github.com/users/clason/received_events", + "repos_url": "https://api.github.com/users/clason/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/clason/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/clason/subscriptions", + "type": "User", + "url": "https://api.github.com/users/clason" + } + }, + { + "author_association": "CONTRIBUTOR", + "body": "It's lua syntax file that was 'updated'. The one shipped with 0.7.2 worked well.\r\n\r\n>This is a bug in Vim's syntax engine, not syntax files\r\n\r\nCan be but why ship a bugged syntax file with the stable release.\r\n\r\n>Ah. Good thing we have treesitter for these languages now, then ;)\r\n\r\nNot a good reason to break the old syntax files.", + "created_at": "2022-10-05T13:46:45Z", + "html_url": "https://github.com/neovim/neovim/issues/20456#issuecomment-1268462929", + "id": 1268462929, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/20456", + "node_id": "IC_kwDOAPphoM5LmzVR", + "performed_via_github_app": null, + "reactions": { + "+1": 1, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 1, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1268462929/reactions" + }, + "updated_at": "2022-10-05T13:46:45Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1268462929", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/26169924?v=4", + "events_url": "https://api.github.com/users/mg979/events{/privacy}", + "followers_url": "https://api.github.com/users/mg979/followers", + "following_url": "https://api.github.com/users/mg979/following{/other_user}", + "gists_url": "https://api.github.com/users/mg979/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/mg979", + "id": 26169924, + "login": "mg979", + "node_id": "MDQ6VXNlcjI2MTY5OTI0", + "organizations_url": "https://api.github.com/users/mg979/orgs", + "received_events_url": "https://api.github.com/users/mg979/received_events", + "repos_url": "https://api.github.com/users/mg979/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/mg979/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/mg979/subscriptions", + "type": "User", + "url": "https://api.github.com/users/mg979" + } + }, + { + "author_association": "CONTRIBUTOR", + "body": "What's our plan to fix this regression on the lua syntax file? For the 0.8.1 hotfix, Would it be fine to simply revert to the version at d3068d34c (v0.7.2, which works fine) if the upstream fix would take quite long? With some bisect, it can be found that the syntax was broken in 67df3347f (#20240) or 91a2e7a57.\r\n\r\nI was thinking to reporting an issue to @marcuscf's vim-lua upstream, but I actually cannot find [a version in nvim-lua](https://github.com/marcuscf/vim-lua/commits/master/syntax/lua.vim) that matches 91a2e7a57 (last updated 2022-Mar-31).\r\n\r\n\r\n*UPDATE*: A workaround by reverting to v0.7.2 lua syntax:\r\n\r\n```\r\n!curl -sS https://raw.githubusercontent.com/neovim/neovim/v0.7.2/runtime/syntax/lua.vim > $VIMRUNTIME/syntax/lua.vim\r\n```", + "created_at": "2022-11-02T22:27:23Z", + "html_url": "https://github.com/neovim/neovim/issues/20456#issuecomment-1301427680", + "id": 1301427680, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/20456", + "node_id": "IC_kwDOAPphoM5NkjXg", + "performed_via_github_app": null, + "reactions": { + "+1": 1, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 1, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1301427680/reactions" + }, + "updated_at": "2022-12-08T22:57:11Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1301427680", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/1009873?v=4", + "events_url": "https://api.github.com/users/wookayin/events{/privacy}", + "followers_url": "https://api.github.com/users/wookayin/followers", + "following_url": "https://api.github.com/users/wookayin/following{/other_user}", + "gists_url": "https://api.github.com/users/wookayin/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/wookayin", + "id": 1009873, + "login": "wookayin", + "node_id": "MDQ6VXNlcjEwMDk4NzM=", + "organizations_url": "https://api.github.com/users/wookayin/orgs", + "received_events_url": "https://api.github.com/users/wookayin/received_events", + "repos_url": "https://api.github.com/users/wookayin/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/wookayin/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/wookayin/subscriptions", + "type": "User", + "url": "https://api.github.com/users/wookayin" + } + }, + { + "author_association": "CONTRIBUTOR", + "body": "Just to clarify for others because I was personally confused... The syntax file itself is not bugged, but there is a bug in the syntax engine (present in 0.8.0 but not in 0.7.2) that is triggered by this new syntax file and not the previous one.", + "created_at": "2022-11-02T23:13:47Z", + "html_url": "https://github.com/neovim/neovim/issues/20456#issuecomment-1301480040", + "id": 1301480040, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/20456", + "node_id": "IC_kwDOAPphoM5NkwJo", + "performed_via_github_app": null, + "reactions": { + "+1": 3, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 3, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1301480040/reactions" + }, + "updated_at": "2022-11-02T23:13:47Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1301480040", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/481465?v=4", + "events_url": "https://api.github.com/users/frangio/events{/privacy}", + "followers_url": "https://api.github.com/users/frangio/followers", + "following_url": "https://api.github.com/users/frangio/following{/other_user}", + "gists_url": "https://api.github.com/users/frangio/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/frangio", + "id": 481465, + "login": "frangio", + "node_id": "MDQ6VXNlcjQ4MTQ2NQ==", + "organizations_url": "https://api.github.com/users/frangio/orgs", + "received_events_url": "https://api.github.com/users/frangio/received_events", + "repos_url": "https://api.github.com/users/frangio/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/frangio/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/frangio/subscriptions", + "type": "User", + "url": "https://api.github.com/users/frangio" + } + }, + { + "author_association": "MEMBER", + "body": "The bug in syntax engine is present in versions as early as v0.5.1.", + "created_at": "2022-11-02T23:19:05Z", + "html_url": "https://github.com/neovim/neovim/issues/20456#issuecomment-1301483020", + "id": 1301483020, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/20456", + "node_id": "IC_kwDOAPphoM5Nkw4M", + "performed_via_github_app": null, + "reactions": { + "+1": 1, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 1, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1301483020/reactions" + }, + "updated_at": "2022-11-02T23:19:05Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1301483020", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/35768171?v=4", + "events_url": "https://api.github.com/users/zeertzjq/events{/privacy}", + "followers_url": "https://api.github.com/users/zeertzjq/followers", + "following_url": "https://api.github.com/users/zeertzjq/following{/other_user}", + "gists_url": "https://api.github.com/users/zeertzjq/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/zeertzjq", + "id": 35768171, + "login": "zeertzjq", + "node_id": "MDQ6VXNlcjM1NzY4MTcx", + "organizations_url": "https://api.github.com/users/zeertzjq/orgs", + "received_events_url": "https://api.github.com/users/zeertzjq/received_events", + "repos_url": "https://api.github.com/users/zeertzjq/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/zeertzjq/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/zeertzjq/subscriptions", + "type": "User", + "url": "https://api.github.com/users/zeertzjq" + } + }, + { + "author_association": "CONTRIBUTOR", + "body": "In case someone comes across this before it's fixed, to 'fix' (by just turning off that bad highlighting) this for now, add to your `init.vim`: \r\n\r\n```\r\n\" until this issue solved: https://github.com/neovim/neovim/issues/20456\r\naugroup MyLuaHLBugFix\r\n autocmd!\r\n autocmd! ColorScheme,VimEnter * highlight! link luaParenError Normal | highlight! link luaError Normal\r\naugroup END\r\n```", + "created_at": "2022-11-03T18:40:13Z", + "html_url": "https://github.com/neovim/neovim/issues/20456#issuecomment-1302523983", + "id": 1302523983, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/20456", + "node_id": "IC_kwDOAPphoM5NovBP", + "performed_via_github_app": null, + "reactions": { + "+1": 1, + "-1": 0, + "confused": 2, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 3, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1302523983/reactions" + }, + "updated_at": "2022-11-03T18:40:13Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1302523983", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/7416158?v=4", + "events_url": "https://api.github.com/users/craigmac/events{/privacy}", + "followers_url": "https://api.github.com/users/craigmac/followers", + "following_url": "https://api.github.com/users/craigmac/following{/other_user}", + "gists_url": "https://api.github.com/users/craigmac/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/craigmac", + "id": 7416158, + "login": "craigmac", + "node_id": "MDQ6VXNlcjc0MTYxNTg=", + "organizations_url": "https://api.github.com/users/craigmac/orgs", + "received_events_url": "https://api.github.com/users/craigmac/received_events", + "repos_url": "https://api.github.com/users/craigmac/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/craigmac/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/craigmac/subscriptions", + "type": "User", + "url": "https://api.github.com/users/craigmac" + } + }, + { + "author_association": "CONTRIBUTOR", + "body": "> In case someone comes across this before it's fixed, to 'fix' (by just turning off that bad highlighting) this for now [..]\r\n\r\nYour workaround did not work for me :(.", + "created_at": "2022-11-11T18:57:53Z", + "html_url": "https://github.com/neovim/neovim/issues/20456#issuecomment-1312073902", + "id": 1312073902, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/20456", + "node_id": "IC_kwDOAPphoM5ONKiu", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1312073902/reactions" + }, + "updated_at": "2022-11-11T18:57:53Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1312073902", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/10998835?v=4", + "events_url": "https://api.github.com/users/doronbehar/events{/privacy}", + "followers_url": "https://api.github.com/users/doronbehar/followers", + "following_url": "https://api.github.com/users/doronbehar/following{/other_user}", + "gists_url": "https://api.github.com/users/doronbehar/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/doronbehar", + "id": 10998835, + "login": "doronbehar", + "node_id": "MDQ6VXNlcjEwOTk4ODM1", + "organizations_url": "https://api.github.com/users/doronbehar/orgs", + "received_events_url": "https://api.github.com/users/doronbehar/received_events", + "repos_url": "https://api.github.com/users/doronbehar/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/doronbehar/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/doronbehar/subscriptions", + "type": "User", + "url": "https://api.github.com/users/doronbehar" + } + }, + { + "author_association": "NONE", + "body": "> Ah. Good thing we have treesitter for these languages now, then ;)\r\n\r\nTo expand on this for the other noobs in the room like myself, this is referring to a (quasi-) workaround.\r\n\r\n
\r\n\r\nEdit: well, at least I was up-front about my being a noob. The workaround is simpler than I thought. This longer version did work, though, so I've left it in here for posterity. I'll go back to trying to understand the difference between nvim-treesitter and vim.treesitter.\r\n\r\n\r\nIf you have [nvim-treesitter](https://github.com/nvim-treesitter/nvim-treesitter) and the appropriate modules installed, you can use it for syntax highlighting instead of `vim-lua`. \r\n\r\n[Details are in nvim-treesitter's readme](https://github.com/nvim-treesitter/nvim-treesitter#modules), this is the TL;DR:\r\n```lua\r\nrequire('nvim-treesitter.configs').setup({\r\n\thighlight = {\r\n\t\tenable = true,\r\n\t\tdisable = function(lang, bufnr)\r\n\t\t\t-- including vim for the sake of Lua blocks inside VimL\r\n\t\t\tif lang == \"vim\" or lang == \"lua\" then\r\n\t\t\t\treturn false\r\n\t\t\tend\r\n\t\t\treturn true\r\n\t\tend\r\n\t},\r\n})\r\n```\r\n
\r\n\r\n", + "created_at": "2022-11-11T20:11:47Z", + "html_url": "https://github.com/neovim/neovim/issues/20456#issuecomment-1312156193", + "id": 1312156193, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/20456", + "node_id": "IC_kwDOAPphoM5ONeoh", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 1, + "total_count": 1, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1312156193/reactions" + }, + "updated_at": "2022-11-11T22:25:59Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1312156193", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/9437625?v=4", + "events_url": "https://api.github.com/users/cpmsmith/events{/privacy}", + "followers_url": "https://api.github.com/users/cpmsmith/followers", + "following_url": "https://api.github.com/users/cpmsmith/following{/other_user}", + "gists_url": "https://api.github.com/users/cpmsmith/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/cpmsmith", + "id": 9437625, + "login": "cpmsmith", + "node_id": "MDQ6VXNlcjk0Mzc2MjU=", + "organizations_url": "https://api.github.com/users/cpmsmith/orgs", + "received_events_url": "https://api.github.com/users/cpmsmith/received_events", + "repos_url": "https://api.github.com/users/cpmsmith/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/cpmsmith/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/cpmsmith/subscriptions", + "type": "User", + "url": "https://api.github.com/users/cpmsmith" + } + }, + { + "author_association": "MEMBER", + "body": "No, this is completely handled by Neovim core. All you need is to put `vim.treesitter.start()` in a `ftplugin/lua.lua`", + "created_at": "2022-11-11T20:22:32Z", + "html_url": "https://github.com/neovim/neovim/issues/20456#issuecomment-1312163729", + "id": 1312163729, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/20456", + "node_id": "IC_kwDOAPphoM5ONgeR", + "performed_via_github_app": null, + "reactions": { + "+1": 1, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 1, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1312163729/reactions" + }, + "updated_at": "2022-11-11T20:22:32Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1312163729", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/2361214?v=4", + "events_url": "https://api.github.com/users/clason/events{/privacy}", + "followers_url": "https://api.github.com/users/clason/followers", + "following_url": "https://api.github.com/users/clason/following{/other_user}", + "gists_url": "https://api.github.com/users/clason/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/clason", + "id": 2361214, + "login": "clason", + "node_id": "MDQ6VXNlcjIzNjEyMTQ=", + "organizations_url": "https://api.github.com/users/clason/orgs", + "received_events_url": "https://api.github.com/users/clason/received_events", + "repos_url": "https://api.github.com/users/clason/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/clason/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/clason/subscriptions", + "type": "User", + "url": "https://api.github.com/users/clason" + } + }, + { + "author_association": "CONTRIBUTOR", + "body": "@cpmsmith see https://github.com/neovim/neovim/pull/15391", + "created_at": "2022-11-11T22:15:44Z", + "html_url": "https://github.com/neovim/neovim/issues/20456#issuecomment-1312231980", + "id": 1312231980, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/20456", + "node_id": "IC_kwDOAPphoM5ONxIs", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1312231980/reactions" + }, + "updated_at": "2022-11-11T22:15:44Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1312231980", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/7416158?v=4", + "events_url": "https://api.github.com/users/craigmac/events{/privacy}", + "followers_url": "https://api.github.com/users/craigmac/followers", + "following_url": "https://api.github.com/users/craigmac/following{/other_user}", + "gists_url": "https://api.github.com/users/craigmac/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/craigmac", + "id": 7416158, + "login": "craigmac", + "node_id": "MDQ6VXNlcjc0MTYxNTg=", + "organizations_url": "https://api.github.com/users/craigmac/orgs", + "received_events_url": "https://api.github.com/users/craigmac/received_events", + "repos_url": "https://api.github.com/users/craigmac/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/craigmac/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/craigmac/subscriptions", + "type": "User", + "url": "https://api.github.com/users/craigmac" + } + }, + { + "author_association": "CONTRIBUTOR", + "body": "@chrisgrieser it just depends on what group you are linking it to, your solution is not going to work for me, for example. It entirely depends on your active colorscheme. Just look at `:hi` and link it to one that looks 'normal' (non bright red background).", + "created_at": "2022-11-17T15:50:50Z", + "html_url": "https://github.com/neovim/neovim/issues/20456#issuecomment-1318839334", + "id": 1318839334, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/20456", + "node_id": "IC_kwDOAPphoM5Om-Qm", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1318839334/reactions" + }, + "updated_at": "2022-11-17T15:50:50Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1318839334", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/7416158?v=4", + "events_url": "https://api.github.com/users/craigmac/events{/privacy}", + "followers_url": "https://api.github.com/users/craigmac/followers", + "following_url": "https://api.github.com/users/craigmac/following{/other_user}", + "gists_url": "https://api.github.com/users/craigmac/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/craigmac", + "id": 7416158, + "login": "craigmac", + "node_id": "MDQ6VXNlcjc0MTYxNTg=", + "organizations_url": "https://api.github.com/users/craigmac/orgs", + "received_events_url": "https://api.github.com/users/craigmac/received_events", + "repos_url": "https://api.github.com/users/craigmac/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/craigmac/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/craigmac/subscriptions", + "type": "User", + "url": "https://api.github.com/users/craigmac" + } + }, + { + "author_association": "CONTRIBUTOR", + "body": "@clason suggested another great workaround (https://github.com/neovim/neovim/pull/21347#issuecomment-1343483802):\r\n\r\n```\r\nvim.g.ts_highlight_lua = true\r\n```\r\n\r\nHaving the line somewhere in your `init.lua` will disable the vimscript syntax: syntax highlighting will be provided by treesitter (if the plugin exists).\r\n\r\nAlthough some users may not prefer treesitter highlights, it might be better than having a broken syntax. Or if you don't upgrade neovim that often (e.g. nightly), [manually overwriting the $VIMRUNTIME syntax file](https://github.com/neovim/neovim/issues/20456#issuecomment-1301427680) will be another good workaround.", + "created_at": "2022-12-08T23:14:40Z", + "html_url": "https://github.com/neovim/neovim/issues/20456#issuecomment-1343495514", + "id": 1343495514, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/20456", + "node_id": "IC_kwDOAPphoM5QFB1a", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1343495514/reactions" + }, + "updated_at": "2023-03-10T17:35:34Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1343495514", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/1009873?v=4", + "events_url": "https://api.github.com/users/wookayin/events{/privacy}", + "followers_url": "https://api.github.com/users/wookayin/followers", + "following_url": "https://api.github.com/users/wookayin/following{/other_user}", + "gists_url": "https://api.github.com/users/wookayin/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/wookayin", + "id": 1009873, + "login": "wookayin", + "node_id": "MDQ6VXNlcjEwMDk4NzM=", + "organizations_url": "https://api.github.com/users/wookayin/orgs", + "received_events_url": "https://api.github.com/users/wookayin/received_events", + "repos_url": "https://api.github.com/users/wookayin/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/wookayin/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/wookayin/subscriptions", + "type": "User", + "url": "https://api.github.com/users/wookayin" + } + }, + { + "author_association": "NONE", + "body": "Is there a solution for those who still uses init.vim?", + "created_at": "2023-03-10T17:32:22Z", + "html_url": "https://github.com/neovim/neovim/issues/20456#issuecomment-1464137382", + "id": 1464137382, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/20456", + "node_id": "IC_kwDOAPphoM5XRPam", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1464137382/reactions" + }, + "updated_at": "2023-03-10T17:35:13Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1464137382", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/116532?v=4", + "events_url": "https://api.github.com/users/pencilcheck/events{/privacy}", + "followers_url": "https://api.github.com/users/pencilcheck/followers", + "following_url": "https://api.github.com/users/pencilcheck/following{/other_user}", + "gists_url": "https://api.github.com/users/pencilcheck/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/pencilcheck", + "id": 116532, + "login": "pencilcheck", + "node_id": "MDQ6VXNlcjExNjUzMg==", + "organizations_url": "https://api.github.com/users/pencilcheck/orgs", + "received_events_url": "https://api.github.com/users/pencilcheck/received_events", + "repos_url": "https://api.github.com/users/pencilcheck/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/pencilcheck/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/pencilcheck/subscriptions", + "type": "User", + "url": "https://api.github.com/users/pencilcheck" + } + }, + { + "author_association": "MEMBER", + "body": "You can use treesitter highlighting with `init.vim` just fine. Just call `lua vim.treesitter.start()` in a `FileType` autocommand.", + "created_at": "2023-03-10T17:35:08Z", + "html_url": "https://github.com/neovim/neovim/issues/20456#issuecomment-1464140843", + "id": 1464140843, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/20456", + "node_id": "IC_kwDOAPphoM5XRQQr", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1464140843/reactions" + }, + "updated_at": "2023-03-10T17:35:59Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1464140843", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/2361214?v=4", + "events_url": "https://api.github.com/users/clason/events{/privacy}", + "followers_url": "https://api.github.com/users/clason/followers", + "following_url": "https://api.github.com/users/clason/following{/other_user}", + "gists_url": "https://api.github.com/users/clason/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/clason", + "id": 2361214, + "login": "clason", + "node_id": "MDQ6VXNlcjIzNjEyMTQ=", + "organizations_url": "https://api.github.com/users/clason/orgs", + "received_events_url": "https://api.github.com/users/clason/received_events", + "repos_url": "https://api.github.com/users/clason/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/clason/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/clason/subscriptions", + "type": "User", + "url": "https://api.github.com/users/clason" + } + }, + { + "author_association": "NONE", + "body": "> lua vim.treesitter.start()\r\n\r\nGotcha, I did this and it seems to fixed the highlighting for lua portion (but it changes the rest of the highlight for the .vim files though\r\n\r\n```\r\n--- inside init.vim\r\nautocmd FileType vim lua vim.treesitter.start()\r\nlua << EOF\r\nvim.g.ts_highlight_lua = true\r\nEOF\r\n```", + "created_at": "2023-03-10T17:49:07Z", + "html_url": "https://github.com/neovim/neovim/issues/20456#issuecomment-1464156973", + "id": 1464156973, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/20456", + "node_id": "IC_kwDOAPphoM5XRUMt", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 1, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 1, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1464156973/reactions" + }, + "updated_at": "2023-03-10T17:49:07Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1464156973", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/116532?v=4", + "events_url": "https://api.github.com/users/pencilcheck/events{/privacy}", + "followers_url": "https://api.github.com/users/pencilcheck/followers", + "following_url": "https://api.github.com/users/pencilcheck/following{/other_user}", + "gists_url": "https://api.github.com/users/pencilcheck/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/pencilcheck", + "id": 116532, + "login": "pencilcheck", + "node_id": "MDQ6VXNlcjExNjUzMg==", + "organizations_url": "https://api.github.com/users/pencilcheck/orgs", + "received_events_url": "https://api.github.com/users/pencilcheck/received_events", + "repos_url": "https://api.github.com/users/pencilcheck/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/pencilcheck/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/pencilcheck/subscriptions", + "type": "User", + "url": "https://api.github.com/users/pencilcheck" + } + }, + { + "author_association": "MEMBER", + "body": "you don't need the `g:ts_highlight_lua` variable (which will be removed in 0.9)", + "created_at": "2023-03-10T17:57:29Z", + "html_url": "https://github.com/neovim/neovim/issues/20456#issuecomment-1464171801", + "id": 1464171801, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/20456", + "node_id": "IC_kwDOAPphoM5XRX0Z", + "performed_via_github_app": null, + "reactions": { + "+1": 1, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 1, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1464171801/reactions" + }, + "updated_at": "2023-03-10T18:02:02Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1464171801", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/2361214?v=4", + "events_url": "https://api.github.com/users/clason/events{/privacy}", + "followers_url": "https://api.github.com/users/clason/followers", + "following_url": "https://api.github.com/users/clason/following{/other_user}", + "gists_url": "https://api.github.com/users/clason/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/clason", + "id": 2361214, + "login": "clason", + "node_id": "MDQ6VXNlcjIzNjEyMTQ=", + "organizations_url": "https://api.github.com/users/clason/orgs", + "received_events_url": "https://api.github.com/users/clason/received_events", + "repos_url": "https://api.github.com/users/clason/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/clason/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/clason/subscriptions", + "type": "User", + "url": "https://api.github.com/users/clason" + } + } + ], + "comments": 21, + "comments_url": "https://api.github.com/repos/neovim/neovim/issues/20456/comments", + "created_at": "2022-10-02T20:06:41Z", + "events_url": "https://api.github.com/repos/neovim/neovim/issues/20456/events", + "html_url": "https://github.com/neovim/neovim/issues/20456", + "id": 1393883194, + "labels": [ + { + "color": "F9D0C4", + "default": false, + "description": "wrong behavior inherited from vim", + "id": 154310492, + "name": "bug-vim", + "node_id": "MDU6TGFiZWwxNTQzMTA0OTI=", + "url": "https://api.github.com/repos/neovim/neovim/labels/bug-vim" + }, + { + "color": "c5def5", + "default": false, + "description": "regex syntax or non-regex parsing, lpeg, grammars", + "id": 531600085, + "name": "syntax", + "node_id": "MDU6TGFiZWw1MzE2MDAwODU=", + "url": "https://api.github.com/repos/neovim/neovim/labels/syntax" + }, + { + "color": "FBCA04", + "default": false, + "description": "upstream issue that needs to be fixed in vim first", + "id": 2639399975, + "name": "needs:vim-patch", + "node_id": "MDU6TGFiZWwyNjM5Mzk5OTc1", + "url": "https://api.github.com/repos/neovim/neovim/labels/needs:vim-patch" + } + ], + "labels_url": "https://api.github.com/repos/neovim/neovim/issues/20456/labels{/name}", + "locked": false, + "milestone": { + "closed_at": null, + "closed_issues": 102, + "created_at": "2023-02-02T14:11:43Z", + "creator": { + "avatar_url": "https://avatars.githubusercontent.com/u/1363104?v=4", + "events_url": "https://api.github.com/users/bfredl/events{/privacy}", + "followers_url": "https://api.github.com/users/bfredl/followers", + "following_url": "https://api.github.com/users/bfredl/following{/other_user}", + "gists_url": "https://api.github.com/users/bfredl/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/bfredl", + "id": 1363104, + "login": "bfredl", + "node_id": "MDQ6VXNlcjEzNjMxMDQ=", + "organizations_url": "https://api.github.com/users/bfredl/orgs", + "received_events_url": "https://api.github.com/users/bfredl/received_events", + "repos_url": "https://api.github.com/users/bfredl/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/bfredl/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/bfredl/subscriptions", + "type": "User", + "url": "https://api.github.com/users/bfredl" + }, + "description": "", + "due_on": null, + "html_url": "https://github.com/neovim/neovim/milestone/36", + "id": 8997654, + "labels_url": "https://api.github.com/repos/neovim/neovim/milestones/36/labels", + "node_id": "MI_kwDOAPphoM4AiUsW", + "number": 36, + "open_issues": 140, + "state": "open", + "title": "0.10", + "updated_at": "2023-08-04T13:44:37Z", + "url": "https://api.github.com/repos/neovim/neovim/milestones/36" + }, + "node_id": "I_kwDOAPphoM5TFPg6", + "number": 20456, + "performed_via_github_app": null, + "reactions": { + "+1": 5, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 5, + "url": "https://api.github.com/repos/neovim/neovim/issues/20456/reactions" + }, + "repository_url": "https://api.github.com/repos/neovim/neovim", + "state": "open", + "state_reason": "reopened", + "timeline_url": "https://api.github.com/repos/neovim/neovim/issues/20456/timeline", + "title": "Error in syntax highlighting function call (regression)", + "updated_at": "2023-08-04T04:32:59Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/20456", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/481465?v=4", + "events_url": "https://api.github.com/users/frangio/events{/privacy}", + "followers_url": "https://api.github.com/users/frangio/followers", + "following_url": "https://api.github.com/users/frangio/following{/other_user}", + "gists_url": "https://api.github.com/users/frangio/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/frangio", + "id": 481465, + "login": "frangio", + "node_id": "MDQ6VXNlcjQ4MTQ2NQ==", + "organizations_url": "https://api.github.com/users/frangio/orgs", + "received_events_url": "https://api.github.com/users/frangio/received_events", + "repos_url": "https://api.github.com/users/frangio/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/frangio/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/frangio/subscriptions", + "type": "User", + "url": "https://api.github.com/users/frangio" + } +} \ No newline at end of file diff --git a/repositories/neovim/issues/21106.json b/repositories/neovim/issues/21106.json index d4741f20..981fa3c2 100644 --- a/repositories/neovim/issues/21106.json +++ b/repositories/neovim/issues/21106.json @@ -867,20 +867,47 @@ "name": "terminal", "node_id": "MDU6TGFiZWwyMTI2OTY4MjI=", "url": "https://api.github.com/repos/neovim/neovim/labels/terminal" - }, - { - "color": "0E8A16", - "default": false, - "description": "issue is not fixed but can be circumvented until then", - "id": 435850181, - "name": "has:workaround", - "node_id": "MDU6TGFiZWw0MzU4NTAxODE=", - "url": "https://api.github.com/repos/neovim/neovim/labels/has:workaround" } ], "labels_url": "https://api.github.com/repos/neovim/neovim/issues/21106/labels{/name}", "locked": false, - "milestone": null, + "milestone": { + "closed_at": null, + "closed_issues": 76, + "created_at": "2023-05-26T09:57:35Z", + "creator": { + "avatar_url": "https://avatars.githubusercontent.com/u/35768171?v=4", + "events_url": "https://api.github.com/users/zeertzjq/events{/privacy}", + "followers_url": "https://api.github.com/users/zeertzjq/followers", + "following_url": "https://api.github.com/users/zeertzjq/following{/other_user}", + "gists_url": "https://api.github.com/users/zeertzjq/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/zeertzjq", + "id": 35768171, + "login": "zeertzjq", + "node_id": "MDQ6VXNlcjM1NzY4MTcx", + "organizations_url": "https://api.github.com/users/zeertzjq/orgs", + "received_events_url": "https://api.github.com/users/zeertzjq/received_events", + "repos_url": "https://api.github.com/users/zeertzjq/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/zeertzjq/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/zeertzjq/subscriptions", + "type": "User", + "url": "https://api.github.com/users/zeertzjq" + }, + "description": "", + "due_on": null, + "html_url": "https://github.com/neovim/neovim/milestone/38", + "id": 9446345, + "labels_url": "https://api.github.com/repos/neovim/neovim/milestones/38/labels", + "node_id": "MI_kwDOAPphoM4AkCPJ", + "number": 38, + "open_issues": 7, + "state": "open", + "title": "0.9.2", + "updated_at": "2023-08-04T04:32:59Z", + "url": "https://api.github.com/repos/neovim/neovim/milestones/38" + }, "node_id": "I_kwDOAPphoM5WwjwZ", "number": 21106, "performed_via_github_app": null, @@ -901,7 +928,7 @@ "state_reason": "completed", "timeline_url": "https://api.github.com/repos/neovim/neovim/issues/21106/timeline", "title": "mouse not works in builtin terminal for ncurses app", - "updated_at": "2023-08-03T23:08:44Z", + "updated_at": "2023-08-04T03:22:34Z", "url": "https://api.github.com/repos/neovim/neovim/issues/21106", "user": { "avatar_url": "https://avatars.githubusercontent.com/u/6236829?v=4", diff --git a/repositories/neovim/issues/22877.json b/repositories/neovim/issues/22877.json new file mode 100644 index 00000000..20fe4fe4 --- /dev/null +++ b/repositories/neovim/issues/22877.json @@ -0,0 +1,134 @@ +{ + "active_lock_reason": null, + "assignee": null, + "assignees": [], + "author_association": "CONTRIBUTOR", + "body": "### Problem\n\nWhen `nvim_err_writeln` is called as a notification over RPC, the last line is truncated by the hit-enter prompt.\n\n### Steps to reproduce\n\n```\r\nlet sock = sockconnect(\"pipe\", v:servername, { \"rpc\": 1 })\r\ncall rpcnotify(sock, \"nvim_err_writeln\", \"foo\\nbar\\nbaz\")\r\n```\n\n### Expected behavior\n\nI expect the output to be\r\n```\r\nfoo\r\nbar\r\nbaz\r\nPress ENTER or type command to continue\r\n```\r\nbut it is instead\r\n```\r\nfoo\r\nbar\r\nPress ENTER or type command to continue\r\nbaz\r\nPress ENTER or type command to continue\r\n```\n\n### Neovim version (nvim -v)\n\nv0.9.0-dev-1312+g908494889\n\n### Vim (not Nvim) behaves the same?\n\nN/A\n\n### Operating system/version\n\nRocky Linux 8.6\n\n### Terminal name/version\n\nxfce4-terminal 1.0.4\n\n### $TERM environment variable\n\ntmux-256color\n\n### Installation\n\nappimage", + "closed_at": "2023-04-04T00:59:13Z", + "comment_data": [ + { + "author_association": "MEMBER", + "body": "This can be solved by using `nvim_err_write` with an trailing newline instead:\r\n```vim\r\nlet sock = sockconnect(\"pipe\", v:servername, { \"rpc\": 1 })\r\ncall rpcnotify(sock, \"nvim_err_write\", \"foo\\nbar\\nbaz\\n\")\r\n```", + "created_at": "2023-04-04T00:16:32Z", + "html_url": "https://github.com/neovim/neovim/issues/22877#issuecomment-1495161004", + "id": 1495161004, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/22877", + "node_id": "IC_kwDOAPphoM5ZHlis", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1495161004/reactions" + }, + "updated_at": "2023-04-04T00:16:49Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1495161004", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/35768171?v=4", + "events_url": "https://api.github.com/users/zeertzjq/events{/privacy}", + "followers_url": "https://api.github.com/users/zeertzjq/followers", + "following_url": "https://api.github.com/users/zeertzjq/following{/other_user}", + "gists_url": "https://api.github.com/users/zeertzjq/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/zeertzjq", + "id": 35768171, + "login": "zeertzjq", + "node_id": "MDQ6VXNlcjM1NzY4MTcx", + "organizations_url": "https://api.github.com/users/zeertzjq/orgs", + "received_events_url": "https://api.github.com/users/zeertzjq/received_events", + "repos_url": "https://api.github.com/users/zeertzjq/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/zeertzjq/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/zeertzjq/subscriptions", + "type": "User", + "url": "https://api.github.com/users/zeertzjq" + } + } + ], + "comments": 1, + "comments_url": "https://api.github.com/repos/neovim/neovim/issues/22877/comments", + "created_at": "2023-04-03T23:44:56Z", + "events_url": "https://api.github.com/repos/neovim/neovim/issues/22877/events", + "html_url": "https://github.com/neovim/neovim/issues/22877", + "id": 1652926759, + "labels": [ + { + "color": "f9d0c4", + "default": true, + "description": "issues reporting wrong behavior", + "id": 77997474, + "name": "bug", + "node_id": "MDU6TGFiZWw3Nzk5NzQ3NA==", + "url": "https://api.github.com/repos/neovim/neovim/labels/bug" + }, + { + "color": "c5def5", + "default": false, + "description": "libnvim, Nvim RPC API", + "id": 103819671, + "name": "api", + "node_id": "MDU6TGFiZWwxMDM4MTk2NzE=", + "url": "https://api.github.com/repos/neovim/neovim/labels/api" + }, + { + "color": "c5def5", + "default": false, + "description": "", + "id": 113026979, + "name": "ui", + "node_id": "MDU6TGFiZWwxMTMwMjY5Nzk=", + "url": "https://api.github.com/repos/neovim/neovim/labels/ui" + } + ], + "labels_url": "https://api.github.com/repos/neovim/neovim/issues/22877/labels{/name}", + "locked": false, + "milestone": null, + "node_id": "I_kwDOAPphoM5ihakn", + "number": 22877, + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/22877/reactions" + }, + "repository_url": "https://api.github.com/repos/neovim/neovim", + "state": "closed", + "state_reason": "completed", + "timeline_url": "https://api.github.com/repos/neovim/neovim/issues/22877/timeline", + "title": "Hit-enter prompt appears before last line of `nvim_err_writeln` when sent as notification", + "updated_at": "2023-08-04T03:23:45Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/22877", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/802511?v=4", + "events_url": "https://api.github.com/users/ddickstein/events{/privacy}", + "followers_url": "https://api.github.com/users/ddickstein/followers", + "following_url": "https://api.github.com/users/ddickstein/following{/other_user}", + "gists_url": "https://api.github.com/users/ddickstein/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/ddickstein", + "id": 802511, + "login": "ddickstein", + "node_id": "MDQ6VXNlcjgwMjUxMQ==", + "organizations_url": "https://api.github.com/users/ddickstein/orgs", + "received_events_url": "https://api.github.com/users/ddickstein/received_events", + "repos_url": "https://api.github.com/users/ddickstein/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/ddickstein/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ddickstein/subscriptions", + "type": "User", + "url": "https://api.github.com/users/ddickstein" + } +} \ No newline at end of file diff --git a/repositories/neovim/issues/23294.json b/repositories/neovim/issues/23294.json index a569759f..3f632465 100644 --- a/repositories/neovim/issues/23294.json +++ b/repositories/neovim/issues/23294.json @@ -142,15 +142,6 @@ "html_url": "https://github.com/neovim/neovim/issues/23294", "id": 1680122913, "labels": [ - { - "color": "0E8A16", - "default": false, - "description": "issue is not fixed but can be circumvented until then", - "id": 435850181, - "name": "has:workaround", - "node_id": "MDU6TGFiZWw0MzU4NTAxODE=", - "url": "https://api.github.com/repos/neovim/neovim/labels/has:workaround" - }, { "color": "f9d0c4", "default": false, @@ -174,7 +165,7 @@ "locked": false, "milestone": { "closed_at": null, - "closed_issues": 51, + "closed_issues": 76, "created_at": "2023-05-26T09:57:35Z", "creator": { "avatar_url": "https://avatars.githubusercontent.com/u/35768171?v=4", @@ -203,10 +194,10 @@ "labels_url": "https://api.github.com/repos/neovim/neovim/milestones/38/labels", "node_id": "MI_kwDOAPphoM4AkCPJ", "number": 38, - "open_issues": 10, + "open_issues": 7, "state": "open", "title": "0.9.2", - "updated_at": "2023-07-25T19:19:51Z", + "updated_at": "2023-08-04T04:32:59Z", "url": "https://api.github.com/repos/neovim/neovim/milestones/38" }, "node_id": "I_kwDOAPphoM5kJKQh", @@ -229,7 +220,7 @@ "state_reason": "completed", "timeline_url": "https://api.github.com/repos/neovim/neovim/issues/23294/timeline", "title": "`nvim -r` hangs (or returns nothing)", - "updated_at": "2023-07-25T11:02:40Z", + "updated_at": "2023-08-04T03:23:04Z", "url": "https://api.github.com/repos/neovim/neovim/issues/23294", "user": { "avatar_url": "https://avatars.githubusercontent.com/u/6276613?v=4", diff --git a/repositories/neovim/issues/23519.json b/repositories/neovim/issues/23519.json new file mode 100644 index 00000000..4aa6e05f --- /dev/null +++ b/repositories/neovim/issues/23519.json @@ -0,0 +1,169 @@ +{ + "active_lock_reason": null, + "assignee": null, + "assignees": [], + "author_association": "NONE", + "body": "### Problem\n\nHi there, I am working on a Nuxt.js project and am having trouble formatting Vue files using the Volar language server.\r\n\r\nFor some context, in Nuxt, the routing of the pages is controlled via the file directory. As part of this, using file names such as `[id].vue` is required to indicate that this should be a route parameter. (https://nuxt.com/docs/guide/directory-structure/pages)\r\n\r\nFormatting files where the file name does not include these square brackets appears to be working as expected, however, it seems to be broken for these particular files.\r\n\r\nIs this a known limitation, or is there something else happening here?\r\n\r\n(Note that I have tried formatting with Volar inside something like VSCode - it appears to work fine, so that might suggest Neovim might be handling things differently)\r\n\r\nAny help would be much appreciated.\n\n### Steps to reproduce\n\n- Create .vue file with name `[id].vue`\r\n- Create some basic code, intentionally misformatted, e.g.\r\n```\r\n\r\n```\r\n- Attempt to run formatting\n\n### Expected behavior\n\nExpected:\r\n- File is formatted correctly by the language server\r\n\r\nActual\r\n- Nothing happens. Nothing seems to appear in the logs.\n\n### Neovim version (nvim -v)\n\n0.9.0\n\n### Vim (not Nvim) behaves the same?\n\nunknown, using lua to set things up. don't know how to set up on vim.\n\n### Operating system/version\n\nmacos 13.3.1\n\n### Terminal name/version\n\niterm2\n\n### $TERM environment variable\n\n-\n\n### Installation\n\nhomebrew", + "closed_at": null, + "comment_data": [ + { + "author_association": "MEMBER", + "body": "Related?: https://github.com/neovim/neovim/issues/24233", + "created_at": "2023-07-08T17:20:55Z", + "html_url": "https://github.com/neovim/neovim/issues/23519#issuecomment-1627432383", + "id": 1627432383, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/23519", + "node_id": "IC_kwDOAPphoM5hAKW_", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1627432383/reactions" + }, + "updated_at": "2023-07-08T17:20:55Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1627432383", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/1359421?v=4", + "events_url": "https://api.github.com/users/justinmk/events{/privacy}", + "followers_url": "https://api.github.com/users/justinmk/followers", + "following_url": "https://api.github.com/users/justinmk/following{/other_user}", + "gists_url": "https://api.github.com/users/justinmk/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/justinmk", + "id": 1359421, + "login": "justinmk", + "node_id": "MDQ6VXNlcjEzNTk0MjE=", + "organizations_url": "https://api.github.com/users/justinmk/orgs", + "received_events_url": "https://api.github.com/users/justinmk/received_events", + "repos_url": "https://api.github.com/users/justinmk/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/justinmk/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/justinmk/subscriptions", + "type": "User", + "url": "https://api.github.com/users/justinmk" + } + }, + { + "author_association": "MEMBER", + "body": "did you still get this problem ? I can't reproduce it on nightly version.", + "created_at": "2023-08-05T01:09:30Z", + "html_url": "https://github.com/neovim/neovim/issues/23519#issuecomment-1666329091", + "id": 1666329091, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/23519", + "node_id": "IC_kwDOAPphoM5jUioD", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1666329091/reactions" + }, + "updated_at": "2023-08-05T01:09:30Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1666329091", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/41671631?v=4", + "events_url": "https://api.github.com/users/glepnir/events{/privacy}", + "followers_url": "https://api.github.com/users/glepnir/followers", + "following_url": "https://api.github.com/users/glepnir/following{/other_user}", + "gists_url": "https://api.github.com/users/glepnir/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/glepnir", + "id": 41671631, + "login": "glepnir", + "node_id": "MDQ6VXNlcjQxNjcxNjMx", + "organizations_url": "https://api.github.com/users/glepnir/orgs", + "received_events_url": "https://api.github.com/users/glepnir/received_events", + "repos_url": "https://api.github.com/users/glepnir/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/glepnir/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/glepnir/subscriptions", + "type": "User", + "url": "https://api.github.com/users/glepnir" + } + } + ], + "comments": 2, + "comments_url": "https://api.github.com/repos/neovim/neovim/issues/23519/comments", + "created_at": "2023-05-07T04:38:53Z", + "events_url": "https://api.github.com/repos/neovim/neovim/issues/23519/events", + "html_url": "https://github.com/neovim/neovim/issues/23519", + "id": 1698888250, + "labels": [ + { + "color": "f9d0c4", + "default": true, + "description": "issues reporting wrong behavior", + "id": 77997474, + "name": "bug", + "node_id": "MDU6TGFiZWw3Nzk5NzQ3NA==", + "url": "https://api.github.com/repos/neovim/neovim/labels/bug" + }, + { + "color": "c5def5", + "default": false, + "description": null, + "id": 662566370, + "name": "lsp", + "node_id": "MDU6TGFiZWw2NjI1NjYzNzA=", + "url": "https://api.github.com/repos/neovim/neovim/labels/lsp" + } + ], + "labels_url": "https://api.github.com/repos/neovim/neovim/issues/23519/labels{/name}", + "locked": false, + "milestone": null, + "node_id": "I_kwDOAPphoM5lQvo6", + "number": 23519, + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/23519/reactions" + }, + "repository_url": "https://api.github.com/repos/neovim/neovim", + "state": "open", + "state_reason": null, + "timeline_url": "https://api.github.com/repos/neovim/neovim/issues/23519/timeline", + "title": "Unable to format file with filename `[id].vue` (with brackets)", + "updated_at": "2023-08-05T01:09:31Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/23519", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/65489215?v=4", + "events_url": "https://api.github.com/users/soullpoint/events{/privacy}", + "followers_url": "https://api.github.com/users/soullpoint/followers", + "following_url": "https://api.github.com/users/soullpoint/following{/other_user}", + "gists_url": "https://api.github.com/users/soullpoint/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/soullpoint", + "id": 65489215, + "login": "soullpoint", + "node_id": "MDQ6VXNlcjY1NDg5MjE1", + "organizations_url": "https://api.github.com/users/soullpoint/orgs", + "received_events_url": "https://api.github.com/users/soullpoint/received_events", + "repos_url": "https://api.github.com/users/soullpoint/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/soullpoint/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/soullpoint/subscriptions", + "type": "User", + "url": "https://api.github.com/users/soullpoint" + } +} \ No newline at end of file diff --git a/repositories/neovim/issues/24475.json b/repositories/neovim/issues/24475.json index 3b4195c5..bda5eb6b 100644 --- a/repositories/neovim/issues/24475.json +++ b/repositories/neovim/issues/24475.json @@ -137,9 +137,53 @@ "type": "User", "url": "https://api.github.com/users/haolian9" } + }, + { + "author_association": "MEMBER", + "body": "No. You only need to check reg_executing() in once place if you structure your plugin to use a common handler for the relevant events.", + "created_at": "2023-08-04T12:25:11Z", + "html_url": "https://github.com/neovim/neovim/issues/24475#issuecomment-1665526601", + "id": 1665526601, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/24475", + "node_id": "IC_kwDOAPphoM5jRetJ", + "performed_via_github_app": null, + "reactions": { + "+1": 1, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 1, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1665526601/reactions" + }, + "updated_at": "2023-08-04T12:25:11Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1665526601", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/1359421?v=4", + "events_url": "https://api.github.com/users/justinmk/events{/privacy}", + "followers_url": "https://api.github.com/users/justinmk/followers", + "following_url": "https://api.github.com/users/justinmk/following{/other_user}", + "gists_url": "https://api.github.com/users/justinmk/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/justinmk", + "id": 1359421, + "login": "justinmk", + "node_id": "MDQ6VXNlcjEzNTk0MjE=", + "organizations_url": "https://api.github.com/users/justinmk/orgs", + "received_events_url": "https://api.github.com/users/justinmk/received_events", + "repos_url": "https://api.github.com/users/justinmk/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/justinmk/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/justinmk/subscriptions", + "type": "User", + "url": "https://api.github.com/users/justinmk" + } } ], - "comments": 3, + "comments": 4, "comments_url": "https://api.github.com/repos/neovim/neovim/issues/24475/comments", "created_at": "2023-07-25T03:07:47Z", "events_url": "https://api.github.com/repos/neovim/neovim/issues/24475/events", @@ -188,7 +232,7 @@ "state_reason": "completed", "timeline_url": "https://api.github.com/repos/neovim/neovim/issues/24475/timeline", "title": "Add `MacroExecutionPre` and `MacroExecutionPost` autocmd events", - "updated_at": "2023-08-04T01:55:34Z", + "updated_at": "2023-08-04T12:25:11Z", "url": "https://api.github.com/repos/neovim/neovim/issues/24475", "user": { "avatar_url": "https://avatars.githubusercontent.com/u/56745535?v=4", diff --git a/repositories/neovim/issues/24532.json b/repositories/neovim/issues/24532.json index e2440249..a8a0fd3e 100644 --- a/repositories/neovim/issues/24532.json +++ b/repositories/neovim/issues/24532.json @@ -49,9 +49,53 @@ "type": "User", "url": "https://api.github.com/users/justinmk" } + }, + { + "author_association": "NONE", + "body": "> Why wouldn't we just change the default?\r\n\r\nThat would work too for this use case. @justinmk would you accept a PR for 17?", + "created_at": "2023-08-04T18:59:06Z", + "html_url": "https://github.com/neovim/neovim/issues/24532#issuecomment-1666049238", + "id": 1666049238, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/24532", + "node_id": "IC_kwDOAPphoM5jTeTW", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1666049238/reactions" + }, + "updated_at": "2023-08-04T18:59:54Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1666049238", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/7856010?v=4", + "events_url": "https://api.github.com/users/christopherfujino/events{/privacy}", + "followers_url": "https://api.github.com/users/christopherfujino/followers", + "following_url": "https://api.github.com/users/christopherfujino/following{/other_user}", + "gists_url": "https://api.github.com/users/christopherfujino/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/christopherfujino", + "id": 7856010, + "login": "christopherfujino", + "node_id": "MDQ6VXNlcjc4NTYwMTA=", + "organizations_url": "https://api.github.com/users/christopherfujino/orgs", + "received_events_url": "https://api.github.com/users/christopherfujino/received_events", + "repos_url": "https://api.github.com/users/christopherfujino/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/christopherfujino/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/christopherfujino/subscriptions", + "type": "User", + "url": "https://api.github.com/users/christopherfujino" + } } ], - "comments": 1, + "comments": 2, "comments_url": "https://api.github.com/repos/neovim/neovim/issues/24532/comments", "created_at": "2023-08-02T14:57:31Z", "events_url": "https://api.github.com/repos/neovim/neovim/issues/24532/events", @@ -84,7 +128,7 @@ "number": 24532, "performed_via_github_app": null, "reactions": { - "+1": 1, + "+1": 2, "-1": 0, "confused": 0, "eyes": 0, @@ -92,7 +136,7 @@ "hooray": 0, "laugh": 0, "rocket": 0, - "total_count": 1, + "total_count": 2, "url": "https://api.github.com/repos/neovim/neovim/issues/24532/reactions" }, "repository_url": "https://api.github.com/repos/neovim/neovim", @@ -100,7 +144,7 @@ "state_reason": null, "timeline_url": "https://api.github.com/repos/neovim/neovim/issues/24532/timeline", "title": "Precision loss on vim.json.encode with integers having more than 14 digits", - "updated_at": "2023-08-02T15:47:01Z", + "updated_at": "2023-08-04T18:59:54Z", "url": "https://api.github.com/repos/neovim/neovim/issues/24532", "user": { "avatar_url": "https://avatars.githubusercontent.com/u/38700?v=4", diff --git a/repositories/neovim/issues/24539.json b/repositories/neovim/issues/24539.json index 38dc3379..8ffc09fc 100644 --- a/repositories/neovim/issues/24539.json +++ b/repositories/neovim/issues/24539.json @@ -49,9 +49,449 @@ "type": "User", "url": "https://api.github.com/users/justinmk" } + }, + { + "author_association": "MEMBER", + "body": "Returning `true` deletes the autocommand, but doesn't abort file writing.", + "created_at": "2023-08-04T05:40:39Z", + "html_url": "https://github.com/neovim/neovim/issues/24539#issuecomment-1665041381", + "id": 1665041381, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/24539", + "node_id": "IC_kwDOAPphoM5jPoPl", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1665041381/reactions" + }, + "updated_at": "2023-08-04T05:40:39Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1665041381", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/35768171?v=4", + "events_url": "https://api.github.com/users/zeertzjq/events{/privacy}", + "followers_url": "https://api.github.com/users/zeertzjq/followers", + "following_url": "https://api.github.com/users/zeertzjq/following{/other_user}", + "gists_url": "https://api.github.com/users/zeertzjq/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/zeertzjq", + "id": 35768171, + "login": "zeertzjq", + "node_id": "MDQ6VXNlcjM1NzY4MTcx", + "organizations_url": "https://api.github.com/users/zeertzjq/orgs", + "received_events_url": "https://api.github.com/users/zeertzjq/received_events", + "repos_url": "https://api.github.com/users/zeertzjq/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/zeertzjq/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/zeertzjq/subscriptions", + "type": "User", + "url": "https://api.github.com/users/zeertzjq" + } + }, + { + "author_association": "MEMBER", + "body": "I don't it's possible to 100% match Vimscript's behavior. When using Vimscript autocommands, this aborts file writing:\r\n```vim\r\nautocmd BufWritePre * throw 1\r\n```\r\nbut this doesn't:\r\n```vim\r\nautocmd BufWritePre * call system(['nosuchcommand'])\r\n```\r\n\r\nBut in Lua it's doesn't seems possible to distinguish these two kinds of errors, and `error()` cannot be overridden either, as that will break `pcall()`.", + "created_at": "2023-08-04T06:06:17Z", + "html_url": "https://github.com/neovim/neovim/issues/24539#issuecomment-1665062048", + "id": 1665062048, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/24539", + "node_id": "IC_kwDOAPphoM5jPtSg", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1665062048/reactions" + }, + "updated_at": "2023-08-04T06:06:17Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1665062048", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/35768171?v=4", + "events_url": "https://api.github.com/users/zeertzjq/events{/privacy}", + "followers_url": "https://api.github.com/users/zeertzjq/followers", + "following_url": "https://api.github.com/users/zeertzjq/following{/other_user}", + "gists_url": "https://api.github.com/users/zeertzjq/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/zeertzjq", + "id": 35768171, + "login": "zeertzjq", + "node_id": "MDQ6VXNlcjM1NzY4MTcx", + "organizations_url": "https://api.github.com/users/zeertzjq/orgs", + "received_events_url": "https://api.github.com/users/zeertzjq/received_events", + "repos_url": "https://api.github.com/users/zeertzjq/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/zeertzjq/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/zeertzjq/subscriptions", + "type": "User", + "url": "https://api.github.com/users/zeertzjq" + } + }, + { + "author_association": "MEMBER", + "body": "Why shouldn't it abort in the failed system() case? The distinction of Exceptions vs other errors in Vim is 100% legacy accident.\r\n\r\nMore generally, maybe we need the ability to \"cancel\" an event. But that means any plugin's handler can skip other other handlers for a given event.", + "created_at": "2023-08-04T12:32:04Z", + "html_url": "https://github.com/neovim/neovim/issues/24539#issuecomment-1665534575", + "id": 1665534575, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/24539", + "node_id": "IC_kwDOAPphoM5jRgpv", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1665534575/reactions" + }, + "updated_at": "2023-08-04T12:32:58Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1665534575", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/1359421?v=4", + "events_url": "https://api.github.com/users/justinmk/events{/privacy}", + "followers_url": "https://api.github.com/users/justinmk/followers", + "following_url": "https://api.github.com/users/justinmk/following{/other_user}", + "gists_url": "https://api.github.com/users/justinmk/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/justinmk", + "id": 1359421, + "login": "justinmk", + "node_id": "MDQ6VXNlcjEzNTk0MjE=", + "organizations_url": "https://api.github.com/users/justinmk/orgs", + "received_events_url": "https://api.github.com/users/justinmk/received_events", + "repos_url": "https://api.github.com/users/justinmk/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/justinmk/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/justinmk/subscriptions", + "type": "User", + "url": "https://api.github.com/users/justinmk" + } + }, + { + "author_association": "NONE", + "body": "I think it is bug because it works on vim but not on neovim.\r\nAlso\r\n```lua\r\nvim.api.nvim_create_autocmd('BufWritePre', {\r\n callback = function()\r\n vim.cmd.throw(\"'hoge'\")\r\n end\r\n})\r\n```\r\ndoesn't prevent writting buffer\r\n\r\n```lua\r\nvim.api.nvim_create_autocmd('BufWritePre', {\r\n callback = function()\r\n vim.cmd.throw(\"'hoge'\")\r\n return false\r\n end\r\n})\r\n```\r\nalso,↑does not work", + "created_at": "2023-08-04T14:11:21Z", + "html_url": "https://github.com/neovim/neovim/issues/24539#issuecomment-1665674714", + "id": 1665674714, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/24539", + "node_id": "IC_kwDOAPphoM5jSC3a", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1665674714/reactions" + }, + "updated_at": "2023-08-04T14:12:17Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1665674714", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/1560508?v=4", + "events_url": "https://api.github.com/users/ryoppippi/events{/privacy}", + "followers_url": "https://api.github.com/users/ryoppippi/followers", + "following_url": "https://api.github.com/users/ryoppippi/following{/other_user}", + "gists_url": "https://api.github.com/users/ryoppippi/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/ryoppippi", + "id": 1560508, + "login": "ryoppippi", + "node_id": "MDQ6VXNlcjE1NjA1MDg=", + "organizations_url": "https://api.github.com/users/ryoppippi/orgs", + "received_events_url": "https://api.github.com/users/ryoppippi/received_events", + "repos_url": "https://api.github.com/users/ryoppippi/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/ryoppippi/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ryoppippi/subscriptions", + "type": "User", + "url": "https://api.github.com/users/ryoppippi" + } + }, + { + "author_association": "MEMBER", + "body": "How? If I add an autocommand `autocmd BufWritePre * lua error(42)` in Vim it doesn't abort file writing.", + "created_at": "2023-08-04T14:14:19Z", + "html_url": "https://github.com/neovim/neovim/issues/24539#issuecomment-1665678727", + "id": 1665678727, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/24539", + "node_id": "IC_kwDOAPphoM5jSD2H", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1665678727/reactions" + }, + "updated_at": "2023-08-04T14:14:19Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1665678727", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/35768171?v=4", + "events_url": "https://api.github.com/users/zeertzjq/events{/privacy}", + "followers_url": "https://api.github.com/users/zeertzjq/followers", + "following_url": "https://api.github.com/users/zeertzjq/following{/other_user}", + "gists_url": "https://api.github.com/users/zeertzjq/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/zeertzjq", + "id": 35768171, + "login": "zeertzjq", + "node_id": "MDQ6VXNlcjM1NzY4MTcx", + "organizations_url": "https://api.github.com/users/zeertzjq/orgs", + "received_events_url": "https://api.github.com/users/zeertzjq/received_events", + "repos_url": "https://api.github.com/users/zeertzjq/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/zeertzjq/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/zeertzjq/subscriptions", + "type": "User", + "url": "https://api.github.com/users/zeertzjq" + } + }, + { + "author_association": "NONE", + "body": "Okay, so rn, how can I prevent writing buffer?\r\nI just want to check the format or something before saving it to the file, and if the checks fail, I want to prevent writing\r\n\r\nWhen I write an autocmd in lua, `error(42)` does not work and `vim.cmd.throw(\"'hoge'\")` does not either", + "created_at": "2023-08-04T14:15:24Z", + "html_url": "https://github.com/neovim/neovim/issues/24539#issuecomment-1665680293", + "id": 1665680293, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/24539", + "node_id": "IC_kwDOAPphoM5jSEOl", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1665680293/reactions" + }, + "updated_at": "2023-08-04T14:16:47Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1665680293", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/1560508?v=4", + "events_url": "https://api.github.com/users/ryoppippi/events{/privacy}", + "followers_url": "https://api.github.com/users/ryoppippi/followers", + "following_url": "https://api.github.com/users/ryoppippi/following{/other_user}", + "gists_url": "https://api.github.com/users/ryoppippi/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/ryoppippi", + "id": 1560508, + "login": "ryoppippi", + "node_id": "MDQ6VXNlcjE1NjA1MDg=", + "organizations_url": "https://api.github.com/users/ryoppippi/orgs", + "received_events_url": "https://api.github.com/users/ryoppippi/received_events", + "repos_url": "https://api.github.com/users/ryoppippi/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/ryoppippi/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ryoppippi/subscriptions", + "type": "User", + "url": "https://api.github.com/users/ryoppippi" + } + }, + { + "author_association": "NONE", + "body": "```\r\nvim.cmd('throw 42')\r\n```\r\nThis does not abort file saving", + "created_at": "2023-08-04T14:18:59Z", + "html_url": "https://github.com/neovim/neovim/issues/24539#issuecomment-1665688334", + "id": 1665688334, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/24539", + "node_id": "IC_kwDOAPphoM5jSGMO", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1665688334/reactions" + }, + "updated_at": "2023-08-04T14:18:59Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1665688334", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/1560508?v=4", + "events_url": "https://api.github.com/users/ryoppippi/events{/privacy}", + "followers_url": "https://api.github.com/users/ryoppippi/followers", + "following_url": "https://api.github.com/users/ryoppippi/following{/other_user}", + "gists_url": "https://api.github.com/users/ryoppippi/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/ryoppippi", + "id": 1560508, + "login": "ryoppippi", + "node_id": "MDQ6VXNlcjE1NjA1MDg=", + "organizations_url": "https://api.github.com/users/ryoppippi/orgs", + "received_events_url": "https://api.github.com/users/ryoppippi/received_events", + "repos_url": "https://api.github.com/users/ryoppippi/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/ryoppippi/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ryoppippi/subscriptions", + "type": "User", + "url": "https://api.github.com/users/ryoppippi" + } + }, + { + "author_association": "NONE", + "body": "And, idk why but the vim crashes sometimes\r\nOh you @zeertzjq made an issue #24556 ! Thanks", + "created_at": "2023-08-04T14:20:55Z", + "html_url": "https://github.com/neovim/neovim/issues/24539#issuecomment-1665694180", + "id": 1665694180, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/24539", + "node_id": "IC_kwDOAPphoM5jSHnk", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1665694180/reactions" + }, + "updated_at": "2023-08-04T14:21:04Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1665694180", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/1560508?v=4", + "events_url": "https://api.github.com/users/ryoppippi/events{/privacy}", + "followers_url": "https://api.github.com/users/ryoppippi/followers", + "following_url": "https://api.github.com/users/ryoppippi/following{/other_user}", + "gists_url": "https://api.github.com/users/ryoppippi/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/ryoppippi", + "id": 1560508, + "login": "ryoppippi", + "node_id": "MDQ6VXNlcjE1NjA1MDg=", + "organizations_url": "https://api.github.com/users/ryoppippi/orgs", + "received_events_url": "https://api.github.com/users/ryoppippi/received_events", + "repos_url": "https://api.github.com/users/ryoppippi/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/ryoppippi/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ryoppippi/subscriptions", + "type": "User", + "url": "https://api.github.com/users/ryoppippi" + } + }, + { + "author_association": "MEMBER", + "body": "Looks like there needs to be a new API that creates an uncaught exception...", + "created_at": "2023-08-04T14:21:12Z", + "html_url": "https://github.com/neovim/neovim/issues/24539#issuecomment-1665694809", + "id": 1665694809, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/24539", + "node_id": "IC_kwDOAPphoM5jSHxZ", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1665694809/reactions" + }, + "updated_at": "2023-08-04T14:21:55Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1665694809", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/35768171?v=4", + "events_url": "https://api.github.com/users/zeertzjq/events{/privacy}", + "followers_url": "https://api.github.com/users/zeertzjq/followers", + "following_url": "https://api.github.com/users/zeertzjq/following{/other_user}", + "gists_url": "https://api.github.com/users/zeertzjq/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/zeertzjq", + "id": 35768171, + "login": "zeertzjq", + "node_id": "MDQ6VXNlcjM1NzY4MTcx", + "organizations_url": "https://api.github.com/users/zeertzjq/orgs", + "received_events_url": "https://api.github.com/users/zeertzjq/received_events", + "repos_url": "https://api.github.com/users/zeertzjq/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/zeertzjq/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/zeertzjq/subscriptions", + "type": "User", + "url": "https://api.github.com/users/zeertzjq" + } + }, + { + "author_association": "NONE", + "body": "Okay.. Thanks", + "created_at": "2023-08-04T14:21:43Z", + "html_url": "https://github.com/neovim/neovim/issues/24539#issuecomment-1665695822", + "id": 1665695822, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/24539", + "node_id": "IC_kwDOAPphoM5jSIBO", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1665695822/reactions" + }, + "updated_at": "2023-08-04T14:21:43Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1665695822", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/1560508?v=4", + "events_url": "https://api.github.com/users/ryoppippi/events{/privacy}", + "followers_url": "https://api.github.com/users/ryoppippi/followers", + "following_url": "https://api.github.com/users/ryoppippi/following{/other_user}", + "gists_url": "https://api.github.com/users/ryoppippi/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/ryoppippi", + "id": 1560508, + "login": "ryoppippi", + "node_id": "MDQ6VXNlcjE1NjA1MDg=", + "organizations_url": "https://api.github.com/users/ryoppippi/orgs", + "received_events_url": "https://api.github.com/users/ryoppippi/received_events", + "repos_url": "https://api.github.com/users/ryoppippi/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/ryoppippi/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ryoppippi/subscriptions", + "type": "User", + "url": "https://api.github.com/users/ryoppippi" + } } ], - "comments": 1, + "comments": 11, "comments_url": "https://api.github.com/repos/neovim/neovim/issues/24539/comments", "created_at": "2023-08-03T11:14:19Z", "events_url": "https://api.github.com/repos/neovim/neovim/issues/24539/events", @@ -59,13 +499,13 @@ "id": 1834853107, "labels": [ { - "color": "f9d0c4", - "default": true, - "description": "issues reporting wrong behavior", - "id": 77997474, - "name": "bug", - "node_id": "MDU6TGFiZWw3Nzk5NzQ3NA==", - "url": "https://api.github.com/repos/neovim/neovim/labels/bug" + "color": "FBCA04", + "default": false, + "description": "For PRs that propose significant changes to some part of the architecture or API", + "id": 212680983, + "name": "needs:discussion", + "node_id": "MDU6TGFiZWwyMTI2ODA5ODM=", + "url": "https://api.github.com/repos/neovim/neovim/labels/needs:discussion" }, { "color": "c5def5", @@ -75,11 +515,56 @@ "name": "lua", "node_id": "MDU6TGFiZWw1NzMyMjI2OTM=", "url": "https://api.github.com/repos/neovim/neovim/labels/lua" + }, + { + "color": "C5DEF5", + "default": false, + "description": "events, autocommands", + "id": 3341085842, + "name": "events", + "node_id": "MDU6TGFiZWwzMzQxMDg1ODQy", + "url": "https://api.github.com/repos/neovim/neovim/labels/events" } ], "labels_url": "https://api.github.com/repos/neovim/neovim/issues/24539/labels{/name}", "locked": false, - "milestone": null, + "milestone": { + "closed_at": null, + "closed_issues": 570, + "created_at": "2014-05-10T20:43:04Z", + "creator": { + "avatar_url": "https://avatars.githubusercontent.com/u/1359421?v=4", + "events_url": "https://api.github.com/users/justinmk/events{/privacy}", + "followers_url": "https://api.github.com/users/justinmk/followers", + "following_url": "https://api.github.com/users/justinmk/following{/other_user}", + "gists_url": "https://api.github.com/users/justinmk/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/justinmk", + "id": 1359421, + "login": "justinmk", + "node_id": "MDQ6VXNlcjEzNTk0MjE=", + "organizations_url": "https://api.github.com/users/justinmk/orgs", + "received_events_url": "https://api.github.com/users/justinmk/received_events", + "repos_url": "https://api.github.com/users/justinmk/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/justinmk/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/justinmk/subscriptions", + "type": "User", + "url": "https://api.github.com/users/justinmk" + }, + "description": "Low priority. Not planned for the current target, may be reassigned.", + "due_on": null, + "html_url": "https://github.com/neovim/neovim/milestone/6", + "id": 655037, + "labels_url": "https://api.github.com/repos/neovim/neovim/milestones/6/labels", + "node_id": "MDk6TWlsZXN0b25lNjU1MDM3", + "number": 6, + "open_issues": 417, + "state": "open", + "title": "backlog", + "updated_at": "2023-08-04T21:11:41Z", + "url": "https://api.github.com/repos/neovim/neovim/milestones/6" + }, "node_id": "I_kwDOAPphoM5tXaLz", "number": 24539, "performed_via_github_app": null, @@ -99,8 +584,8 @@ "state": "open", "state_reason": null, "timeline_url": "https://api.github.com/repos/neovim/neovim/issues/24539/timeline", - "title": "file is written even if if BufWritePre autocmd fails", - "updated_at": "2023-08-03T13:58:46Z", + "title": "Cannot abort file writing using Lua autocommands", + "updated_at": "2023-08-04T14:23:35Z", "url": "https://api.github.com/repos/neovim/neovim/issues/24539", "user": { "avatar_url": "https://avatars.githubusercontent.com/u/1560508?v=4", diff --git a/repositories/neovim/issues/24540.json b/repositories/neovim/issues/24540.json index adf3de8f..1cbe2e1a 100644 --- a/repositories/neovim/issues/24540.json +++ b/repositories/neovim/issues/24540.json @@ -5,8 +5,53 @@ "author_association": "NONE", "body": "### Problem\r\n\r\nI am developing go language.\r\n\r\nIn go language, I am using gopls as LSP Server, and when I tried to use 'go to implementation' in neovim through several plugins such as vim-go and coc, I found that tag stack does not work normally. I kept testing to find the cause, and eventually found that vim.lsp.buf.implentation in neovim is an error.\r\nI used the same plugin in vim and the tag stack worked fine in the same situation.\r\n\r\nI found that if there is only one implementation of the interface that is the target of the 'go to implementation', the tag stack works fine, but if there is more than one implementation, it jumps to that location, but the tag stack does not stack.\r\n\r\nThe 'go to definition' works fine, which makes sense when you think about it. I would like the tag stack to work fine for the jump behavior for 2 or more implementations.\r\n\r\n### Steps to reproduce using \"nvim -u minimal_init.lua\"\r\n\r\nlocal pattern = 'go' \r\nlocal cmd = {'gopls'}\r\n-- Add files/folders here that indicate the root of a project\r\nlocal root_markers = {'.git', '.editorconfig'}\r\n-- Change to table with settings if required\r\nlocal settings = vim.empty_dict()\r\n\r\nvim.api.nvim_create_autocmd('FileType', {\r\n▏ pattern = pattern,\r\n▏ callback = function(args)\r\n▏ ▏ local match = vim.fs.find(root_markers, { path = args.file, upward = true })[1]\r\n▏ ▏ local root_dir = match and vim.fn.fnamemodify(match, ':p:h') or nil\r\n▏ ▏ vim.lsp.start({\r\n▏ ▏ ▏ name = 'bugged-ls',\r\n▏ ▏ ▏ cmd = cmd,\r\n▏ ▏ ▏ root_dir = root_dir,\r\n▏ ▏ ▏ settings = settings\r\n▏ ▏ })\r\n▏ end\r\n})\r\n\r\n\r\n### Expected behavior\r\n\r\nStoring in the tag stack normally\r\n\r\n### Neovim version (nvim -v)\r\n\r\nNVIM v0.9.1\r\n\r\n### Language server name/version\r\n\r\ngolang.org/x/tools/gopls v0.13.1\r\n\r\n### Operating system/version\r\n\r\nmac osx 13.4.1 ventura\r\n\r\n### Log file\r\n\r\n_No response_", "closed_at": null, - "comment_data": [], - "comments": 0, + "comment_data": [ + { + "author_association": "MEMBER", + "body": "because when result only have one there ran into `util.jump_to_location` function it will set `tagstck` when have multiple results it will ran into `setqflist` so the tagstack not set... I think this is better implement on your local config if you want ", + "created_at": "2023-08-04T07:09:56Z", + "html_url": "https://github.com/neovim/neovim/issues/24540#issuecomment-1665118257", + "id": 1665118257, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/24540", + "node_id": "IC_kwDOAPphoM5jP7Ax", + "performed_via_github_app": null, + "reactions": { + "+1": 1, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 1, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1665118257/reactions" + }, + "updated_at": "2023-08-04T10:41:32Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1665118257", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/41671631?v=4", + "events_url": "https://api.github.com/users/glepnir/events{/privacy}", + "followers_url": "https://api.github.com/users/glepnir/followers", + "following_url": "https://api.github.com/users/glepnir/following{/other_user}", + "gists_url": "https://api.github.com/users/glepnir/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/glepnir", + "id": 41671631, + "login": "glepnir", + "node_id": "MDQ6VXNlcjQxNjcxNjMx", + "organizations_url": "https://api.github.com/users/glepnir/orgs", + "received_events_url": "https://api.github.com/users/glepnir/received_events", + "repos_url": "https://api.github.com/users/glepnir/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/glepnir/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/glepnir/subscriptions", + "type": "User", + "url": "https://api.github.com/users/glepnir" + } + } + ], + "comments": 1, "comments_url": "https://api.github.com/repos/neovim/neovim/issues/24540/comments", "created_at": "2023-08-03T12:34:25Z", "events_url": "https://api.github.com/repos/neovim/neovim/issues/24540/events", @@ -36,7 +81,7 @@ "locked": false, "milestone": { "closed_at": null, - "closed_issues": 569, + "closed_issues": 570, "created_at": "2014-05-10T20:43:04Z", "creator": { "avatar_url": "https://avatars.githubusercontent.com/u/1359421?v=4", @@ -65,10 +110,10 @@ "labels_url": "https://api.github.com/repos/neovim/neovim/milestones/6/labels", "node_id": "MDk6TWlsZXN0b25lNjU1MDM3", "number": 6, - "open_issues": 415, + "open_issues": 417, "state": "open", "title": "backlog", - "updated_at": "2023-08-04T00:06:59Z", + "updated_at": "2023-08-04T21:11:41Z", "url": "https://api.github.com/repos/neovim/neovim/milestones/6" }, "node_id": "I_kwDOAPphoM5tX4P2", @@ -91,7 +136,7 @@ "state_reason": null, "timeline_url": "https://api.github.com/repos/neovim/neovim/issues/24540/timeline", "title": "vim.lsp.buf.implementation doesn't push to tag stack.", - "updated_at": "2023-08-03T13:53:26Z", + "updated_at": "2023-08-04T10:41:32Z", "url": "https://api.github.com/repos/neovim/neovim/issues/24540", "user": { "avatar_url": "https://avatars.githubusercontent.com/u/2032376?v=4", diff --git a/repositories/neovim/issues/24543.json b/repositories/neovim/issues/24543.json index 2002b7e7..d57fad5d 100644 --- a/repositories/neovim/issues/24543.json +++ b/repositories/neovim/issues/24543.json @@ -203,7 +203,7 @@ "total_count": 0, "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1664039553/reactions" }, - "updated_at": "2023-08-03T14:00:58Z", + "updated_at": "2023-08-04T11:15:46Z", "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1664039553", "user": { "avatar_url": "https://avatars.githubusercontent.com/u/103114856?v=4", @@ -225,9 +225,53 @@ "type": "User", "url": "https://api.github.com/users/imxyy1soope1" } + }, + { + "author_association": "MEMBER", + "body": "To better reproduce your problem please use the standard minimal configuration. It is best not to add any third-party plugins. `nvim --clean -u min.lua`\r\n\r\n```lua\r\nvim.api.nvim_create_autocmd('FileType', {\r\n pattern = 'go',\r\n callback = function()\r\n vim.lsp.start({\r\n name = 'gopls',\r\n cmd = { 'gopls' },\r\n root_dir = vim.fs.dirname(vim.fs.find({ 'go.mod' }, { upward = true })[1]),\r\n })\r\n end,\r\n})\r\n\r\n```", + "created_at": "2023-08-04T06:43:53Z", + "html_url": "https://github.com/neovim/neovim/issues/24543#issuecomment-1665093648", + "id": 1665093648, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/24543", + "node_id": "IC_kwDOAPphoM5jP1AQ", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1665093648/reactions" + }, + "updated_at": "2023-08-04T06:47:08Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1665093648", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/41671631?v=4", + "events_url": "https://api.github.com/users/glepnir/events{/privacy}", + "followers_url": "https://api.github.com/users/glepnir/followers", + "following_url": "https://api.github.com/users/glepnir/following{/other_user}", + "gists_url": "https://api.github.com/users/glepnir/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/glepnir", + "id": 41671631, + "login": "glepnir", + "node_id": "MDQ6VXNlcjQxNjcxNjMx", + "organizations_url": "https://api.github.com/users/glepnir/orgs", + "received_events_url": "https://api.github.com/users/glepnir/received_events", + "repos_url": "https://api.github.com/users/glepnir/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/glepnir/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/glepnir/subscriptions", + "type": "User", + "url": "https://api.github.com/users/glepnir" + } } ], - "comments": 5, + "comments": 6, "comments_url": "https://api.github.com/repos/neovim/neovim/issues/24543/comments", "created_at": "2023-08-03T13:44:08Z", "events_url": "https://api.github.com/repos/neovim/neovim/issues/24543/events", @@ -243,6 +287,15 @@ "node_id": "MDU6TGFiZWw3Nzk5NzQ3NA==", "url": "https://api.github.com/repos/neovim/neovim/labels/bug" }, + { + "color": "FBCA04", + "default": false, + "description": "waiting for reply from the author", + "id": 248229439, + "name": "needs:response", + "node_id": "MDU6TGFiZWwyNDgyMjk0Mzk=", + "url": "https://api.github.com/repos/neovim/neovim/labels/needs:response" + }, { "color": "FBCA04", "default": false, @@ -294,7 +347,7 @@ "state_reason": null, "timeline_url": "https://api.github.com/repos/neovim/neovim/issues/24543/timeline", "title": "Freeze on loading too much diagnostics with gopls", - "updated_at": "2023-08-03T14:00:58Z", + "updated_at": "2023-08-04T11:16:03Z", "url": "https://api.github.com/repos/neovim/neovim/issues/24543", "user": { "avatar_url": "https://avatars.githubusercontent.com/u/103114856?v=4", diff --git a/repositories/neovim/issues/24546.json b/repositories/neovim/issues/24546.json index d4610ee8..3c53cf3d 100644 --- a/repositories/neovim/issues/24546.json +++ b/repositories/neovim/issues/24546.json @@ -4,24 +4,764 @@ "assignees": [], "author_association": "CONTRIBUTOR", "body": "### Problem\n\nHi there!\r\nI'm sometimes using nvim inside tmux that runs inside tmux, which runs in Konsole.\r\n(In some cases I even pass KONSOLE_* variables over ssh to make some nvim-irrelevant things to work).\r\n\r\nAs far as I understand, `nvim` detects whether it runs in `konsole`/`yakuake` by checking `KONSOLE_DBUS_SESSION` variable.\r\nAnd, it seems, that check has higher priority over checking for tmux (although, I failed to find an evidence in `src/nvim/tui/tui.c`).\r\n\r\nAnyway, the problem is that nvim doestn't change cursor shape when it runs inside tmux (where I have set up overriding of `Se`/`Ss` to `Konsole`'s code) and there is `KONSOLE_DBUS_SESSION` variable in the environment.\r\n\r\nIf I unset it, it works like a charm.\r\n\r\n\r\nAlso, previously I had following in the config, but it stoped working since one of the last updates:\r\n```Lua\r\n-- hack to stop nvim to detect Konsole when in tmux\r\n-- (I made cursor management stuff in tmux instead). \r\nif os.getenv(\"TERM\"):match\"^tmux*\" then \r\n cmd([[unlet $KONSOLE_DBUS_SERVICE | unlet $KONSOLE_DBUS_SESSION | ]] \r\n .. [[unlet $KONSOLE_PROFILE_NAME | unlet $KONSOLE_VERSION]]) \r\nend\r\n```\r\n\r\nLooks like now nvim checks cursor shaping things before reading the config :shrug: \r\n\r\nAnyway, I don't know how to resolve that issue, as I need those variables to be set for other things to work, so I can't unset them in the shell.\r\nAnd, it seems, there is no way to unset them within nvim anymore.\r\n\r\n\r\nMaybe nvim need a special handle for that situation (konsole+tmux)?\r\nOr, at least, prioritize check for tmux over check for konsole? :shrug: \n\n### Steps to reproduce\n\n1. Run Konsole or Yakuake\r\n2. run nvim (even `nvim --clean`) and see it changes cursor shapes between normal and insert modes\r\n4. exit nvim, run tmux (with terminal-overriding set up properly and `KONSOLE_*`-variables in `update-environment`)\r\n5. run nvim (even clean) and see it don't change cursor shape at all\r\n6. exit nvim, unset `KONSOLE_*` variables in the shell\r\n7. run nvim again and see, it changes cursor shapes again pretty well\n\n### Expected behavior\n\n Cursor shape changing works even without unsetting `KONSOLE_*` vars\n\n### Neovim version (nvim -v)\n\nv0.10.0-dev-729+g74bd4aba5-dirty\n\n### Vim (not Nvim) behaves the same?\n\nirrelevant\n\n### Operating system/version\n\nGentoo\n\n### Terminal name/version\n\nKonsole 23.04.2\n\n### $TERM environment variable\n\nxterm-256color and konsole-256color\n\n### Installation\n\nOfficial Gentoo package", - "closed_at": null, - "comment_data": [], - "comments": 0, + "closed_at": "2023-08-04T11:14:56Z", + "comment_data": [ + { + "author_association": "MEMBER", + "body": "> where I have set up overriding of Se/Ss to Konsole's code\r\n\r\nWhat does this mean?", + "created_at": "2023-08-04T07:26:44Z", + "html_url": "https://github.com/neovim/neovim/issues/24546#issuecomment-1665136473", + "id": 1665136473, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/24546", + "node_id": "IC_kwDOAPphoM5jP_dZ", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1665136473/reactions" + }, + "updated_at": "2023-08-04T07:26:44Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1665136473", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/35768171?v=4", + "events_url": "https://api.github.com/users/zeertzjq/events{/privacy}", + "followers_url": "https://api.github.com/users/zeertzjq/followers", + "following_url": "https://api.github.com/users/zeertzjq/following{/other_user}", + "gists_url": "https://api.github.com/users/zeertzjq/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/zeertzjq", + "id": 35768171, + "login": "zeertzjq", + "node_id": "MDQ6VXNlcjM1NzY4MTcx", + "organizations_url": "https://api.github.com/users/zeertzjq/orgs", + "received_events_url": "https://api.github.com/users/zeertzjq/received_events", + "repos_url": "https://api.github.com/users/zeertzjq/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/zeertzjq/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/zeertzjq/subscriptions", + "type": "User", + "url": "https://api.github.com/users/zeertzjq" + } + }, + { + "author_association": "CONTRIBUTOR", + "body": "> What does this mean?\r\n\r\n```tmux \r\n# Konsole\r\n# Cursor shape: Ss=set, Se=reset\r\nset -gas terminal-overrides ',konsole*:Ss=\\E]50;CursorShape=%?%p1%{3}%<%t%{0}%e%p1%{5}%<%t%{2}%e%{1}%;%d;BlinkingCursorEnabled=%?%p1%{1}%<%t%{1}%e%p1%{1}%&%;%d\\007:Se=\\E]50;CursorShape=1;BlinkingCursorEnabled=1\\007'\r\n# Cursor colors: Cs=set, Cr=reset\r\nset -gas terminal-overrides ',konsole*:Cs=\\E]50;UseCustomCursorColor=1;CustomCursorColor=%p1%s\\007:Cr=\\E]50;UseCustomCursorColor=0\\007'\r\n```", + "created_at": "2023-08-04T08:58:47Z", + "html_url": "https://github.com/neovim/neovim/issues/24546#issuecomment-1665274293", + "id": 1665274293, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/24546", + "node_id": "IC_kwDOAPphoM5jQhG1", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1665274293/reactions" + }, + "updated_at": "2023-08-04T08:58:47Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1665274293", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/268102?v=4", + "events_url": "https://api.github.com/users/msva/events{/privacy}", + "followers_url": "https://api.github.com/users/msva/followers", + "following_url": "https://api.github.com/users/msva/following{/other_user}", + "gists_url": "https://api.github.com/users/msva/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/msva", + "id": 268102, + "login": "msva", + "node_id": "MDQ6VXNlcjI2ODEwMg==", + "organizations_url": "https://api.github.com/users/msva/orgs", + "received_events_url": "https://api.github.com/users/msva/received_events", + "repos_url": "https://api.github.com/users/msva/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/msva/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/msva/subscriptions", + "type": "User", + "url": "https://api.github.com/users/msva" + } + }, + { + "author_association": "CONTRIBUTOR", + "body": "well, although, current Konsole version annyway supports XTerm's codes, so this is not even needed, and it is enough to just\r\n```tmux\r\nset -gas terminal-overrides ',xterm*:Ss=\\E[%p1%d q:Se=\\E[2 q'\r\n```\r\n\r\nAnyway, it works fine with both ways, if remove `KONSOLE_*` vars", + "created_at": "2023-08-04T09:01:11Z", + "html_url": "https://github.com/neovim/neovim/issues/24546#issuecomment-1665277411", + "id": 1665277411, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/24546", + "node_id": "IC_kwDOAPphoM5jQh3j", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1665277411/reactions" + }, + "updated_at": "2023-08-04T09:01:11Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1665277411", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/268102?v=4", + "events_url": "https://api.github.com/users/msva/events{/privacy}", + "followers_url": "https://api.github.com/users/msva/followers", + "following_url": "https://api.github.com/users/msva/following{/other_user}", + "gists_url": "https://api.github.com/users/msva/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/msva", + "id": 268102, + "login": "msva", + "node_id": "MDQ6VXNlcjI2ODEwMg==", + "organizations_url": "https://api.github.com/users/msva/orgs", + "received_events_url": "https://api.github.com/users/msva/received_events", + "repos_url": "https://api.github.com/users/msva/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/msva/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/msva/subscriptions", + "type": "User", + "url": "https://api.github.com/users/msva" + } + }, + { + "author_association": "MEMBER", + "body": "Wait... Why is `$TERM` set to `xterm-256color` or `konsole-256color` inside tmux? It should be `tmux-256color`.", + "created_at": "2023-08-04T09:16:27Z", + "html_url": "https://github.com/neovim/neovim/issues/24546#issuecomment-1665297872", + "id": 1665297872, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/24546", + "node_id": "IC_kwDOAPphoM5jQm3Q", + "performed_via_github_app": null, + "reactions": { + "+1": 1, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 1, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1665297872/reactions" + }, + "updated_at": "2023-08-04T09:16:27Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1665297872", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/35768171?v=4", + "events_url": "https://api.github.com/users/zeertzjq/events{/privacy}", + "followers_url": "https://api.github.com/users/zeertzjq/followers", + "following_url": "https://api.github.com/users/zeertzjq/following{/other_user}", + "gists_url": "https://api.github.com/users/zeertzjq/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/zeertzjq", + "id": 35768171, + "login": "zeertzjq", + "node_id": "MDQ6VXNlcjM1NzY4MTcx", + "organizations_url": "https://api.github.com/users/zeertzjq/orgs", + "received_events_url": "https://api.github.com/users/zeertzjq/received_events", + "repos_url": "https://api.github.com/users/zeertzjq/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/zeertzjq/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/zeertzjq/subscriptions", + "type": "User", + "url": "https://api.github.com/users/zeertzjq" + } + }, + { + "author_association": "MEMBER", + "body": "Cannot reproduce. When using the tmux configs mentioned below, cursor shape either works both inside and outside Nvim, or neither.", + "created_at": "2023-08-04T09:23:35Z", + "html_url": "https://github.com/neovim/neovim/issues/24546#issuecomment-1665306585", + "id": 1665306585, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/24546", + "node_id": "IC_kwDOAPphoM5jQo_Z", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1665306585/reactions" + }, + "updated_at": "2023-08-04T09:23:35Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1665306585", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/35768171?v=4", + "events_url": "https://api.github.com/users/zeertzjq/events{/privacy}", + "followers_url": "https://api.github.com/users/zeertzjq/followers", + "following_url": "https://api.github.com/users/zeertzjq/following{/other_user}", + "gists_url": "https://api.github.com/users/zeertzjq/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/zeertzjq", + "id": 35768171, + "login": "zeertzjq", + "node_id": "MDQ6VXNlcjM1NzY4MTcx", + "organizations_url": "https://api.github.com/users/zeertzjq/orgs", + "received_events_url": "https://api.github.com/users/zeertzjq/received_events", + "repos_url": "https://api.github.com/users/zeertzjq/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/zeertzjq/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/zeertzjq/subscriptions", + "type": "User", + "url": "https://api.github.com/users/zeertzjq" + } + }, + { + "author_association": "MEMBER", + "body": "> current Konsole version annyway supports XTerm's codes,\r\n\r\nAh right. And we aren't going to spend time supporting the old konsole if we can avoid it.\r\n\r\nIt turns out when you add a bunch of junk to 3+ layers of terminals, things get weird.", + "created_at": "2023-08-04T11:14:56Z", + "html_url": "https://github.com/neovim/neovim/issues/24546#issuecomment-1665443504", + "id": 1665443504, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/24546", + "node_id": "IC_kwDOAPphoM5jRKaw", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1665443504/reactions" + }, + "updated_at": "2023-08-04T11:14:56Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1665443504", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/1359421?v=4", + "events_url": "https://api.github.com/users/justinmk/events{/privacy}", + "followers_url": "https://api.github.com/users/justinmk/followers", + "following_url": "https://api.github.com/users/justinmk/following{/other_user}", + "gists_url": "https://api.github.com/users/justinmk/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/justinmk", + "id": 1359421, + "login": "justinmk", + "node_id": "MDQ6VXNlcjEzNTk0MjE=", + "organizations_url": "https://api.github.com/users/justinmk/orgs", + "received_events_url": "https://api.github.com/users/justinmk/received_events", + "repos_url": "https://api.github.com/users/justinmk/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/justinmk/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/justinmk/subscriptions", + "type": "User", + "url": "https://api.github.com/users/justinmk" + } + }, + { + "author_association": "CONTRIBUTOR", + "body": "> > current Konsole version annyway supports XTerm's codes,\r\n> \r\n> Ah right. And we aren't going to spend time supporting the old konsole if we can avoid it.\r\n\r\nYeah, but now nvim somewhy still trying to detect the Konsole and handle it separately (I guess, it tries to use Konsole's `Ss` inside tmux, while tmux waits for the ones described in it's terminfo (actually, it is xterm's ones), and that is why this issue appears.\r\n\r\nBecause when nvim don't detect Konsole (after unsetting KONSOLE variables), all works fine (I guess, nvim uses codes from tmux terminfo (which are identical to xterm ones))", + "created_at": "2023-08-04T12:49:38Z", + "html_url": "https://github.com/neovim/neovim/issues/24546#issuecomment-1665557121", + "id": 1665557121, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/24546", + "node_id": "IC_kwDOAPphoM5jRmKB", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1665557121/reactions" + }, + "updated_at": "2023-08-04T12:56:33Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1665557121", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/268102?v=4", + "events_url": "https://api.github.com/users/msva/events{/privacy}", + "followers_url": "https://api.github.com/users/msva/followers", + "following_url": "https://api.github.com/users/msva/following{/other_user}", + "gists_url": "https://api.github.com/users/msva/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/msva", + "id": 268102, + "login": "msva", + "node_id": "MDQ6VXNlcjI2ODEwMg==", + "organizations_url": "https://api.github.com/users/msva/orgs", + "received_events_url": "https://api.github.com/users/msva/received_events", + "repos_url": "https://api.github.com/users/msva/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/msva/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/msva/subscriptions", + "type": "User", + "url": "https://api.github.com/users/msva" + } + }, + { + "author_association": "CONTRIBUTOR", + "body": "> Wait... Why is `$TERM` set to `xterm-256color` or `konsole-256color` inside tmux? It should be `tmux-256color`.\r\n\r\nIIRC, no: that terms in `set` commands belongs to the TERM outside of `tmux`. And, AFAIU, it is \"which code tmux should send outside, when it receive corresponding codes from application.\r\n\r\nSo, when nvim doesn't recognize Konsole because of variables, it sends correct `Ss` codes to change the shape, and it works.\r\nBut when it thinks it runs in Konsole (while actually in tmux, which is in Konsole), and it, I guess, sends Konsole's codes, which tmux doesn't recognize, so don't proxy them outside.\r\n\r\nAt least, how I imagine the situation.", + "created_at": "2023-08-04T12:54:24Z", + "html_url": "https://github.com/neovim/neovim/issues/24546#issuecomment-1665562905", + "id": 1665562905, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/24546", + "node_id": "IC_kwDOAPphoM5jRnkZ", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1665562905/reactions" + }, + "updated_at": "2023-08-04T12:54:59Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1665562905", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/268102?v=4", + "events_url": "https://api.github.com/users/msva/events{/privacy}", + "followers_url": "https://api.github.com/users/msva/followers", + "following_url": "https://api.github.com/users/msva/following{/other_user}", + "gists_url": "https://api.github.com/users/msva/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/msva", + "id": 268102, + "login": "msva", + "node_id": "MDQ6VXNlcjI2ODEwMg==", + "organizations_url": "https://api.github.com/users/msva/orgs", + "received_events_url": "https://api.github.com/users/msva/received_events", + "repos_url": "https://api.github.com/users/msva/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/msva/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/msva/subscriptions", + "type": "User", + "url": "https://api.github.com/users/msva" + } + }, + { + "author_association": "MEMBER", + "body": "That's what I thought you were trying to mean as well, and I cannot reproduce this.", + "created_at": "2023-08-04T12:58:42Z", + "html_url": "https://github.com/neovim/neovim/issues/24546#issuecomment-1665568350", + "id": 1665568350, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/24546", + "node_id": "IC_kwDOAPphoM5jRo5e", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1665568350/reactions" + }, + "updated_at": "2023-08-04T12:58:42Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1665568350", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/35768171?v=4", + "events_url": "https://api.github.com/users/zeertzjq/events{/privacy}", + "followers_url": "https://api.github.com/users/zeertzjq/followers", + "following_url": "https://api.github.com/users/zeertzjq/following{/other_user}", + "gists_url": "https://api.github.com/users/zeertzjq/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/zeertzjq", + "id": 35768171, + "login": "zeertzjq", + "node_id": "MDQ6VXNlcjM1NzY4MTcx", + "organizations_url": "https://api.github.com/users/zeertzjq/orgs", + "received_events_url": "https://api.github.com/users/zeertzjq/received_events", + "repos_url": "https://api.github.com/users/zeertzjq/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/zeertzjq/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/zeertzjq/subscriptions", + "type": "User", + "url": "https://api.github.com/users/zeertzjq" + } + }, + { + "author_association": "CONTRIBUTOR", + "body": "> > current Konsole version annyway supports XTerm's codes,\r\n\r\nBy the way, it only applicable to cursor shape changing codes.\r\n\r\nIt still doesn't suppor cursor color change (`Cs`/`Cr`) sequences of xterm and still requires custom ones.\r\n", + "created_at": "2023-08-04T12:59:45Z", + "html_url": "https://github.com/neovim/neovim/issues/24546#issuecomment-1665570336", + "id": 1665570336, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/24546", + "node_id": "IC_kwDOAPphoM5jRpYg", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1665570336/reactions" + }, + "updated_at": "2023-08-04T12:59:45Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1665570336", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/268102?v=4", + "events_url": "https://api.github.com/users/msva/events{/privacy}", + "followers_url": "https://api.github.com/users/msva/followers", + "following_url": "https://api.github.com/users/msva/following{/other_user}", + "gists_url": "https://api.github.com/users/msva/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/msva", + "id": 268102, + "login": "msva", + "node_id": "MDQ6VXNlcjI2ODEwMg==", + "organizations_url": "https://api.github.com/users/msva/orgs", + "received_events_url": "https://api.github.com/users/msva/received_events", + "repos_url": "https://api.github.com/users/msva/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/msva/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/msva/subscriptions", + "type": "User", + "url": "https://api.github.com/users/msva" + } + }, + { + "author_association": "MEMBER", + "body": "Ok what about this patch:\r\n\r\n```diff\r\ndiff --git a/src/nvim/tui/tui.c b/src/nvim/tui/tui.c\r\nindex 0983667695c2..da1173cd9e25 100644\r\n--- a/src/nvim/tui/tui.c\r\n+++ b/src/nvim/tui/tui.c\r\n@@ -289,12 +289,9 @@ static void terminfo_start(TUIData *tui)\r\n bool iterm_env = termprg && strstr(termprg, \"iTerm.app\");\r\n bool nsterm = (termprg && strstr(termprg, \"Apple_Terminal\"))\r\n || terminfo_is_term_family(term, \"nsterm\");\r\n- bool konsole = terminfo_is_term_family(term, \"konsole\")\r\n- || os_getenv(\"KONSOLE_PROFILE_NAME\")\r\n- || os_getenv(\"KONSOLE_DBUS_SESSION\");\r\n+ bool konsole = terminfo_is_term_family(term, \"konsole\");\r\n const char *konsolev_env = os_getenv(\"KONSOLE_VERSION\");\r\n- long konsolev = konsolev_env ? strtol(konsolev_env, NULL, 10)\r\n- : (konsole ? 1 : 0);\r\n+ long konsolev = (konsole && konsolev_env) ? strtol(konsolev_env, NULL, 10) : 0;\r\n \r\n patch_terminfo_bugs(tui, term, colorterm, vtev, konsolev, iterm_env, nsterm);\r\n augment_terminfo(tui, term, vtev, konsolev, iterm_env, nsterm);\r\n```\r\n\r\nThat changes our \"is this konsole\" decision to _require_ `TERM=*konsole*`, which makes the logic more intentional and simpler. And removes the sloppy guessing [from 2015](https://github.com/neovim/neovim/commit/5fc4c2d442f01ab53fa95c7732c834950d283190) based on `KONSOLE_XX` env vars.", + "created_at": "2023-08-04T13:01:34Z", + "html_url": "https://github.com/neovim/neovim/issues/24546#issuecomment-1665573788", + "id": 1665573788, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/24546", + "node_id": "IC_kwDOAPphoM5jRqOc", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1665573788/reactions" + }, + "updated_at": "2023-08-04T13:02:37Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1665573788", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/1359421?v=4", + "events_url": "https://api.github.com/users/justinmk/events{/privacy}", + "followers_url": "https://api.github.com/users/justinmk/followers", + "following_url": "https://api.github.com/users/justinmk/following{/other_user}", + "gists_url": "https://api.github.com/users/justinmk/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/justinmk", + "id": 1359421, + "login": "justinmk", + "node_id": "MDQ6VXNlcjEzNTk0MjE=", + "organizations_url": "https://api.github.com/users/justinmk/orgs", + "received_events_url": "https://api.github.com/users/justinmk/received_events", + "repos_url": "https://api.github.com/users/justinmk/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/justinmk/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/justinmk/subscriptions", + "type": "User", + "url": "https://api.github.com/users/justinmk" + } + }, + { + "author_association": "CONTRIBUTOR", + "body": "> Ok what about this patch:\r\n\r\nOn the on hand, it is LGTM, and it would be the right way, imho.\r\n\r\n\r\nBut on the other, that will shoot in the legs of the users that set `TERM=xterm-{256color,direct256}` in Konsole for some reasons (starting from `ssh`'ing on devices with old tetminfos, to reasons of avoiding some bugs in some apps (for example, before I faced a bug in new ncurses (which made some terminfos become broken), and before I read that it is not neccessary to use \"-direct\" terminfos for truecolor anymore, I used `TERM=xterm-direct256` in Konsole settings for years).\r\n\r\n// And by the way, that was the reason I switched back to `konsole-*` TERM, and faced that neighbour bug triggered by `st`'s `TERMINFO_DIRS`\r\n\r\n\r\nSo, I dunno :shrug: \r\n\r\nOn the other hand we have a clean and right way, and on the other by doing this we definitelly brake the behaviour some users rely on.\r\n\r\n\r\nWill it be hard to make some \"backup\" way to signal that \"Actually, this is konsole\" for people, that can't use `TERM=konsole*` for some reason?\r\n\r\nMaybe look for `ACTUALLY_I_USE_KONSOLE` variable? :grin: ", + "created_at": "2023-08-04T13:14:04Z", + "html_url": "https://github.com/neovim/neovim/issues/24546#issuecomment-1665590830", + "id": 1665590830, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/24546", + "node_id": "IC_kwDOAPphoM5jRuYu", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1665590830/reactions" + }, + "updated_at": "2023-08-04T13:19:08Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1665590830", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/268102?v=4", + "events_url": "https://api.github.com/users/msva/events{/privacy}", + "followers_url": "https://api.github.com/users/msva/followers", + "following_url": "https://api.github.com/users/msva/following{/other_user}", + "gists_url": "https://api.github.com/users/msva/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/msva", + "id": 268102, + "login": "msva", + "node_id": "MDQ6VXNlcjI2ODEwMg==", + "organizations_url": "https://api.github.com/users/msva/orgs", + "received_events_url": "https://api.github.com/users/msva/received_events", + "repos_url": "https://api.github.com/users/msva/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/msva/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/msva/subscriptions", + "type": "User", + "url": "https://api.github.com/users/msva" + } + }, + { + "author_association": "MEMBER", + "body": "> Maybe look for `ACTUALLY_I_USE_KONSOLE` variable?\r\n\r\nThat just never works because the layers just pile up.\r\n\r\n> But on the other, that will shoot in the legs of the users that set `TERM=xterm-{256color,direct256}` in Konsole for some reasons\r\n\r\nThe worst case is that their cursor shape might not work? And we gain easier-to-reason-about behavior.", + "created_at": "2023-08-04T13:19:34Z", + "html_url": "https://github.com/neovim/neovim/issues/24546#issuecomment-1665597891", + "id": 1665597891, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/24546", + "node_id": "IC_kwDOAPphoM5jRwHD", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1665597891/reactions" + }, + "updated_at": "2023-08-04T13:19:34Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1665597891", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/1359421?v=4", + "events_url": "https://api.github.com/users/justinmk/events{/privacy}", + "followers_url": "https://api.github.com/users/justinmk/followers", + "following_url": "https://api.github.com/users/justinmk/following{/other_user}", + "gists_url": "https://api.github.com/users/justinmk/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/justinmk", + "id": 1359421, + "login": "justinmk", + "node_id": "MDQ6VXNlcjEzNTk0MjE=", + "organizations_url": "https://api.github.com/users/justinmk/orgs", + "received_events_url": "https://api.github.com/users/justinmk/received_events", + "repos_url": "https://api.github.com/users/justinmk/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/justinmk/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/justinmk/subscriptions", + "type": "User", + "url": "https://api.github.com/users/justinmk" + } + }, + { + "author_association": "MEMBER", + "body": "Doesn't Konsole set `$TERM` to `xterm-256color` by default?", + "created_at": "2023-08-04T13:20:56Z", + "html_url": "https://github.com/neovim/neovim/issues/24546#issuecomment-1665599668", + "id": 1665599668, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/24546", + "node_id": "IC_kwDOAPphoM5jRwi0", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1665599668/reactions" + }, + "updated_at": "2023-08-04T13:20:56Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1665599668", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/35768171?v=4", + "events_url": "https://api.github.com/users/zeertzjq/events{/privacy}", + "followers_url": "https://api.github.com/users/zeertzjq/followers", + "following_url": "https://api.github.com/users/zeertzjq/following{/other_user}", + "gists_url": "https://api.github.com/users/zeertzjq/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/zeertzjq", + "id": 35768171, + "login": "zeertzjq", + "node_id": "MDQ6VXNlcjM1NzY4MTcx", + "organizations_url": "https://api.github.com/users/zeertzjq/orgs", + "received_events_url": "https://api.github.com/users/zeertzjq/received_events", + "repos_url": "https://api.github.com/users/zeertzjq/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/zeertzjq/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/zeertzjq/subscriptions", + "type": "User", + "url": "https://api.github.com/users/zeertzjq" + } + }, + { + "author_association": "CONTRIBUTOR", + "body": "\r\n> The worst case is that their cursor shape might not work? And we gain easier-to-reason-about behavior.\r\n\r\nYeah. Well, I think, they will anyway be able to find this issue and read the reasoning, if any, so, yes, maybe it is not worth to bothering of supporting that kludges", + "created_at": "2023-08-04T13:22:16Z", + "html_url": "https://github.com/neovim/neovim/issues/24546#issuecomment-1665601349", + "id": 1665601349, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/24546", + "node_id": "IC_kwDOAPphoM5jRw9F", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1665601349/reactions" + }, + "updated_at": "2023-08-04T13:22:16Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1665601349", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/268102?v=4", + "events_url": "https://api.github.com/users/msva/events{/privacy}", + "followers_url": "https://api.github.com/users/msva/followers", + "following_url": "https://api.github.com/users/msva/following{/other_user}", + "gists_url": "https://api.github.com/users/msva/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/msva", + "id": 268102, + "login": "msva", + "node_id": "MDQ6VXNlcjI2ODEwMg==", + "organizations_url": "https://api.github.com/users/msva/orgs", + "received_events_url": "https://api.github.com/users/msva/received_events", + "repos_url": "https://api.github.com/users/msva/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/msva/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/msva/subscriptions", + "type": "User", + "url": "https://api.github.com/users/msva" + } + }, + { + "author_association": "CONTRIBUTOR", + "body": "> Doesn't Konsole set `$TERM` to `xterm-256color` by default?\r\n\r\nThanks for the point...\r\n\r\nIt seems, it is: https://github.com/search?q=repo%3AKDE%2Fkonsole+xterm-256color&type=code", + "created_at": "2023-08-04T13:27:41Z", + "html_url": "https://github.com/neovim/neovim/issues/24546#issuecomment-1665608404", + "id": 1665608404, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/24546", + "node_id": "IC_kwDOAPphoM5jRyrU", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1665608404/reactions" + }, + "updated_at": "2023-08-04T13:27:41Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1665608404", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/268102?v=4", + "events_url": "https://api.github.com/users/msva/events{/privacy}", + "followers_url": "https://api.github.com/users/msva/followers", + "following_url": "https://api.github.com/users/msva/following{/other_user}", + "gists_url": "https://api.github.com/users/msva/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/msva", + "id": 268102, + "login": "msva", + "node_id": "MDQ6VXNlcjI2ODEwMg==", + "organizations_url": "https://api.github.com/users/msva/orgs", + "received_events_url": "https://api.github.com/users/msva/received_events", + "repos_url": "https://api.github.com/users/msva/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/msva/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/msva/subscriptions", + "type": "User", + "url": "https://api.github.com/users/msva" + } + }, + { + "author_association": "CONTRIBUTOR", + "body": "although, again, I think, it will be enough to add a paragraph mentioning that in the documentation, like it was done for tmux (`:h tui-cursor-tmux`). So, we can add `tui-cursor-konsole` and suggest user to setup TERM to `konsole-256color` :shrug:", + "created_at": "2023-08-04T13:30:15Z", + "html_url": "https://github.com/neovim/neovim/issues/24546#issuecomment-1665611706", + "id": 1665611706, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/24546", + "node_id": "IC_kwDOAPphoM5jRze6", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1665611706/reactions" + }, + "updated_at": "2023-08-04T13:49:57Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1665611706", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/268102?v=4", + "events_url": "https://api.github.com/users/msva/events{/privacy}", + "followers_url": "https://api.github.com/users/msva/followers", + "following_url": "https://api.github.com/users/msva/following{/other_user}", + "gists_url": "https://api.github.com/users/msva/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/msva", + "id": 268102, + "login": "msva", + "node_id": "MDQ6VXNlcjI2ODEwMg==", + "organizations_url": "https://api.github.com/users/msva/orgs", + "received_events_url": "https://api.github.com/users/msva/received_events", + "repos_url": "https://api.github.com/users/msva/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/msva/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/msva/subscriptions", + "type": "User", + "url": "https://api.github.com/users/msva" + } + } + ], + "comments": 17, "comments_url": "https://api.github.com/repos/neovim/neovim/issues/24546/comments", "created_at": "2023-08-03T18:58:15Z", "events_url": "https://api.github.com/repos/neovim/neovim/issues/24546/events", "html_url": "https://github.com/neovim/neovim/issues/24546", "id": 1835571502, "labels": [ - { - "color": "f9d0c4", - "default": true, - "description": "issues reporting wrong behavior", - "id": 77997474, - "name": "bug", - "node_id": "MDU6TGFiZWw3Nzk5NzQ3NA==", - "url": "https://api.github.com/repos/neovim/neovim/labels/bug" - }, { "color": "c5def5", "default": false, @@ -45,7 +785,7 @@ "locked": false, "milestone": { "closed_at": null, - "closed_issues": 569, + "closed_issues": 570, "created_at": "2014-05-10T20:43:04Z", "creator": { "avatar_url": "https://avatars.githubusercontent.com/u/1359421?v=4", @@ -74,10 +814,10 @@ "labels_url": "https://api.github.com/repos/neovim/neovim/milestones/6/labels", "node_id": "MDk6TWlsZXN0b25lNjU1MDM3", "number": 6, - "open_issues": 415, + "open_issues": 417, "state": "open", "title": "backlog", - "updated_at": "2023-08-04T00:06:59Z", + "updated_at": "2023-08-04T21:11:41Z", "url": "https://api.github.com/repos/neovim/neovim/milestones/6" }, "node_id": "I_kwDOAPphoM5taJku", @@ -96,11 +836,11 @@ "url": "https://api.github.com/repos/neovim/neovim/issues/24546/reactions" }, "repository_url": "https://api.github.com/repos/neovim/neovim", - "state": "open", - "state_reason": null, + "state": "closed", + "state_reason": "not_planned", "timeline_url": "https://api.github.com/repos/neovim/neovim/issues/24546/timeline", "title": "Cursor shape inside tmux that runs in Konsole (with KONSOLE_DBUS_SESSION variable)", - "updated_at": "2023-08-04T00:07:30Z", + "updated_at": "2023-08-04T13:49:57Z", "url": "https://api.github.com/repos/neovim/neovim/issues/24546", "user": { "avatar_url": "https://avatars.githubusercontent.com/u/268102?v=4", diff --git a/repositories/neovim/issues/24548.json b/repositories/neovim/issues/24548.json index ad29f1fa..fa7d5dd2 100644 --- a/repositories/neovim/issues/24548.json +++ b/repositories/neovim/issues/24548.json @@ -22,6 +22,15 @@ "node_id": "MDU6TGFiZWw3Nzk5NzQ3Ng==", "url": "https://api.github.com/repos/neovim/neovim/labels/enhancement" }, + { + "color": "FBCA04", + "default": false, + "description": "needs a clear design proposal", + "id": 124510010, + "name": "needs:design", + "node_id": "MDU6TGFiZWwxMjQ1MTAwMTA=", + "url": "https://api.github.com/repos/neovim/neovim/labels/needs:design" + }, { "color": "c5def5", "default": false, @@ -34,7 +43,43 @@ ], "labels_url": "https://api.github.com/repos/neovim/neovim/issues/24548/labels{/name}", "locked": false, - "milestone": null, + "milestone": { + "closed_at": null, + "closed_issues": 189, + "created_at": "2014-11-26T22:13:11Z", + "creator": { + "avatar_url": "https://avatars.githubusercontent.com/u/1359421?v=4", + "events_url": "https://api.github.com/users/justinmk/events{/privacy}", + "followers_url": "https://api.github.com/users/justinmk/followers", + "following_url": "https://api.github.com/users/justinmk/following{/other_user}", + "gists_url": "https://api.github.com/users/justinmk/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/justinmk", + "id": 1359421, + "login": "justinmk", + "node_id": "MDQ6VXNlcjEzNTk0MjE=", + "organizations_url": "https://api.github.com/users/justinmk/orgs", + "received_events_url": "https://api.github.com/users/justinmk/received_events", + "repos_url": "https://api.github.com/users/justinmk/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/justinmk/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/justinmk/subscriptions", + "type": "User", + "url": "https://api.github.com/users/justinmk" + }, + "description": "Zero priority; no timeline. Promote an item from this state by taking ownership of it.", + "due_on": null, + "html_url": "https://github.com/neovim/neovim/milestone/9", + "id": 881978, + "labels_url": "https://api.github.com/repos/neovim/neovim/milestones/9/labels", + "node_id": "MDk6TWlsZXN0b25lODgxOTc4", + "number": 9, + "open_issues": 219, + "state": "open", + "title": "unplanned", + "updated_at": "2023-08-04T13:50:38Z", + "url": "https://api.github.com/repos/neovim/neovim/milestones/9" + }, "node_id": "I_kwDOAPphoM5tbW7P", "number": 24548, "performed_via_github_app": null, @@ -55,7 +100,7 @@ "state_reason": null, "timeline_url": "https://api.github.com/repos/neovim/neovim/issues/24548/timeline", "title": "api to reload lua modules", - "updated_at": "2023-08-04T00:44:06Z", + "updated_at": "2023-08-04T12:26:07Z", "url": "https://api.github.com/repos/neovim/neovim/issues/24548", "user": { "avatar_url": "https://avatars.githubusercontent.com/u/6236829?v=4", diff --git a/repositories/neovim/issues/24556.json b/repositories/neovim/issues/24556.json new file mode 100644 index 00000000..01f18664 --- /dev/null +++ b/repositories/neovim/issues/24556.json @@ -0,0 +1,258 @@ +{ + "active_lock_reason": null, + "assignee": null, + "assignees": [], + "author_association": "MEMBER", + "body": "### Problem\n\n:call nvim_cmd({'cmd': 'throw', 'args': ['42']}, {})\n\n### Steps to reproduce\n\n1. Run `nvim --clean`\r\n2. Run `:call nvim_cmd({'cmd': 'throw', 'args': ['42']}, {})`\r\n3. Crash\r\n```\r\n**/src/nvim/ex_eval.c:1841:22: runtime error: member access within null pointer of type 'cstack_T'\r\n #0 0x5614692442df in cleanup_conditionals **/src/nvim/ex_eval.c:1841:22\r\n #1 0x561469239373 in do_throw **/src/nvim/ex_eval.c:1184:13\r\n #2 0x561469249589 in ex_throw **/src/nvim/ex_eval.c:1152:7\r\n #3 0x5614691e8eae in execute_cmd0 **/src/nvim/ex_docmd.c:1634:7\r\n #4 0x5614691e5062 in execute_cmd **/src/nvim/ex_docmd.c:1712:3\r\n #5 0x5614689c51b9 in nvim_cmd **/src/nvim/api/command.c:707:3\r\n #6 0x561468a81776 in handle_nvim_cmd **/build/src/nvim/auto/api/private/dispatch_wrappers.generated.h:2941:15\r\n #7 0x56146900f65d in api_wrapper **/src/nvim/eval/funcs.c:349:19\r\n #8 0x561468fbddba in call_internal_func **/src/nvim/eval/funcs.c:269:3\r\n #9 0x5614690c55f2 in call_func **/src/nvim/eval/userfunc.c:1718:15\r\n #10 0x5614690c1acd in get_func_tv **/src/nvim/eval/userfunc.c:556:11\r\n #11 0x5614690fb9ea in ex_call_inner **/src/nvim/eval/userfunc.c:3159:9\r\n #12 0x5614690f9aff in ex_call **/src/nvim/eval/userfunc.c:3395:14\r\n #13 0x5614691e8eae in execute_cmd0 **/src/nvim/ex_docmd.c:1634:7\r\n #14 0x5614691c5ea8 in do_one_cmd **/src/nvim/ex_docmd.c:2293:7\r\n #15 0x5614691b673d in do_cmdline **/src/nvim/ex_docmd.c:592:20\r\n #16 0x5614697e5b11 in nv_colon **/src/nvim/normal.c:3244:18\r\n #17 0x5614697d0e5e in normal_execute **/src/nvim/normal.c:1202:3\r\n #18 0x561469dd364c in state_enter **/src/nvim/state.c:99:26\r\n #19 0x5614697b416e in normal_enter **/src/nvim/normal.c:501:3\r\n #20 0x56146890cf5d in main **/src/nvim/main.c:647:3\r\n #21 0x7ff316e23ccf (/usr/lib/libc.so.6+0x23ccf) (BuildId: cff743d3e7895fef5f86ed27cdf25c1b8ce21a1d)\r\n #22 0x7ff316e23d89 in __libc_start_main (/usr/lib/libc.so.6+0x23d89) (BuildId: cff743d3e7895fef5f86ed27cdf25c1b8ce21a1d)\r\n #23 0x56146880bd64 in _start (**/build/bin/nvim+0xba8d64) (BuildId: e96b87d742b8b7af294a015a4515e5a4774706dd)\r\n\r\nSUMMARY: UndefinedBehaviorSanitizer: undefined-behavior **/src/nvim/ex_eval.c:1841:22 in \r\n```\n\n### Expected behavior\n\nNo crash\n\n### Neovim version (nvim -v)\n\nv0.10.0-dev-761+g3d3ec27d5\n\n### Vim (not Nvim) behaves the same?\n\nN/A\n\n### Operating system/version\n\nArch Linux\n\n### Terminal name/version\n\nkitty 0.29.2\n\n### $TERM environment variable\n\nxterm-kitty\n\n### Installation\n\nbuild from repo", + "closed_at": null, + "comment_data": [ + { + "author_association": "MEMBER", + "body": "The following change seems to fix the crash:\r\n```diff\r\ndiff --git a/src/nvim/ex_docmd.c b/src/nvim/ex_docmd.c\r\nindex f154b5b77..3fad91353 100644\r\n--- a/src/nvim/ex_docmd.c\r\n+++ b/src/nvim/ex_docmd.c\r\n@@ -1708,6 +1708,9 @@ int execute_cmd(exarg_T *eap, CmdParseInfo *cmdinfo, bool preview)\r\n goto end;\r\n }\r\n \r\n+ cstack_T cstack = { .cs_idx = -1 };\r\n+ eap->cstack = &cstack;\r\n+\r\n // Execute the command\r\n execute_cmd0(&retv, eap, &errormsg, preview);\r\n \r\n```\r\nBut it seems that more code may be needed after `execute_cmd0()`.", + "created_at": "2023-08-04T06:41:35Z", + "html_url": "https://github.com/neovim/neovim/issues/24556#issuecomment-1665091472", + "id": 1665091472, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/24556", + "node_id": "IC_kwDOAPphoM5jP0eQ", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1665091472/reactions" + }, + "updated_at": "2023-08-04T06:41:35Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1665091472", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/35768171?v=4", + "events_url": "https://api.github.com/users/zeertzjq/events{/privacy}", + "followers_url": "https://api.github.com/users/zeertzjq/followers", + "following_url": "https://api.github.com/users/zeertzjq/following{/other_user}", + "gists_url": "https://api.github.com/users/zeertzjq/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/zeertzjq", + "id": 35768171, + "login": "zeertzjq", + "node_id": "MDQ6VXNlcjM1NzY4MTcx", + "organizations_url": "https://api.github.com/users/zeertzjq/orgs", + "received_events_url": "https://api.github.com/users/zeertzjq/received_events", + "repos_url": "https://api.github.com/users/zeertzjq/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/zeertzjq/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/zeertzjq/subscriptions", + "type": "User", + "url": "https://api.github.com/users/zeertzjq" + } + }, + { + "author_association": "MEMBER", + "body": "The same crash also applies to `:return` when there is an outer function:\r\n```vim\r\nfunc Foo()\r\n echo 23\r\n call nvim_cmd({'cmd': 'return'}, {})\r\n echo 45\r\nendfunc\r\n\r\ncall Foo()\r\n```\r\n\r\nThe fix above seems to work as well.", + "created_at": "2023-08-04T06:55:06Z", + "html_url": "https://github.com/neovim/neovim/issues/24556#issuecomment-1665103702", + "id": 1665103702, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/24556", + "node_id": "IC_kwDOAPphoM5jP3dW", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1665103702/reactions" + }, + "updated_at": "2023-08-04T06:55:27Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1665103702", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/35768171?v=4", + "events_url": "https://api.github.com/users/zeertzjq/events{/privacy}", + "followers_url": "https://api.github.com/users/zeertzjq/followers", + "following_url": "https://api.github.com/users/zeertzjq/following{/other_user}", + "gists_url": "https://api.github.com/users/zeertzjq/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/zeertzjq", + "id": 35768171, + "login": "zeertzjq", + "node_id": "MDQ6VXNlcjM1NzY4MTcx", + "organizations_url": "https://api.github.com/users/zeertzjq/orgs", + "received_events_url": "https://api.github.com/users/zeertzjq/received_events", + "repos_url": "https://api.github.com/users/zeertzjq/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/zeertzjq/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/zeertzjq/subscriptions", + "type": "User", + "url": "https://api.github.com/users/zeertzjq" + } + }, + { + "author_association": "NONE", + "body": "The same crash happens from lua\r\n```lua \r\nvim.cmd.throw(42)\r\n```\r\n\r\nThanks @zeertzjq ", + "created_at": "2023-08-04T14:25:52Z", + "html_url": "https://github.com/neovim/neovim/issues/24556#issuecomment-1665702342", + "id": 1665702342, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/24556", + "node_id": "IC_kwDOAPphoM5jSJnG", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1665702342/reactions" + }, + "updated_at": "2023-08-04T14:52:46Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1665702342", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/1560508?v=4", + "events_url": "https://api.github.com/users/ryoppippi/events{/privacy}", + "followers_url": "https://api.github.com/users/ryoppippi/followers", + "following_url": "https://api.github.com/users/ryoppippi/following{/other_user}", + "gists_url": "https://api.github.com/users/ryoppippi/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/ryoppippi", + "id": 1560508, + "login": "ryoppippi", + "node_id": "MDQ6VXNlcjE1NjA1MDg=", + "organizations_url": "https://api.github.com/users/ryoppippi/orgs", + "received_events_url": "https://api.github.com/users/ryoppippi/received_events", + "repos_url": "https://api.github.com/users/ryoppippi/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/ryoppippi/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ryoppippi/subscriptions", + "type": "User", + "url": "https://api.github.com/users/ryoppippi" + } + } + ], + "comments": 3, + "comments_url": "https://api.github.com/repos/neovim/neovim/issues/24556/comments", + "created_at": "2023-08-04T06:37:58Z", + "events_url": "https://api.github.com/repos/neovim/neovim/issues/24556/events", + "html_url": "https://github.com/neovim/neovim/issues/24556", + "id": 1836158143, + "labels": [ + { + "color": "c5def5", + "default": false, + "description": "libnvim, Nvim RPC API", + "id": 103819671, + "name": "api", + "node_id": "MDU6TGFiZWwxMDM4MTk2NzE=", + "url": "https://api.github.com/repos/neovim/neovim/labels/api" + }, + { + "color": "c7def8", + "default": false, + "description": "", + "id": 109899557, + "name": "vimscript", + "node_id": "MDU6TGFiZWwxMDk4OTk1NTc=", + "url": "https://api.github.com/repos/neovim/neovim/labels/vimscript" + }, + { + "color": "F9D0C4", + "default": false, + "description": "issue reporting a crash or segfault", + "id": 435854234, + "name": "bug-crash", + "node_id": "MDU6TGFiZWw0MzU4NTQyMzQ=", + "url": "https://api.github.com/repos/neovim/neovim/labels/bug-crash" + } + ], + "labels_url": "https://api.github.com/repos/neovim/neovim/issues/24556/labels{/name}", + "locked": false, + "milestone": { + "closed_at": null, + "closed_issues": 570, + "created_at": "2014-05-10T20:43:04Z", + "creator": { + "avatar_url": "https://avatars.githubusercontent.com/u/1359421?v=4", + "events_url": "https://api.github.com/users/justinmk/events{/privacy}", + "followers_url": "https://api.github.com/users/justinmk/followers", + "following_url": "https://api.github.com/users/justinmk/following{/other_user}", + "gists_url": "https://api.github.com/users/justinmk/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/justinmk", + "id": 1359421, + "login": "justinmk", + "node_id": "MDQ6VXNlcjEzNTk0MjE=", + "organizations_url": "https://api.github.com/users/justinmk/orgs", + "received_events_url": "https://api.github.com/users/justinmk/received_events", + "repos_url": "https://api.github.com/users/justinmk/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/justinmk/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/justinmk/subscriptions", + "type": "User", + "url": "https://api.github.com/users/justinmk" + }, + "description": "Low priority. Not planned for the current target, may be reassigned.", + "due_on": null, + "html_url": "https://github.com/neovim/neovim/milestone/6", + "id": 655037, + "labels_url": "https://api.github.com/repos/neovim/neovim/milestones/6/labels", + "node_id": "MDk6TWlsZXN0b25lNjU1MDM3", + "number": 6, + "open_issues": 417, + "state": "open", + "title": "backlog", + "updated_at": "2023-08-04T21:11:41Z", + "url": "https://api.github.com/repos/neovim/neovim/milestones/6" + }, + "node_id": "I_kwDOAPphoM5tcYy_", + "number": 24556, + "performed_via_github_app": null, + "reactions": { + "+1": 1, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 1, + "url": "https://api.github.com/repos/neovim/neovim/issues/24556/reactions" + }, + "repository_url": "https://api.github.com/repos/neovim/neovim", + "state": "open", + "state_reason": null, + "timeline_url": "https://api.github.com/repos/neovim/neovim/issues/24556/timeline", + "title": "Crash when using `:throw` directly from `nvim_cmd`", + "updated_at": "2023-08-04T14:52:46Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/24556", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/35768171?v=4", + "events_url": "https://api.github.com/users/zeertzjq/events{/privacy}", + "followers_url": "https://api.github.com/users/zeertzjq/followers", + "following_url": "https://api.github.com/users/zeertzjq/following{/other_user}", + "gists_url": "https://api.github.com/users/zeertzjq/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/zeertzjq", + "id": 35768171, + "login": "zeertzjq", + "node_id": "MDQ6VXNlcjM1NzY4MTcx", + "organizations_url": "https://api.github.com/users/zeertzjq/orgs", + "received_events_url": "https://api.github.com/users/zeertzjq/received_events", + "repos_url": "https://api.github.com/users/zeertzjq/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/zeertzjq/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/zeertzjq/subscriptions", + "type": "User", + "url": "https://api.github.com/users/zeertzjq" + } +} \ No newline at end of file diff --git a/repositories/neovim/issues/24557.json b/repositories/neovim/issues/24557.json new file mode 100644 index 00000000..fc595003 --- /dev/null +++ b/repositories/neovim/issues/24557.json @@ -0,0 +1,214 @@ +{ + "active_lock_reason": null, + "assignee": null, + "assignees": [], + "author_association": "CONTRIBUTOR", + "body": "### Problem\n\nrunning\r\n```lua\r\nvim.lsp.util.open_floating_preview({ 'foo', '', '', '---', }, 'markdown')\r\n```\r\nerrors with\r\n```\r\nE5108: Error executing lua /usr/share/nvim/runtime/lua/vim/lsp/util.lua:1442: attempt to index a nil value\r\nstack traceback:\r\n /usr/share/nvim/runtime/lua/vim/lsp/util.lua:1442: in function 'stylize_markdown'\r\n /usr/share/nvim/runtime/lua/vim/lsp/util.lua:1704: in function 'open_floating_preview'\r\n [string \":lua\"]:1: in main chunk\r\n```\n\n### Steps to reproduce\n\nnvim --clean\r\n```vim\r\n:lua vim.lsp.util.open_floating_preview({ 'foo', '', '', '---', }, 'markdown')\r\n```\n\n### Expected behavior\n\na preview opens without an error\n\n### Neovim version (nvim -v)\n\nv0.10.0-dev-761+g3d3ec27d51\n\n### Vim (not Nvim) behaves the same?\n\nn/a\n\n### Operating system/version\n\narchlinux\n\n### Terminal name/version\n\nkitty 0.28.1\n\n### $TERM environment variable\n\nxterm-256color\n\n### Installation\n\nneovim-git AUR", + "closed_at": null, + "comment_data": [ + { + "author_association": "MEMBER", + "body": "does this work ?\r\n\r\n```diff\r\ndiff --git a/runtime/lua/vim/lsp/util.lua b/runtime/lua/vim/lsp/util.lua\r\nindex 738e23ff2..69765c327 100644\r\n--- a/runtime/lua/vim/lsp/util.lua\r\n+++ b/runtime/lua/vim/lsp/util.lua\r\n@@ -1439,7 +1439,7 @@ function M.stylize_markdown(bufnr, contents, opts)\r\n local sep_line = string.rep('─', math.min(width, opts.wrap_at or width))\r\n\r\n for l in pairs(markdown_lines) do\r\n- if stripped[l]:match('^---+$') then\r\n+ if stripped[l] and stripped[l]:match('^---+$') then\r\n stripped[l] = sep_line\r\n end\r\n end\r\n```", + "created_at": "2023-08-04T10:08:34Z", + "html_url": "https://github.com/neovim/neovim/issues/24557#issuecomment-1665364022", + "id": 1665364022, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/24557", + "node_id": "IC_kwDOAPphoM5jQ3A2", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1665364022/reactions" + }, + "updated_at": "2023-08-04T10:08:44Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1665364022", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/41671631?v=4", + "events_url": "https://api.github.com/users/glepnir/events{/privacy}", + "followers_url": "https://api.github.com/users/glepnir/followers", + "following_url": "https://api.github.com/users/glepnir/following{/other_user}", + "gists_url": "https://api.github.com/users/glepnir/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/glepnir", + "id": 41671631, + "login": "glepnir", + "node_id": "MDQ6VXNlcjQxNjcxNjMx", + "organizations_url": "https://api.github.com/users/glepnir/orgs", + "received_events_url": "https://api.github.com/users/glepnir/received_events", + "repos_url": "https://api.github.com/users/glepnir/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/glepnir/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/glepnir/subscriptions", + "type": "User", + "url": "https://api.github.com/users/glepnir" + } + }, + { + "author_association": "CONTRIBUTOR", + "body": "yup that fixes it", + "created_at": "2023-08-04T13:37:12Z", + "html_url": "https://github.com/neovim/neovim/issues/24557#issuecomment-1665620813", + "id": 1665620813, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/24557", + "node_id": "IC_kwDOAPphoM5jR1tN", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1665620813/reactions" + }, + "updated_at": "2023-08-04T13:37:12Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1665620813", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/29005635?v=4", + "events_url": "https://api.github.com/users/0xAdk/events{/privacy}", + "followers_url": "https://api.github.com/users/0xAdk/followers", + "following_url": "https://api.github.com/users/0xAdk/following{/other_user}", + "gists_url": "https://api.github.com/users/0xAdk/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/0xAdk", + "id": 29005635, + "login": "0xAdk", + "node_id": "MDQ6VXNlcjI5MDA1NjM1", + "organizations_url": "https://api.github.com/users/0xAdk/orgs", + "received_events_url": "https://api.github.com/users/0xAdk/received_events", + "repos_url": "https://api.github.com/users/0xAdk/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/0xAdk/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/0xAdk/subscriptions", + "type": "User", + "url": "https://api.github.com/users/0xAdk" + } + } + ], + "comments": 2, + "comments_url": "https://api.github.com/repos/neovim/neovim/issues/24557/comments", + "created_at": "2023-08-04T08:39:31Z", + "events_url": "https://api.github.com/repos/neovim/neovim/issues/24557/events", + "html_url": "https://github.com/neovim/neovim/issues/24557", + "id": 1836324981, + "labels": [ + { + "color": "f9d0c4", + "default": true, + "description": "issues reporting wrong behavior", + "id": 77997474, + "name": "bug", + "node_id": "MDU6TGFiZWw3Nzk5NzQ3NA==", + "url": "https://api.github.com/repos/neovim/neovim/labels/bug" + }, + { + "color": "0E8A16", + "default": false, + "description": "", + "id": 606691254, + "name": "has:plan", + "node_id": "MDU6TGFiZWw2MDY2OTEyNTQ=", + "url": "https://api.github.com/repos/neovim/neovim/labels/has:plan" + }, + { + "color": "c5def5", + "default": false, + "description": null, + "id": 662566370, + "name": "lsp", + "node_id": "MDU6TGFiZWw2NjI1NjYzNzA=", + "url": "https://api.github.com/repos/neovim/neovim/labels/lsp" + } + ], + "labels_url": "https://api.github.com/repos/neovim/neovim/issues/24557/labels{/name}", + "locked": false, + "milestone": { + "closed_at": null, + "closed_issues": 102, + "created_at": "2023-02-02T14:11:43Z", + "creator": { + "avatar_url": "https://avatars.githubusercontent.com/u/1363104?v=4", + "events_url": "https://api.github.com/users/bfredl/events{/privacy}", + "followers_url": "https://api.github.com/users/bfredl/followers", + "following_url": "https://api.github.com/users/bfredl/following{/other_user}", + "gists_url": "https://api.github.com/users/bfredl/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/bfredl", + "id": 1363104, + "login": "bfredl", + "node_id": "MDQ6VXNlcjEzNjMxMDQ=", + "organizations_url": "https://api.github.com/users/bfredl/orgs", + "received_events_url": "https://api.github.com/users/bfredl/received_events", + "repos_url": "https://api.github.com/users/bfredl/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/bfredl/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/bfredl/subscriptions", + "type": "User", + "url": "https://api.github.com/users/bfredl" + }, + "description": "", + "due_on": null, + "html_url": "https://github.com/neovim/neovim/milestone/36", + "id": 8997654, + "labels_url": "https://api.github.com/repos/neovim/neovim/milestones/36/labels", + "node_id": "MI_kwDOAPphoM4AiUsW", + "number": 36, + "open_issues": 140, + "state": "open", + "title": "0.10", + "updated_at": "2023-08-04T13:44:37Z", + "url": "https://api.github.com/repos/neovim/neovim/milestones/36" + }, + "node_id": "I_kwDOAPphoM5tdBh1", + "number": 24557, + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/24557/reactions" + }, + "repository_url": "https://api.github.com/repos/neovim/neovim", + "state": "open", + "state_reason": null, + "timeline_url": "https://api.github.com/repos/neovim/neovim/issues/24557/timeline", + "title": "`open_floating_preview` errors with `attempt to index a nil value`", + "updated_at": "2023-08-04T13:44:57Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/24557", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/29005635?v=4", + "events_url": "https://api.github.com/users/0xAdk/events{/privacy}", + "followers_url": "https://api.github.com/users/0xAdk/followers", + "following_url": "https://api.github.com/users/0xAdk/following{/other_user}", + "gists_url": "https://api.github.com/users/0xAdk/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/0xAdk", + "id": 29005635, + "login": "0xAdk", + "node_id": "MDQ6VXNlcjI5MDA1NjM1", + "organizations_url": "https://api.github.com/users/0xAdk/orgs", + "received_events_url": "https://api.github.com/users/0xAdk/received_events", + "repos_url": "https://api.github.com/users/0xAdk/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/0xAdk/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/0xAdk/subscriptions", + "type": "User", + "url": "https://api.github.com/users/0xAdk" + } +} \ No newline at end of file diff --git a/repositories/neovim/issues/24562.json b/repositories/neovim/issues/24562.json new file mode 100644 index 00000000..76031f9c --- /dev/null +++ b/repositories/neovim/issues/24562.json @@ -0,0 +1,169 @@ +{ + "active_lock_reason": null, + "assignee": null, + "assignees": [], + "author_association": "NONE", + "body": "### Problem\n\nThere are many methods in `vim.lsp.buf` to allow users to jump to a specific location,\r\nEg.\r\n- `vim.lsp.buf.declaration()`\r\n- `vim.lsp.buf.definition()`\r\n- `vim.lsp.buf.type_definition()`\r\n\r\nOf course, there is API(`on_list`) to allow users to customize the behavior,\r\nbut considering there is another option(`reuse_win`) to customize the specific behavior of the jump, some other options may be needed.\n\n### Expected behavior\n\nAdd an option to allow users to split a new window rather than jump to the location,\r\nthat is, if I call the function like this:\r\n```lua\r\nvim.lsp.buf.definition { split = true }\r\n```\r\nthe result location will be shown In a new window like the `:help` command does.\r\n\r\n**I'm willing to implement this feature, but I don't know would the community need it.**", + "closed_at": "2023-08-04T13:44:06Z", + "comment_data": [ + { + "author_association": "MEMBER", + "body": "No, a special `split` option should not be added. As discussed in : \r\n\r\n- https://github.com/neovim/neovim/pull/22651#issuecomment-1467660681\r\n- https://github.com/neovim/neovim/issues/22758\r\n- https://github.com/neovim/neovim/issues/24168\r\n\r\nwe need a general strategy for allowing user config to override, or compose with, the default LSP handlers. \r\n\r\n@mfussenegger described a good approach here: https://github.com/neovim/neovim/pull/22598#issuecomment-1463367606", + "created_at": "2023-08-04T13:44:06Z", + "html_url": "https://github.com/neovim/neovim/issues/24562#issuecomment-1665630060", + "id": 1665630060, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/24562", + "node_id": "IC_kwDOAPphoM5jR39s", + "performed_via_github_app": null, + "reactions": { + "+1": 1, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 1, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1665630060/reactions" + }, + "updated_at": "2023-08-04T13:44:06Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1665630060", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/1359421?v=4", + "events_url": "https://api.github.com/users/justinmk/events{/privacy}", + "followers_url": "https://api.github.com/users/justinmk/followers", + "following_url": "https://api.github.com/users/justinmk/following{/other_user}", + "gists_url": "https://api.github.com/users/justinmk/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/justinmk", + "id": 1359421, + "login": "justinmk", + "node_id": "MDQ6VXNlcjEzNTk0MjE=", + "organizations_url": "https://api.github.com/users/justinmk/orgs", + "received_events_url": "https://api.github.com/users/justinmk/received_events", + "repos_url": "https://api.github.com/users/justinmk/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/justinmk/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/justinmk/subscriptions", + "type": "User", + "url": "https://api.github.com/users/justinmk" + } + }, + { + "author_association": "MEMBER", + "body": "If you have tagfunc set to lsp (which is set by default) you can also use `ctrl+w ]` to jump to the definition in a new split window.", + "created_at": "2023-08-04T14:06:22Z", + "html_url": "https://github.com/neovim/neovim/issues/24562#issuecomment-1665667357", + "id": 1665667357, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/24562", + "node_id": "IC_kwDOAPphoM5jSBEd", + "performed_via_github_app": null, + "reactions": { + "+1": 1, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 1, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1665667357/reactions" + }, + "updated_at": "2023-08-04T14:06:22Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1665667357", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/38700?v=4", + "events_url": "https://api.github.com/users/mfussenegger/events{/privacy}", + "followers_url": "https://api.github.com/users/mfussenegger/followers", + "following_url": "https://api.github.com/users/mfussenegger/following{/other_user}", + "gists_url": "https://api.github.com/users/mfussenegger/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/mfussenegger", + "id": 38700, + "login": "mfussenegger", + "node_id": "MDQ6VXNlcjM4NzAw", + "organizations_url": "https://api.github.com/users/mfussenegger/orgs", + "received_events_url": "https://api.github.com/users/mfussenegger/received_events", + "repos_url": "https://api.github.com/users/mfussenegger/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/mfussenegger/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/mfussenegger/subscriptions", + "type": "User", + "url": "https://api.github.com/users/mfussenegger" + } + } + ], + "comments": 2, + "comments_url": "https://api.github.com/repos/neovim/neovim/issues/24562/comments", + "created_at": "2023-08-04T13:34:21Z", + "events_url": "https://api.github.com/repos/neovim/neovim/issues/24562/events", + "html_url": "https://github.com/neovim/neovim/issues/24562", + "id": 1836757508, + "labels": [ + { + "color": "c2e0c6", + "default": true, + "description": "feature request", + "id": 77997476, + "name": "enhancement", + "node_id": "MDU6TGFiZWw3Nzk5NzQ3Ng==", + "url": "https://api.github.com/repos/neovim/neovim/labels/enhancement" + }, + { + "color": "c5def5", + "default": false, + "description": null, + "id": 662566370, + "name": "lsp", + "node_id": "MDU6TGFiZWw2NjI1NjYzNzA=", + "url": "https://api.github.com/repos/neovim/neovim/labels/lsp" + } + ], + "labels_url": "https://api.github.com/repos/neovim/neovim/issues/24562/labels{/name}", + "locked": false, + "milestone": null, + "node_id": "I_kwDOAPphoM5terIE", + "number": 24562, + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/24562/reactions" + }, + "repository_url": "https://api.github.com/repos/neovim/neovim", + "state": "closed", + "state_reason": "not_planned", + "timeline_url": "https://api.github.com/repos/neovim/neovim/issues/24562/timeline", + "title": "Add `split` options for `vim.lsp.buf.definition` to allow splitting a window rather than jump", + "updated_at": "2023-08-04T14:06:22Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/24562", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/61115159?v=4", + "events_url": "https://api.github.com/users/ofseed/events{/privacy}", + "followers_url": "https://api.github.com/users/ofseed/followers", + "following_url": "https://api.github.com/users/ofseed/following{/other_user}", + "gists_url": "https://api.github.com/users/ofseed/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/ofseed", + "id": 61115159, + "login": "ofseed", + "node_id": "MDQ6VXNlcjYxMTE1MTU5", + "organizations_url": "https://api.github.com/users/ofseed/orgs", + "received_events_url": "https://api.github.com/users/ofseed/received_events", + "repos_url": "https://api.github.com/users/ofseed/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/ofseed/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/ofseed/subscriptions", + "type": "User", + "url": "https://api.github.com/users/ofseed" + } +} \ No newline at end of file diff --git a/repositories/neovim/issues/24563.json b/repositories/neovim/issues/24563.json new file mode 100644 index 00000000..d6ce1086 --- /dev/null +++ b/repositories/neovim/issues/24563.json @@ -0,0 +1,116 @@ +{ + "active_lock_reason": null, + "assignee": null, + "assignees": [], + "author_association": "MEMBER", + "body": "### Problem\n\n(This is a tracking issue, to invite discussion/counterpoints/investigation.)\r\n\r\nluacheck might be redundant with luals.\n\n### Expected behavior\n\n- determine if luacheck adds value beyond what luals is capable of\r\n- if luals has a non-interactive mode, use that instead of luacheck to check code in CI\r\n - con: this requires `lintlua` build target to use/install luals\r\n- remove luacheck\r\n\r\n", + "closed_at": null, + "comment_data": [], + "comments": 0, + "comments_url": "https://api.github.com/repos/neovim/neovim/issues/24563/comments", + "created_at": "2023-08-04T13:50:38Z", + "events_url": "https://api.github.com/repos/neovim/neovim/issues/24563/events", + "html_url": "https://github.com/neovim/neovim/issues/24563", + "id": 1836785396, + "labels": [ + { + "color": "e6e6e6", + "default": false, + "description": "automation for build, test, and release", + "id": 212701006, + "name": "ci", + "node_id": "MDU6TGFiZWwyMTI3MDEwMDY=", + "url": "https://api.github.com/repos/neovim/neovim/labels/ci" + }, + { + "color": "c5def5", + "default": false, + "description": null, + "id": 573222693, + "name": "lua", + "node_id": "MDU6TGFiZWw1NzMyMjI2OTM=", + "url": "https://api.github.com/repos/neovim/neovim/labels/lua" + } + ], + "labels_url": "https://api.github.com/repos/neovim/neovim/issues/24563/labels{/name}", + "locked": false, + "milestone": { + "closed_at": null, + "closed_issues": 189, + "created_at": "2014-11-26T22:13:11Z", + "creator": { + "avatar_url": "https://avatars.githubusercontent.com/u/1359421?v=4", + "events_url": "https://api.github.com/users/justinmk/events{/privacy}", + "followers_url": "https://api.github.com/users/justinmk/followers", + "following_url": "https://api.github.com/users/justinmk/following{/other_user}", + "gists_url": "https://api.github.com/users/justinmk/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/justinmk", + "id": 1359421, + "login": "justinmk", + "node_id": "MDQ6VXNlcjEzNTk0MjE=", + "organizations_url": "https://api.github.com/users/justinmk/orgs", + "received_events_url": "https://api.github.com/users/justinmk/received_events", + "repos_url": "https://api.github.com/users/justinmk/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/justinmk/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/justinmk/subscriptions", + "type": "User", + "url": "https://api.github.com/users/justinmk" + }, + "description": "Zero priority; no timeline. Promote an item from this state by taking ownership of it.", + "due_on": null, + "html_url": "https://github.com/neovim/neovim/milestone/9", + "id": 881978, + "labels_url": "https://api.github.com/repos/neovim/neovim/milestones/9/labels", + "node_id": "MDk6TWlsZXN0b25lODgxOTc4", + "number": 9, + "open_issues": 219, + "state": "open", + "title": "unplanned", + "updated_at": "2023-08-04T13:50:38Z", + "url": "https://api.github.com/repos/neovim/neovim/milestones/9" + }, + "node_id": "I_kwDOAPphoM5tex70", + "number": 24563, + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/24563/reactions" + }, + "repository_url": "https://api.github.com/repos/neovim/neovim", + "state": "open", + "state_reason": null, + "timeline_url": "https://api.github.com/repos/neovim/neovim/issues/24563/timeline", + "title": "CI: replace luacheck with luals", + "updated_at": "2023-08-04T13:50:38Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/24563", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/1359421?v=4", + "events_url": "https://api.github.com/users/justinmk/events{/privacy}", + "followers_url": "https://api.github.com/users/justinmk/followers", + "following_url": "https://api.github.com/users/justinmk/following{/other_user}", + "gists_url": "https://api.github.com/users/justinmk/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/justinmk", + "id": 1359421, + "login": "justinmk", + "node_id": "MDQ6VXNlcjEzNTk0MjE=", + "organizations_url": "https://api.github.com/users/justinmk/orgs", + "received_events_url": "https://api.github.com/users/justinmk/received_events", + "repos_url": "https://api.github.com/users/justinmk/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/justinmk/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/justinmk/subscriptions", + "type": "User", + "url": "https://api.github.com/users/justinmk" + } +} \ No newline at end of file diff --git a/repositories/neovim/issues/24567.json b/repositories/neovim/issues/24567.json new file mode 100644 index 00000000..5dbada4f --- /dev/null +++ b/repositories/neovim/issues/24567.json @@ -0,0 +1,557 @@ +{ + "active_lock_reason": null, + "assignee": null, + "assignees": [], + "author_association": "NONE", + "body": "### Problem\n\nOn my system,\r\n- `vim.fn.jobstart({ 'xdg-open', 'https://github.com/neovim/neovim' })` opens the url as expected in the browser\r\n- `vim.system({ 'xdg-open', 'https://github.com/neovim/neovim' })` does not, neither does `:!xdg-open `, or `vim.fn.system`, and calling it with a string instead of a table does the same thing.\r\n\r\nThe detach option does not change this result, they both correctly call `xdg-open` with the correct url, with nearly the same environment (`SHLVL=2` is set in one), and I start neovim with `nvim -u NONE`\r\n\r\nThe same function calls with `expand('~')` all work as expected.\r\n\r\nI found this from `K` working in lazy.nvim ([here](https://github.com/folke/lazy.nvim/blob/dac844ed617dda4f9ec85eb88e9629ad2add5e05/lua/lazy/util.lua#L44C24-L44C24)), and `vim.ui.open` with the new `gx` failing to open URLs\n\n### Steps to reproduce\n\n1. nvim -u NONE\r\n2. `:vim.fn.jobstart({ 'xdg-open', 'https://github.com/neovim/neovim' })`\r\n3. `:vim.system({ 'xdg-open', 'https://github.com/neovim/neovim' })`\n\n### Expected behavior\n\nthe url opens in both cases.\n\n### Neovim version (nvim -v)\n\nNVIM v0.10.0-dev-753+g4a06de40e (nightly 08/04)\n\n### Vim (not Nvim) behaves the same?\n\nn/a\n\n### Operating system/version\n\nUbuntu 22.04.01\n\n### Terminal name/version\n\nkitty 0.27.1\n\n### $TERM environment variable\n\nxterm-kitty\n\n### Installation\n\nappimage (extracted)", + "closed_at": null, + "comment_data": [ + { + "author_association": "MEMBER", + "body": "Duplicate of #9886", + "created_at": "2023-08-04T19:13:14Z", + "html_url": "https://github.com/neovim/neovim/issues/24567#issuecomment-1666062251", + "id": 1666062251, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/24567", + "node_id": "IC_kwDOAPphoM5jTher", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1666062251/reactions" + }, + "updated_at": "2023-08-04T19:13:14Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1666062251", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/35768171?v=4", + "events_url": "https://api.github.com/users/zeertzjq/events{/privacy}", + "followers_url": "https://api.github.com/users/zeertzjq/followers", + "following_url": "https://api.github.com/users/zeertzjq/following{/other_user}", + "gists_url": "https://api.github.com/users/zeertzjq/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/zeertzjq", + "id": 35768171, + "login": "zeertzjq", + "node_id": "MDQ6VXNlcjM1NzY4MTcx", + "organizations_url": "https://api.github.com/users/zeertzjq/orgs", + "received_events_url": "https://api.github.com/users/zeertzjq/received_events", + "repos_url": "https://api.github.com/users/zeertzjq/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/zeertzjq/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/zeertzjq/subscriptions", + "type": "User", + "url": "https://api.github.com/users/zeertzjq" + } + }, + { + "author_association": "MEMBER", + "body": "There's a lot of context to digest in the issue chain. Can someone provide an up to date summary of the issue here? I'm confused why `jobstart` works.", + "created_at": "2023-08-04T19:25:04Z", + "html_url": "https://github.com/neovim/neovim/issues/24567#issuecomment-1666073173", + "id": 1666073173, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/24567", + "node_id": "IC_kwDOAPphoM5jTkJV", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1666073173/reactions" + }, + "updated_at": "2023-08-04T19:25:04Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1666073173", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/7904185?v=4", + "events_url": "https://api.github.com/users/lewis6991/events{/privacy}", + "followers_url": "https://api.github.com/users/lewis6991/followers", + "following_url": "https://api.github.com/users/lewis6991/following{/other_user}", + "gists_url": "https://api.github.com/users/lewis6991/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/lewis6991", + "id": 7904185, + "login": "lewis6991", + "node_id": "MDQ6VXNlcjc5MDQxODU=", + "organizations_url": "https://api.github.com/users/lewis6991/orgs", + "received_events_url": "https://api.github.com/users/lewis6991/received_events", + "repos_url": "https://api.github.com/users/lewis6991/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/lewis6991/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/lewis6991/subscriptions", + "type": "User", + "url": "https://api.github.com/users/lewis6991" + } + }, + { + "author_association": "NONE", + "body": "Using `firefox` in place of `xdg-open` works as expected, and regardless of system or jobstart call, the script executes and returns 0, fwiw", + "created_at": "2023-08-04T19:31:23Z", + "html_url": "https://github.com/neovim/neovim/issues/24567#issuecomment-1666078801", + "id": 1666078801, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/24567", + "node_id": "IC_kwDOAPphoM5jTlhR", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1666078801/reactions" + }, + "updated_at": "2023-08-04T19:31:23Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1666078801", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/734359?v=4", + "events_url": "https://api.github.com/users/milisims/events{/privacy}", + "followers_url": "https://api.github.com/users/milisims/followers", + "following_url": "https://api.github.com/users/milisims/following{/other_user}", + "gists_url": "https://api.github.com/users/milisims/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/milisims", + "id": 734359, + "login": "milisims", + "node_id": "MDQ6VXNlcjczNDM1OQ==", + "organizations_url": "https://api.github.com/users/milisims/orgs", + "received_events_url": "https://api.github.com/users/milisims/received_events", + "repos_url": "https://api.github.com/users/milisims/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/milisims/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/milisims/subscriptions", + "type": "User", + "url": "https://api.github.com/users/milisims" + } + }, + { + "author_association": "MEMBER", + "body": "It's also worth noting `vim.system` is just an alias for `vim.uv.spawn`. Afaik `jobstart` uses uv_spawn internally which is why I'm confused there is a difference in behaviour.", + "created_at": "2023-08-04T19:37:07Z", + "html_url": "https://github.com/neovim/neovim/issues/24567#issuecomment-1666084049", + "id": 1666084049, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/24567", + "node_id": "IC_kwDOAPphoM5jTmzR", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1666084049/reactions" + }, + "updated_at": "2023-08-04T19:37:07Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1666084049", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/7904185?v=4", + "events_url": "https://api.github.com/users/lewis6991/events{/privacy}", + "followers_url": "https://api.github.com/users/lewis6991/followers", + "following_url": "https://api.github.com/users/lewis6991/following{/other_user}", + "gists_url": "https://api.github.com/users/lewis6991/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/lewis6991", + "id": 7904185, + "login": "lewis6991", + "node_id": "MDQ6VXNlcjc5MDQxODU=", + "organizations_url": "https://api.github.com/users/lewis6991/orgs", + "received_events_url": "https://api.github.com/users/lewis6991/received_events", + "repos_url": "https://api.github.com/users/lewis6991/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/lewis6991/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/lewis6991/subscriptions", + "type": "User", + "url": "https://api.github.com/users/lewis6991" + } + }, + { + "author_association": "MEMBER", + "body": "> faik `jobstart` uses uv_spawn internally which is why I'm confused there is a difference in behaviour.\r\n\r\nThe flags given to uv_spawn may be different. https://github.com/neovim/neovim/blob/76f30591b0f07e2eb1e07e866eea893cc4488c0a/src/nvim/event/libuv_process.c#L23\r\n\r\nFor example opening GUI apps with `UV_PROCESS_DETACHED` works much better than without. Though that isn't the difference in this case.", + "created_at": "2023-08-04T21:00:16Z", + "html_url": "https://github.com/neovim/neovim/issues/24567#issuecomment-1666175393", + "id": 1666175393, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/24567", + "node_id": "IC_kwDOAPphoM5jT9Gh", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1666175393/reactions" + }, + "updated_at": "2023-08-04T21:00:42Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1666175393", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/1359421?v=4", + "events_url": "https://api.github.com/users/justinmk/events{/privacy}", + "followers_url": "https://api.github.com/users/justinmk/followers", + "following_url": "https://api.github.com/users/justinmk/following{/other_user}", + "gists_url": "https://api.github.com/users/justinmk/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/justinmk", + "id": 1359421, + "login": "justinmk", + "node_id": "MDQ6VXNlcjEzNTk0MjE=", + "organizations_url": "https://api.github.com/users/justinmk/orgs", + "received_events_url": "https://api.github.com/users/justinmk/received_events", + "repos_url": "https://api.github.com/users/justinmk/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/justinmk/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/justinmk/subscriptions", + "type": "User", + "url": "https://api.github.com/users/justinmk" + } + }, + { + "author_association": "MEMBER", + "body": "oh wait, lol https://github.com/neovim/neovim/blob/76f30591b0f07e2eb1e07e866eea893cc4488c0a/src/nvim/event/libuv_process.c#L40-L41", + "created_at": "2023-08-04T21:04:59Z", + "html_url": "https://github.com/neovim/neovim/issues/24567#issuecomment-1666179433", + "id": 1666179433, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/24567", + "node_id": "IC_kwDOAPphoM5jT-Fp", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1666179433/reactions" + }, + "updated_at": "2023-08-04T21:04:59Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1666179433", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/1359421?v=4", + "events_url": "https://api.github.com/users/justinmk/events{/privacy}", + "followers_url": "https://api.github.com/users/justinmk/followers", + "following_url": "https://api.github.com/users/justinmk/following{/other_user}", + "gists_url": "https://api.github.com/users/justinmk/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/justinmk", + "id": 1359421, + "login": "justinmk", + "node_id": "MDQ6VXNlcjEzNTk0MjE=", + "organizations_url": "https://api.github.com/users/justinmk/orgs", + "received_events_url": "https://api.github.com/users/justinmk/received_events", + "repos_url": "https://api.github.com/users/justinmk/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/justinmk/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/justinmk/subscriptions", + "type": "User", + "url": "https://api.github.com/users/justinmk" + } + }, + { + "author_association": "MEMBER", + "body": "The discussion in https://github.com/neovim/neovim/issues/9886 is related, but this isn't a duplicate.\r\n\r\nMaybe `vim.system` should always set `detach` on unix-likes, as `jobstart` does: https://github.com/neovim/neovim/commit/8d90171f8be6b92d7186ca84c42a0e07c2c71908 \r\nThat also implies that `vim.system` processes need to be registered as \"jobs\", just like `jobstart` jobs. Otherwise Nvim can't cleanup jobs on exit. (Not to mention, we want all \"jobs\" in one system. I didn't block the `vim.system` PR on this detail, but it is something we eventually need to think about.)", + "created_at": "2023-08-04T21:10:44Z", + "html_url": "https://github.com/neovim/neovim/issues/24567#issuecomment-1666184362", + "id": 1666184362, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/24567", + "node_id": "IC_kwDOAPphoM5jT_Sq", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1666184362/reactions" + }, + "updated_at": "2023-08-04T21:55:41Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1666184362", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/1359421?v=4", + "events_url": "https://api.github.com/users/justinmk/events{/privacy}", + "followers_url": "https://api.github.com/users/justinmk/followers", + "following_url": "https://api.github.com/users/justinmk/following{/other_user}", + "gists_url": "https://api.github.com/users/justinmk/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/justinmk", + "id": 1359421, + "login": "justinmk", + "node_id": "MDQ6VXNlcjEzNTk0MjE=", + "organizations_url": "https://api.github.com/users/justinmk/orgs", + "received_events_url": "https://api.github.com/users/justinmk/received_events", + "repos_url": "https://api.github.com/users/justinmk/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/justinmk/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/justinmk/subscriptions", + "type": "User", + "url": "https://api.github.com/users/justinmk" + } + }, + { + "author_association": "MEMBER", + "body": "> The detach option does not change this result,\r\n\r\n@milisims did you try `detach` with `vim.system` ? Please show exactly what you tried.", + "created_at": "2023-08-04T21:14:14Z", + "html_url": "https://github.com/neovim/neovim/issues/24567#issuecomment-1666187207", + "id": 1666187207, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/24567", + "node_id": "IC_kwDOAPphoM5jT__H", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1666187207/reactions" + }, + "updated_at": "2023-08-04T21:14:30Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1666187207", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/1359421?v=4", + "events_url": "https://api.github.com/users/justinmk/events{/privacy}", + "followers_url": "https://api.github.com/users/justinmk/followers", + "following_url": "https://api.github.com/users/justinmk/following{/other_user}", + "gists_url": "https://api.github.com/users/justinmk/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/justinmk", + "id": 1359421, + "login": "justinmk", + "node_id": "MDQ6VXNlcjEzNTk0MjE=", + "organizations_url": "https://api.github.com/users/justinmk/orgs", + "received_events_url": "https://api.github.com/users/justinmk/received_events", + "repos_url": "https://api.github.com/users/justinmk/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/justinmk/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/justinmk/subscriptions", + "type": "User", + "url": "https://api.github.com/users/justinmk" + } + }, + { + "author_association": "NONE", + "body": "`vim.system({ 'xdg-open', 'https://github.com/neovim/neovim' }, { detach = true })`, as well as just using [vim.ui.open](https://github.com/neovim/neovim/blob/6fa17da39b270bf230764859a9537124b18d3ed5/runtime/lua/vim/ui.lua#L152) on any url.", + "created_at": "2023-08-04T21:27:01Z", + "html_url": "https://github.com/neovim/neovim/issues/24567#issuecomment-1666196818", + "id": 1666196818, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/24567", + "node_id": "IC_kwDOAPphoM5jUCVS", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1666196818/reactions" + }, + "updated_at": "2023-08-04T21:27:01Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1666196818", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/734359?v=4", + "events_url": "https://api.github.com/users/milisims/events{/privacy}", + "followers_url": "https://api.github.com/users/milisims/followers", + "following_url": "https://api.github.com/users/milisims/following{/other_user}", + "gists_url": "https://api.github.com/users/milisims/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/milisims", + "id": 734359, + "login": "milisims", + "node_id": "MDQ6VXNlcjczNDM1OQ==", + "organizations_url": "https://api.github.com/users/milisims/orgs", + "received_events_url": "https://api.github.com/users/milisims/received_events", + "repos_url": "https://api.github.com/users/milisims/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/milisims/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/milisims/subscriptions", + "type": "User", + "url": "https://api.github.com/users/milisims" + } + }, + { + "author_association": "MEMBER", + "body": "> Maybe vim.system should always set detach on unix-likes, as jobstart\n\nIt's not clear to me what tangible benefit this would have (other than potentially fixing this issue). This just seems like more effort than it's worth. For most cases non-detached is what you want as it guarantees child processes won't be orphaned. Even if we try to cleanup detached processes ourselves, that cleanup won't happen in case of a crash.\n\n`jobstart` does some extra flags with the pipes which I think is more likely the culprit here.\n\n", + "created_at": "2023-08-04T22:24:41Z", + "html_url": "https://github.com/neovim/neovim/issues/24567#issuecomment-1666235461", + "id": 1666235461, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/24567", + "node_id": "IC_kwDOAPphoM5jULxF", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1666235461/reactions" + }, + "updated_at": "2023-08-04T22:24:41Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1666235461", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/7904185?v=4", + "events_url": "https://api.github.com/users/lewis6991/events{/privacy}", + "followers_url": "https://api.github.com/users/lewis6991/followers", + "following_url": "https://api.github.com/users/lewis6991/following{/other_user}", + "gists_url": "https://api.github.com/users/lewis6991/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/lewis6991", + "id": 7904185, + "login": "lewis6991", + "node_id": "MDQ6VXNlcjc5MDQxODU=", + "organizations_url": "https://api.github.com/users/lewis6991/orgs", + "received_events_url": "https://api.github.com/users/lewis6991/received_events", + "repos_url": "https://api.github.com/users/lewis6991/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/lewis6991/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/lewis6991/subscriptions", + "type": "User", + "url": "https://api.github.com/users/lewis6991" + } + } + ], + "comments": 10, + "comments_url": "https://api.github.com/repos/neovim/neovim/issues/24567/comments", + "created_at": "2023-08-04T19:08:38Z", + "events_url": "https://api.github.com/repos/neovim/neovim/issues/24567/events", + "html_url": "https://github.com/neovim/neovim/issues/24567", + "id": 1837219409, + "labels": [ + { + "color": "f9d0c4", + "default": true, + "description": "issues reporting wrong behavior", + "id": 77997474, + "name": "bug", + "node_id": "MDU6TGFiZWw3Nzk5NzQ3NA==", + "url": "https://api.github.com/repos/neovim/neovim/labels/bug" + }, + { + "color": "c5def5", + "default": false, + "description": "", + "id": 182884815, + "name": "job-control", + "node_id": "MDU6TGFiZWwxODI4ODQ4MTU=", + "url": "https://api.github.com/repos/neovim/neovim/labels/job-control" + } + ], + "labels_url": "https://api.github.com/repos/neovim/neovim/issues/24567/labels{/name}", + "locked": false, + "milestone": { + "closed_at": null, + "closed_issues": 570, + "created_at": "2014-05-10T20:43:04Z", + "creator": { + "avatar_url": "https://avatars.githubusercontent.com/u/1359421?v=4", + "events_url": "https://api.github.com/users/justinmk/events{/privacy}", + "followers_url": "https://api.github.com/users/justinmk/followers", + "following_url": "https://api.github.com/users/justinmk/following{/other_user}", + "gists_url": "https://api.github.com/users/justinmk/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/justinmk", + "id": 1359421, + "login": "justinmk", + "node_id": "MDQ6VXNlcjEzNTk0MjE=", + "organizations_url": "https://api.github.com/users/justinmk/orgs", + "received_events_url": "https://api.github.com/users/justinmk/received_events", + "repos_url": "https://api.github.com/users/justinmk/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/justinmk/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/justinmk/subscriptions", + "type": "User", + "url": "https://api.github.com/users/justinmk" + }, + "description": "Low priority. Not planned for the current target, may be reassigned.", + "due_on": null, + "html_url": "https://github.com/neovim/neovim/milestone/6", + "id": 655037, + "labels_url": "https://api.github.com/repos/neovim/neovim/milestones/6/labels", + "node_id": "MDk6TWlsZXN0b25lNjU1MDM3", + "number": 6, + "open_issues": 417, + "state": "open", + "title": "backlog", + "updated_at": "2023-08-04T21:11:41Z", + "url": "https://api.github.com/repos/neovim/neovim/milestones/6" + }, + "node_id": "I_kwDOAPphoM5tgb5R", + "number": 24567, + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/24567/reactions" + }, + "repository_url": "https://api.github.com/repos/neovim/neovim", + "state": "open", + "state_reason": "reopened", + "timeline_url": "https://api.github.com/repos/neovim/neovim/issues/24567/timeline", + "title": "vim.system(xdg-open) fails (but jobstart succeeds)", + "updated_at": "2023-08-04T22:24:42Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/24567", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/734359?v=4", + "events_url": "https://api.github.com/users/milisims/events{/privacy}", + "followers_url": "https://api.github.com/users/milisims/followers", + "following_url": "https://api.github.com/users/milisims/following{/other_user}", + "gists_url": "https://api.github.com/users/milisims/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/milisims", + "id": 734359, + "login": "milisims", + "node_id": "MDQ6VXNlcjczNDM1OQ==", + "organizations_url": "https://api.github.com/users/milisims/orgs", + "received_events_url": "https://api.github.com/users/milisims/received_events", + "repos_url": "https://api.github.com/users/milisims/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/milisims/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/milisims/subscriptions", + "type": "User", + "url": "https://api.github.com/users/milisims" + } +} \ No newline at end of file diff --git a/repositories/neovim/issues/24569.json b/repositories/neovim/issues/24569.json new file mode 100644 index 00000000..867bd96c --- /dev/null +++ b/repositories/neovim/issues/24569.json @@ -0,0 +1,134 @@ +{ + "active_lock_reason": null, + "assignee": null, + "assignees": [], + "author_association": "NONE", + "body": "### Problem\r\n\r\nWhen copying something without any newlines from notepad, I can easily copy it inline in notepad but when in neovim the content of the clipboard always gets pasted to a new line.\r\n\r\nWhen using `clipboard=unnamedplus` this behaviour seems to happen to anything I have in the clipboard including things yanked directly in nvim. If I yank something in nvim and then paste it in notepad it will correctly paste the content inline but in nvim it will always add it to a newline.\r\n\r\nAt first I thought the issue was me doing something wrong or maybe a config was wrong but the issue also happens with a clean config and doesn't happen when using `gvim`.\r\n\r\nI'm very new to the vim world so I apologize if this is expected behaviour.\r\n\r\nI'm not sure how to share a minimal reproduction since it involves manually copying from something outside of nvim.\r\n\r\nHere's a short video showing what happens:\r\nLeft is gvim, middle is neovim inside of windows terminal, right is notepad. I used `p` to paste in vim and neovim. Both vim and nvim have `:set clipboard=unnamedplus`\r\n\r\nhttps://github.com/neovim/neovim/assets/8348954/3fddf865-def1-43b0-beb6-bd3f394a6a69\r\n\r\n\r\n### Steps to reproduce\r\n```lua\r\nnvim --clean\r\n:set clipboard=unnamedplus\r\n\r\n-- copy something from notepad without any newlines\r\n\r\n-- move the neovim cursor in the middle of a line of text\r\n-- also happens with `p` or `P`\r\n:put\r\n\r\n-- the content will be added to a new line instead of next to the cursor\r\n```\r\n### Expected behavior\r\n\r\nI would expect neovim to paste inline when the content of the clipboard doesn't have a newline.\r\n\r\n### Neovim version (nvim -v)\r\n\r\nv0.9.1\r\n\r\n### Vim (not Nvim) behaves the same?\r\n\r\nno. vim 9.0\r\n\r\n### Operating system/version\r\n\r\nWindows 10 Version 22H2\r\n\r\n### Terminal name/version\r\n\r\nWindows Terminal, Neovide\r\n\r\n### $TERM environment variable\r\n\r\nempty\r\n\r\n### Installation\r\n\r\nscoop", + "closed_at": null, + "comment_data": [ + { + "author_association": "NONE", + "body": "So, I tried it in the 0.10 pre-release and it seems to work as expected without any new lines. So I guess this is fixed? I'll play with it a bit more before closing the issue", + "created_at": "2023-08-05T01:56:05Z", + "html_url": "https://github.com/neovim/neovim/issues/24569#issuecomment-1666347148", + "id": 1666347148, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/24569", + "node_id": "IC_kwDOAPphoM5jUnCM", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1666347148/reactions" + }, + "updated_at": "2023-08-05T01:56:05Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1666347148", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/8348954?v=4", + "events_url": "https://api.github.com/users/IceSentry/events{/privacy}", + "followers_url": "https://api.github.com/users/IceSentry/followers", + "following_url": "https://api.github.com/users/IceSentry/following{/other_user}", + "gists_url": "https://api.github.com/users/IceSentry/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/IceSentry", + "id": 8348954, + "login": "IceSentry", + "node_id": "MDQ6VXNlcjgzNDg5NTQ=", + "organizations_url": "https://api.github.com/users/IceSentry/orgs", + "received_events_url": "https://api.github.com/users/IceSentry/received_events", + "repos_url": "https://api.github.com/users/IceSentry/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/IceSentry/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/IceSentry/subscriptions", + "type": "User", + "url": "https://api.github.com/users/IceSentry" + } + } + ], + "comments": 1, + "comments_url": "https://api.github.com/repos/neovim/neovim/issues/24569/comments", + "created_at": "2023-08-05T01:30:02Z", + "events_url": "https://api.github.com/repos/neovim/neovim/issues/24569/events", + "html_url": "https://github.com/neovim/neovim/issues/24569", + "id": 1837501906, + "labels": [ + { + "color": "f9d0c4", + "default": true, + "description": "issues reporting wrong behavior", + "id": 77997474, + "name": "bug", + "node_id": "MDU6TGFiZWw3Nzk5NzQ3NA==", + "url": "https://api.github.com/repos/neovim/neovim/labels/bug" + }, + { + "color": "d4c5f9", + "default": false, + "description": null, + "id": 109461219, + "name": "platform:windows", + "node_id": "MDU6TGFiZWwxMDk0NjEyMTk=", + "url": "https://api.github.com/repos/neovim/neovim/labels/platform:windows" + }, + { + "color": "c5def5", + "default": false, + "description": "clipboard, paste", + "id": 186192409, + "name": "clipboard", + "node_id": "MDU6TGFiZWwxODYxOTI0MDk=", + "url": "https://api.github.com/repos/neovim/neovim/labels/clipboard" + } + ], + "labels_url": "https://api.github.com/repos/neovim/neovim/issues/24569/labels{/name}", + "locked": false, + "milestone": null, + "node_id": "I_kwDOAPphoM5thg3S", + "number": 24569, + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/24569/reactions" + }, + "repository_url": "https://api.github.com/repos/neovim/neovim", + "state": "open", + "state_reason": null, + "timeline_url": "https://api.github.com/repos/neovim/neovim/issues/24569/timeline", + "title": "Pasting from Windows adds unwanted newlines", + "updated_at": "2023-08-05T01:56:05Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/24569", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/8348954?v=4", + "events_url": "https://api.github.com/users/IceSentry/events{/privacy}", + "followers_url": "https://api.github.com/users/IceSentry/followers", + "following_url": "https://api.github.com/users/IceSentry/following{/other_user}", + "gists_url": "https://api.github.com/users/IceSentry/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/IceSentry", + "id": 8348954, + "login": "IceSentry", + "node_id": "MDQ6VXNlcjgzNDg5NTQ=", + "organizations_url": "https://api.github.com/users/IceSentry/orgs", + "received_events_url": "https://api.github.com/users/IceSentry/received_events", + "repos_url": "https://api.github.com/users/IceSentry/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/IceSentry/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/IceSentry/subscriptions", + "type": "User", + "url": "https://api.github.com/users/IceSentry" + } +} \ No newline at end of file diff --git a/repositories/neovim/issues/8704.json b/repositories/neovim/issues/8704.json index 5d32a821..916892e4 100644 --- a/repositories/neovim/issues/8704.json +++ b/repositories/neovim/issues/8704.json @@ -5,8 +5,97 @@ "author_association": "MEMBER", "body": "Neovim does not appear to forward focus reporting into `:terminal` windows.\r\n\r\nAfter `printf '\\e[?1004h'; cat -` you should see `^[[O` and `^[[I` when your terminal emulator supports focus reporting, and focus moves out/in.\r\n\r\nWhen using `:term` this does not work anymore.\r\n\r\nSince Neovim gets notified about it, it should forward it to the current terminal window (if any).\r\n\r\nAdditionally it should send focus-in/-out codes when entering/leaving a terminal window - similar to how tmux triggers it when moving in/out of a pane (with the focus-events option).\r\nThis should only happen if focus reporting was requested, of course.\r\n\r\n(mentioned in https://github.com/neovim/neovim/issues/8696#issuecomment-403123949 already, but taking it out from there into a separate issue)", "closed_at": null, - "comment_data": [], - "comments": 0, + "comment_data": [ + { + "author_association": "MEMBER", + "body": "> Additionally it should send focus-in/-out codes when entering/leaving a terminal window - similar to how tmux triggers it when moving in/out of a pane (with the focus-events option).\r\n\r\nThis part may need discussion, because a terminal buffer can be shown in multiple windows or be hidden.", + "created_at": "2023-08-04T03:18:08Z", + "html_url": "https://github.com/neovim/neovim/issues/8704#issuecomment-1664914543", + "id": 1664914543, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/8704", + "node_id": "IC_kwDOAPphoM5jPJRv", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1664914543/reactions" + }, + "updated_at": "2023-08-04T03:18:08Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1664914543", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/35768171?v=4", + "events_url": "https://api.github.com/users/zeertzjq/events{/privacy}", + "followers_url": "https://api.github.com/users/zeertzjq/followers", + "following_url": "https://api.github.com/users/zeertzjq/following{/other_user}", + "gists_url": "https://api.github.com/users/zeertzjq/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/zeertzjq", + "id": 35768171, + "login": "zeertzjq", + "node_id": "MDQ6VXNlcjM1NzY4MTcx", + "organizations_url": "https://api.github.com/users/zeertzjq/orgs", + "received_events_url": "https://api.github.com/users/zeertzjq/received_events", + "repos_url": "https://api.github.com/users/zeertzjq/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/zeertzjq/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/zeertzjq/subscriptions", + "type": "User", + "url": "https://api.github.com/users/zeertzjq" + } + }, + { + "author_association": "MEMBER", + "body": "But only one window can be focused. I don't see a problem.", + "created_at": "2023-08-04T12:28:21Z", + "html_url": "https://github.com/neovim/neovim/issues/8704#issuecomment-1665530133", + "id": 1665530133, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/8704", + "node_id": "IC_kwDOAPphoM5jRfkV", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1665530133/reactions" + }, + "updated_at": "2023-08-04T12:28:21Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1665530133", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/1359421?v=4", + "events_url": "https://api.github.com/users/justinmk/events{/privacy}", + "followers_url": "https://api.github.com/users/justinmk/followers", + "following_url": "https://api.github.com/users/justinmk/following{/other_user}", + "gists_url": "https://api.github.com/users/justinmk/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/justinmk", + "id": 1359421, + "login": "justinmk", + "node_id": "MDQ6VXNlcjEzNTk0MjE=", + "organizations_url": "https://api.github.com/users/justinmk/orgs", + "received_events_url": "https://api.github.com/users/justinmk/received_events", + "repos_url": "https://api.github.com/users/justinmk/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/justinmk/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/justinmk/subscriptions", + "type": "User", + "url": "https://api.github.com/users/justinmk" + } + } + ], + "comments": 2, "comments_url": "https://api.github.com/repos/neovim/neovim/issues/8704/comments", "created_at": "2018-07-07T12:07:45Z", "events_url": "https://api.github.com/repos/neovim/neovim/issues/8704/events", @@ -25,7 +114,7 @@ { "color": "c5def5", "default": false, - "description": "Nvim built-in `:terminal`", + "description": "built-in :terminal or :shell", "id": 212696822, "name": "terminal", "node_id": "MDU6TGFiZWwyMTI2OTY4MjI=", @@ -34,7 +123,43 @@ ], "labels_url": "https://api.github.com/repos/neovim/neovim/issues/8704/labels{/name}", "locked": false, - "milestone": null, + "milestone": { + "closed_at": null, + "closed_issues": 102, + "created_at": "2023-02-02T14:11:43Z", + "creator": { + "avatar_url": "https://avatars.githubusercontent.com/u/1363104?v=4", + "events_url": "https://api.github.com/users/bfredl/events{/privacy}", + "followers_url": "https://api.github.com/users/bfredl/followers", + "following_url": "https://api.github.com/users/bfredl/following{/other_user}", + "gists_url": "https://api.github.com/users/bfredl/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/bfredl", + "id": 1363104, + "login": "bfredl", + "node_id": "MDQ6VXNlcjEzNjMxMDQ=", + "organizations_url": "https://api.github.com/users/bfredl/orgs", + "received_events_url": "https://api.github.com/users/bfredl/received_events", + "repos_url": "https://api.github.com/users/bfredl/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/bfredl/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/bfredl/subscriptions", + "type": "User", + "url": "https://api.github.com/users/bfredl" + }, + "description": "", + "due_on": null, + "html_url": "https://github.com/neovim/neovim/milestone/36", + "id": 8997654, + "labels_url": "https://api.github.com/repos/neovim/neovim/milestones/36/labels", + "node_id": "MI_kwDOAPphoM4AiUsW", + "number": 36, + "open_issues": 140, + "state": "open", + "title": "0.10", + "updated_at": "2023-08-04T13:44:37Z", + "url": "https://api.github.com/repos/neovim/neovim/milestones/36" + }, "node_id": "MDU6SXNzdWUzMzkxNDEzNDM=", "number": 8704, "performed_via_github_app": null, @@ -55,7 +180,7 @@ "state_reason": null, "timeline_url": "https://api.github.com/repos/neovim/neovim/issues/8704/timeline", "title": "Focus reporting in terminal windows", - "updated_at": "2023-07-28T05:56:49Z", + "updated_at": "2023-08-04T12:28:21Z", "url": "https://api.github.com/repos/neovim/neovim/issues/8704", "user": { "avatar_url": "https://avatars.githubusercontent.com/u/9766?v=4", diff --git a/repositories/neovim/pulls/23211.json b/repositories/neovim/pulls/23211.json new file mode 100644 index 00000000..b9bdb1f6 --- /dev/null +++ b/repositories/neovim/pulls/23211.json @@ -0,0 +1,889 @@ +{ + "_links": { + "comments": { + "href": "https://api.github.com/repos/neovim/neovim/issues/23211/comments" + }, + "commits": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/23211/commits" + }, + "html": { + "href": "https://github.com/neovim/neovim/pull/23211" + }, + "issue": { + "href": "https://api.github.com/repos/neovim/neovim/issues/23211" + }, + "review_comment": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/comments{/number}" + }, + "review_comments": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/23211/comments" + }, + "self": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/23211" + }, + "statuses": { + "href": "https://api.github.com/repos/neovim/neovim/statuses/78d45911e62e6178914adcd622614ca9c40f3164" + } + }, + "active_lock_reason": null, + "assignee": null, + "assignees": [], + "author_association": "MEMBER", + "auto_merge": null, + "base": { + "label": "neovim:master", + "ref": "master", + "repo": { + "allow_forking": true, + "archive_url": "https://api.github.com/repos/neovim/neovim/{archive_format}{/ref}", + "archived": false, + "assignees_url": "https://api.github.com/repos/neovim/neovim/assignees{/user}", + "blobs_url": "https://api.github.com/repos/neovim/neovim/git/blobs{/sha}", + "branches_url": "https://api.github.com/repos/neovim/neovim/branches{/branch}", + "clone_url": "https://github.com/neovim/neovim.git", + "collaborators_url": "https://api.github.com/repos/neovim/neovim/collaborators{/collaborator}", + "comments_url": "https://api.github.com/repos/neovim/neovim/comments{/number}", + "commits_url": "https://api.github.com/repos/neovim/neovim/commits{/sha}", + "compare_url": "https://api.github.com/repos/neovim/neovim/compare/{base}...{head}", + "contents_url": "https://api.github.com/repos/neovim/neovim/contents/{+path}", + "contributors_url": "https://api.github.com/repos/neovim/neovim/contributors", + "created_at": "2014-01-31T13:39:22Z", + "default_branch": "master", + "deployments_url": "https://api.github.com/repos/neovim/neovim/deployments", + "description": "Vim-fork focused on extensibility and usability", + "disabled": false, + "downloads_url": "https://api.github.com/repos/neovim/neovim/downloads", + "events_url": "https://api.github.com/repos/neovim/neovim/events", + "fork": false, + "forks": 4789, + "forks_count": 4789, + "forks_url": "https://api.github.com/repos/neovim/neovim/forks", + "full_name": "neovim/neovim", + "git_commits_url": "https://api.github.com/repos/neovim/neovim/git/commits{/sha}", + "git_refs_url": "https://api.github.com/repos/neovim/neovim/git/refs{/sha}", + "git_tags_url": "https://api.github.com/repos/neovim/neovim/git/tags{/sha}", + "git_url": "git://github.com/neovim/neovim.git", + "has_discussions": true, + "has_downloads": true, + "has_issues": true, + "has_pages": false, + "has_projects": true, + "has_wiki": true, + "homepage": "https://neovim.io", + "hooks_url": "https://api.github.com/repos/neovim/neovim/hooks", + "html_url": "https://github.com/neovim/neovim", + "id": 16408992, + "is_template": false, + "issue_comment_url": "https://api.github.com/repos/neovim/neovim/issues/comments{/number}", + "issue_events_url": "https://api.github.com/repos/neovim/neovim/issues/events{/number}", + "issues_url": "https://api.github.com/repos/neovim/neovim/issues{/number}", + "keys_url": "https://api.github.com/repos/neovim/neovim/keys{/key_id}", + "labels_url": "https://api.github.com/repos/neovim/neovim/labels{/name}", + "language": "Vim Script", + "languages_url": "https://api.github.com/repos/neovim/neovim/languages", + "license": { + "key": "other", + "name": "Other", + "node_id": "MDc6TGljZW5zZTA=", + "spdx_id": "NOASSERTION", + "url": null + }, + "merges_url": "https://api.github.com/repos/neovim/neovim/merges", + "milestones_url": "https://api.github.com/repos/neovim/neovim/milestones{/number}", + "mirror_url": null, + "name": "neovim", + "node_id": "MDEwOlJlcG9zaXRvcnkxNjQwODk5Mg==", + "notifications_url": "https://api.github.com/repos/neovim/neovim/notifications{?since,all,participating}", + "open_issues": 1652, + "open_issues_count": 1652, + "owner": { + "avatar_url": "https://avatars.githubusercontent.com/u/6471485?v=4", + "events_url": "https://api.github.com/users/neovim/events{/privacy}", + "followers_url": "https://api.github.com/users/neovim/followers", + "following_url": "https://api.github.com/users/neovim/following{/other_user}", + "gists_url": "https://api.github.com/users/neovim/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/neovim", + "id": 6471485, + "login": "neovim", + "node_id": "MDEyOk9yZ2FuaXphdGlvbjY0NzE0ODU=", + "organizations_url": "https://api.github.com/users/neovim/orgs", + "received_events_url": "https://api.github.com/users/neovim/received_events", + "repos_url": "https://api.github.com/users/neovim/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/neovim/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/neovim/subscriptions", + "type": "Organization", + "url": "https://api.github.com/users/neovim" + }, + "private": false, + "pulls_url": "https://api.github.com/repos/neovim/neovim/pulls{/number}", + "pushed_at": "2023-08-05T01:34:12Z", + "releases_url": "https://api.github.com/repos/neovim/neovim/releases{/id}", + "size": 246884, + "ssh_url": "git@github.com:neovim/neovim.git", + "stargazers_count": 68006, + "stargazers_url": "https://api.github.com/repos/neovim/neovim/stargazers", + "statuses_url": "https://api.github.com/repos/neovim/neovim/statuses/{sha}", + "subscribers_url": "https://api.github.com/repos/neovim/neovim/subscribers", + "subscription_url": "https://api.github.com/repos/neovim/neovim/subscription", + "svn_url": "https://github.com/neovim/neovim", + "tags_url": "https://api.github.com/repos/neovim/neovim/tags", + "teams_url": "https://api.github.com/repos/neovim/neovim/teams", + "topics": [ + "api", + "c", + "lua", + "neovim", + "nvim", + "text-editor", + "vim" + ], + "trees_url": "https://api.github.com/repos/neovim/neovim/git/trees{/sha}", + "updated_at": "2023-08-04T23:49:51Z", + "url": "https://api.github.com/repos/neovim/neovim", + "visibility": "public", + "watchers": 68006, + "watchers_count": 68006, + "web_commit_signoff_required": false + }, + "sha": "1cbfed03c249e7f9e67d59566fbabe46f7f7f1f9", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/6471485?v=4", + "events_url": "https://api.github.com/users/neovim/events{/privacy}", + "followers_url": "https://api.github.com/users/neovim/followers", + "following_url": "https://api.github.com/users/neovim/following{/other_user}", + "gists_url": "https://api.github.com/users/neovim/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/neovim", + "id": 6471485, + "login": "neovim", + "node_id": "MDEyOk9yZ2FuaXphdGlvbjY0NzE0ODU=", + "organizations_url": "https://api.github.com/users/neovim/orgs", + "received_events_url": "https://api.github.com/users/neovim/received_events", + "repos_url": "https://api.github.com/users/neovim/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/neovim/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/neovim/subscriptions", + "type": "Organization", + "url": "https://api.github.com/users/neovim" + } + }, + "body": "Closes #23056 .\n", + "closed_at": "2023-05-28T14:04:55Z", + "comment_data": [ + { + "_links": { + "html": { + "href": "https://github.com/neovim/neovim/pull/23211#discussion_r1173024844" + }, + "pull_request": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/23211" + }, + "self": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/comments/1173024844" + } + }, + "author_association": "MEMBER", + "body": "```suggestion\r\n`$NVIM_APPNAME` must not contain any path separators or characters that are\r\n```\r\n\r\nAlternatively I'd even just leave this out of the docs. It's guarded by an explicit check and it's obvious. ", + "commit_id": "78d45911e62e6178914adcd622614ca9c40f3164", + "created_at": "2023-04-20T19:50:35Z", + "diff_hunk": "@@ -1392,6 +1392,8 @@ Neovim will look for (and auto-create) in the various XDG parent directories.\n For example, setting `$NVIM_APPNAME` to \"neovim\" before running Neovim will\n result in Neovim looking for configuration files in `$XDG_CONFIG_HOME/neovim`\n instead of `$XDG_CONFIG_HOME/nvim`.\n+`$NVIM_APPNAME` should not contain any path separators or characters that are", + "html_url": "https://github.com/neovim/neovim/pull/23211#discussion_r1173024844", + "id": 1173024844, + "line": null, + "node_id": "PRRC_kwDOAPphoM5F6vBM", + "original_commit_id": "8168cf739fcdb0d1021ac82607628ccaf7807703", + "original_line": 1395, + "original_position": 4, + "original_start_line": null, + "path": "runtime/doc/starting.txt", + "position": null, + "pull_request_review_id": 1394663602, + "pull_request_url": "https://api.github.com/repos/neovim/neovim/pulls/23211", + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/pulls/comments/1173024844/reactions" + }, + "side": "RIGHT", + "start_line": null, + "start_side": null, + "subject_type": "line", + "updated_at": "2023-04-20T19:50:35Z", + "url": "https://api.github.com/repos/neovim/neovim/pulls/comments/1173024844", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/1359421?v=4", + "events_url": "https://api.github.com/users/justinmk/events{/privacy}", + "followers_url": "https://api.github.com/users/justinmk/followers", + "following_url": "https://api.github.com/users/justinmk/following{/other_user}", + "gists_url": "https://api.github.com/users/justinmk/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/justinmk", + "id": 1359421, + "login": "justinmk", + "node_id": "MDQ6VXNlcjEzNTk0MjE=", + "organizations_url": "https://api.github.com/users/justinmk/orgs", + "received_events_url": "https://api.github.com/users/justinmk/received_events", + "repos_url": "https://api.github.com/users/justinmk/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/justinmk/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/justinmk/subscriptions", + "type": "User", + "url": "https://api.github.com/users/justinmk" + } + }, + { + "_links": { + "html": { + "href": "https://github.com/neovim/neovim/pull/23211#discussion_r1173026501" + }, + "pull_request": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/23211" + }, + "self": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/comments/1173026501" + } + }, + "author_association": "MEMBER", + "body": "\"foo (see :help foo)\" is redundant\r\n\r\nwe probably want a EXXX error code for this if we're going to mention it in the docs.\r\n\r\n```suggestion\r\n os_errmsg(\"E5XXX: $NVIM_APPNAME must not contain path separators\\n\");\r\n```", + "commit_id": "78d45911e62e6178914adcd622614ca9c40f3164", + "created_at": "2023-04-20T19:52:16Z", + "diff_hunk": "@@ -250,6 +250,11 @@ int main(int argc, char **argv)\n \n argv0 = argv[0];\n \n+ if (!appname_is_valid()) {\n+ os_errmsg(\"Invalid $NVIM_APPNAME (see `:help $NVIM_APPNAME`)\\n\");", + "html_url": "https://github.com/neovim/neovim/pull/23211#discussion_r1173026501", + "id": 1173026501, + "line": null, + "node_id": "PRRC_kwDOAPphoM5F6vbF", + "original_commit_id": "8168cf739fcdb0d1021ac82607628ccaf7807703", + "original_line": 254, + "original_position": 5, + "original_start_line": null, + "path": "src/nvim/main.c", + "position": null, + "pull_request_review_id": 1394666324, + "pull_request_url": "https://api.github.com/repos/neovim/neovim/pulls/23211", + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/pulls/comments/1173026501/reactions" + }, + "side": "RIGHT", + "start_line": null, + "start_side": null, + "subject_type": "line", + "updated_at": "2023-04-20T19:52:32Z", + "url": "https://api.github.com/repos/neovim/neovim/pulls/comments/1173026501", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/1359421?v=4", + "events_url": "https://api.github.com/users/justinmk/events{/privacy}", + "followers_url": "https://api.github.com/users/justinmk/followers", + "following_url": "https://api.github.com/users/justinmk/following{/other_user}", + "gists_url": "https://api.github.com/users/justinmk/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/justinmk", + "id": 1359421, + "login": "justinmk", + "node_id": "MDQ6VXNlcjEzNTk0MjE=", + "organizations_url": "https://api.github.com/users/justinmk/orgs", + "received_events_url": "https://api.github.com/users/justinmk/received_events", + "repos_url": "https://api.github.com/users/justinmk/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/justinmk/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/justinmk/subscriptions", + "type": "User", + "url": "https://api.github.com/users/justinmk" + } + }, + { + "_links": { + "html": { + "href": "https://github.com/neovim/neovim/pull/23211#discussion_r1173027944" + }, + "pull_request": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/23211" + }, + "self": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/comments/1173027944" + } + }, + "author_association": "MEMBER", + "body": "no need to do this check so early. Instead do it _just_ before `get_appname` is first called. That should help avoid order-of-operations issues.\r\n\r\nThat also allows us to do a proper exist instead of os_exit", + "commit_id": "78d45911e62e6178914adcd622614ca9c40f3164", + "created_at": "2023-04-20T19:53:31Z", + "diff_hunk": "@@ -250,6 +250,11 @@ int main(int argc, char **argv)\n \n argv0 = argv[0];\n \n+ if (!appname_is_valid()) {", + "html_url": "https://github.com/neovim/neovim/pull/23211#discussion_r1173027944", + "id": 1173027944, + "line": 252, + "node_id": "PRRC_kwDOAPphoM5F6vxo", + "original_commit_id": "8168cf739fcdb0d1021ac82607628ccaf7807703", + "original_line": 252, + "original_position": 4, + "original_start_line": null, + "path": "src/nvim/main.c", + "position": 4, + "pull_request_review_id": 1394667866, + "pull_request_url": "https://api.github.com/repos/neovim/neovim/pulls/23211", + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/pulls/comments/1173027944/reactions" + }, + "side": "RIGHT", + "start_line": null, + "start_side": null, + "subject_type": "line", + "updated_at": "2023-04-20T19:54:46Z", + "url": "https://api.github.com/repos/neovim/neovim/pulls/comments/1173027944", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/1359421?v=4", + "events_url": "https://api.github.com/users/justinmk/events{/privacy}", + "followers_url": "https://api.github.com/users/justinmk/followers", + "following_url": "https://api.github.com/users/justinmk/following{/other_user}", + "gists_url": "https://api.github.com/users/justinmk/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/justinmk", + "id": 1359421, + "login": "justinmk", + "node_id": "MDQ6VXNlcjEzNTk0MjE=", + "organizations_url": "https://api.github.com/users/justinmk/orgs", + "received_events_url": "https://api.github.com/users/justinmk/received_events", + "repos_url": "https://api.github.com/users/justinmk/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/justinmk/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/justinmk/subscriptions", + "type": "User", + "url": "https://api.github.com/users/justinmk" + } + }, + { + "_links": { + "html": { + "href": "https://github.com/neovim/neovim/pull/23211#discussion_r1186858016" + }, + "pull_request": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/23211" + }, + "self": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/comments/1186858016" + } + }, + "author_association": "MEMBER", + "body": "Very good point! Done.", + "commit_id": "78d45911e62e6178914adcd622614ca9c40f3164", + "created_at": "2023-05-07T13:55:08Z", + "diff_hunk": "@@ -1392,6 +1392,8 @@ Neovim will look for (and auto-create) in the various XDG parent directories.\n For example, setting `$NVIM_APPNAME` to \"neovim\" before running Neovim will\n result in Neovim looking for configuration files in `$XDG_CONFIG_HOME/neovim`\n instead of `$XDG_CONFIG_HOME/nvim`.\n+`$NVIM_APPNAME` should not contain any path separators or characters that are", + "html_url": "https://github.com/neovim/neovim/pull/23211#discussion_r1186858016", + "id": 1186858016, + "in_reply_to_id": 1173024844, + "line": null, + "node_id": "PRRC_kwDOAPphoM5GvgQg", + "original_commit_id": "8168cf739fcdb0d1021ac82607628ccaf7807703", + "original_line": 1395, + "original_position": 4, + "original_start_line": null, + "path": "runtime/doc/starting.txt", + "position": null, + "pull_request_review_id": 1415913726, + "pull_request_url": "https://api.github.com/repos/neovim/neovim/pulls/23211", + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/pulls/comments/1186858016/reactions" + }, + "side": "RIGHT", + "start_line": null, + "start_side": null, + "subject_type": "line", + "updated_at": "2023-05-07T13:55:08Z", + "url": "https://api.github.com/repos/neovim/neovim/pulls/comments/1186858016", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/11534587?v=4", + "events_url": "https://api.github.com/users/glacambre/events{/privacy}", + "followers_url": "https://api.github.com/users/glacambre/followers", + "following_url": "https://api.github.com/users/glacambre/following{/other_user}", + "gists_url": "https://api.github.com/users/glacambre/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/glacambre", + "id": 11534587, + "login": "glacambre", + "node_id": "MDQ6VXNlcjExNTM0NTg3", + "organizations_url": "https://api.github.com/users/glacambre/orgs", + "received_events_url": "https://api.github.com/users/glacambre/received_events", + "repos_url": "https://api.github.com/users/glacambre/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/glacambre/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/glacambre/subscriptions", + "type": "User", + "url": "https://api.github.com/users/glacambre" + } + }, + { + "_links": { + "html": { + "href": "https://github.com/neovim/neovim/pull/23211#discussion_r1186858369" + }, + "pull_request": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/23211" + }, + "self": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/comments/1186858369" + } + }, + "author_association": "MEMBER", + "body": "I removed references to the documentation as suggested and attempted to make the requirements both broader and clearer (to cover cases where users might attempt to use characters forbidden by their filesystem, like `:` under NTFS).", + "commit_id": "78d45911e62e6178914adcd622614ca9c40f3164", + "created_at": "2023-05-07T13:57:14Z", + "diff_hunk": "@@ -250,6 +250,11 @@ int main(int argc, char **argv)\n \n argv0 = argv[0];\n \n+ if (!appname_is_valid()) {\n+ os_errmsg(\"Invalid $NVIM_APPNAME (see `:help $NVIM_APPNAME`)\\n\");", + "html_url": "https://github.com/neovim/neovim/pull/23211#discussion_r1186858369", + "id": 1186858369, + "in_reply_to_id": 1173026501, + "line": null, + "node_id": "PRRC_kwDOAPphoM5GvgWB", + "original_commit_id": "8168cf739fcdb0d1021ac82607628ccaf7807703", + "original_line": 254, + "original_position": 5, + "original_start_line": null, + "path": "src/nvim/main.c", + "position": null, + "pull_request_review_id": 1415914055, + "pull_request_url": "https://api.github.com/repos/neovim/neovim/pulls/23211", + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/pulls/comments/1186858369/reactions" + }, + "side": "RIGHT", + "start_line": null, + "start_side": null, + "subject_type": "line", + "updated_at": "2023-05-07T13:57:14Z", + "url": "https://api.github.com/repos/neovim/neovim/pulls/comments/1186858369", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/11534587?v=4", + "events_url": "https://api.github.com/users/glacambre/events{/privacy}", + "followers_url": "https://api.github.com/users/glacambre/followers", + "following_url": "https://api.github.com/users/glacambre/following{/other_user}", + "gists_url": "https://api.github.com/users/glacambre/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/glacambre", + "id": 11534587, + "login": "glacambre", + "node_id": "MDQ6VXNlcjExNTM0NTg3", + "organizations_url": "https://api.github.com/users/glacambre/orgs", + "received_events_url": "https://api.github.com/users/glacambre/received_events", + "repos_url": "https://api.github.com/users/glacambre/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/glacambre/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/glacambre/subscriptions", + "type": "User", + "url": "https://api.github.com/users/glacambre" + } + }, + { + "_links": { + "html": { + "href": "https://github.com/neovim/neovim/pull/23211#discussion_r1186859442" + }, + "pull_request": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/23211" + }, + "self": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/comments/1186859442" + } + }, + "author_association": "MEMBER", + "body": "The first call to get_appname is performed in main (src/nvim/main.c:286) -> early_init (src/nvim/main.c:222) -> set_init_1 (src/nvim/option.c:340) -> stdpaths_user_state_subpath (src/nvim/os/stdpaths.c:202) -> get_xdg_home (src/nvim/os/stdpaths.c:138.). This doesn't seem to be much later than the current call to appname_is_valid and I'm not sure getting closer to this call would change anything (but I could very well be missing something).", + "commit_id": "78d45911e62e6178914adcd622614ca9c40f3164", + "created_at": "2023-05-07T14:03:35Z", + "diff_hunk": "@@ -250,6 +250,11 @@ int main(int argc, char **argv)\n \n argv0 = argv[0];\n \n+ if (!appname_is_valid()) {", + "html_url": "https://github.com/neovim/neovim/pull/23211#discussion_r1186859442", + "id": 1186859442, + "in_reply_to_id": 1173027944, + "line": 252, + "node_id": "PRRC_kwDOAPphoM5Gvgmy", + "original_commit_id": "8168cf739fcdb0d1021ac82607628ccaf7807703", + "original_line": 252, + "original_position": 4, + "original_start_line": null, + "path": "src/nvim/main.c", + "position": 4, + "pull_request_review_id": 1415915027, + "pull_request_url": "https://api.github.com/repos/neovim/neovim/pulls/23211", + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/pulls/comments/1186859442/reactions" + }, + "side": "RIGHT", + "start_line": null, + "start_side": null, + "subject_type": "line", + "updated_at": "2023-05-07T14:03:35Z", + "url": "https://api.github.com/repos/neovim/neovim/pulls/comments/1186859442", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/11534587?v=4", + "events_url": "https://api.github.com/users/glacambre/events{/privacy}", + "followers_url": "https://api.github.com/users/glacambre/followers", + "following_url": "https://api.github.com/users/glacambre/following{/other_user}", + "gists_url": "https://api.github.com/users/glacambre/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/glacambre", + "id": 11534587, + "login": "glacambre", + "node_id": "MDQ6VXNlcjExNTM0NTg3", + "organizations_url": "https://api.github.com/users/glacambre/orgs", + "received_events_url": "https://api.github.com/users/glacambre/received_events", + "repos_url": "https://api.github.com/users/glacambre/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/glacambre/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/glacambre/subscriptions", + "type": "User", + "url": "https://api.github.com/users/glacambre" + } + } + ], + "comment_regular_data": [ + { + "author_association": "MEMBER", + "body": "The windows & OSX failures are not caused by the doc change nor by the presence of `$` in the error string. It has to come from the code. Perhaps the problem is that we're calling getenv() too early - before some initialization code has had the chance to run?", + "created_at": "2023-04-20T06:52:52Z", + "html_url": "https://github.com/neovim/neovim/pull/23211#issuecomment-1515803037", + "id": 1515803037, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/23211", + "node_id": "IC_kwDOAPphoM5aWVGd", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1515803037/reactions" + }, + "updated_at": "2023-04-20T06:52:52Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1515803037", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/11534587?v=4", + "events_url": "https://api.github.com/users/glacambre/events{/privacy}", + "followers_url": "https://api.github.com/users/glacambre/followers", + "following_url": "https://api.github.com/users/glacambre/following{/other_user}", + "gists_url": "https://api.github.com/users/glacambre/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/glacambre", + "id": 11534587, + "login": "glacambre", + "node_id": "MDQ6VXNlcjExNTM0NTg3", + "organizations_url": "https://api.github.com/users/glacambre/orgs", + "received_events_url": "https://api.github.com/users/glacambre/received_events", + "repos_url": "https://api.github.com/users/glacambre/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/glacambre/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/glacambre/subscriptions", + "type": "User", + "url": "https://api.github.com/users/glacambre" + } + }, + { + "author_association": "MEMBER", + "body": "@glacambre I think this PR should pass the tests if you rebase to master.", + "created_at": "2023-04-22T09:53:29Z", + "html_url": "https://github.com/neovim/neovim/pull/23211#issuecomment-1518583021", + "id": 1518583021, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/23211", + "node_id": "IC_kwDOAPphoM5ag7zt", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 1, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 1, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1518583021/reactions" + }, + "updated_at": "2023-04-22T09:53:29Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1518583021", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/33953936?v=4", + "events_url": "https://api.github.com/users/dundargoc/events{/privacy}", + "followers_url": "https://api.github.com/users/dundargoc/followers", + "following_url": "https://api.github.com/users/dundargoc/following{/other_user}", + "gists_url": "https://api.github.com/users/dundargoc/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/dundargoc", + "id": 33953936, + "login": "dundargoc", + "node_id": "MDQ6VXNlcjMzOTUzOTM2", + "organizations_url": "https://api.github.com/users/dundargoc/orgs", + "received_events_url": "https://api.github.com/users/dundargoc/received_events", + "repos_url": "https://api.github.com/users/dundargoc/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/dundargoc/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/dundargoc/subscriptions", + "type": "User", + "url": "https://api.github.com/users/dundargoc" + } + } + ], + "comments_url": "https://api.github.com/repos/neovim/neovim/issues/23211/comments", + "commits_url": "https://api.github.com/repos/neovim/neovim/pulls/23211/commits", + "created_at": "2023-04-20T05:36:29Z", + "diff_url": "https://github.com/neovim/neovim/pull/23211.diff", + "draft": false, + "head": { + "label": "glacambre:fix-nvim-appname", + "ref": "fix-nvim-appname", + "repo": { + "allow_forking": true, + "archive_url": "https://api.github.com/repos/glacambre/neovim/{archive_format}{/ref}", + "archived": false, + "assignees_url": "https://api.github.com/repos/glacambre/neovim/assignees{/user}", + "blobs_url": "https://api.github.com/repos/glacambre/neovim/git/blobs{/sha}", + "branches_url": "https://api.github.com/repos/glacambre/neovim/branches{/branch}", + "clone_url": "https://github.com/glacambre/neovim.git", + "collaborators_url": "https://api.github.com/repos/glacambre/neovim/collaborators{/collaborator}", + "comments_url": "https://api.github.com/repos/glacambre/neovim/comments{/number}", + "commits_url": "https://api.github.com/repos/glacambre/neovim/commits{/sha}", + "compare_url": "https://api.github.com/repos/glacambre/neovim/compare/{base}...{head}", + "contents_url": "https://api.github.com/repos/glacambre/neovim/contents/{+path}", + "contributors_url": "https://api.github.com/repos/glacambre/neovim/contributors", + "created_at": "2021-02-08T19:20:35Z", + "default_branch": "master", + "deployments_url": "https://api.github.com/repos/glacambre/neovim/deployments", + "description": "Vim-fork focused on extensibility and usability", + "disabled": false, + "downloads_url": "https://api.github.com/repos/glacambre/neovim/downloads", + "events_url": "https://api.github.com/repos/glacambre/neovim/events", + "fork": true, + "forks": 0, + "forks_count": 0, + "forks_url": "https://api.github.com/repos/glacambre/neovim/forks", + "full_name": "glacambre/neovim", + "git_commits_url": "https://api.github.com/repos/glacambre/neovim/git/commits{/sha}", + "git_refs_url": "https://api.github.com/repos/glacambre/neovim/git/refs{/sha}", + "git_tags_url": "https://api.github.com/repos/glacambre/neovim/git/tags{/sha}", + "git_url": "git://github.com/glacambre/neovim.git", + "has_discussions": false, + "has_downloads": true, + "has_issues": false, + "has_pages": false, + "has_projects": true, + "has_wiki": true, + "homepage": "https://neovim.io", + "hooks_url": "https://api.github.com/repos/glacambre/neovim/hooks", + "html_url": "https://github.com/glacambre/neovim", + "id": 337184321, + "is_template": false, + "issue_comment_url": "https://api.github.com/repos/glacambre/neovim/issues/comments{/number}", + "issue_events_url": "https://api.github.com/repos/glacambre/neovim/issues/events{/number}", + "issues_url": "https://api.github.com/repos/glacambre/neovim/issues{/number}", + "keys_url": "https://api.github.com/repos/glacambre/neovim/keys{/key_id}", + "labels_url": "https://api.github.com/repos/glacambre/neovim/labels{/name}", + "language": "Vim Script", + "languages_url": "https://api.github.com/repos/glacambre/neovim/languages", + "license": { + "key": "other", + "name": "Other", + "node_id": "MDc6TGljZW5zZTA=", + "spdx_id": "NOASSERTION", + "url": null + }, + "merges_url": "https://api.github.com/repos/glacambre/neovim/merges", + "milestones_url": "https://api.github.com/repos/glacambre/neovim/milestones{/number}", + "mirror_url": null, + "name": "neovim", + "node_id": "MDEwOlJlcG9zaXRvcnkzMzcxODQzMjE=", + "notifications_url": "https://api.github.com/repos/glacambre/neovim/notifications{?since,all,participating}", + "open_issues": 0, + "open_issues_count": 0, + "owner": { + "avatar_url": "https://avatars.githubusercontent.com/u/11534587?v=4", + "events_url": "https://api.github.com/users/glacambre/events{/privacy}", + "followers_url": "https://api.github.com/users/glacambre/followers", + "following_url": "https://api.github.com/users/glacambre/following{/other_user}", + "gists_url": "https://api.github.com/users/glacambre/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/glacambre", + "id": 11534587, + "login": "glacambre", + "node_id": "MDQ6VXNlcjExNTM0NTg3", + "organizations_url": "https://api.github.com/users/glacambre/orgs", + "received_events_url": "https://api.github.com/users/glacambre/received_events", + "repos_url": "https://api.github.com/users/glacambre/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/glacambre/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/glacambre/subscriptions", + "type": "User", + "url": "https://api.github.com/users/glacambre" + }, + "private": false, + "pulls_url": "https://api.github.com/repos/glacambre/neovim/pulls{/number}", + "pushed_at": "2023-05-07T15:16:11Z", + "releases_url": "https://api.github.com/repos/glacambre/neovim/releases{/id}", + "size": 241908, + "ssh_url": "git@github.com:glacambre/neovim.git", + "stargazers_count": 0, + "stargazers_url": "https://api.github.com/repos/glacambre/neovim/stargazers", + "statuses_url": "https://api.github.com/repos/glacambre/neovim/statuses/{sha}", + "subscribers_url": "https://api.github.com/repos/glacambre/neovim/subscribers", + "subscription_url": "https://api.github.com/repos/glacambre/neovim/subscription", + "svn_url": "https://github.com/glacambre/neovim", + "tags_url": "https://api.github.com/repos/glacambre/neovim/tags", + "teams_url": "https://api.github.com/repos/glacambre/neovim/teams", + "topics": [], + "trees_url": "https://api.github.com/repos/glacambre/neovim/git/trees{/sha}", + "updated_at": "2023-02-23T07:32:59Z", + "url": "https://api.github.com/repos/glacambre/neovim", + "visibility": "public", + "watchers": 0, + "watchers_count": 0, + "web_commit_signoff_required": false + }, + "sha": "78d45911e62e6178914adcd622614ca9c40f3164", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/11534587?v=4", + "events_url": "https://api.github.com/users/glacambre/events{/privacy}", + "followers_url": "https://api.github.com/users/glacambre/followers", + "following_url": "https://api.github.com/users/glacambre/following{/other_user}", + "gists_url": "https://api.github.com/users/glacambre/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/glacambre", + "id": 11534587, + "login": "glacambre", + "node_id": "MDQ6VXNlcjExNTM0NTg3", + "organizations_url": "https://api.github.com/users/glacambre/orgs", + "received_events_url": "https://api.github.com/users/glacambre/received_events", + "repos_url": "https://api.github.com/users/glacambre/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/glacambre/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/glacambre/subscriptions", + "type": "User", + "url": "https://api.github.com/users/glacambre" + } + }, + "html_url": "https://github.com/neovim/neovim/pull/23211", + "id": 1320896874, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/23211", + "labels": [], + "locked": false, + "merge_commit_sha": "5a3752889c5b7e18d1041eb873ca2fa9ceb814bd", + "merged_at": "2023-05-28T14:04:55Z", + "milestone": { + "closed_at": null, + "closed_issues": 102, + "created_at": "2023-02-02T14:11:43Z", + "creator": { + "avatar_url": "https://avatars.githubusercontent.com/u/1363104?v=4", + "events_url": "https://api.github.com/users/bfredl/events{/privacy}", + "followers_url": "https://api.github.com/users/bfredl/followers", + "following_url": "https://api.github.com/users/bfredl/following{/other_user}", + "gists_url": "https://api.github.com/users/bfredl/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/bfredl", + "id": 1363104, + "login": "bfredl", + "node_id": "MDQ6VXNlcjEzNjMxMDQ=", + "organizations_url": "https://api.github.com/users/bfredl/orgs", + "received_events_url": "https://api.github.com/users/bfredl/received_events", + "repos_url": "https://api.github.com/users/bfredl/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/bfredl/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/bfredl/subscriptions", + "type": "User", + "url": "https://api.github.com/users/bfredl" + }, + "description": "", + "due_on": null, + "html_url": "https://github.com/neovim/neovim/milestone/36", + "id": 8997654, + "labels_url": "https://api.github.com/repos/neovim/neovim/milestones/36/labels", + "node_id": "MI_kwDOAPphoM4AiUsW", + "number": 36, + "open_issues": 140, + "state": "open", + "title": "0.10", + "updated_at": "2023-08-04T13:44:37Z", + "url": "https://api.github.com/repos/neovim/neovim/milestones/36" + }, + "node_id": "PR_kwDOAPphoM5Ou0lq", + "number": 23211, + "patch_url": "https://github.com/neovim/neovim/pull/23211.patch", + "requested_reviewers": [], + "requested_teams": [], + "review_comment_url": "https://api.github.com/repos/neovim/neovim/pulls/comments{/number}", + "review_comments_url": "https://api.github.com/repos/neovim/neovim/pulls/23211/comments", + "state": "closed", + "statuses_url": "https://api.github.com/repos/neovim/neovim/statuses/78d45911e62e6178914adcd622614ca9c40f3164", + "title": "fix(NVIM_APPNAME): show error message if $NVIM_APPNAME is invalid", + "updated_at": "2023-08-04T02:40:19Z", + "url": "https://api.github.com/repos/neovim/neovim/pulls/23211", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/11534587?v=4", + "events_url": "https://api.github.com/users/glacambre/events{/privacy}", + "followers_url": "https://api.github.com/users/glacambre/followers", + "following_url": "https://api.github.com/users/glacambre/following{/other_user}", + "gists_url": "https://api.github.com/users/glacambre/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/glacambre", + "id": 11534587, + "login": "glacambre", + "node_id": "MDQ6VXNlcjExNTM0NTg3", + "organizations_url": "https://api.github.com/users/glacambre/orgs", + "received_events_url": "https://api.github.com/users/glacambre/received_events", + "repos_url": "https://api.github.com/users/glacambre/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/glacambre/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/glacambre/subscriptions", + "type": "User", + "url": "https://api.github.com/users/glacambre" + } +} \ No newline at end of file diff --git a/repositories/neovim/pulls/23224.json b/repositories/neovim/pulls/23224.json new file mode 100644 index 00000000..fac19150 --- /dev/null +++ b/repositories/neovim/pulls/23224.json @@ -0,0 +1,416 @@ +{ + "_links": { + "comments": { + "href": "https://api.github.com/repos/neovim/neovim/issues/23224/comments" + }, + "commits": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/23224/commits" + }, + "html": { + "href": "https://github.com/neovim/neovim/pull/23224" + }, + "issue": { + "href": "https://api.github.com/repos/neovim/neovim/issues/23224" + }, + "review_comment": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/comments{/number}" + }, + "review_comments": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/23224/comments" + }, + "self": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/23224" + }, + "statuses": { + "href": "https://api.github.com/repos/neovim/neovim/statuses/b773a525157393fca26967bd400edf137839e545" + } + }, + "active_lock_reason": null, + "assignee": null, + "assignees": [], + "author_association": "MEMBER", + "auto_merge": null, + "base": { + "label": "neovim:master", + "ref": "master", + "repo": { + "allow_forking": true, + "archive_url": "https://api.github.com/repos/neovim/neovim/{archive_format}{/ref}", + "archived": false, + "assignees_url": "https://api.github.com/repos/neovim/neovim/assignees{/user}", + "blobs_url": "https://api.github.com/repos/neovim/neovim/git/blobs{/sha}", + "branches_url": "https://api.github.com/repos/neovim/neovim/branches{/branch}", + "clone_url": "https://github.com/neovim/neovim.git", + "collaborators_url": "https://api.github.com/repos/neovim/neovim/collaborators{/collaborator}", + "comments_url": "https://api.github.com/repos/neovim/neovim/comments{/number}", + "commits_url": "https://api.github.com/repos/neovim/neovim/commits{/sha}", + "compare_url": "https://api.github.com/repos/neovim/neovim/compare/{base}...{head}", + "contents_url": "https://api.github.com/repos/neovim/neovim/contents/{+path}", + "contributors_url": "https://api.github.com/repos/neovim/neovim/contributors", + "created_at": "2014-01-31T13:39:22Z", + "default_branch": "master", + "deployments_url": "https://api.github.com/repos/neovim/neovim/deployments", + "description": "Vim-fork focused on extensibility and usability", + "disabled": false, + "downloads_url": "https://api.github.com/repos/neovim/neovim/downloads", + "events_url": "https://api.github.com/repos/neovim/neovim/events", + "fork": false, + "forks": 4789, + "forks_count": 4789, + "forks_url": "https://api.github.com/repos/neovim/neovim/forks", + "full_name": "neovim/neovim", + "git_commits_url": "https://api.github.com/repos/neovim/neovim/git/commits{/sha}", + "git_refs_url": "https://api.github.com/repos/neovim/neovim/git/refs{/sha}", + "git_tags_url": "https://api.github.com/repos/neovim/neovim/git/tags{/sha}", + "git_url": "git://github.com/neovim/neovim.git", + "has_discussions": true, + "has_downloads": true, + "has_issues": true, + "has_pages": false, + "has_projects": true, + "has_wiki": true, + "homepage": "https://neovim.io", + "hooks_url": "https://api.github.com/repos/neovim/neovim/hooks", + "html_url": "https://github.com/neovim/neovim", + "id": 16408992, + "is_template": false, + "issue_comment_url": "https://api.github.com/repos/neovim/neovim/issues/comments{/number}", + "issue_events_url": "https://api.github.com/repos/neovim/neovim/issues/events{/number}", + "issues_url": "https://api.github.com/repos/neovim/neovim/issues{/number}", + "keys_url": "https://api.github.com/repos/neovim/neovim/keys{/key_id}", + "labels_url": "https://api.github.com/repos/neovim/neovim/labels{/name}", + "language": "Vim Script", + "languages_url": "https://api.github.com/repos/neovim/neovim/languages", + "license": { + "key": "other", + "name": "Other", + "node_id": "MDc6TGljZW5zZTA=", + "spdx_id": "NOASSERTION", + "url": null + }, + "merges_url": "https://api.github.com/repos/neovim/neovim/merges", + "milestones_url": "https://api.github.com/repos/neovim/neovim/milestones{/number}", + "mirror_url": null, + "name": "neovim", + "node_id": "MDEwOlJlcG9zaXRvcnkxNjQwODk5Mg==", + "notifications_url": "https://api.github.com/repos/neovim/neovim/notifications{?since,all,participating}", + "open_issues": 1652, + "open_issues_count": 1652, + "owner": { + "avatar_url": "https://avatars.githubusercontent.com/u/6471485?v=4", + "events_url": "https://api.github.com/users/neovim/events{/privacy}", + "followers_url": "https://api.github.com/users/neovim/followers", + "following_url": "https://api.github.com/users/neovim/following{/other_user}", + "gists_url": "https://api.github.com/users/neovim/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/neovim", + "id": 6471485, + "login": "neovim", + "node_id": "MDEyOk9yZ2FuaXphdGlvbjY0NzE0ODU=", + "organizations_url": "https://api.github.com/users/neovim/orgs", + "received_events_url": "https://api.github.com/users/neovim/received_events", + "repos_url": "https://api.github.com/users/neovim/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/neovim/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/neovim/subscriptions", + "type": "Organization", + "url": "https://api.github.com/users/neovim" + }, + "private": false, + "pulls_url": "https://api.github.com/repos/neovim/neovim/pulls{/number}", + "pushed_at": "2023-08-05T01:34:12Z", + "releases_url": "https://api.github.com/repos/neovim/neovim/releases{/id}", + "size": 246884, + "ssh_url": "git@github.com:neovim/neovim.git", + "stargazers_count": 68006, + "stargazers_url": "https://api.github.com/repos/neovim/neovim/stargazers", + "statuses_url": "https://api.github.com/repos/neovim/neovim/statuses/{sha}", + "subscribers_url": "https://api.github.com/repos/neovim/neovim/subscribers", + "subscription_url": "https://api.github.com/repos/neovim/neovim/subscription", + "svn_url": "https://github.com/neovim/neovim", + "tags_url": "https://api.github.com/repos/neovim/neovim/tags", + "teams_url": "https://api.github.com/repos/neovim/neovim/teams", + "topics": [ + "api", + "c", + "lua", + "neovim", + "nvim", + "text-editor", + "vim" + ], + "trees_url": "https://api.github.com/repos/neovim/neovim/git/trees{/sha}", + "updated_at": "2023-08-04T23:49:51Z", + "url": "https://api.github.com/repos/neovim/neovim", + "visibility": "public", + "watchers": 68006, + "watchers_count": 68006, + "web_commit_signoff_required": false + }, + "sha": "ab2811746eb72e06309a9877dbe6cb70d9cd3b12", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/6471485?v=4", + "events_url": "https://api.github.com/users/neovim/events{/privacy}", + "followers_url": "https://api.github.com/users/neovim/followers", + "following_url": "https://api.github.com/users/neovim/following{/other_user}", + "gists_url": "https://api.github.com/users/neovim/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/neovim", + "id": 6471485, + "login": "neovim", + "node_id": "MDEyOk9yZ2FuaXphdGlvbjY0NzE0ODU=", + "organizations_url": "https://api.github.com/users/neovim/orgs", + "received_events_url": "https://api.github.com/users/neovim/received_events", + "repos_url": "https://api.github.com/users/neovim/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/neovim/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/neovim/subscriptions", + "type": "Organization", + "url": "https://api.github.com/users/neovim" + } + }, + "body": "This was needed when TUI was a thread.\r\nlua code uses :os_getenv: only on the main thread.", + "closed_at": "2023-04-20T20:10:15Z", + "comment_data": [], + "comment_regular_data": [ + { + "author_association": "CONTRIBUTOR", + "body": "Successfully created backport PR for `release-0.9`:\n- #24555", + "created_at": "2023-08-04T02:41:57Z", + "html_url": "https://github.com/neovim/neovim/pull/23224#issuecomment-1664894212", + "id": 1664894212, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/23224", + "node_id": "IC_kwDOAPphoM5jPEUE", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1664894212/reactions" + }, + "updated_at": "2023-08-04T02:41:57Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1664894212", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/apps/github-actions", + "id": 41898282, + "login": "github-actions[bot]", + "node_id": "MDM6Qm90NDE4OTgyODI=", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "type": "Bot", + "url": "https://api.github.com/users/github-actions%5Bbot%5D" + } + } + ], + "comments_url": "https://api.github.com/repos/neovim/neovim/issues/23224/comments", + "commits_url": "https://api.github.com/repos/neovim/neovim/pulls/23224/commits", + "created_at": "2023-04-20T16:55:19Z", + "diff_url": "https://github.com/neovim/neovim/pull/23224.diff", + "draft": false, + "head": { + "label": "bfredl:nomutex", + "ref": "nomutex", + "repo": { + "allow_forking": true, + "archive_url": "https://api.github.com/repos/bfredl/neovim/{archive_format}{/ref}", + "archived": false, + "assignees_url": "https://api.github.com/repos/bfredl/neovim/assignees{/user}", + "blobs_url": "https://api.github.com/repos/bfredl/neovim/git/blobs{/sha}", + "branches_url": "https://api.github.com/repos/bfredl/neovim/branches{/branch}", + "clone_url": "https://github.com/bfredl/neovim.git", + "collaborators_url": "https://api.github.com/repos/bfredl/neovim/collaborators{/collaborator}", + "comments_url": "https://api.github.com/repos/bfredl/neovim/comments{/number}", + "commits_url": "https://api.github.com/repos/bfredl/neovim/commits{/sha}", + "compare_url": "https://api.github.com/repos/bfredl/neovim/compare/{base}...{head}", + "contents_url": "https://api.github.com/repos/bfredl/neovim/contents/{+path}", + "contributors_url": "https://api.github.com/repos/bfredl/neovim/contributors", + "created_at": "2014-06-20T19:51:31Z", + "default_branch": "master", + "deployments_url": "https://api.github.com/repos/bfredl/neovim/deployments", + "description": "vim's rebirth for the 21st century", + "disabled": false, + "downloads_url": "https://api.github.com/repos/bfredl/neovim/downloads", + "events_url": "https://api.github.com/repos/bfredl/neovim/events", + "fork": true, + "forks": 1, + "forks_count": 1, + "forks_url": "https://api.github.com/repos/bfredl/neovim/forks", + "full_name": "bfredl/neovim", + "git_commits_url": "https://api.github.com/repos/bfredl/neovim/git/commits{/sha}", + "git_refs_url": "https://api.github.com/repos/bfredl/neovim/git/refs{/sha}", + "git_tags_url": "https://api.github.com/repos/bfredl/neovim/git/tags{/sha}", + "git_url": "git://github.com/bfredl/neovim.git", + "has_discussions": false, + "has_downloads": true, + "has_issues": false, + "has_pages": false, + "has_projects": true, + "has_wiki": true, + "homepage": "http://neovim.org/", + "hooks_url": "https://api.github.com/repos/bfredl/neovim/hooks", + "html_url": "https://github.com/bfredl/neovim", + "id": 21050434, + "is_template": false, + "issue_comment_url": "https://api.github.com/repos/bfredl/neovim/issues/comments{/number}", + "issue_events_url": "https://api.github.com/repos/bfredl/neovim/issues/events{/number}", + "issues_url": "https://api.github.com/repos/bfredl/neovim/issues{/number}", + "keys_url": "https://api.github.com/repos/bfredl/neovim/keys{/key_id}", + "labels_url": "https://api.github.com/repos/bfredl/neovim/labels{/name}", + "language": "Vim script", + "languages_url": "https://api.github.com/repos/bfredl/neovim/languages", + "license": { + "key": "other", + "name": "Other", + "node_id": "MDc6TGljZW5zZTA=", + "spdx_id": "NOASSERTION", + "url": null + }, + "merges_url": "https://api.github.com/repos/bfredl/neovim/merges", + "milestones_url": "https://api.github.com/repos/bfredl/neovim/milestones{/number}", + "mirror_url": null, + "name": "neovim", + "node_id": "MDEwOlJlcG9zaXRvcnkyMTA1MDQzNA==", + "notifications_url": "https://api.github.com/repos/bfredl/neovim/notifications{?since,all,participating}", + "open_issues": 0, + "open_issues_count": 0, + "owner": { + "avatar_url": "https://avatars.githubusercontent.com/u/1363104?v=4", + "events_url": "https://api.github.com/users/bfredl/events{/privacy}", + "followers_url": "https://api.github.com/users/bfredl/followers", + "following_url": "https://api.github.com/users/bfredl/following{/other_user}", + "gists_url": "https://api.github.com/users/bfredl/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/bfredl", + "id": 1363104, + "login": "bfredl", + "node_id": "MDQ6VXNlcjEzNjMxMDQ=", + "organizations_url": "https://api.github.com/users/bfredl/orgs", + "received_events_url": "https://api.github.com/users/bfredl/received_events", + "repos_url": "https://api.github.com/users/bfredl/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/bfredl/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/bfredl/subscriptions", + "type": "User", + "url": "https://api.github.com/users/bfredl" + }, + "private": false, + "pulls_url": "https://api.github.com/repos/bfredl/neovim/pulls{/number}", + "pushed_at": "2023-08-04T10:55:26Z", + "releases_url": "https://api.github.com/repos/bfredl/neovim/releases{/id}", + "size": 247865, + "ssh_url": "git@github.com:bfredl/neovim.git", + "stargazers_count": 0, + "stargazers_url": "https://api.github.com/repos/bfredl/neovim/stargazers", + "statuses_url": "https://api.github.com/repos/bfredl/neovim/statuses/{sha}", + "subscribers_url": "https://api.github.com/repos/bfredl/neovim/subscribers", + "subscription_url": "https://api.github.com/repos/bfredl/neovim/subscription", + "svn_url": "https://github.com/bfredl/neovim", + "tags_url": "https://api.github.com/repos/bfredl/neovim/tags", + "teams_url": "https://api.github.com/repos/bfredl/neovim/teams", + "topics": [], + "trees_url": "https://api.github.com/repos/bfredl/neovim/git/trees{/sha}", + "updated_at": "2022-03-21T08:01:17Z", + "url": "https://api.github.com/repos/bfredl/neovim", + "visibility": "public", + "watchers": 0, + "watchers_count": 0, + "web_commit_signoff_required": false + }, + "sha": "b773a525157393fca26967bd400edf137839e545", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/1363104?v=4", + "events_url": "https://api.github.com/users/bfredl/events{/privacy}", + "followers_url": "https://api.github.com/users/bfredl/followers", + "following_url": "https://api.github.com/users/bfredl/following{/other_user}", + "gists_url": "https://api.github.com/users/bfredl/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/bfredl", + "id": 1363104, + "login": "bfredl", + "node_id": "MDQ6VXNlcjEzNjMxMDQ=", + "organizations_url": "https://api.github.com/users/bfredl/orgs", + "received_events_url": "https://api.github.com/users/bfredl/received_events", + "repos_url": "https://api.github.com/users/bfredl/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/bfredl/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/bfredl/subscriptions", + "type": "User", + "url": "https://api.github.com/users/bfredl" + } + }, + "html_url": "https://github.com/neovim/neovim/pull/23224", + "id": 1321827712, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/23224", + "labels": [ + { + "color": "C5DEF5", + "default": false, + "description": "changes that are not features or bugfixes", + "id": 106949155, + "name": "refactor", + "node_id": "MDU6TGFiZWwxMDY5NDkxNTU=", + "url": "https://api.github.com/repos/neovim/neovim/labels/refactor" + }, + { + "color": "fef2c0", + "default": false, + "description": "", + "id": 5363823255, + "name": "backport release-0.9", + "node_id": "LA_kwDOAPphoM8AAAABP7Vylw", + "url": "https://api.github.com/repos/neovim/neovim/labels/backport%20release-0.9" + } + ], + "locked": false, + "merge_commit_sha": "c4fb418626187066f213b2cc5cdfe728a40f1fed", + "merged_at": "2023-04-20T20:10:15Z", + "milestone": null, + "node_id": "PR_kwDOAPphoM5OyX2A", + "number": 23224, + "patch_url": "https://github.com/neovim/neovim/pull/23224.patch", + "requested_reviewers": [], + "requested_teams": [], + "review_comment_url": "https://api.github.com/repos/neovim/neovim/pulls/comments{/number}", + "review_comments_url": "https://api.github.com/repos/neovim/neovim/pulls/23224/comments", + "state": "closed", + "statuses_url": "https://api.github.com/repos/neovim/neovim/statuses/b773a525157393fca26967bd400edf137839e545", + "title": "refactor(env): remove unused mutex", + "updated_at": "2023-08-04T02:41:57Z", + "url": "https://api.github.com/repos/neovim/neovim/pulls/23224", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/1363104?v=4", + "events_url": "https://api.github.com/users/bfredl/events{/privacy}", + "followers_url": "https://api.github.com/users/bfredl/followers", + "following_url": "https://api.github.com/users/bfredl/following{/other_user}", + "gists_url": "https://api.github.com/users/bfredl/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/bfredl", + "id": 1363104, + "login": "bfredl", + "node_id": "MDQ6VXNlcjEzNjMxMDQ=", + "organizations_url": "https://api.github.com/users/bfredl/orgs", + "received_events_url": "https://api.github.com/users/bfredl/received_events", + "repos_url": "https://api.github.com/users/bfredl/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/bfredl/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/bfredl/subscriptions", + "type": "User", + "url": "https://api.github.com/users/bfredl" + } +} \ No newline at end of file diff --git a/repositories/neovim/pulls/24314.json b/repositories/neovim/pulls/24314.json new file mode 100644 index 00000000..7ba66db9 --- /dev/null +++ b/repositories/neovim/pulls/24314.json @@ -0,0 +1,407 @@ +{ + "_links": { + "comments": { + "href": "https://api.github.com/repos/neovim/neovim/issues/24314/comments" + }, + "commits": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/24314/commits" + }, + "html": { + "href": "https://github.com/neovim/neovim/pull/24314" + }, + "issue": { + "href": "https://api.github.com/repos/neovim/neovim/issues/24314" + }, + "review_comment": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/comments{/number}" + }, + "review_comments": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/24314/comments" + }, + "self": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/24314" + }, + "statuses": { + "href": "https://api.github.com/repos/neovim/neovim/statuses/648209de6cf9889def605afe5ac4519822469293" + } + }, + "active_lock_reason": null, + "assignee": null, + "assignees": [], + "author_association": "MEMBER", + "auto_merge": null, + "base": { + "label": "neovim:master", + "ref": "master", + "repo": { + "allow_forking": true, + "archive_url": "https://api.github.com/repos/neovim/neovim/{archive_format}{/ref}", + "archived": false, + "assignees_url": "https://api.github.com/repos/neovim/neovim/assignees{/user}", + "blobs_url": "https://api.github.com/repos/neovim/neovim/git/blobs{/sha}", + "branches_url": "https://api.github.com/repos/neovim/neovim/branches{/branch}", + "clone_url": "https://github.com/neovim/neovim.git", + "collaborators_url": "https://api.github.com/repos/neovim/neovim/collaborators{/collaborator}", + "comments_url": "https://api.github.com/repos/neovim/neovim/comments{/number}", + "commits_url": "https://api.github.com/repos/neovim/neovim/commits{/sha}", + "compare_url": "https://api.github.com/repos/neovim/neovim/compare/{base}...{head}", + "contents_url": "https://api.github.com/repos/neovim/neovim/contents/{+path}", + "contributors_url": "https://api.github.com/repos/neovim/neovim/contributors", + "created_at": "2014-01-31T13:39:22Z", + "default_branch": "master", + "deployments_url": "https://api.github.com/repos/neovim/neovim/deployments", + "description": "Vim-fork focused on extensibility and usability", + "disabled": false, + "downloads_url": "https://api.github.com/repos/neovim/neovim/downloads", + "events_url": "https://api.github.com/repos/neovim/neovim/events", + "fork": false, + "forks": 4789, + "forks_count": 4789, + "forks_url": "https://api.github.com/repos/neovim/neovim/forks", + "full_name": "neovim/neovim", + "git_commits_url": "https://api.github.com/repos/neovim/neovim/git/commits{/sha}", + "git_refs_url": "https://api.github.com/repos/neovim/neovim/git/refs{/sha}", + "git_tags_url": "https://api.github.com/repos/neovim/neovim/git/tags{/sha}", + "git_url": "git://github.com/neovim/neovim.git", + "has_discussions": true, + "has_downloads": true, + "has_issues": true, + "has_pages": false, + "has_projects": true, + "has_wiki": true, + "homepage": "https://neovim.io", + "hooks_url": "https://api.github.com/repos/neovim/neovim/hooks", + "html_url": "https://github.com/neovim/neovim", + "id": 16408992, + "is_template": false, + "issue_comment_url": "https://api.github.com/repos/neovim/neovim/issues/comments{/number}", + "issue_events_url": "https://api.github.com/repos/neovim/neovim/issues/events{/number}", + "issues_url": "https://api.github.com/repos/neovim/neovim/issues{/number}", + "keys_url": "https://api.github.com/repos/neovim/neovim/keys{/key_id}", + "labels_url": "https://api.github.com/repos/neovim/neovim/labels{/name}", + "language": "Vim Script", + "languages_url": "https://api.github.com/repos/neovim/neovim/languages", + "license": { + "key": "other", + "name": "Other", + "node_id": "MDc6TGljZW5zZTA=", + "spdx_id": "NOASSERTION", + "url": null + }, + "merges_url": "https://api.github.com/repos/neovim/neovim/merges", + "milestones_url": "https://api.github.com/repos/neovim/neovim/milestones{/number}", + "mirror_url": null, + "name": "neovim", + "node_id": "MDEwOlJlcG9zaXRvcnkxNjQwODk5Mg==", + "notifications_url": "https://api.github.com/repos/neovim/neovim/notifications{?since,all,participating}", + "open_issues": 1652, + "open_issues_count": 1652, + "owner": { + "avatar_url": "https://avatars.githubusercontent.com/u/6471485?v=4", + "events_url": "https://api.github.com/users/neovim/events{/privacy}", + "followers_url": "https://api.github.com/users/neovim/followers", + "following_url": "https://api.github.com/users/neovim/following{/other_user}", + "gists_url": "https://api.github.com/users/neovim/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/neovim", + "id": 6471485, + "login": "neovim", + "node_id": "MDEyOk9yZ2FuaXphdGlvbjY0NzE0ODU=", + "organizations_url": "https://api.github.com/users/neovim/orgs", + "received_events_url": "https://api.github.com/users/neovim/received_events", + "repos_url": "https://api.github.com/users/neovim/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/neovim/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/neovim/subscriptions", + "type": "Organization", + "url": "https://api.github.com/users/neovim" + }, + "private": false, + "pulls_url": "https://api.github.com/repos/neovim/neovim/pulls{/number}", + "pushed_at": "2023-08-05T01:34:12Z", + "releases_url": "https://api.github.com/repos/neovim/neovim/releases{/id}", + "size": 246884, + "ssh_url": "git@github.com:neovim/neovim.git", + "stargazers_count": 68006, + "stargazers_url": "https://api.github.com/repos/neovim/neovim/stargazers", + "statuses_url": "https://api.github.com/repos/neovim/neovim/statuses/{sha}", + "subscribers_url": "https://api.github.com/repos/neovim/neovim/subscribers", + "subscription_url": "https://api.github.com/repos/neovim/neovim/subscription", + "svn_url": "https://github.com/neovim/neovim", + "tags_url": "https://api.github.com/repos/neovim/neovim/tags", + "teams_url": "https://api.github.com/repos/neovim/neovim/teams", + "topics": [ + "api", + "c", + "lua", + "neovim", + "nvim", + "text-editor", + "vim" + ], + "trees_url": "https://api.github.com/repos/neovim/neovim/git/trees{/sha}", + "updated_at": "2023-08-04T23:49:51Z", + "url": "https://api.github.com/repos/neovim/neovim", + "visibility": "public", + "watchers": 68006, + "watchers_count": 68006, + "web_commit_signoff_required": false + }, + "sha": "06694203e51efbabc0b49e26704dff089011fd21", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/6471485?v=4", + "events_url": "https://api.github.com/users/neovim/events{/privacy}", + "followers_url": "https://api.github.com/users/neovim/followers", + "following_url": "https://api.github.com/users/neovim/following{/other_user}", + "gists_url": "https://api.github.com/users/neovim/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/neovim", + "id": 6471485, + "login": "neovim", + "node_id": "MDEyOk9yZ2FuaXphdGlvbjY0NzE0ODU=", + "organizations_url": "https://api.github.com/users/neovim/orgs", + "received_events_url": "https://api.github.com/users/neovim/received_events", + "repos_url": "https://api.github.com/users/neovim/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/neovim/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/neovim/subscriptions", + "type": "Organization", + "url": "https://api.github.com/users/neovim" + } + }, + "body": null, + "closed_at": "2023-08-04T06:46:54Z", + "comment_data": [], + "comment_regular_data": [ + { + "author_association": "MEMBER", + "body": "Seems already merged.", + "created_at": "2023-08-04T06:46:54Z", + "html_url": "https://github.com/neovim/neovim/pull/24314#issuecomment-1665096369", + "id": 1665096369, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/24314", + "node_id": "IC_kwDOAPphoM5jP1qx", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1665096369/reactions" + }, + "updated_at": "2023-08-04T06:46:54Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1665096369", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/35768171?v=4", + "events_url": "https://api.github.com/users/zeertzjq/events{/privacy}", + "followers_url": "https://api.github.com/users/zeertzjq/followers", + "following_url": "https://api.github.com/users/zeertzjq/following{/other_user}", + "gists_url": "https://api.github.com/users/zeertzjq/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/zeertzjq", + "id": 35768171, + "login": "zeertzjq", + "node_id": "MDQ6VXNlcjM1NzY4MTcx", + "organizations_url": "https://api.github.com/users/zeertzjq/orgs", + "received_events_url": "https://api.github.com/users/zeertzjq/received_events", + "repos_url": "https://api.github.com/users/zeertzjq/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/zeertzjq/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/zeertzjq/subscriptions", + "type": "User", + "url": "https://api.github.com/users/zeertzjq" + } + } + ], + "comments_url": "https://api.github.com/repos/neovim/neovim/issues/24314/comments", + "commits_url": "https://api.github.com/repos/neovim/neovim/pulls/24314/commits", + "created_at": "2023-07-11T12:35:18Z", + "diff_url": "https://github.com/neovim/neovim/pull/24314.diff", + "draft": false, + "head": { + "label": "dundargoc:docs/small-fixes", + "ref": "docs/small-fixes", + "repo": { + "allow_forking": true, + "archive_url": "https://api.github.com/repos/dundargoc/neovim/{archive_format}{/ref}", + "archived": false, + "assignees_url": "https://api.github.com/repos/dundargoc/neovim/assignees{/user}", + "blobs_url": "https://api.github.com/repos/dundargoc/neovim/git/blobs{/sha}", + "branches_url": "https://api.github.com/repos/dundargoc/neovim/branches{/branch}", + "clone_url": "https://github.com/dundargoc/neovim.git", + "collaborators_url": "https://api.github.com/repos/dundargoc/neovim/collaborators{/collaborator}", + "comments_url": "https://api.github.com/repos/dundargoc/neovim/comments{/number}", + "commits_url": "https://api.github.com/repos/dundargoc/neovim/commits{/sha}", + "compare_url": "https://api.github.com/repos/dundargoc/neovim/compare/{base}...{head}", + "contents_url": "https://api.github.com/repos/dundargoc/neovim/contents/{+path}", + "contributors_url": "https://api.github.com/repos/dundargoc/neovim/contributors", + "created_at": "2021-06-20T10:14:48Z", + "default_branch": "master", + "deployments_url": "https://api.github.com/repos/dundargoc/neovim/deployments", + "description": "Vim-fork focused on extensibility and usability", + "disabled": false, + "downloads_url": "https://api.github.com/repos/dundargoc/neovim/downloads", + "events_url": "https://api.github.com/repos/dundargoc/neovim/events", + "fork": true, + "forks": 0, + "forks_count": 0, + "forks_url": "https://api.github.com/repos/dundargoc/neovim/forks", + "full_name": "dundargoc/neovim", + "git_commits_url": "https://api.github.com/repos/dundargoc/neovim/git/commits{/sha}", + "git_refs_url": "https://api.github.com/repos/dundargoc/neovim/git/refs{/sha}", + "git_tags_url": "https://api.github.com/repos/dundargoc/neovim/git/tags{/sha}", + "git_url": "git://github.com/dundargoc/neovim.git", + "has_discussions": false, + "has_downloads": true, + "has_issues": true, + "has_pages": false, + "has_projects": true, + "has_wiki": false, + "homepage": "https://neovim.io", + "hooks_url": "https://api.github.com/repos/dundargoc/neovim/hooks", + "html_url": "https://github.com/dundargoc/neovim", + "id": 378614899, + "is_template": false, + "issue_comment_url": "https://api.github.com/repos/dundargoc/neovim/issues/comments{/number}", + "issue_events_url": "https://api.github.com/repos/dundargoc/neovim/issues/events{/number}", + "issues_url": "https://api.github.com/repos/dundargoc/neovim/issues{/number}", + "keys_url": "https://api.github.com/repos/dundargoc/neovim/keys{/key_id}", + "labels_url": "https://api.github.com/repos/dundargoc/neovim/labels{/name}", + "language": "Vim Script", + "languages_url": "https://api.github.com/repos/dundargoc/neovim/languages", + "license": { + "key": "other", + "name": "Other", + "node_id": "MDc6TGljZW5zZTA=", + "spdx_id": "NOASSERTION", + "url": null + }, + "merges_url": "https://api.github.com/repos/dundargoc/neovim/merges", + "milestones_url": "https://api.github.com/repos/dundargoc/neovim/milestones{/number}", + "mirror_url": null, + "name": "neovim", + "node_id": "MDEwOlJlcG9zaXRvcnkzNzg2MTQ4OTk=", + "notifications_url": "https://api.github.com/repos/dundargoc/neovim/notifications{?since,all,participating}", + "open_issues": 0, + "open_issues_count": 0, + "owner": { + "avatar_url": "https://avatars.githubusercontent.com/u/33953936?v=4", + "events_url": "https://api.github.com/users/dundargoc/events{/privacy}", + "followers_url": "https://api.github.com/users/dundargoc/followers", + "following_url": "https://api.github.com/users/dundargoc/following{/other_user}", + "gists_url": "https://api.github.com/users/dundargoc/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/dundargoc", + "id": 33953936, + "login": "dundargoc", + "node_id": "MDQ6VXNlcjMzOTUzOTM2", + "organizations_url": "https://api.github.com/users/dundargoc/orgs", + "received_events_url": "https://api.github.com/users/dundargoc/received_events", + "repos_url": "https://api.github.com/users/dundargoc/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/dundargoc/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/dundargoc/subscriptions", + "type": "User", + "url": "https://api.github.com/users/dundargoc" + }, + "private": false, + "pulls_url": "https://api.github.com/repos/dundargoc/neovim/pulls{/number}", + "pushed_at": "2023-07-12T12:08:18Z", + "releases_url": "https://api.github.com/repos/dundargoc/neovim/releases{/id}", + "size": 244099, + "ssh_url": "git@github.com:dundargoc/neovim.git", + "stargazers_count": 1, + "stargazers_url": "https://api.github.com/repos/dundargoc/neovim/stargazers", + "statuses_url": "https://api.github.com/repos/dundargoc/neovim/statuses/{sha}", + "subscribers_url": "https://api.github.com/repos/dundargoc/neovim/subscribers", + "subscription_url": "https://api.github.com/repos/dundargoc/neovim/subscription", + "svn_url": "https://github.com/dundargoc/neovim", + "tags_url": "https://api.github.com/repos/dundargoc/neovim/tags", + "teams_url": "https://api.github.com/repos/dundargoc/neovim/teams", + "topics": [], + "trees_url": "https://api.github.com/repos/dundargoc/neovim/git/trees{/sha}", + "updated_at": "2023-07-31T17:43:26Z", + "url": "https://api.github.com/repos/dundargoc/neovim", + "visibility": "public", + "watchers": 1, + "watchers_count": 1, + "web_commit_signoff_required": false + }, + "sha": "648209de6cf9889def605afe5ac4519822469293", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/33953936?v=4", + "events_url": "https://api.github.com/users/dundargoc/events{/privacy}", + "followers_url": "https://api.github.com/users/dundargoc/followers", + "following_url": "https://api.github.com/users/dundargoc/following{/other_user}", + "gists_url": "https://api.github.com/users/dundargoc/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/dundargoc", + "id": 33953936, + "login": "dundargoc", + "node_id": "MDQ6VXNlcjMzOTUzOTM2", + "organizations_url": "https://api.github.com/users/dundargoc/orgs", + "received_events_url": "https://api.github.com/users/dundargoc/received_events", + "repos_url": "https://api.github.com/users/dundargoc/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/dundargoc/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/dundargoc/subscriptions", + "type": "User", + "url": "https://api.github.com/users/dundargoc" + } + }, + "html_url": "https://github.com/neovim/neovim/pull/24314", + "id": 1429377689, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/24314", + "labels": [ + { + "color": "c5def5", + "default": true, + "description": "", + "id": 84744038, + "name": "documentation", + "node_id": "MDU6TGFiZWw4NDc0NDAzOA==", + "url": "https://api.github.com/repos/neovim/neovim/labels/documentation" + } + ], + "locked": false, + "merge_commit_sha": "c3f192e91fc228a9f40026f0a444ee3c657bde36", + "merged_at": null, + "milestone": null, + "node_id": "PR_kwDOAPphoM5VMpKZ", + "number": 24314, + "patch_url": "https://github.com/neovim/neovim/pull/24314.patch", + "requested_reviewers": [], + "requested_teams": [], + "review_comment_url": "https://api.github.com/repos/neovim/neovim/pulls/comments{/number}", + "review_comments_url": "https://api.github.com/repos/neovim/neovim/pulls/24314/comments", + "state": "closed", + "statuses_url": "https://api.github.com/repos/neovim/neovim/statuses/648209de6cf9889def605afe5ac4519822469293", + "title": "docs: small fixes", + "updated_at": "2023-08-04T06:47:09Z", + "url": "https://api.github.com/repos/neovim/neovim/pulls/24314", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/33953936?v=4", + "events_url": "https://api.github.com/users/dundargoc/events{/privacy}", + "followers_url": "https://api.github.com/users/dundargoc/followers", + "following_url": "https://api.github.com/users/dundargoc/following{/other_user}", + "gists_url": "https://api.github.com/users/dundargoc/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/dundargoc", + "id": 33953936, + "login": "dundargoc", + "node_id": "MDQ6VXNlcjMzOTUzOTM2", + "organizations_url": "https://api.github.com/users/dundargoc/orgs", + "received_events_url": "https://api.github.com/users/dundargoc/received_events", + "repos_url": "https://api.github.com/users/dundargoc/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/dundargoc/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/dundargoc/subscriptions", + "type": "User", + "url": "https://api.github.com/users/dundargoc" + } +} \ No newline at end of file diff --git a/repositories/neovim/pulls/24524.json b/repositories/neovim/pulls/24524.json index 553c89bd..158b8055 100644 --- a/repositories/neovim/pulls/24524.json +++ b/repositories/neovim/pulls/24524.json @@ -22,7 +22,7 @@ "href": "https://api.github.com/repos/neovim/neovim/pulls/24524" }, "statuses": { - "href": "https://api.github.com/repos/neovim/neovim/statuses/923a2ad80e4f003bb4e38a1e1f9015fcae6626ed" + "href": "https://api.github.com/repos/neovim/neovim/statuses/c3a5a7134ab5af1e7fece71d10ff6b3baedf6475" } }, "active_lock_reason": null, @@ -55,8 +55,8 @@ "downloads_url": "https://api.github.com/repos/neovim/neovim/downloads", "events_url": "https://api.github.com/repos/neovim/neovim/events", "fork": false, - "forks": 4791, - "forks_count": 4791, + "forks": 4789, + "forks_count": 4789, "forks_url": "https://api.github.com/repos/neovim/neovim/forks", "full_name": "neovim/neovim", "git_commits_url": "https://api.github.com/repos/neovim/neovim/git/commits{/sha}", @@ -94,8 +94,8 @@ "name": "neovim", "node_id": "MDEwOlJlcG9zaXRvcnkxNjQwODk5Mg==", "notifications_url": "https://api.github.com/repos/neovim/neovim/notifications{?since,all,participating}", - "open_issues": 1644, - "open_issues_count": 1644, + "open_issues": 1652, + "open_issues_count": 1652, "owner": { "avatar_url": "https://avatars.githubusercontent.com/u/6471485?v=4", "events_url": "https://api.github.com/users/neovim/events{/privacy}", @@ -118,11 +118,11 @@ }, "private": false, "pulls_url": "https://api.github.com/repos/neovim/neovim/pulls{/number}", - "pushed_at": "2023-08-02T22:20:08Z", + "pushed_at": "2023-08-05T01:34:12Z", "releases_url": "https://api.github.com/repos/neovim/neovim/releases{/id}", - "size": 248042, + "size": 246884, "ssh_url": "git@github.com:neovim/neovim.git", - "stargazers_count": 67955, + "stargazers_count": 68006, "stargazers_url": "https://api.github.com/repos/neovim/neovim/stargazers", "statuses_url": "https://api.github.com/repos/neovim/neovim/statuses/{sha}", "subscribers_url": "https://api.github.com/repos/neovim/neovim/subscribers", @@ -140,14 +140,14 @@ "vim" ], "trees_url": "https://api.github.com/repos/neovim/neovim/git/trees{/sha}", - "updated_at": "2023-08-03T02:00:39Z", + "updated_at": "2023-08-04T23:49:51Z", "url": "https://api.github.com/repos/neovim/neovim", "visibility": "public", - "watchers": 67955, - "watchers_count": 67955, + "watchers": 68006, + "watchers_count": 68006, "web_commit_signoff_required": false }, - "sha": "4a06de40e7c5bfe3be8f243b23b1676034fc6b08", + "sha": "cc87dda31a5b5637ade7ddcfe5199f2df5fd47df", "user": { "avatar_url": "https://avatars.githubusercontent.com/u/6471485?v=4", "events_url": "https://api.github.com/users/neovim/events{/privacy}", @@ -186,7 +186,7 @@ }, "author_association": "MEMBER", "body": "```suggestion\r\n#define GET_BOOL_OR_TRUE(d, typ, key) (HAS_KEY2(d, typ, key) ? d->key : true)\r\n```", - "commit_id": "923a2ad80e4f003bb4e38a1e1f9015fcae6626ed", + "commit_id": "c3a5a7134ab5af1e7fece71d10ff6b3baedf6475", "created_at": "2023-08-01T13:03:10Z", "diff_hunk": "@@ -66,6 +66,10 @@\n // currently treat key=vim.NIL as if the key was missing\n #define HAS_KEY(o) ((o).type != kObjectTypeNil)\n \n+#define HAS_KEY2(d, typ, key) ((d->is_set_ & (1 << KEYSET_OPTIDX_ ## typ ## __ ## key)) != 0)\n+\n+#define GET_BOOL_DEFAULT_TRUE(d, typ, key) (HAS_KEY2(d, typ, key) ? d->key : true)", "html_url": "https://github.com/neovim/neovim/pull/24524#discussion_r1280608048", @@ -254,7 +254,7 @@ }, "author_association": "MEMBER", "body": "LuaLs can't analyse this properly so I usually write this as:\r\n\r\n```suggestion\r\n local name, keys, types = keyset[1], keyset[2], keyset[3]\r\n```", - "commit_id": "923a2ad80e4f003bb4e38a1e1f9015fcae6626ed", + "commit_id": "c3a5a7134ab5af1e7fece71d10ff6b3baedf6475", "created_at": "2023-08-02T11:14:15Z", "diff_hunk": "@@ -264,15 +264,15 @@ local function get_api_keysets()\n local keysets = metadata.keysets\n \n for _, keyset in ipairs(keysets) do\n- local kname = keyset[1]\n- local kdef = keyset[2]\n- for _, field in ipairs(kdef) do\n- field[2] = api_type(field[2])\n+ local name, keys, types = unpack(keyset)", "html_url": "https://github.com/neovim/neovim/pull/24524#discussion_r1281760389", @@ -322,7 +322,7 @@ }, "author_association": "MEMBER", "body": "shouldn't luals be fixed then? This is a fundamental pattern of the language.", - "commit_id": "923a2ad80e4f003bb4e38a1e1f9015fcae6626ed", + "commit_id": "c3a5a7134ab5af1e7fece71d10ff6b3baedf6475", "created_at": "2023-08-02T19:59:27Z", "diff_hunk": "@@ -264,15 +264,15 @@ local function get_api_keysets()\n local keysets = metadata.keysets\n \n for _, keyset in ipairs(keysets) do\n- local kname = keyset[1]\n- local kdef = keyset[2]\n- for _, field in ipairs(kdef) do\n- field[2] = api_type(field[2])\n+ local name, keys, types = unpack(keyset)", "html_url": "https://github.com/neovim/neovim/pull/24524#discussion_r1282361576", @@ -391,7 +391,7 @@ }, "author_association": "MEMBER", "body": "Maybe it should be but currently it doesn't work.\n\nAnd if I understand correctly, that pattern would break\n\n```lua\na, b, c = unpack({1, nil, 2})\n```\n\nAs `c` would be assigned `nil`", - "commit_id": "923a2ad80e4f003bb4e38a1e1f9015fcae6626ed", + "commit_id": "c3a5a7134ab5af1e7fece71d10ff6b3baedf6475", "created_at": "2023-08-02T20:05:53Z", "diff_hunk": "@@ -264,15 +264,15 @@ local function get_api_keysets()\n local keysets = metadata.keysets\n \n for _, keyset in ipairs(keysets) do\n- local kname = keyset[1]\n- local kdef = keyset[2]\n- for _, field in ipairs(kdef) do\n- field[2] = api_type(field[2])\n+ local name, keys, types = unpack(keyset)", "html_url": "https://github.com/neovim/neovim/pull/24524#discussion_r1282367009", @@ -460,7 +460,7 @@ }, "author_association": "MEMBER", "body": "Yes, so we don't do that. Not using unpack negates the point of using tuple packing in the first place. Where more structure is needed I would switch to named keys instead.", - "commit_id": "923a2ad80e4f003bb4e38a1e1f9015fcae6626ed", + "commit_id": "c3a5a7134ab5af1e7fece71d10ff6b3baedf6475", "created_at": "2023-08-02T20:22:43Z", "diff_hunk": "@@ -264,15 +264,15 @@ local function get_api_keysets()\n local keysets = metadata.keysets\n \n for _, keyset in ipairs(keysets) do\n- local kname = keyset[1]\n- local kdef = keyset[2]\n- for _, field in ipairs(kdef) do\n- field[2] = api_type(field[2])\n+ local name, keys, types = unpack(keyset)", "html_url": "https://github.com/neovim/neovim/pull/24524#discussion_r1282383363", @@ -529,7 +529,7 @@ }, "author_association": "MEMBER", "body": "This is clearly a hill you're going to die on.\n\nGo ahead and disregard my comment.", - "commit_id": "923a2ad80e4f003bb4e38a1e1f9015fcae6626ed", + "commit_id": "c3a5a7134ab5af1e7fece71d10ff6b3baedf6475", "created_at": "2023-08-02T20:27:48Z", "diff_hunk": "@@ -264,15 +264,15 @@ local function get_api_keysets()\n local keysets = metadata.keysets\n \n for _, keyset in ipairs(keysets) do\n- local kname = keyset[1]\n- local kdef = keyset[2]\n- for _, field in ipairs(kdef) do\n- field[2] = api_type(field[2])\n+ local name, keys, types = unpack(keyset)", "html_url": "https://github.com/neovim/neovim/pull/24524#discussion_r1282387644", @@ -598,7 +598,7 @@ }, "author_association": "MEMBER", "body": "```suggestion\r\n });\r\n #undef HAS_KEY_X\r\n```", - "commit_id": "923a2ad80e4f003bb4e38a1e1f9015fcae6626ed", + "commit_id": "c3a5a7134ab5af1e7fece71d10ff6b3baedf6475", "created_at": "2023-08-02T22:38:02Z", "diff_hunk": "@@ -44,51 +42,40 @@ static int validate_option_value_args(Dict(option) *opts, char *name, int *scope\n \n *opt_type = SREQ_GLOBAL;\n \n- if (filetype != NULL && HAS_KEY(opts->filetype)) {\n- VALIDATE_T(\"scope\", kObjectTypeString, opts->filetype.type, {\n- return FAIL;\n- });\n-\n- *filetype = opts->filetype.data.string.data;\n+ if (filetype != NULL && HAS_KEY_X(opts, filetype)) {\n+ *filetype = opts->filetype.data;\n }\n \n- if (HAS_KEY(opts->win)) {\n- VALIDATE_T_HANDLE(\"win\", kObjectTypeWindow, opts->win.type, {\n- return FAIL;\n- });\n-\n+ if (HAS_KEY_X(opts, win)) {\n *opt_type = SREQ_WIN;\n- *from = find_window_by_handle((int)opts->win.data.integer, err);\n+ *from = find_window_by_handle(opts->win, err);\n if (ERROR_SET(err)) {\n return FAIL;\n }\n }\n \n- if (HAS_KEY(opts->buf)) {\n- VALIDATE_T_HANDLE(\"buf\", kObjectTypeBuffer, opts->buf.type, {\n- return FAIL;\n- });\n-\n+ if (HAS_KEY_X(opts, buf)) {\n *scope = OPT_LOCAL;\n *opt_type = SREQ_BUF;\n- *from = find_buffer_by_handle((int)opts->buf.data.integer, err);\n+ *from = find_buffer_by_handle(opts->buf, err);\n if (ERROR_SET(err)) {\n return FAIL;\n }\n }\n \n- VALIDATE((!HAS_KEY(opts->filetype)\n- || !(HAS_KEY(opts->buf) || HAS_KEY(opts->scope) || HAS_KEY(opts->win))),\n+ VALIDATE((!HAS_KEY_X(opts, filetype)\n+ || !(HAS_KEY_X(opts, buf) || HAS_KEY_X(opts, scope) || HAS_KEY_X(opts, win))),\n \"%s\", \"cannot use 'filetype' with 'scope', 'buf' or 'win'\", {\n return FAIL;\n });\n \n- VALIDATE((!HAS_KEY(opts->scope) || !HAS_KEY(opts->buf)), \"%s\",\n+ VALIDATE((!HAS_KEY_X(opts, scope) || !HAS_KEY_X(opts, buf)), \"%s\",\n \"cannot use both 'scope' and 'buf'\", {\n return FAIL;\n });\n \n- VALIDATE((!HAS_KEY(opts->win) || !HAS_KEY(opts->buf)), \"%s\", \"cannot use both 'buf' and 'win'\", {\n+ VALIDATE((!HAS_KEY_X(opts, win) || !HAS_KEY_X(opts,\n+ buf)), \"%s\", \"cannot use both 'buf' and 'win'\", {\n return FAIL;\n });", "html_url": "https://github.com/neovim/neovim/pull/24524#discussion_r1282478663", @@ -666,19 +666,19 @@ }, "author_association": "MEMBER", "body": "```suggestion\r\n api_set_error(err, kErrorTypeValidation, \"Expected Lua %s\",\r\n```\r\n\r\n(I know some messages are inconsistent, but since we're already changing these...)\r\n", - "commit_id": "923a2ad80e4f003bb4e38a1e1f9015fcae6626ed", + "commit_id": "c3a5a7134ab5af1e7fece71d10ff6b3baedf6475", "created_at": "2023-08-02T23:27:55Z", "diff_hunk": "@@ -871,7 +871,8 @@ static inline LuaTableProps nlua_check_type(lua_State *const lstate, Error *cons\n {\n if (lua_type(lstate, -1) != LUA_TTABLE) {\n if (err) {\n- api_set_error(err, kErrorTypeValidation, \"Expected lua table\");\n+ api_set_error(err, kErrorTypeValidation, \"Expected lua %s\",", "html_url": "https://github.com/neovim/neovim/pull/24524#discussion_r1282501658", "id": 1282501658, - "line": 874, + "line": null, "node_id": "PRRC_kwDOAPphoM5McWwa", "original_commit_id": "923a2ad80e4f003bb4e38a1e1f9015fcae6626ed", "original_line": 874, "original_position": 5, "original_start_line": null, "path": "src/nvim/lua/converter.c", - "position": 5, + "position": null, "pull_request_review_id": 1559965874, "pull_request_url": "https://api.github.com/repos/neovim/neovim/pulls/24524", "reactions": { @@ -734,19 +734,19 @@ }, "author_association": "MEMBER", "body": "```suggestion\r\n api_set_error(err, kErrorTypeValidation, \"Expected %s-like Lua table\", api_typename(type));\r\n```", - "commit_id": "923a2ad80e4f003bb4e38a1e1f9015fcae6626ed", + "commit_id": "c3a5a7134ab5af1e7fece71d10ff6b3baedf6475", "created_at": "2023-08-02T23:28:05Z", "diff_hunk": "@@ -884,7 +885,7 @@ static inline LuaTableProps nlua_check_type(lua_State *const lstate, Error *cons\n \n if (table_props.type != type) {\n if (err) {\n- api_set_error(err, kErrorTypeValidation, \"Unexpected type\");\n+ api_set_error(err, kErrorTypeValidation, \"Expected %s-like lua table\", api_typename(type));", "html_url": "https://github.com/neovim/neovim/pull/24524#discussion_r1282501720", "id": 1282501720, - "line": 888, + "line": null, "node_id": "PRRC_kwDOAPphoM5McWxY", "original_commit_id": "923a2ad80e4f003bb4e38a1e1f9015fcae6626ed", "original_line": 888, "original_position": 15, "original_start_line": null, "path": "src/nvim/lua/converter.c", - "position": 15, + "position": null, "pull_request_review_id": 1559965981, "pull_request_url": "https://api.github.com/repos/neovim/neovim/pulls/24524", "reactions": { @@ -1060,9 +1060,9 @@ }, "private": false, "pulls_url": "https://api.github.com/repos/bfredl/neovim/pulls{/number}", - "pushed_at": "2023-08-02T22:20:02Z", + "pushed_at": "2023-08-04T10:55:26Z", "releases_url": "https://api.github.com/repos/bfredl/neovim/releases{/id}", - "size": 249460, + "size": 247865, "ssh_url": "git@github.com:bfredl/neovim.git", "stargazers_count": 0, "stargazers_url": "https://api.github.com/repos/bfredl/neovim/stargazers", @@ -1081,7 +1081,7 @@ "watchers_count": 0, "web_commit_signoff_required": false }, - "sha": "923a2ad80e4f003bb4e38a1e1f9015fcae6626ed", + "sha": "c3a5a7134ab5af1e7fece71d10ff6b3baedf6475", "user": { "avatar_url": "https://avatars.githubusercontent.com/u/1363104?v=4", "events_url": "https://api.github.com/users/bfredl/events{/privacy}", @@ -1127,7 +1127,7 @@ } ], "locked": false, - "merge_commit_sha": "aba822e1c1bb30301a2d27f32a441e2bb157d3a4", + "merge_commit_sha": "674464e55240cf0911a5279402b142f6c2d9c190", "merged_at": null, "milestone": null, "node_id": "PR_kwDOAPphoM5W53Nb", @@ -1138,9 +1138,9 @@ "review_comment_url": "https://api.github.com/repos/neovim/neovim/pulls/comments{/number}", "review_comments_url": "https://api.github.com/repos/neovim/neovim/pulls/24524/comments", "state": "open", - "statuses_url": "https://api.github.com/repos/neovim/neovim/statuses/923a2ad80e4f003bb4e38a1e1f9015fcae6626ed", + "statuses_url": "https://api.github.com/repos/neovim/neovim/statuses/c3a5a7134ab5af1e7fece71d10ff6b3baedf6475", "title": "refactor(api): use typed keysets", - "updated_at": "2023-08-02T23:30:28Z", + "updated_at": "2023-08-04T10:55:29Z", "url": "https://api.github.com/repos/neovim/neovim/pulls/24524", "user": { "avatar_url": "https://avatars.githubusercontent.com/u/1363104?v=4", diff --git a/repositories/neovim/pulls/24528.json b/repositories/neovim/pulls/24528.json index 54e38846..980d7da6 100644 --- a/repositories/neovim/pulls/24528.json +++ b/repositories/neovim/pulls/24528.json @@ -22,7 +22,7 @@ "href": "https://api.github.com/repos/neovim/neovim/pulls/24528" }, "statuses": { - "href": "https://api.github.com/repos/neovim/neovim/statuses/8735c361b3f2657c5ac340f75c31cdaf12cd6e59" + "href": "https://api.github.com/repos/neovim/neovim/statuses/fe5eadf4a3c0dd57c5a9936c4982187e3f9d082c" } }, "active_lock_reason": null, @@ -94,8 +94,8 @@ "name": "neovim", "node_id": "MDEwOlJlcG9zaXRvcnkxNjQwODk5Mg==", "notifications_url": "https://api.github.com/repos/neovim/neovim/notifications{?since,all,participating}", - "open_issues": 1649, - "open_issues_count": 1649, + "open_issues": 1652, + "open_issues_count": 1652, "owner": { "avatar_url": "https://avatars.githubusercontent.com/u/6471485?v=4", "events_url": "https://api.github.com/users/neovim/events{/privacy}", @@ -118,11 +118,11 @@ }, "private": false, "pulls_url": "https://api.github.com/repos/neovim/neovim/pulls{/number}", - "pushed_at": "2023-08-04T01:35:30Z", + "pushed_at": "2023-08-05T01:34:12Z", "releases_url": "https://api.github.com/repos/neovim/neovim/releases{/id}", - "size": 248467, + "size": 246884, "ssh_url": "git@github.com:neovim/neovim.git", - "stargazers_count": 67988, + "stargazers_count": 68006, "stargazers_url": "https://api.github.com/repos/neovim/neovim/stargazers", "statuses_url": "https://api.github.com/repos/neovim/neovim/statuses/{sha}", "subscribers_url": "https://api.github.com/repos/neovim/neovim/subscribers", @@ -140,14 +140,14 @@ "vim" ], "trees_url": "https://api.github.com/repos/neovim/neovim/git/trees{/sha}", - "updated_at": "2023-08-04T01:04:48Z", + "updated_at": "2023-08-04T23:49:51Z", "url": "https://api.github.com/repos/neovim/neovim", "visibility": "public", - "watchers": 67988, - "watchers_count": 67988, + "watchers": 68006, + "watchers_count": 68006, "web_commit_signoff_required": false }, - "sha": "b034378cf58bea18ea1bdb4d63692a1336b5752b", + "sha": "cc87dda31a5b5637ade7ddcfe5199f2df5fd47df", "user": { "avatar_url": "https://avatars.githubusercontent.com/u/6471485?v=4", "events_url": "https://api.github.com/users/neovim/events{/privacy}", @@ -170,7 +170,7 @@ } }, "body": " - `src/nvim/options.lua` is now the source of truth\r\n - generate runtime/lua/vim/_meta/options.lua\r\n\r\n\r\n\r\nCredit to: https://github.com/ii14/emmylua-nvim/tree/master", - "closed_at": null, + "closed_at": "2023-08-04T20:26:53Z", "comment_data": [ { "_links": { @@ -186,7 +186,7 @@ }, "author_association": "MEMBER", "body": "todo", - "commit_id": "8735c361b3f2657c5ac340f75c31cdaf12cd6e59", + "commit_id": "fe5eadf4a3c0dd57c5a9936c4982187e3f9d082c", "created_at": "2023-08-02T17:05:11Z", "diff_hunk": "@@ -902,9 +902,7 @@ A jump table for the options with a short description can be found at |Q_op|.\n <\tUse 'backupdir' to put the backup in a different directory.\n \n \t\t\t\t\t\t*'backupskip'* *'bsk'*\n-'backupskip' 'bsk'\tstring\t(default: \"$TMPDIR/*,$TMP/*,$TEMP/*\"\n-\t\t\t\t Unix: \"/tmp/*,$TMPDIR/*,$TMP/*,$TEMP/*\"\n-\t\t\t\t Mac: \"/private/tmp/*,$TMPDIR/*,$TMP/*,$TEMP/*\")\n+'backupskip' 'bsk'\tstring\t(default \"/private/tmp/*,/var/folders/dy/104cjpq539g1y8p4rynvc7tw0000gn/T/*\")", "html_url": "https://github.com/neovim/neovim/pull/24528#discussion_r1282196060", @@ -254,7 +254,7 @@ }, "author_association": "MEMBER", "body": "todo", - "commit_id": "8735c361b3f2657c5ac340f75c31cdaf12cd6e59", + "commit_id": "fe5eadf4a3c0dd57c5a9936c4982187e3f9d082c", "created_at": "2023-08-02T17:08:32Z", "diff_hunk": "@@ -1583,7 +1578,7 @@ A jump table for the options with a short description can be found at |Q_op|.\n \t\t\tabbreviations, user commands and the \"to\" part of the\n \t\t\tmenu commands. Remove this flag to be able to use a\n \t\t\tbackslash like a CTRL-V. For example, the command\n-\t\t\t\":map X \\\" results in X being mapped to:\n+\t\t\t\":map X \" results in X being mapped to:", "html_url": "https://github.com/neovim/neovim/pull/24528#discussion_r1282199338", @@ -322,7 +322,7 @@ }, "author_association": "MEMBER", "body": "todo", - "commit_id": "8735c361b3f2657c5ac340f75c31cdaf12cd6e59", + "commit_id": "fe5eadf4a3c0dd57c5a9936c4982187e3f9d082c", "created_at": "2023-08-02T17:08:42Z", "diff_hunk": "@@ -1816,9 +1810,8 @@ A jump table for the options with a short description can be found at |Q_op|.\n \tWhen Visual mode is active the highlighting isn't used to make it\n \teasier to see the selected text.\n \n-\n-\t\t\t\t\t\t*'cursorlineopt'* *'culopt'*\n-'cursorlineopt' 'culopt' string (default: \"number,line\")\n+\t\t\t\t\t*'cursorlineopt'* *'culopt'*\n+'cursorlineopt' 'culopt'string\t(default \"both\")", "html_url": "https://github.com/neovim/neovim/pull/24528#discussion_r1282199545", @@ -390,7 +390,7 @@ }, "author_association": "MEMBER", "body": "todo", - "commit_id": "8735c361b3f2657c5ac340f75c31cdaf12cd6e59", + "commit_id": "fe5eadf4a3c0dd57c5a9936c4982187e3f9d082c", "created_at": "2023-08-02T17:11:09Z", "diff_hunk": "@@ -2718,8 +2708,8 @@ A jump table for the options with a short description can be found at |Q_op|.\n \tThis option cannot be set in a modeline when 'modelineexpr' is off.\n \tNOTE: This option is set to \"\" when 'compatible' is set.\n \n-\t\t\t\t\t*'formatlistpat'* *'flp'*\n-'formatlistpat' 'flp'\tstring (default: \"^\\s*\\d\\+[\\]:.)}\\t ]\\s*\")\n+\t\t\t\t\t\t*'formatlistpat'* *'flp'*\n+'formatlistpat' 'flp'\tstring\t(default \"^\\\\s*\\\\d\\\\+[\\\\]:.)}\\\\t ]\\\\s*\")", "html_url": "https://github.com/neovim/neovim/pull/24528#discussion_r1282202019", @@ -458,7 +458,7 @@ }, "author_association": "MEMBER", "body": "todo", - "commit_id": "8735c361b3f2657c5ac340f75c31cdaf12cd6e59", + "commit_id": "fe5eadf4a3c0dd57c5a9936c4982187e3f9d082c", "created_at": "2023-08-02T17:11:24Z", "diff_hunk": "@@ -2798,8 +2788,7 @@ A jump table for the options with a short description can be found at |Q_op|.\n \t'errorformat' option: see |errorformat|.\n \n \t\t\t\t\t\t*'grepprg'* *'gp'*\n-'grepprg' 'gp'\t\tstring\t(default \"grep -n \",\n-\t\t\t\t Unix: \"grep -n $* /dev/null\")\n+'grepprg' 'gp'\t\tstring\t(default \"grep -n $* /dev/null\")", "html_url": "https://github.com/neovim/neovim/pull/24528#discussion_r1282202269", @@ -526,7 +526,7 @@ }, "author_association": "MEMBER", "body": "todo", - "commit_id": "8735c361b3f2657c5ac340f75c31cdaf12cd6e59", + "commit_id": "fe5eadf4a3c0dd57c5a9936c4982187e3f9d082c", "created_at": "2023-08-02T17:18:24Z", "diff_hunk": "@@ -3106,8 +3078,7 @@ A jump table for the options with a short description can be found at |Q_op|.\n <\n \n \t\t\t\t\t\t*'helpfile'* *'hf'*\n-'helpfile' 'hf'\t\tstring\t(default (MS-Windows) \"$VIMRUNTIME\\doc\\help.txt\"\n-\t\t\t\t\t (others) \"$VIMRUNTIME/doc/help.txt\")\n+'helpfile' 'hf'\t\tstring\t(default \"/usr/local/share/nvim/runtime/doc/help.txt\")", "html_url": "https://github.com/neovim/neovim/pull/24528#discussion_r1282208918", @@ -594,7 +594,7 @@ }, "author_association": "MEMBER", "body": "todo", - "commit_id": "8735c361b3f2657c5ac340f75c31cdaf12cd6e59", + "commit_id": "fe5eadf4a3c0dd57c5a9936c4982187e3f9d082c", "created_at": "2023-08-02T17:20:40Z", "diff_hunk": "@@ -3432,9 +3401,7 @@ A jump table for the options with a short description can be found at |Q_op|.\n \tWith 'noinfercase' the match is used as-is.\n \n \t\t\t\t\t\t*'isfname'* *'isf'*\n-'isfname' 'isf'\t\tstring\t(default for Windows:\n-\t\t\t \"@,48-57,/,\\,.,-,_,+,,,#,$,%,{,},[,],:,@-@,!,~,=\"\n-\t\t\t otherwise: \"@,48-57,/,.,-,_,+,,,#,$,%,~,=\")\n+'isfname' 'isf'\t\tstring\t(default \"@,48-57,/,.,-,_,+,,,#,$,%,~,=\")", "html_url": "https://github.com/neovim/neovim/pull/24528#discussion_r1282211223", @@ -662,7 +662,7 @@ }, "author_association": "MEMBER", "body": "todo", - "commit_id": "8735c361b3f2657c5ac340f75c31cdaf12cd6e59", + "commit_id": "fe5eadf4a3c0dd57c5a9936c4982187e3f9d082c", "created_at": "2023-08-02T17:20:48Z", "diff_hunk": "@@ -3483,9 +3450,7 @@ A jump table for the options with a short description can be found at |Q_op|.\n \tSee |option-backslash| about including spaces and backslashes.\n \n \t\t\t\t\t\t*'isident'* *'isi'*\n-'isident' 'isi'\t\tstring\t(default for Windows:\n-\t\t\t\t\t \"@,48-57,_,128-167,224-235\"\n-\t\t\t\totherwise: \"@,48-57,_,192-255\")\n+'isident' 'isi'\t\tstring\t(default \"@,48-57,_,192-255\")", "html_url": "https://github.com/neovim/neovim/pull/24528#discussion_r1282211380", @@ -730,7 +730,7 @@ }, "author_association": "MEMBER", "body": "todo", - "commit_id": "8735c361b3f2657c5ac340f75c31cdaf12cd6e59", + "commit_id": "fe5eadf4a3c0dd57c5a9936c4982187e3f9d082c", "created_at": "2023-08-02T17:24:18Z", "diff_hunk": "@@ -4229,16 +4195,16 @@ A jump table for the options with a short description can be found at |Q_op|.\n \t \"g\" is \"\t(jump to tag under mouse click)\n \t \"g\" is \"\t(\"CTRL-T\")\n \n-\t *'mousemoveevent'* *'mousemev'* *'nomousemoveevent'* *'nomousemev'*\n-'mousemoveevent' 'mousemev' boolean\t(default off)\n+\t*'mousemoveevent'* *'mousemev'* *'nomousemoveevent'* *'nomousemev'*\n+'mousemoveevent' 'mousemev'boolean\t(default off)", "html_url": "https://github.com/neovim/neovim/pull/24528#discussion_r1282214817", @@ -798,7 +798,7 @@ }, "author_association": "MEMBER", "body": "todo", - "commit_id": "8735c361b3f2657c5ac340f75c31cdaf12cd6e59", + "commit_id": "fe5eadf4a3c0dd57c5a9936c4982187e3f9d082c", "created_at": "2023-08-02T17:24:30Z", "diff_hunk": "@@ -4258,9 +4224,8 @@ A jump table for the options with a short description can be found at |Q_op|.\n <\tWill make Nvim scroll 5 lines at a time when scrolling vertically, and\n \tscroll 2 columns at a time when scrolling horizontally.\n \n-\t\t\t\t\t*'mouseshape'* *'mouses'* *E547*\n-'mouseshape' 'mouses'\tstring\t(default \"i:beam,r:beam,s:updown,sd:cross,\n-\t\t\t\t\tm:no,ml:up-arrow,v:rightup-arrow\")\n+\t\t\t\t\t\t*'mouseshape'* *'mouses'*\n+'mouseshape' 'mouses'\tstring\t(default \"\")", "html_url": "https://github.com/neovim/neovim/pull/24528#discussion_r1282214988", @@ -866,7 +866,7 @@ }, "author_association": "MEMBER", "body": "todo", - "commit_id": "8735c361b3f2657c5ac340f75c31cdaf12cd6e59", + "commit_id": "fe5eadf4a3c0dd57c5a9936c4982187e3f9d082c", "created_at": "2023-08-02T17:25:38Z", "diff_hunk": "@@ -4785,24 +4748,9 @@ A jump table for the options with a short description can be found at |Q_op|.\n \tExample: >\n \t\t:set rulerformat=%15(%c%V\\ %p%%%)\n <\n-\t\t\t\t*'runtimepath'* *'rtp'* *vimfiles*\n-'runtimepath' 'rtp'\tstring\t(default: \"$XDG_CONFIG_HOME/nvim,\n-\t\t\t\t\t $XDG_CONFIG_DIRS[1]/nvim,\n-\t\t\t\t\t $XDG_CONFIG_DIRS[2]/nvim,\n-\t\t\t\t\t …\n-\t\t\t\t\t $XDG_DATA_HOME/nvim[-data]/site,\n-\t\t\t\t\t $XDG_DATA_DIRS[1]/nvim/site,\n-\t\t\t\t\t $XDG_DATA_DIRS[2]/nvim/site,\n-\t\t\t\t\t …\n-\t\t\t\t\t $VIMRUNTIME,\n-\t\t\t\t\t …\n-\t\t\t\t\t $XDG_DATA_DIRS[2]/nvim/site/after,\n-\t\t\t\t\t $XDG_DATA_DIRS[1]/nvim/site/after,\n-\t\t\t\t\t $XDG_DATA_HOME/nvim[-data]/site/after,\n-\t\t\t\t\t …\n-\t\t\t\t\t $XDG_CONFIG_DIRS[2]/nvim/after,\n-\t\t\t\t\t $XDG_CONFIG_DIRS[1]/nvim/after,\n-\t\t\t\t\t $XDG_CONFIG_HOME/nvim/after\")\n+\n+\t\t\t\t\t*'runtimepath'* *'rtp'* *vimfiles*\n+'runtimepath' 'rtp'\tstring\t(default \"/Users/lewis/projects/dotfiles/config/nvim,/etc/xdg/nvim,/Users/lewis/.data/nvim/site,/usr/local/share/nvim/site,/usr/share/nvim/site,/usr/local/share/nvim/runtime,/usr/local/lib/nvim,/usr/share/nvim/site/after,/usr/local/share/nvim/site/after,/Users/lewis/.data/nvim/site/after,/etc/xdg/nvim/after,/Users/lewis/projects/dotfiles/config/nvim/after\")", "html_url": "https://github.com/neovim/neovim/pull/24528#discussion_r1282216144", @@ -934,7 +934,7 @@ }, "author_association": "MEMBER", "body": "todo?", - "commit_id": "8735c361b3f2657c5ac340f75c31cdaf12cd6e59", + "commit_id": "fe5eadf4a3c0dd57c5a9936c4982187e3f9d082c", "created_at": "2023-08-02T17:25:47Z", "diff_hunk": "@@ -4883,7 +4831,7 @@ A jump table for the options with a short description can be found at |Q_op|.\n \theight with \":set scroll=0\".\n \n \t\t\t\t\t\t*'scrollback'* *'scbk'*\n-'scrollback' 'scbk'\tnumber\t(default: 10000)\n+'scrollback' 'scbk'\tnumber\t(default -1)", "html_url": "https://github.com/neovim/neovim/pull/24528#discussion_r1282216285", @@ -1002,7 +1002,7 @@ }, "author_association": "MEMBER", "body": "todo", - "commit_id": "8735c361b3f2657c5ac340f75c31cdaf12cd6e59", + "commit_id": "fe5eadf4a3c0dd57c5a9936c4982187e3f9d082c", "created_at": "2023-08-02T17:30:11Z", "diff_hunk": "@@ -5673,7 +5621,7 @@ A jump table for the options with a short description can be found at |Q_op|.\n \tThe languages are specified with 'spelllang'.\n \n \t\t\t\t\t\t*'spellcapcheck'* *'spc'*\n-'spellcapcheck' 'spc'\tstring\t(default \"[.?!]\\_[\\])'\" \\t]\\+\")\n+'spellcapcheck' 'spc'\tstring\t(default \"[.?!]\\\\_[\\\\])'\\\"\\t ]\\\\+\")", "html_url": "https://github.com/neovim/neovim/pull/24528#discussion_r1282220616", @@ -1070,7 +1070,7 @@ }, "author_association": "MEMBER", "body": "?", - "commit_id": "8735c361b3f2657c5ac340f75c31cdaf12cd6e59", + "commit_id": "fe5eadf4a3c0dd57c5a9936c4982187e3f9d082c", "created_at": "2023-08-03T16:35:44Z", "diff_hunk": "@@ -2,3 +2,4 @@\n /src\n /test\n /runtime/lua/vim/re.lua\n+/runtime/lua/vim/_meta/options.lua", "html_url": "https://github.com/neovim/neovim/pull/24528#discussion_r1283454434", @@ -1138,7 +1138,7 @@ }, "author_association": "MEMBER", "body": "CI is failing on stylua however adding this line doesn't seem to work.", - "commit_id": "8735c361b3f2657c5ac340f75c31cdaf12cd6e59", + "commit_id": "fe5eadf4a3c0dd57c5a9936c4982187e3f9d082c", "created_at": "2023-08-03T16:41:21Z", "diff_hunk": "@@ -2,3 +2,4 @@\n /src\n /test\n /runtime/lua/vim/re.lua\n+/runtime/lua/vim/_meta/options.lua", "html_url": "https://github.com/neovim/neovim/pull/24528#discussion_r1283460766", @@ -1207,7 +1207,7 @@ }, "author_association": "MEMBER", "body": "missing tags", - "commit_id": "8735c361b3f2657c5ac340f75c31cdaf12cd6e59", + "commit_id": "fe5eadf4a3c0dd57c5a9936c4982187e3f9d082c", "created_at": "2023-08-03T21:42:13Z", "diff_hunk": "@@ -1162,15 +1162,15 @@ A jump table for the options with a short description can be found at |Q_op|.\n \t\t\tThis probably only matters for Turkish.\n \n \t\t\t\t*'cdhome'* *'cdh'* *'nocdhome'* *'nocdh'*\n-'cdhome' 'cdh'\t\tboolean\t(default: off)\n+'cdhome' 'cdh'\t\tboolean\t(default off)\n \t\t\tglobal\n \tWhen on, |:cd|, |:tcd| and |:lcd| without an argument changes the\n \tcurrent working directory to the |$HOME| directory like in Unix.\n \tWhen off, those commands just print the current directory name.\n \tOn Unix this option has no effect.\n \n-\t\t\t\t\t\t*'cdpath'* *'cd'* *E344* *E346*", "html_url": "https://github.com/neovim/neovim/pull/24528#discussion_r1283748373", @@ -1275,7 +1275,7 @@ }, "author_association": "MEMBER", "body": "thanks and fixed", - "commit_id": "8735c361b3f2657c5ac340f75c31cdaf12cd6e59", + "commit_id": "fe5eadf4a3c0dd57c5a9936c4982187e3f9d082c", "created_at": "2023-08-03T21:54:22Z", "diff_hunk": "@@ -1162,15 +1162,15 @@ A jump table for the options with a short description can be found at |Q_op|.\n \t\t\tThis probably only matters for Turkish.\n \n \t\t\t\t*'cdhome'* *'cdh'* *'nocdhome'* *'nocdh'*\n-'cdhome' 'cdh'\t\tboolean\t(default: off)\n+'cdhome' 'cdh'\t\tboolean\t(default off)\n \t\t\tglobal\n \tWhen on, |:cd|, |:tcd| and |:lcd| without an argument changes the\n \tcurrent working directory to the |$HOME| directory like in Unix.\n \tWhen off, those commands just print the current directory name.\n \tOn Unix this option has no effect.\n \n-\t\t\t\t\t\t*'cdpath'* *'cd'* *E344* *E346*", "html_url": "https://github.com/neovim/neovim/pull/24528#discussion_r1283756644", @@ -1329,6 +1329,1036 @@ "type": "User", "url": "https://api.github.com/users/lewis6991" } + }, + { + "_links": { + "html": { + "href": "https://github.com/neovim/neovim/pull/24528#discussion_r1284336144" + }, + "pull_request": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/24528" + }, + "self": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/comments/1284336144" + } + }, + "author_association": "MEMBER", + "body": "Missing tag", + "commit_id": "fe5eadf4a3c0dd57c5a9936c4982187e3f9d082c", + "created_at": "2023-08-04T12:00:21Z", + "diff_hunk": "@@ -2590,16 +2584,16 @@ A jump table for the options with a short description can be found at |Q_op|.\n \toverrule the 'foldlevel' value for specific files.\n \tWhen the value is negative, it is not used.\n \n-\t\t\t\t\t\t*'foldmarker'* *'fmr'* *E536*", + "html_url": "https://github.com/neovim/neovim/pull/24528#discussion_r1284336144", + "id": 1284336144, + "line": 2593, + "node_id": "PRRC_kwDOAPphoM5MjWoQ", + "original_commit_id": "8735c361b3f2657c5ac340f75c31cdaf12cd6e59", + "original_line": 2593, + "original_position": 727, + "original_start_line": null, + "path": "runtime/doc/options.txt", + "position": 727, + "pull_request_review_id": 1562733266, + "pull_request_url": "https://api.github.com/repos/neovim/neovim/pulls/24528", + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/pulls/comments/1284336144/reactions" + }, + "side": "LEFT", + "start_line": null, + "start_side": null, + "subject_type": "line", + "updated_at": "2023-08-04T12:00:21Z", + "url": "https://api.github.com/repos/neovim/neovim/pulls/comments/1284336144", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/35768171?v=4", + "events_url": "https://api.github.com/users/zeertzjq/events{/privacy}", + "followers_url": "https://api.github.com/users/zeertzjq/followers", + "following_url": "https://api.github.com/users/zeertzjq/following{/other_user}", + "gists_url": "https://api.github.com/users/zeertzjq/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/zeertzjq", + "id": 35768171, + "login": "zeertzjq", + "node_id": "MDQ6VXNlcjM1NzY4MTcx", + "organizations_url": "https://api.github.com/users/zeertzjq/orgs", + "received_events_url": "https://api.github.com/users/zeertzjq/received_events", + "repos_url": "https://api.github.com/users/zeertzjq/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/zeertzjq/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/zeertzjq/subscriptions", + "type": "User", + "url": "https://api.github.com/users/zeertzjq" + } + }, + { + "_links": { + "html": { + "href": "https://github.com/neovim/neovim/pull/24528#discussion_r1284338230" + }, + "pull_request": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/24528" + }, + "self": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/comments/1284338230" + } + }, + "author_association": "MEMBER", + "body": "Extra parenthesis", + "commit_id": "fe5eadf4a3c0dd57c5a9936c4982187e3f9d082c", + "created_at": "2023-08-04T12:03:04Z", + "diff_hunk": "@@ -5041,10 +5034,11 @@ A jump table for the options with a short description can be found at |Q_op|.\n \tfilenames are stored as absolute paths.\n \tIf you leave out \"options\" many things won't work well after restoring\n \tthe session.\n-\t\t\t\t*'shada'* *'sd'* *E526* *E527* *E528*\n+\n+\t\t\t\t\t*'shada'* *'sd'* *E526* *E527* *E528*\n 'shada' 'sd'\t\tstring\t(default for\n-\t\t\t\t Win32: !,'100,<50,s10,h,rA:,rB:\n-\t\t\t\t others: !,'100,<50,s10,h)\n+ Win32: !,'100,<50,s10,h,rA:,rB:\n+ others: !,'100,<50,s10,h))", + "html_url": "https://github.com/neovim/neovim/pull/24528#discussion_r1284338230", + "id": 1284338230, + "line": null, + "node_id": "PRRC_kwDOAPphoM5MjXI2", + "original_commit_id": "8735c361b3f2657c5ac340f75c31cdaf12cd6e59", + "original_line": 5041, + "original_position": 1561, + "original_start_line": null, + "path": "runtime/doc/options.txt", + "position": null, + "pull_request_review_id": 1562737196, + "pull_request_url": "https://api.github.com/repos/neovim/neovim/pulls/24528", + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/pulls/comments/1284338230/reactions" + }, + "side": "RIGHT", + "start_line": null, + "start_side": null, + "subject_type": "line", + "updated_at": "2023-08-04T12:03:04Z", + "url": "https://api.github.com/repos/neovim/neovim/pulls/comments/1284338230", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/35768171?v=4", + "events_url": "https://api.github.com/users/zeertzjq/events{/privacy}", + "followers_url": "https://api.github.com/users/zeertzjq/followers", + "following_url": "https://api.github.com/users/zeertzjq/following{/other_user}", + "gists_url": "https://api.github.com/users/zeertzjq/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/zeertzjq", + "id": 35768171, + "login": "zeertzjq", + "node_id": "MDQ6VXNlcjM1NzY4MTcx", + "organizations_url": "https://api.github.com/users/zeertzjq/orgs", + "received_events_url": "https://api.github.com/users/zeertzjq/received_events", + "repos_url": "https://api.github.com/users/zeertzjq/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/zeertzjq/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/zeertzjq/subscriptions", + "type": "User", + "url": "https://api.github.com/users/zeertzjq" + } + }, + { + "_links": { + "html": { + "href": "https://github.com/neovim/neovim/pull/24528#discussion_r1284338661" + }, + "pull_request": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/24528" + }, + "self": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/comments/1284338661" + } + }, + "author_association": "MEMBER", + "body": "Extra backslashes", + "commit_id": "fe5eadf4a3c0dd57c5a9936c4982187e3f9d082c", + "created_at": "2023-08-04T12:03:36Z", + "diff_hunk": "@@ -5264,8 +5258,8 @@ A jump table for the options with a short description can be found at |Q_op|.\n \tsecurity reasons.\n \n \t\t\t\t\t\t*'shellquote'* *'shq'*\n-'shellquote' 'shq'\tstring\t(default: \"\"; Windows, when 'shell'\n-\t\t\t\t\tcontains \"sh\" somewhere: \"\\\"\")\n+'shellquote' 'shq'\tstring\t(default \"\"; Windows, when \\'shell\\'", + "html_url": "https://github.com/neovim/neovim/pull/24528#discussion_r1284338661", + "id": 1284338661, + "line": null, + "node_id": "PRRC_kwDOAPphoM5MjXPl", + "original_commit_id": "8735c361b3f2657c5ac340f75c31cdaf12cd6e59", + "original_line": 5261, + "original_position": 1591, + "original_start_line": null, + "path": "runtime/doc/options.txt", + "position": null, + "pull_request_review_id": 1562737891, + "pull_request_url": "https://api.github.com/repos/neovim/neovim/pulls/24528", + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/pulls/comments/1284338661/reactions" + }, + "side": "RIGHT", + "start_line": null, + "start_side": null, + "subject_type": "line", + "updated_at": "2023-08-04T12:03:37Z", + "url": "https://api.github.com/repos/neovim/neovim/pulls/comments/1284338661", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/35768171?v=4", + "events_url": "https://api.github.com/users/zeertzjq/events{/privacy}", + "followers_url": "https://api.github.com/users/zeertzjq/followers", + "following_url": "https://api.github.com/users/zeertzjq/following{/other_user}", + "gists_url": "https://api.github.com/users/zeertzjq/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/zeertzjq", + "id": 35768171, + "login": "zeertzjq", + "node_id": "MDQ6VXNlcjM1NzY4MTcx", + "organizations_url": "https://api.github.com/users/zeertzjq/orgs", + "received_events_url": "https://api.github.com/users/zeertzjq/received_events", + "repos_url": "https://api.github.com/users/zeertzjq/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/zeertzjq/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/zeertzjq/subscriptions", + "type": "User", + "url": "https://api.github.com/users/zeertzjq" + } + }, + { + "_links": { + "html": { + "href": "https://github.com/neovim/neovim/pull/24528#discussion_r1284344262" + }, + "pull_request": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/24528" + }, + "self": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/comments/1284344262" + } + }, + "author_association": "MEMBER", + "body": "```suggestion\r\n defaults = { if_true = '[.?!]\\\\_[\\\\])\\'\" \\\\t]\\\\+' },\r\n```", + "commit_id": "fe5eadf4a3c0dd57c5a9936c4982187e3f9d082c", + "created_at": "2023-08-04T12:09:42Z", + "diff_hunk": "@@ -1,3079 +1,10001 @@\n--- {\n--- {\n--- full_name='aleph', abbreviation='al',\n--- short_desc=\"ASCII code of the letter Aleph (Hebrew)\",\n--- varname='p_aleph', pv_name=nil,\n--- type='number', list=nil, scope={'global'},\n--- deny_duplicates=nil,\n--- enable_if=nil,\n--- defaults={condition=nil, if_true=224, if_false=nil},\n--- secure=nil, gettext=nil, noglob=nil, normal_fname_chars=nil,\n--- pri_mkrc=nil, deny_in_modelines=nil, normal_dname_chars=nil,\n--- modelineexpr=nil,\n--- func=nil,\n--- expand=nil, nodefault=nil, no_mkrc=nil,\n--- alloced=nil,\n--- save_pv_indir=nil,\n--- redraw={'curswant'},\n--- }\n--- }\n--- types: bool, number, string\n--- lists: (nil), comma, onecomma, flags, flagscomma\n--- scopes: global, buffer, window\n--- redraw options: statuslines, tabline, current_window, current_window_only,\n--- current_buffer, all_windows, curswant\n--- defaults: {condition=#if condition, if_true=default, if_false=default}\n--- #if condition:\n--- string: #ifdef string\n--- !string: #ifndef string\n--- {string, string}: #if defined(string) && defined(string)\n--- {!string, !string}: #if !defined(string) && !defined(string)\n-local cstr = function(s)\n+--- @class vim.option_meta\n+--- @field full_name string\n+--- @field desc? string\n+--- @field abbreviation? string\n+--- @field short_desc? string|fun(): string\n+--- @field varname? string\n+--- @field pv_name? string\n+--- @field type 'bool'|'number'|'string'\n+--- @field list? 'comma'|'onecomma'|'flags'|'flagscomma'\n+--- @field scope vim.option_scope[]\n+--- @field deny_duplicates? boolean\n+--- @field enable_if? string|false\n+--- @field defaults? vim.option_defaults\n+--- @field secure? true\n+--- @field noglob? true\n+--- @field normal_fname_chars? true\n+--- @field pri_mkrc? true\n+--- @field deny_in_modelines? true\n+--- @field normal_dname_chars? true\n+--- @field modelineexpr? true\n+--- @field func? true\n+--- @field expand? string|true\n+--- @field nodefault? true\n+--- @field no_mkrc? true\n+--- @field alloced? true\n+--- @field redraw? vim.option_redraw[]\n+--- @field cb? string\n+--- @field tags? string[]\n+\n+--- @class vim.option_defaults\n+--- @field condition? string\n+--- string: #ifdef string\n+--- !string: #ifndef string\n+--- @field if_true integer|boolean|string|fun(): string\n+--- @field if_false? integer|boolean|string\n+--- @field doc? string Default to show in options.txt\n+--- @field meta? integer|boolean|string Default to use in Lua meta files\n+\n+--- @alias vim.option_scope 'global'|'buffer'|'window'\n+\n+--- @alias vim.option_redraw\n+--- |'statuslines'\n+--- |'tabline'\n+--- |'current_window'\n+--- |'current_window_only'\n+--- |'current_buffer'\n+--- |'all_windows'\n+--- |'curswant'\n+--- |'ui_option'\n+\n+--- @param s string\n+--- @return string\n+local function cstr(s)\n return '\"' .. s:gsub('[\"\\\\]', '\\\\%0'):gsub('\\t', '\\\\t') .. '\"'\n end\n-local macros=function(s)\n+\n+--- @param s string\n+--- @return fun(): string\n+local function macros(s)\n return function()\n return s\n end\n end\n-local imacros=function(s)\n+\n+--- @param s string\n+--- @return fun(): string\n+local function imacros(s)\n return function()\n return '(intptr_t)' .. s\n end\n end\n-local N_=function(s) -- luacheck: ignore 211 (currently unused)\n+\n+--- @param s string\n+--- @return fun(): string\n+local function N_(s) -- luacheck: ignore 211 (currently unused)\n return function()\n return 'N_(' .. cstr(s) .. ')'\n end\n end\n--- used for 'cinkeys' and 'indentkeys'\n-local indentkeys_default = '0{,0},0),0],:,0#,!^F,o,O,e';\n+\n return {\n- cstr=cstr,\n- options={\n- {\n- full_name='aleph', abbreviation='al',\n- short_desc=N_(\"ASCII code of the letter Aleph (Hebrew)\"),\n- type='number', scope={'global'},\n- defaults={if_true=224}\n- },\n- {\n- full_name='arabic', abbreviation='arab',\n- short_desc=N_(\"Arabic as a default second language\"),\n- type='bool', scope={'window'},\n- redraw={'curswant'},\n- defaults={if_true=false},\n- cb='did_set_arabic'\n- },\n- {\n- full_name='arabicshape', abbreviation='arshape',\n- short_desc=N_(\"do shaping for Arabic characters\"),\n- type='bool', scope={'global'},\n- redraw={'all_windows', 'ui_option'},\n+ cstr = cstr,\n+ --- @type vim.option_meta[]\n+ options = {\n+ {\n+ abbreviation = 'al',\n+ defaults = { if_true = 224 },\n+ full_name = 'aleph',\n+ scope = { 'global' },\n+ short_desc = N_('ASCII code of the letter Aleph (Hebrew)'),\n+ type = 'number',\n+ },\n+ {\n+ abbreviation = 'arab',\n+ cb = 'did_set_arabic',\n+ defaults = { if_true = false },\n+ desc = [=[\n+ This option can be set to start editing Arabic text.\n+ Setting this option will:\n+ - Set the 'rightleft' option, unless 'termbidi' is set.\n+ - Set the 'arabicshape' option, unless 'termbidi' is set.\n+ - Set the 'keymap' option to \"arabic\"; in Insert mode CTRL-^ toggles\n+ between typing English and Arabic key mapping.\n+ - Set the 'delcombine' option\n \n- varname='p_arshape',\n- defaults={if_true=true}\n- },\n- {\n- full_name='allowrevins', abbreviation='ari',\n- short_desc=N_(\"allow CTRL-_ in Insert and Command-line mode\"),\n- type='bool', scope={'global'},\n- varname='p_ari',\n- defaults={if_true=false}\n- },\n- {\n- full_name='ambiwidth', abbreviation='ambw',\n- short_desc=N_(\"what to do with Unicode chars of ambiguous width\"),\n- type='string', scope={'global'},\n- redraw={'all_windows', 'ui_option'},\n- varname='p_ambw',\n- defaults={if_true=\"single\"},\n- cb='did_set_ambiwidth'\n- },\n- {\n- full_name='autochdir', abbreviation='acd',\n- short_desc=N_(\"change directory to the file in the current window\"),\n- type='bool', scope={'global'},\n- varname='p_acd',\n- defaults={if_true=false},\n- cb='did_set_autochdir'\n- },\n- {\n- full_name='autoindent', abbreviation='ai',\n- short_desc=N_(\"take indent for new line from previous line\"),\n- type='bool', scope={'buffer'},\n- varname='p_ai',\n- defaults={if_true=true}\n- },\n- {\n- full_name='autoread', abbreviation='ar',\n- short_desc=N_(\"autom. read file when changed outside of Vim\"),\n- type='bool', scope={'global', 'buffer'},\n- varname='p_ar',\n- defaults={if_true=true}\n- },\n- {\n- full_name='autowrite', abbreviation='aw',\n- short_desc=N_(\"automatically write file if changed\"),\n- type='bool', scope={'global'},\n- varname='p_aw',\n- defaults={if_true=false}\n- },\n- {\n- full_name='autowriteall', abbreviation='awa',\n- short_desc=N_(\"as 'autowrite', but works with more commands\"),\n- type='bool', scope={'global'},\n- varname='p_awa',\n- defaults={if_true=false}\n- },\n- {\n- full_name='background', abbreviation='bg',\n- short_desc=N_(\"\\\"dark\\\" or \\\"light\\\", used for highlight colors\"),\n- type='string', scope={'global'},\n- varname='p_bg',\n- defaults={if_true=\"dark\"},\n- cb='did_set_background'\n- },\n- {\n- full_name='backspace', abbreviation='bs',\n- short_desc=N_(\"how backspace works at start of line\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- varname='p_bs',\n- defaults={if_true=\"indent,eol,start\"},\n- cb='did_set_backspace'\n- },\n- {\n- full_name='backup', abbreviation='bk',\n- short_desc=N_(\"keep backup file after overwriting a file\"),\n- type='bool', scope={'global'},\n- varname='p_bk',\n- defaults={if_true=false}\n- },\n- {\n- full_name='backupcopy', abbreviation='bkc',\n- short_desc=N_(\"make backup as a copy, don't rename the file\"),\n- type='string', list='onecomma', scope={'global', 'buffer'},\n- deny_duplicates=true,\n- varname='p_bkc',\n- defaults={\n- condition='UNIX',\n- if_true=\"auto\",\n- if_false=\"auto\"\n+ Resetting this option will:\n+ - Reset the 'rightleft' option.\n+ - Disable the use of 'keymap' (without changing its value).\n+ Note that 'arabicshape' and 'delcombine' are not reset (it is a global\n+ option).\n+ Also see |arabic.txt|.\n+ ]=],\n+ full_name = 'arabic',\n+ redraw = { 'curswant' },\n+ scope = { 'window' },\n+ short_desc = N_('Arabic as a default second language'),\n+ type = 'bool',\n+ },\n+ {\n+ abbreviation = 'arshape',\n+ defaults = { if_true = true },\n+ desc = [=[\n+ When on and 'termbidi' is off, the required visual character\n+ corrections that need to take place for displaying the Arabic language\n+ take effect. Shaping, in essence, gets enabled; the term is a broad\n+ one which encompasses:\n+ a) the changing/morphing of characters based on their location\n+ within a word (initial, medial, final and stand-alone).\n+ b) the enabling of the ability to compose characters\n+ c) the enabling of the required combining of some characters\n+ When disabled the display shows each character's true stand-alone\n+ form.\n+ Arabic is a complex language which requires other settings, for\n+ further details see |arabic.txt|.\n+ ]=],\n+ full_name = 'arabicshape',\n+ redraw = { 'all_windows', 'ui_option' },\n+ scope = { 'global' },\n+ short_desc = N_('do shaping for Arabic characters'),\n+ type = 'bool',\n+ varname = 'p_arshape',\n+ },\n+ {\n+ abbreviation = 'ari',\n+ defaults = { if_true = false },\n+ desc = [=[\n+ Allow CTRL-_ in Insert and Command-line mode. This is default off, to\n+ avoid that users that accidentally type CTRL-_ instead of SHIFT-_ get\n+ into reverse Insert mode, and don't know how to get out. See\n+ 'revins'.\n+ ]=],\n+ full_name = 'allowrevins',\n+ scope = { 'global' },\n+ short_desc = N_('allow CTRL-_ in Insert and Command-line mode'),\n+ type = 'bool',\n+ varname = 'p_ari',\n+ },\n+ {\n+ abbreviation = 'ambw',\n+ cb = 'did_set_ambiwidth',\n+ defaults = { if_true = 'single' },\n+ desc = [=[\n+ Tells Vim what to do with characters with East Asian Width Class\n+ Ambiguous (such as Euro, Registered Sign, Copyright Sign, Greek\n+ letters, Cyrillic letters).\n+\n+ There are currently two possible values:\n+ \"single\":\tUse the same width as characters in US-ASCII. This is\n+ \t\texpected by most users.\n+ \"double\":\tUse twice the width of ASCII characters.\n+ \t\t\t\t\t\t*E834* *E835*\n+ The value \"double\" cannot be used if 'listchars' or 'fillchars'\n+ contains a character that would be double width. These errors may\n+ also be given when calling setcellwidths().\n+\n+ The values are overruled for characters specified with\n+ |setcellwidths()|.\n+\n+ There are a number of CJK fonts for which the width of glyphs for\n+ those characters are solely based on how many octets they take in\n+ legacy/traditional CJK encodings. In those encodings, Euro,\n+ Registered sign, Greek/Cyrillic letters are represented by two octets,\n+ therefore those fonts have \"wide\" glyphs for them. This is also\n+ true of some line drawing characters used to make tables in text\n+ file. Therefore, when a CJK font is used for GUI Vim or\n+ Vim is running inside a terminal (emulators) that uses a CJK font\n+ (or Vim is run inside an xterm invoked with \"-cjkwidth\" option.),\n+ this option should be set to \"double\" to match the width perceived\n+ by Vim with the width of glyphs in the font. Perhaps it also has\n+ to be set to \"double\" under CJK MS-Windows when the system locale is\n+ set to one of CJK locales. See Unicode Standard Annex #11\n+ (https://www.unicode.org/reports/tr11).\n+ ]=],\n+ full_name = 'ambiwidth',\n+ redraw = { 'all_windows', 'ui_option' },\n+ scope = { 'global' },\n+ short_desc = N_('what to do with Unicode chars of ambiguous width'),\n+ type = 'string',\n+ varname = 'p_ambw',\n+ },\n+ {\n+ abbreviation = 'acd',\n+ cb = 'did_set_autochdir',\n+ defaults = { if_true = false },\n+ desc = [=[\n+ When on, Vim will change the current working directory whenever you\n+ open a file, switch buffers, delete a buffer or open/close a window.\n+ It will change to the directory containing the file which was opened\n+ or selected. When a buffer has no name it also has no directory, thus\n+ the current directory won't change when navigating to it.\n+ Note: When this option is on some plugins may not work.\n+ ]=],\n+ full_name = 'autochdir',\n+ scope = { 'global' },\n+ short_desc = N_('change directory to the file in the current window'),\n+ type = 'bool',\n+ varname = 'p_acd',\n+ },\n+ {\n+ abbreviation = 'ai',\n+ defaults = { if_true = true },\n+ desc = [=[\n+ Copy indent from current line when starting a new line (typing \n+ in Insert mode or when using the \"o\" or \"O\" command). If you do not\n+ type anything on the new line except or CTRL-D and then type\n+ , CTRL-O or , the indent is deleted again. Moving the cursor\n+ to another line has the same effect, unless the 'I' flag is included\n+ in 'cpoptions'.\n+ When autoindent is on, formatting (with the \"gq\" command or when you\n+ reach 'textwidth' in Insert mode) uses the indentation of the first\n+ line.\n+ When 'smartindent' or 'cindent' is on the indent is changed in\n+ a different way.\n+ ]=],\n+ full_name = 'autoindent',\n+ scope = { 'buffer' },\n+ short_desc = N_('take indent for new line from previous line'),\n+ type = 'bool',\n+ varname = 'p_ai',\n+ },\n+ {\n+ abbreviation = 'ar',\n+ defaults = { if_true = true },\n+ desc = [=[\n+ When a file has been detected to have been changed outside of Vim and\n+ it has not been changed inside of Vim, automatically read it again.\n+ When the file has been deleted this is not done, so you have the text\n+ from before it was deleted. When it appears again then it is read.\n+ |timestamp|\n+ If this option has a local value, use this command to switch back to\n+ using the global value: >\n+ \t:set autoread<\n+ <\n+ ]=],\n+ full_name = 'autoread',\n+ scope = { 'global', 'buffer' },\n+ short_desc = N_('autom. read file when changed outside of Vim'),\n+ type = 'bool',\n+ varname = 'p_ar',\n+ },\n+ {\n+ abbreviation = 'aw',\n+ defaults = { if_true = false },\n+ desc = [=[\n+ Write the contents of the file, if it has been modified, on each\n+ `:next`, `:rewind`, `:last`, `:first`, `:previous`, `:stop`,\n+ `:suspend`, `:tag`, `:!`, `:make`, CTRL-] and CTRL-^ command; and when\n+ a `:buffer`, CTRL-O, CTRL-I, '{A-Z0-9}, or `{A-Z0-9} command takes one\n+ to another file.\n+ A buffer is not written if it becomes hidden, e.g. when 'bufhidden' is\n+ set to \"hide\" and `:next` is used.\n+ Note that for some commands the 'autowrite' option is not used, see\n+ 'autowriteall' for that.\n+ Some buffers will not be written, specifically when 'buftype' is\n+ \"nowrite\", \"nofile\", \"terminal\" or \"prompt\".\n+ USE WITH CARE: If you make temporary changes to a buffer that you\n+ don't want to be saved this option may cause it to be saved anyway.\n+ Renaming the buffer with \":file {name}\" may help avoid this.\n+ ]=],\n+ full_name = 'autowrite',\n+ scope = { 'global' },\n+ short_desc = N_('automatically write file if changed'),\n+ type = 'bool',\n+ varname = 'p_aw',\n+ },\n+ {\n+ abbreviation = 'awa',\n+ defaults = { if_true = false },\n+ desc = [=[\n+ Like 'autowrite', but also used for commands \":edit\", \":enew\", \":quit\",\n+ \":qall\", \":exit\", \":xit\", \":recover\" and closing the Vim window.\n+ Setting this option also implies that Vim behaves like 'autowrite' has\n+ been set.\n+ ]=],\n+ full_name = 'autowriteall',\n+ scope = { 'global' },\n+ short_desc = N_(\"as 'autowrite', but works with more commands\"),\n+ type = 'bool',\n+ varname = 'p_awa',\n+ },\n+ {\n+ abbreviation = 'bg',\n+ cb = 'did_set_background',\n+ defaults = { if_true = 'dark' },\n+ desc = [=[\n+ When set to \"dark\" or \"light\", adjusts the default color groups for\n+ that background type. The |TUI| or other UI sets this on startup\n+ (triggering |OptionSet|) if it can detect the background color.\n+\n+ This option does NOT change the background color, it tells Nvim what\n+ the \"inherited\" (terminal/GUI) background looks like.\n+ See |:hi-normal| if you want to set the background color explicitly.\n+ \t\t\t\t\t*g:colors_name*\n+ When a color scheme is loaded (the \"g:colors_name\" variable is set)\n+ setting 'background' will cause the color scheme to be reloaded. If\n+ the color scheme adjusts to the value of 'background' this will work.\n+ However, if the color scheme sets 'background' itself the effect may\n+ be undone. First delete the \"g:colors_name\" variable when needed.\n+\n+ Normally this option would be set in the vimrc file. Possibly\n+ depending on the terminal name. Example: >\n+ \t:if $TERM ==# \"xterm\"\n+ \t: set background=dark\n+ \t:endif\n+ <\tWhen this option is set, the default settings for the highlight groups\n+ will change. To use other settings, place \":highlight\" commands AFTER\n+ the setting of the 'background' option.\n+ This option is also used in the \"$VIMRUNTIME/syntax/syntax.vim\" file\n+ to select the colors for syntax highlighting. After changing this\n+ option, you must load syntax.vim again to see the result. This can be\n+ done with \":syntax on\".\n+ ]=],\n+ full_name = 'background',\n+ scope = { 'global' },\n+ short_desc = N_('\"dark\" or \"light\", used for highlight colors'),\n+ type = 'string',\n+ varname = 'p_bg',\n+ },\n+ {\n+ abbreviation = 'bs',\n+ cb = 'did_set_backspace',\n+ defaults = { if_true = 'indent,eol,start' },\n+ deny_duplicates = true,\n+ desc = [=[\n+ Influences the working of , , CTRL-W and CTRL-U in Insert\n+ mode. This is a list of items, separated by commas. Each item allows\n+ a way to backspace over something:\n+ value\teffect\t~\n+ indent\tallow backspacing over autoindent\n+ eol\tallow backspacing over line breaks (join lines)\n+ start\tallow backspacing over the start of insert; CTRL-W and CTRL-U\n+ \tstop once at the start of insert.\n+ nostop\tlike start, except CTRL-W and CTRL-U do not stop at the start of\n+ \tinsert.\n+\n+ When the value is empty, Vi compatible backspacing is used, none of\n+ the ways mentioned for the items above are possible.\n+ ]=],\n+ full_name = 'backspace',\n+ list = 'onecomma',\n+ scope = { 'global' },\n+ short_desc = N_('how backspace works at start of line'),\n+ type = 'string',\n+ varname = 'p_bs',\n+ },\n+ {\n+ abbreviation = 'bk',\n+ defaults = { if_true = false },\n+ desc = [=[\n+ Make a backup before overwriting a file. Leave it around after the\n+ file has been successfully written. If you do not want to keep the\n+ backup file, but you do want a backup while the file is being\n+ written, reset this option and set the 'writebackup' option (this is\n+ the default). If you do not want a backup file at all reset both\n+ options (use this if your file system is almost full). See the\n+ |backup-table| for more explanations.\n+ When the 'backupskip' pattern matches, a backup is not made anyway.\n+ When 'patchmode' is set, the backup may be renamed to become the\n+ oldest version of a file.\n+ ]=],\n+ full_name = 'backup',\n+ scope = { 'global' },\n+ short_desc = N_('keep backup file after overwriting a file'),\n+ type = 'bool',\n+ varname = 'p_bk',\n+ },\n+ {\n+ abbreviation = 'bkc',\n+ cb = 'did_set_backupcopy',\n+ defaults = { condition = 'UNIX', if_false = 'auto', if_true = 'auto' },\n+ deny_duplicates = true,\n+ desc = [=[\n+ When writing a file and a backup is made, this option tells how it's\n+ done. This is a comma-separated list of words.\n+\n+ The main values are:\n+ \"yes\"\tmake a copy of the file and overwrite the original one\n+ \"no\"\trename the file and write a new one\n+ \"auto\"\tone of the previous, what works best\n+\n+ Extra values that can be combined with the ones above are:\n+ \"breaksymlink\"\talways break symlinks when writing\n+ \"breakhardlink\"\talways break hardlinks when writing\n+\n+ Making a copy and overwriting the original file:\n+ - Takes extra time to copy the file.\n+ + When the file has special attributes, is a (hard/symbolic) link or\n+ has a resource fork, all this is preserved.\n+ - When the file is a link the backup will have the name of the link,\n+ not of the real file.\n+\n+ Renaming the file and writing a new one:\n+ + It's fast.\n+ - Sometimes not all attributes of the file can be copied to the new\n+ file.\n+ - When the file is a link the new file will not be a link.\n+\n+ The \"auto\" value is the middle way: When Vim sees that renaming the\n+ file is possible without side effects (the attributes can be passed on\n+ and the file is not a link) that is used. When problems are expected,\n+ a copy will be made.\n+\n+ The \"breaksymlink\" and \"breakhardlink\" values can be used in\n+ combination with any of \"yes\", \"no\" and \"auto\". When included, they\n+ force Vim to always break either symbolic or hard links by doing\n+ exactly what the \"no\" option does, renaming the original file to\n+ become the backup and writing a new file in its place. This can be\n+ useful for example in source trees where all the files are symbolic or\n+ hard links and any changes should stay in the local source tree, not\n+ be propagated back to the original source.\n+ \t\t\t\t\t\t*crontab*\n+ One situation where \"no\" and \"auto\" will cause problems: A program\n+ that opens a file, invokes Vim to edit that file, and then tests if\n+ the open file was changed (through the file descriptor) will check the\n+ backup file instead of the newly created file. \"crontab -e\" is an\n+ example.\n+\n+ When a copy is made, the original file is truncated and then filled\n+ with the new text. This means that protection bits, owner and\n+ symbolic links of the original file are unmodified. The backup file,\n+ however, is a new file, owned by the user who edited the file. The\n+ group of the backup is set to the group of the original file. If this\n+ fails, the protection bits for the group are made the same as for\n+ others.\n+\n+ When the file is renamed, this is the other way around: The backup has\n+ the same attributes of the original file, and the newly written file\n+ is owned by the current user. When the file was a (hard/symbolic)\n+ link, the new file will not! That's why the \"auto\" value doesn't\n+ rename when the file is a link. The owner and group of the newly\n+ written file will be set to the same ones as the original file, but\n+ the system may refuse to do this. In that case the \"auto\" value will\n+ again not rename the file.\n+ ]=],\n+ full_name = 'backupcopy',\n+ list = 'onecomma',\n+ scope = { 'global', 'buffer' },\n+ short_desc = N_(\"make backup as a copy, don't rename the file\"),\n+ type = 'string',\n+ varname = 'p_bkc',\n+ },\n+ {\n+ abbreviation = 'bdir',\n+ defaults = { if_true = '' },\n+ deny_duplicates = true,\n+ desc = [=[\n+ List of directories for the backup file, separated with commas.\n+ - The backup file will be created in the first directory in the list\n+ where this is possible. If none of the directories exist Nvim will\n+ attempt to create the last directory in the list.\n+ - Empty means that no backup file will be created ('patchmode' is\n+ impossible!). Writing may fail because of this.\n+ - A directory \".\" means to put the backup file in the same directory\n+ as the edited file.\n+ - A directory starting with \"./\" (or \".\\\" for MS-Windows) means to put\n+ the backup file relative to where the edited file is. The leading\n+ \".\" is replaced with the path name of the edited file.\n+ (\".\" inside a directory name has no special meaning).\n+ - Spaces after the comma are ignored, other spaces are considered part\n+ of the directory name. To have a space at the start of a directory\n+ name, precede it with a backslash.\n+ - To include a comma in a directory name precede it with a backslash.\n+ - A directory name may end in an '/'.\n+ - For Unix and Win32, if a directory ends in two path separators \"//\",\n+ the swap file name will be built from the complete path to the file\n+ with all path separators changed to percent '%' signs. This will\n+ ensure file name uniqueness in the backup directory.\n+ On Win32, it is also possible to end with \"\\\\\". However, When a\n+ separating comma is following, you must use \"//\", since \"\\\\\" will\n+ include the comma in the file name. Therefore it is recommended to\n+ use '//', instead of '\\\\'.\n+ - Environment variables are expanded |:set_env|.\n+ - Careful with '\\' characters, type one before a space, type two to\n+ get one in the option (see |option-backslash|), for example: >\n+ :set bdir=c:\\\\tmp,\\ dir\\\\,with\\\\,commas,\\\\\\ dir\\ with\\ spaces\n+ <\n+ See also 'backup' and 'writebackup' options.\n+ If you want to hide your backup files on Unix, consider this value: >\n+ \t:set backupdir=./.backup,~/.backup,.,/tmp\n+ <\tYou must create a \".backup\" directory in each directory and in your\n+ home directory for this to work properly.\n+ The use of |:set+=| and |:set-=| is preferred when adding or removing\n+ directories from the list. This avoids problems when a future version\n+ uses another default.\n+ This option cannot be set from a |modeline| or in the |sandbox|, for\n+ security reasons.\n+ ]=],\n+ expand = 'nodefault',\n+ full_name = 'backupdir',\n+ list = 'onecomma',\n+ scope = { 'global' },\n+ secure = true,\n+ short_desc = N_('list of directories for the backup file'),\n+ type = 'string',\n+ varname = 'p_bdir',\n+ },\n+ {\n+ abbreviation = 'bex',\n+ cb = 'did_set_backupext_or_patchmode',\n+ defaults = { if_true = '~' },\n+ desc = [=[\n+ String which is appended to a file name to make the name of the\n+ backup file. The default is quite unusual, because this avoids\n+ accidentally overwriting existing files with a backup file. You might\n+ prefer using \".bak\", but make sure that you don't have files with\n+ \".bak\" that you want to keep.\n+ Only normal file name characters can be used; `/\\*?[|<>` are illegal.\n+\n+ If you like to keep a lot of backups, you could use a BufWritePre\n+ autocommand to change 'backupext' just before writing the file to\n+ include a timestamp. >\n+ \t:au BufWritePre * let &bex = '-' .. strftime(\"%Y%b%d%X\") .. '~'\n+ <\tUse 'backupdir' to put the backup in a different directory.\n+ ]=],\n+ full_name = 'backupext',\n+ normal_fname_chars = true,\n+ scope = { 'global' },\n+ short_desc = N_('extension used for the backup file'),\n+ tags = { 'E589' },\n+ type = 'string',\n+ varname = 'p_bex',\n+ },\n+ {\n+ abbreviation = 'bsk',\n+ defaults = {\n+ if_true = '',\n+ doc = [[\"$TMPDIR/*,$TMP/*,$TEMP/*\"\n+ Unix: \"/tmp/*,$TMPDIR/*,$TMP/*,$TEMP/*\"\n+ Mac: \"/private/tmp/*,$TMPDIR/*,$TMP/*,$TEMP/*\")]],\n+ meta = '/tmp/*',\n },\n- cb='did_set_backupcopy'\n- },\n- {\n- full_name='backupdir', abbreviation='bdir',\n- short_desc=N_(\"list of directories for the backup file\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- secure=true,\n- expand='nodefault',\n- varname='p_bdir',\n- defaults={if_true=''}\n- },\n- {\n- full_name='backupext', abbreviation='bex',\n- short_desc=N_(\"extension used for the backup file\"),\n- type='string', scope={'global'},\n- normal_fname_chars=true,\n- varname='p_bex',\n- defaults={if_true=\"~\"},\n- cb='did_set_backupext_or_patchmode'\n- },\n- {\n- full_name='backupskip', abbreviation='bsk',\n- short_desc=N_(\"no backup for files that match these patterns\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- varname='p_bsk',\n- defaults={if_true=\"\"}\n- },\n- {\n- full_name='belloff', abbreviation='bo',\n- short_desc=N_(\"do not ring the bell for these reasons\"),\n- type='string', list='comma', scope={'global'},\n- deny_duplicates=true,\n- varname='p_bo',\n- defaults={if_true=\"all\"},\n- cb='did_set_belloff'\n- },\n- {\n- full_name='binary', abbreviation='bin',\n- short_desc=N_(\"read/write/edit file in binary mode\"),\n- type='bool', scope={'buffer'},\n- redraw={'statuslines'},\n- varname='p_bin',\n- defaults={if_true=false},\n- cb='did_set_binary'\n- },\n- {\n- full_name='bomb',\n- short_desc=N_(\"a Byte Order Mark to the file\"),\n- type='bool', scope={'buffer'},\n- no_mkrc=true,\n- redraw={'statuslines'},\n- varname='p_bomb',\n- defaults={if_true=false},\n- cb='did_set_eof_eol_fixeol_bomb'\n- },\n- {\n- full_name='breakat', abbreviation='brk',\n- short_desc=N_(\"characters that may cause a line break\"),\n- type='string', list='flags', scope={'global'},\n- redraw={'all_windows'},\n- varname='p_breakat',\n- defaults={if_true=\" \\t!@*-+;:,./?\"},\n- cb='did_set_breakat'\n- },\n- {\n- full_name='breakindent', abbreviation='bri',\n- short_desc=N_(\"wrapped line repeats indent\"),\n- type='bool', scope={'window'},\n- redraw={'current_window'},\n- defaults={if_true=false}\n- },\n- {\n- full_name='breakindentopt', abbreviation='briopt',\n- short_desc=N_(\"settings for 'breakindent'\"),\n- type='string', list='onecomma', scope={'window'},\n- deny_duplicates=true,\n- alloced=true,\n- redraw={'current_buffer'},\n- defaults={if_true=\"\"},\n- cb='did_set_breakindentopt'\n- },\n- {\n- full_name='browsedir', abbreviation='bsdir',\n- short_desc=N_(\"which directory to start browsing in\"),\n- type='string', scope={'global'},\n- enable_if=false,\n- },\n- {\n- full_name='bufhidden', abbreviation='bh',\n- short_desc=N_(\"what to do when buffer is no longer in window\"),\n- type='string', scope={'buffer'},\n- noglob=true,\n- alloced=true,\n- varname='p_bh',\n- defaults={if_true=\"\"},\n- cb='did_set_bufhidden'\n- },\n- {\n- full_name='buflisted', abbreviation='bl',\n- short_desc=N_(\"whether the buffer shows up in the buffer list\"),\n- type='bool', scope={'buffer'},\n- noglob=true,\n- varname='p_bl',\n- defaults={if_true=1},\n- cb='did_set_buflisted'\n- },\n- {\n- full_name='buftype', abbreviation='bt',\n- short_desc=N_(\"special type of buffer\"),\n- type='string', scope={'buffer'},\n- noglob=true,\n- alloced=true,\n- varname='p_bt',\n- defaults={if_true=\"\"},\n- cb='did_set_buftype'\n- },\n- {\n- full_name='casemap', abbreviation='cmp',\n- short_desc=N_(\"specifies how case of letters is changed\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- varname='p_cmp',\n- defaults={if_true=\"internal,keepascii\"},\n- cb='did_set_casemap'\n- },\n- {\n- full_name='cdhome', abbreviation='cdh',\n- short_desc=N_(\":cd without argument goes to the home directory\"),\n- type='bool', scope={'global'},\n- secure=true,\n- varname='p_cdh',\n- defaults={if_true=false}\n- },\n- {\n- full_name='cdpath', abbreviation='cd',\n- short_desc=N_(\"list of directories searched with \\\":cd\\\"\"),\n- type='string', list='comma', scope={'global'},\n- deny_duplicates=true,\n- expand=true,\n- secure=true,\n- varname='p_cdpath',\n- defaults={if_true=\",,\"}\n- },\n- {\n- full_name='cedit',\n- short_desc=N_(\"used to open the command-line window\"),\n- type='string', scope={'global'},\n- varname='p_cedit',\n- defaults={if_true=macros('CTRL_F_STR')},\n- cb='did_set_cedit'\n- },\n- {\n- full_name='channel',\n- short_desc=N_(\"Channel connected to the buffer\"),\n- type='number', scope={'buffer'},\n- no_mkrc=true,\n- nodefault=true,\n- varname='p_channel',\n- defaults={if_true=0}\n- },\n- {\n- full_name='charconvert', abbreviation='ccv',\n- short_desc=N_(\"expression for character encoding conversion\"),\n- type='string', scope={'global'},\n- secure=true,\n- varname='p_ccv',\n- defaults={if_true=\"\"},\n- cb='did_set_optexpr'\n- },\n- {\n- full_name='cindent', abbreviation='cin',\n- short_desc=N_(\"do C program indenting\"),\n- type='bool', scope={'buffer'},\n- varname='p_cin',\n- defaults={if_true=false}\n- },\n- {\n- full_name='cinkeys', abbreviation='cink',\n- short_desc=N_(\"keys that trigger indent when 'cindent' is set\"),\n- type='string', list='onecomma', scope={'buffer'},\n- deny_duplicates=true,\n- alloced=true,\n- varname='p_cink',\n- defaults={if_true=indentkeys_default}\n- },\n- {\n- full_name='cinoptions', abbreviation='cino',\n- short_desc=N_(\"how to do indenting when 'cindent' is set\"),\n- type='string', list='onecomma', scope={'buffer'},\n- deny_duplicates=true,\n- alloced=true,\n- varname='p_cino',\n- defaults={if_true=\"\"},\n- cb='did_set_cinoptions'\n- },\n- {\n- full_name='cinwords', abbreviation='cinw',\n- short_desc=N_(\"words where 'si' and 'cin' add an indent\"),\n- type='string', list='onecomma', scope={'buffer'},\n- deny_duplicates=true,\n- alloced=true,\n- varname='p_cinw',\n- defaults={if_true=\"if,else,while,do,for,switch\"}\n- },\n- {\n- full_name='cinscopedecls', abbreviation='cinsd',\n- short_desc=N_(\"words that are recognized by 'cino-g'\"),\n- type='string', list='onecomma', scope={'buffer'},\n- deny_duplicates=true,\n- alloced=true,\n- varname='p_cinsd',\n- defaults={if_true=\"public,protected,private\"}\n- },\n- {\n- full_name='clipboard', abbreviation='cb',\n- short_desc=N_(\"use the clipboard as the unnamed register\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- varname='p_cb',\n- defaults={if_true=\"\"},\n- cb='did_set_clipboard'\n- },\n- {\n- full_name='cmdheight', abbreviation='ch',\n- short_desc=N_(\"number of lines to use for the command-line\"),\n- type='number', scope={'global'},\n- redraw={'all_windows'},\n- varname='p_ch',\n- defaults={if_true=1},\n- cb='did_set_cmdheight'\n- },\n- {\n- full_name='cmdwinheight', abbreviation='cwh',\n- short_desc=N_(\"height of the command-line window\"),\n- type='number', scope={'global'},\n- varname='p_cwh',\n- defaults={if_true=7}\n- },\n- {\n- full_name='colorcolumn', abbreviation='cc',\n- short_desc=N_(\"columns to highlight\"),\n- type='string', list='onecomma', scope={'window'},\n- deny_duplicates=true,\n- redraw={'current_window'},\n- defaults={if_true=\"\"},\n- cb='did_set_colorcolumn'\n- },\n- {\n- full_name='columns', abbreviation='co',\n- short_desc=N_(\"number of columns in the display\"),\n- type='number', scope={'global'},\n- no_mkrc=true,\n- varname='p_columns',\n- defaults={if_true=macros('DFLT_COLS')}\n- },\n- {\n- full_name='comments', abbreviation='com',\n- short_desc=N_(\"patterns that can start a comment line\"),\n- type='string', list='onecomma', scope={'buffer'},\n- deny_duplicates=true,\n- alloced=true,\n- redraw={'curswant'},\n- varname='p_com',\n- defaults={if_true=\"s1:/*,mb:*,ex:*/,://,b:#,:%,:XCOMM,n:>,fb:-\"},\n- cb='did_set_comments'\n- },\n- {\n- full_name='commentstring', abbreviation='cms',\n- short_desc=N_(\"template for comments; used for fold marker\"),\n- type='string', scope={'buffer'},\n- alloced=true,\n- redraw={'curswant'},\n- varname='p_cms',\n- defaults={if_true=\"\"},\n- cb='did_set_commentstring'\n- },\n- {\n- full_name='compatible', abbreviation='cp',\n- short_desc=N_(\"No description\"),\n- type='bool', scope={'global'},\n- varname='p_force_off',\n- -- pri_mkrc isn't needed here, optval_default()\n- -- always returns TRUE for 'compatible'\n- defaults={if_true=false}\n- },\n- {\n- full_name='complete', abbreviation='cpt',\n- short_desc=N_(\"specify how Insert mode completion works\"),\n- type='string', list='onecomma', scope={'buffer'},\n- deny_duplicates=true,\n- alloced=true,\n- varname='p_cpt',\n- defaults={if_true=\".,w,b,u,t\"},\n- cb='did_set_complete'\n- },\n- {\n- full_name='concealcursor', abbreviation='cocu',\n- short_desc=N_(\"whether concealable text is hidden in cursor line\"),\n- type='string', scope={'window'},\n- alloced=true,\n- redraw={'current_window'},\n- defaults={if_true=\"\"},\n- cb='did_set_concealcursor'\n- },\n- {\n- full_name='conceallevel', abbreviation='cole',\n- short_desc=N_(\"whether concealable text is shown or hidden\"),\n- type='number', scope={'window'},\n- redraw={'current_window'},\n- defaults={if_true=0}\n- },\n- {\n- full_name='completefunc', abbreviation='cfu',\n- short_desc=N_(\"function to be used for Insert mode completion\"),\n- type='string', scope={'buffer'},\n- secure=true,\n- alloced=true,\n- func=true,\n- varname='p_cfu',\n- defaults={if_true=\"\"},\n- cb='did_set_completefunc'\n- },\n- {\n- full_name='completeopt', abbreviation='cot',\n- short_desc=N_(\"options for Insert mode completion\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- varname='p_cot',\n- defaults={if_true=\"menu,preview\"},\n- cb='did_set_completeopt'\n- },\n- {\n- full_name='completeslash', abbreviation='csl',\n- type='string', scope={'buffer'},\n- varname='p_csl',\n- enable_if='BACKSLASH_IN_FILENAME',\n- defaults={if_true=\"\"},\n- cb='did_set_completeslash'\n- },\n- {\n- full_name='confirm', abbreviation='cf',\n- short_desc=N_(\"ask what to do about unsaved/read-only files\"),\n- type='bool', scope={'global'},\n- varname='p_confirm',\n- defaults={if_true=false}\n- },\n- {\n- full_name='copyindent', abbreviation='ci',\n- short_desc=N_(\"make 'autoindent' use existing indent structure\"),\n- type='bool', scope={'buffer'},\n- varname='p_ci',\n- defaults={if_true=false}\n- },\n- {\n- full_name='cpoptions', abbreviation='cpo',\n- short_desc=N_(\"flags for Vi-compatible behavior\"),\n- type='string', list='flags', scope={'global'},\n- redraw={'all_windows'},\n- varname='p_cpo',\n- defaults={if_true=macros('CPO_VIM')},\n- cb='did_set_cpoptions'\n- },\n- {\n- full_name='cursorbind', abbreviation='crb',\n- short_desc=N_(\"move cursor in window as it moves in other windows\"),\n- type='bool', scope={'window'},\n- pv_name='p_crbind',\n- defaults={if_true=false}\n- },\n- {\n- full_name='cursorcolumn', abbreviation='cuc',\n- short_desc=N_(\"highlight the screen column of the cursor\"),\n- type='bool', scope={'window'},\n- redraw={'current_window_only'},\n- defaults={if_true=false}\n- },\n- {\n- full_name='cursorline', abbreviation='cul',\n- short_desc=N_(\"highlight the screen line of the cursor\"),\n- type='bool', scope={'window'},\n- redraw={'current_window_only'},\n- defaults={if_true=false}\n- },\n- {\n- full_name='cursorlineopt', abbreviation='culopt',\n- short_desc=N_(\"settings for 'cursorline'\"),\n- type='string', list='onecomma', scope={'window'},\n- deny_duplicates=true,\n- redraw={'current_window_only'},\n- defaults={if_true=\"both\"},\n- cb='did_set_cursorlineopt'\n- },\n- {\n- full_name='debug',\n- short_desc=N_(\"to \\\"msg\\\" to see all error messages\"),\n- type='string', scope={'global'},\n- varname='p_debug',\n- defaults={if_true=\"\"},\n- cb='did_set_debug'\n- },\n- {\n- full_name='define', abbreviation='def',\n- short_desc=N_(\"pattern to be used to find a macro definition\"),\n- type='string', scope={'global', 'buffer'},\n- alloced=true,\n- redraw={'curswant'},\n- varname='p_def',\n- defaults={if_true=\"\"}\n- },\n- {\n- full_name='delcombine', abbreviation='deco',\n- short_desc=N_(\"delete combining characters on their own\"),\n- type='bool', scope={'global'},\n- varname='p_deco',\n- defaults={if_true=false}\n- },\n- {\n- full_name='dictionary', abbreviation='dict',\n- short_desc=N_(\"list of file names used for keyword completion\"),\n- type='string', list='onecomma', scope={'global', 'buffer'},\n- deny_duplicates=true,\n- normal_dname_chars=true,\n- expand=true,\n- varname='p_dict',\n- defaults={if_true=\"\"}\n- },\n- {\n- full_name='diff',\n- short_desc=N_(\"diff mode for the current window\"),\n- type='bool', scope={'window'},\n- noglob=true,\n- redraw={'current_window'},\n- defaults={if_true=false},\n- cb='did_set_diff'\n- },\n- {\n- full_name='diffexpr', abbreviation='dex',\n- short_desc=N_(\"expression used to obtain a diff file\"),\n- type='string', scope={'global'},\n- secure=true,\n- redraw={'curswant'},\n- varname='p_dex',\n- defaults={if_true=\"\"},\n- cb='did_set_optexpr'\n- },\n- {\n- full_name='diffopt', abbreviation='dip',\n- short_desc=N_(\"options for using diff mode\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- alloced=true,\n- redraw={'current_window'},\n- varname='p_dip',\n- defaults={if_true=\"internal,filler,closeoff\"},\n- cb='did_set_diffopt'\n- },\n- {\n- full_name='digraph', abbreviation='dg',\n- short_desc=N_(\"enable the entering of digraphs in Insert mode\"),\n- type='bool', scope={'global'},\n- varname='p_dg',\n- defaults={if_true=false}\n- },\n- {\n- full_name='directory', abbreviation='dir',\n- short_desc=N_(\"list of directory names for the swap file\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- secure=true,\n- expand='nodefault',\n- varname='p_dir',\n- defaults={if_true=''}\n- },\n- {\n- full_name='display', abbreviation='dy',\n- short_desc=N_(\"list of flags for how to display text\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- redraw={'all_windows'},\n- varname='p_dy',\n- defaults={if_true=\"lastline\"},\n- cb='did_set_display'\n- },\n- {\n- full_name='eadirection', abbreviation='ead',\n- short_desc=N_(\"in which direction 'equalalways' works\"),\n- type='string', scope={'global'},\n- varname='p_ead',\n- defaults={if_true=\"both\"},\n- cb='did_set_eadirection'\n- },\n- {\n- full_name='edcompatible', abbreviation='ed',\n- short_desc=N_(\"No description\"),\n- type='bool', scope={'global'},\n- varname='p_force_off',\n- defaults={if_true=false}\n- },\n- {\n- full_name='emoji', abbreviation='emo',\n- short_desc=N_(\"No description\"),\n- type='bool', scope={'global'},\n- redraw={'all_windows', 'ui_option'},\n- varname='p_emoji',\n- defaults={if_true=true},\n- cb='did_set_ambiwidth'\n- },\n- {\n- full_name='encoding', abbreviation='enc',\n- short_desc=N_(\"encoding used internally\"),\n- type='string', scope={'global'},\n- deny_in_modelines=true,\n- varname='p_enc',\n- defaults={if_true=macros('ENC_DFLT')},\n- cb='did_set_encoding'\n- },\n- {\n- full_name='endoffile', abbreviation='eof',\n- short_desc=N_(\"write CTRL-Z for last line in file\"),\n- type='bool', scope={'buffer'},\n- no_mkrc=true,\n- redraw={'statuslines'},\n- varname='p_eof',\n- defaults={if_true=false},\n- cb='did_set_eof_eol_fixeol_bomb'\n- },\n- {\n- full_name='endofline', abbreviation='eol',\n- short_desc=N_(\"write for last line in file\"),\n- type='bool', scope={'buffer'},\n- no_mkrc=true,\n- redraw={'statuslines'},\n- varname='p_eol',\n- defaults={if_true=true},\n- cb='did_set_eof_eol_fixeol_bomb'\n- },\n- {\n- full_name='equalalways', abbreviation='ea',\n- short_desc=N_(\"windows are automatically made the same size\"),\n- type='bool', scope={'global'},\n- varname='p_ea',\n- defaults={if_true=true},\n- cb='did_set_equalalways'\n- },\n- {\n- full_name='equalprg', abbreviation='ep',\n- short_desc=N_(\"external program to use for \\\"=\\\" command\"),\n- type='string', scope={'global', 'buffer'},\n- secure=true,\n- expand=true,\n- varname='p_ep',\n- defaults={if_true=\"\"}\n- },\n- {\n- full_name='errorbells', abbreviation='eb',\n- short_desc=N_(\"ring the bell for error messages\"),\n- type='bool', scope={'global'},\n- varname='p_eb',\n- defaults={if_true=false}\n- },\n- {\n- full_name='errorfile', abbreviation='ef',\n- short_desc=N_(\"name of the errorfile for the QuickFix mode\"),\n- type='string', scope={'global'},\n- secure=true,\n- expand=true,\n- varname='p_ef',\n- defaults={if_true=macros('DFLT_ERRORFILE')}\n- },\n- {\n- full_name='errorformat', abbreviation='efm',\n- short_desc=N_(\"description of the lines in the error file\"),\n- type='string', list='onecomma', scope={'global', 'buffer'},\n- deny_duplicates=true,\n- varname='p_efm',\n- defaults={if_true=macros('DFLT_EFM')}\n- },\n- {\n- full_name='eventignore', abbreviation='ei',\n- short_desc=N_(\"autocommand events that are ignored\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- varname='p_ei',\n- defaults={if_true=\"\"},\n- cb='did_set_eventignore'\n- },\n- {\n- full_name='expandtab', abbreviation='et',\n- short_desc=N_(\"use spaces when is inserted\"),\n- type='bool', scope={'buffer'},\n- varname='p_et',\n- defaults={if_true=false}\n- },\n- {\n- full_name='exrc', abbreviation='ex',\n- short_desc=N_(\"read .nvimrc and .exrc in the current directory\"),\n- type='bool', scope={'global'},\n- secure=true,\n- varname='p_exrc',\n- defaults={if_true=false}\n- },\n- {\n- full_name='fileencoding', abbreviation='fenc',\n- short_desc=N_(\"file encoding for multi-byte text\"),\n- type='string', scope={'buffer'},\n- no_mkrc=true,\n- alloced=true,\n- redraw={'statuslines', 'current_buffer'},\n- varname='p_fenc',\n- defaults={if_true=\"\"},\n- cb='did_set_encoding'\n- },\n- {\n- full_name='fileencodings', abbreviation='fencs',\n- short_desc=N_(\"automatically detected character encodings\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- varname='p_fencs',\n- defaults={if_true=\"ucs-bom,utf-8,default,latin1\"}\n- },\n- {\n- full_name='fileformat', abbreviation='ff',\n- short_desc=N_(\"file format used for file I/O\"),\n- type='string', scope={'buffer'},\n- no_mkrc=true,\n- alloced=true,\n- redraw={'curswant', 'statuslines'},\n- varname='p_ff',\n- defaults={if_true=macros('DFLT_FF')},\n- cb='did_set_fileformat'\n- },\n- {\n- full_name='fileformats', abbreviation='ffs',\n- short_desc=N_(\"automatically detected values for 'fileformat'\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- varname='p_ffs',\n- defaults={if_true=macros('DFLT_FFS_VIM')},\n- cb='did_set_fileformats'\n- },\n- {\n- full_name='fileignorecase', abbreviation='fic',\n- short_desc=N_(\"ignore case when using file names\"),\n- type='bool', scope={'global'},\n- varname='p_fic',\n- defaults={\n- condition='CASE_INSENSITIVE_FILENAME',\n- if_true=true,\n- if_false=false,\n- }\n- },\n- {\n- full_name='filetype', abbreviation='ft',\n- short_desc=N_(\"type of file, used for autocommands\"),\n- type='string', scope={'buffer'},\n- noglob=true,\n- normal_fname_chars=true,\n- alloced=true,\n- expand=true,\n- varname='p_ft',\n- defaults={if_true=\"\"},\n- cb='did_set_filetype_or_syntax'\n- },\n- {\n- full_name='fillchars', abbreviation='fcs',\n- short_desc=N_(\"characters to use for displaying special items\"),\n- type='string', list='onecomma', scope={'global', 'window'},\n- deny_duplicates=true,\n- alloced=true,\n- redraw={'current_window'},\n- varname='p_fcs',\n- defaults={if_true=''},\n- cb='did_set_chars_option'\n- },\n- {\n- full_name='fixendofline', abbreviation='fixeol',\n- short_desc=N_(\"make sure last line in file has \"),\n- type='bool', scope={'buffer'},\n- redraw={'statuslines'},\n- varname='p_fixeol',\n- defaults={if_true=true},\n- cb='did_set_eof_eol_fixeol_bomb'\n- },\n- {\n- full_name='foldclose', abbreviation='fcl',\n- short_desc=N_(\"close a fold when the cursor leaves it\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- redraw={'current_window'},\n- varname='p_fcl',\n- defaults={if_true=\"\"},\n- cb='did_set_foldclose'\n- },\n- {\n- full_name='foldcolumn', abbreviation='fdc',\n- short_desc=N_(\"width of the column used to indicate folds\"),\n- type='string', scope={'window'},\n- alloced=true,\n- redraw={'current_window'},\n- defaults={if_true=\"0\"},\n- cb='did_set_foldcolumn'\n- },\n- {\n- full_name='foldenable', abbreviation='fen',\n- short_desc=N_(\"set to display all folds open\"),\n- type='bool', scope={'window'},\n- redraw={'current_window'},\n- defaults={if_true=true}\n- },\n- {\n- full_name='foldexpr', abbreviation='fde',\n- short_desc=N_(\"expression used when 'foldmethod' is \\\"expr\\\"\"),\n- type='string', scope={'window'},\n- modelineexpr=true,\n- alloced=true,\n- redraw={'current_window'},\n- defaults={if_true=\"0\"},\n- cb='did_set_foldexpr'\n- },\n- {\n- full_name='foldignore', abbreviation='fdi',\n- short_desc=N_(\"ignore lines when 'foldmethod' is \\\"indent\\\"\"),\n- type='string', scope={'window'},\n- alloced=true,\n- redraw={'current_window'},\n- defaults={if_true=\"#\"},\n- cb='did_set_foldignore'\n- },\n- {\n- full_name='foldlevel', abbreviation='fdl',\n- short_desc=N_(\"close folds with a level higher than this\"),\n- type='number', scope={'window'},\n- redraw={'current_window'},\n- defaults={if_true=0},\n- cb='did_set_foldlevel'\n- },\n- {\n- full_name='foldlevelstart', abbreviation='fdls',\n- short_desc=N_(\"'foldlevel' when starting to edit a file\"),\n- type='number', scope={'global'},\n- redraw={'curswant'},\n- varname='p_fdls',\n- defaults={if_true=-1}\n- },\n- {\n- full_name='foldmarker', abbreviation='fmr',\n- short_desc=N_(\"markers used when 'foldmethod' is \\\"marker\\\"\"),\n- type='string', list='onecomma', scope={'window'},\n- deny_duplicates=true,\n- alloced=true,\n- redraw={'current_window'},\n- defaults={if_true=\"{{{,}}}\"},\n- cb='did_set_foldmarker'\n- },\n- {\n- full_name='foldmethod', abbreviation='fdm',\n- short_desc=N_(\"folding type\"),\n- type='string', scope={'window'},\n- alloced=true,\n- redraw={'current_window'},\n- defaults={if_true=\"manual\"},\n- cb='did_set_foldmethod'\n- },\n- {\n- full_name='foldminlines', abbreviation='fml',\n- short_desc=N_(\"minimum number of lines for a fold to be closed\"),\n- type='number', scope={'window'},\n- redraw={'current_window'},\n- defaults={if_true=1},\n- cb='did_set_foldminlines'\n- },\n- {\n- full_name='foldnestmax', abbreviation='fdn',\n- short_desc=N_(\"maximum fold depth\"),\n- type='number', scope={'window'},\n- redraw={'current_window'},\n- defaults={if_true=20},\n- cb='did_set_foldnestmax'\n- },\n- {\n- full_name='foldopen', abbreviation='fdo',\n- short_desc=N_(\"for which commands a fold will be opened\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- redraw={'curswant'},\n- varname='p_fdo',\n- defaults={if_true=\"block,hor,mark,percent,quickfix,search,tag,undo\"},\n- cb='did_set_foldopen'\n- },\n- {\n- full_name='foldtext', abbreviation='fdt',\n- short_desc=N_(\"expression used to display for a closed fold\"),\n- type='string', scope={'window'},\n- modelineexpr=true,\n- alloced=true,\n- redraw={'current_window'},\n- defaults={if_true=\"foldtext()\"},\n- cb='did_set_optexpr'\n- },\n- {\n- full_name='formatexpr', abbreviation='fex',\n- short_desc=N_(\"expression used with \\\"gq\\\" command\"),\n- type='string', scope={'buffer'},\n- modelineexpr=true,\n- alloced=true,\n- varname='p_fex',\n- defaults={if_true=\"\"},\n- cb='did_set_optexpr'\n- },\n- {\n- full_name='formatoptions', abbreviation='fo',\n- short_desc=N_(\"how automatic formatting is to be done\"),\n- type='string', list='flags', scope={'buffer'},\n- alloced=true,\n- varname='p_fo',\n- defaults={if_true=macros('DFLT_FO_VIM')},\n- cb='did_set_formatoptions'\n- },\n- {\n- full_name='formatlistpat', abbreviation='flp',\n- short_desc=N_(\"pattern used to recognize a list header\"),\n- type='string', scope={'buffer'},\n- alloced=true,\n- varname='p_flp',\n- defaults={if_true=\"^\\\\s*\\\\d\\\\+[\\\\]:.)}\\\\t ]\\\\s*\"}\n- },\n- {\n- full_name='formatprg', abbreviation='fp',\n- short_desc=N_(\"name of external program used with \\\"gq\\\" command\"),\n- type='string', scope={'global', 'buffer'},\n- secure=true,\n- expand=true,\n- varname='p_fp',\n- defaults={if_true=\"\"}\n- },\n- {\n- full_name='fsync', abbreviation='fs',\n- short_desc=N_(\"whether to invoke fsync() after file write\"),\n- type='bool', scope={'global'},\n- secure=true,\n- varname='p_fs',\n- defaults={if_true=false}\n- },\n- {\n- full_name='gdefault', abbreviation='gd',\n- short_desc=N_(\"the \\\":substitute\\\" flag 'g' is default on\"),\n- type='bool', scope={'global'},\n- varname='p_gd',\n- defaults={if_true=false}\n- },\n- {\n- full_name='grepformat', abbreviation='gfm',\n- short_desc=N_(\"format of 'grepprg' output\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- varname='p_gefm',\n- defaults={if_true=macros('DFLT_GREPFORMAT')}\n- },\n- {\n- full_name='grepprg', abbreviation='gp',\n- short_desc=N_(\"program to use for \\\":grep\\\"\"),\n- type='string', scope={'global', 'buffer'},\n- secure=true,\n- expand=true,\n- varname='p_gp',\n- defaults={\n- condition='MSWIN',\n- -- Add an extra file name so that grep will always\n- -- insert a file name in the match line. */\n- if_true=\"findstr /n $* nul\",\n- if_false=\"grep -n $* /dev/null\"\n- }\n- },\n- {\n- full_name='guicursor', abbreviation='gcr',\n- short_desc=N_(\"GUI: settings for cursor shape and blinking\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- varname='p_guicursor',\n- defaults={if_true=\"n-v-c-sm:block,i-ci-ve:ver25,r-cr-o:hor20\"},\n- cb='did_set_guicursor'\n- },\n- {\n- full_name='guifont', abbreviation='gfn',\n- short_desc=N_(\"GUI: Name(s) of font(s) to be used\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- varname='p_guifont',\n- redraw={'ui_option'},\n- defaults={if_true=\"\"}\n- },\n- {\n- full_name='guifontwide', abbreviation='gfw',\n- short_desc=N_(\"list of font names for double-wide characters\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- redraw={'ui_option'},\n- varname='p_guifontwide',\n- defaults={if_true=\"\"}\n- },\n- {\n- full_name='guioptions', abbreviation='go',\n- short_desc=N_(\"GUI: Which components and options are used\"),\n- type='string', list='flags', scope={'global'},\n- enable_if=false,\n- },\n- {\n- full_name='guitablabel', abbreviation='gtl',\n- short_desc=N_(\"GUI: custom label for a tab page\"),\n- type='string', scope={'global'},\n- modelineexpr=true,\n- redraw={'current_window'},\n- enable_if=false,\n- },\n- {\n- full_name='guitabtooltip', abbreviation='gtt',\n- short_desc=N_(\"GUI: custom tooltip for a tab page\"),\n- type='string', scope={'global'},\n- redraw={'current_window'},\n- enable_if=false,\n- },\n- {\n- full_name='helpfile', abbreviation='hf',\n- short_desc=N_(\"full path name of the main help file\"),\n- type='string', scope={'global'},\n- secure=true,\n- expand=true,\n- varname='p_hf',\n- defaults={if_true=macros('DFLT_HELPFILE')},\n- cb='did_set_helpfile'\n- },\n- {\n- full_name='helpheight', abbreviation='hh',\n- short_desc=N_(\"minimum height of a new help window\"),\n- type='number', scope={'global'},\n- varname='p_hh',\n- defaults={if_true=20},\n- cb='did_set_helpheight'\n- },\n- {\n- full_name='helplang', abbreviation='hlg',\n- short_desc=N_(\"preferred help languages\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- varname='p_hlg',\n- defaults={if_true=\"\"},\n- cb='did_set_helplang'\n- },\n- {\n- full_name='hidden', abbreviation='hid',\n- short_desc=N_(\"don't unload buffer when it is |abandon|ed\"),\n- type='bool', scope={'global'},\n- varname='p_hid',\n- defaults={if_true=true}\n- },\n- {\n- full_name='highlight', abbreviation='hl',\n- short_desc=N_(\"sets highlighting mode for various occasions\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- varname='p_hl',\n- defaults={if_true=macros('HIGHLIGHT_INIT')},\n- cb='did_set_highlight'\n- },\n- {\n- full_name='history', abbreviation='hi',\n- short_desc=N_(\"number of command-lines that are remembered\"),\n- type='number', scope={'global'},\n- varname='p_hi',\n- defaults={if_true=10000}\n- },\n- {\n- full_name='hkmap', abbreviation='hk',\n- short_desc=N_(\"No description\"),\n- type='bool', scope={'global'},\n- varname='p_force_off',\n- defaults={if_true=false}\n- },\n- {\n- full_name='hkmapp', abbreviation='hkp',\n- short_desc=N_(\"No description\"),\n- type='bool', scope={'global'},\n- varname='p_force_off',\n- defaults={if_true=false}\n- },\n- {\n- full_name='hlsearch', abbreviation='hls',\n- short_desc=N_(\"highlight matches with last search pattern\"),\n- type='bool', scope={'global'},\n- redraw={'all_windows'},\n- varname='p_hls',\n- defaults={if_true=true},\n- cb='did_set_hlsearch'\n- },\n- {\n- full_name='icon',\n- short_desc=N_(\"Vim set the text of the window icon\"),\n- type='bool', scope={'global'},\n- varname='p_icon',\n- defaults={if_true=false},\n- cb='did_set_title_icon'\n- },\n- {\n- full_name='iconstring',\n- short_desc=N_(\"to use for the Vim icon text\"),\n- type='string', scope={'global'},\n- modelineexpr=true,\n- varname='p_iconstring',\n- defaults={if_true=\"\"},\n- cb='did_set_iconstring'\n- },\n- {\n- full_name='ignorecase', abbreviation='ic',\n- short_desc=N_(\"ignore case in search patterns\"),\n- type='bool', scope={'global'},\n- varname='p_ic',\n- defaults={if_true=false},\n- cb='did_set_ignorecase'\n- },\n- {\n- full_name='imcmdline', abbreviation='imc',\n- short_desc=N_(\"use IM when starting to edit a command line\"),\n- type='bool', scope={'global'},\n- enable_if=false,\n- defaults={if_true=false}\n- },\n- {\n- full_name='imdisable', abbreviation='imd',\n- short_desc=N_(\"do not use the IM in any mode\"),\n- type='bool', scope={'global'},\n- enable_if=false,\n- defaults={if_true=false}\n- },\n- {\n- full_name='iminsert', abbreviation='imi',\n- short_desc=N_(\"use :lmap or IM in Insert mode\"),\n- type='number', scope={'buffer'},\n- varname='p_iminsert', pv_name='p_imi',\n- defaults={if_true=macros('B_IMODE_NONE')},\n- cb='did_set_iminsert'\n- },\n- {\n- full_name='imsearch', abbreviation='ims',\n- short_desc=N_(\"use :lmap or IM when typing a search pattern\"),\n- type='number', scope={'buffer'},\n- varname='p_imsearch', pv_name='p_ims',\n- defaults={\n- if_true=macros('B_IMODE_USE_INSERT'),\n- }\n- },\n- {\n- full_name='inccommand', abbreviation='icm',\n- short_desc=N_(\"Live preview of substitution\"),\n- type='string', scope={'global'},\n- varname='p_icm',\n- defaults={if_true=\"nosplit\"},\n- cb='did_set_inccommand'\n- },\n- {\n- full_name='include', abbreviation='inc',\n- short_desc=N_(\"pattern to be used to find an include file\"),\n- type='string', scope={'global', 'buffer'},\n- alloced=true,\n- varname='p_inc',\n- defaults={if_true=\"\"}\n- },\n- {\n- full_name='includeexpr', abbreviation='inex',\n- short_desc=N_(\"expression used to process an include line\"),\n- type='string', scope={'buffer'},\n- modelineexpr=true,\n- alloced=true,\n- varname='p_inex',\n- defaults={if_true=\"\"},\n- cb='did_set_optexpr'\n- },\n- {\n- full_name='incsearch', abbreviation='is',\n- short_desc=N_(\"highlight match while typing search pattern\"),\n- type='bool', scope={'global'},\n- varname='p_is',\n- defaults={if_true=true}\n- },\n- {\n- full_name='indentexpr', abbreviation='inde',\n- short_desc=N_(\"expression used to obtain the indent of a line\"),\n- type='string', scope={'buffer'},\n- modelineexpr=true,\n- alloced=true,\n- varname='p_inde',\n- defaults={if_true=\"\"},\n- cb='did_set_optexpr'\n- },\n- {\n- full_name='indentkeys', abbreviation='indk',\n- short_desc=N_(\"keys that trigger indenting with 'indentexpr'\"),\n- type='string', list='onecomma', scope={'buffer'},\n- deny_duplicates=true,\n- alloced=true,\n- varname='p_indk',\n- defaults={if_true=indentkeys_default}\n- },\n- {\n- full_name='infercase', abbreviation='inf',\n- short_desc=N_(\"adjust case of match for keyword completion\"),\n- type='bool', scope={'buffer'},\n- varname='p_inf',\n- defaults={if_true=false}\n- },\n- {\n- full_name='insertmode', abbreviation='im',\n- short_desc=N_(\"No description\"),\n- type='bool', scope={'global'},\n- varname='p_force_off',\n- defaults={if_true=false}\n- },\n- {\n- full_name='isfname', abbreviation='isf',\n- short_desc=N_(\"characters included in file names and pathnames\"),\n- type='string', list='comma', scope={'global'},\n- deny_duplicates=true,\n- varname='p_isf',\n- defaults={\n- condition='BACKSLASH_IN_FILENAME',\n- -- Excluded are: & and ^ are special in cmd.exe\n- -- ( and ) are used in text separating fnames */\n- if_true=\"@,48-57,/,\\\\,.,-,_,+,,,#,$,%,{,},[,],:,@-@,!,~,=\",\n- if_false=\"@,48-57,/,.,-,_,+,,,#,$,%,~,=\"\n+ deny_duplicates = true,\n+ desc = [=[\n+ A list of file patterns. When one of the patterns matches with the\n+ name of the file which is written, no backup file is created. Both\n+ the specified file name and the full path name of the file are used.\n+ The pattern is used like with |:autocmd|, see |autocmd-pattern|.\n+ Watch out for special characters, see |option-backslash|.\n+ When $TMPDIR, $TMP or $TEMP is not defined, it is not used for the\n+ default value. \"/tmp/*\" is only used for Unix.\n+\n+ WARNING: Not having a backup file means that when Vim fails to write\n+ your buffer correctly and then, for whatever reason, Vim exits, you\n+ lose both the original file and what you were writing. Only disable\n+ backups if you don't care about losing the file.\n+\n+ Note that environment variables are not expanded. If you want to use\n+ $HOME you must expand it explicitly, e.g.: >\n+ \t:let &backupskip = escape(expand('$HOME'), '\\') .. '/tmp/*'\n+\n+ <\tNote that the default also makes sure that \"crontab -e\" works (when a\n+ backup would be made by renaming the original file crontab won't see\n+ the newly created file). Also see 'backupcopy' and |crontab|.\n+ ]=],\n+ full_name = 'backupskip',\n+ list = 'onecomma',\n+ scope = { 'global' },\n+ short_desc = N_('no backup for files that match these patterns'),\n+ type = 'string',\n+ varname = 'p_bsk',\n+ },\n+ {\n+ abbreviation = 'bo',\n+ cb = 'did_set_belloff',\n+ defaults = { if_true = 'all' },\n+ deny_duplicates = true,\n+ desc = [=[\n+ Specifies for which events the bell will not be rung. It is a comma-\n+ separated list of items. For each item that is present, the bell\n+ will be silenced. This is most useful to specify specific events in\n+ insert mode to be silenced.\n+\n+ item\t meaning when present\t~\n+ all\t All events.\n+ backspace When hitting or and deleting results in an\n+ \t error.\n+ cursor\t Fail to move around using the cursor keys or\n+ \t / in |Insert-mode|.\n+ complete Error occurred when using |i_CTRL-X_CTRL-K| or\n+ \t |i_CTRL-X_CTRL-T|.\n+ copy\t Cannot copy char from insert mode using |i_CTRL-Y| or\n+ \t |i_CTRL-E|.\n+ ctrlg\t Unknown Char after in Insert mode.\n+ error\t Other Error occurred (e.g. try to join last line)\n+ \t (mostly used in |Normal-mode| or |Cmdline-mode|).\n+ esc\t hitting in |Normal-mode|.\n+ hangul\t Ignored.\n+ lang\t Calling the beep module for Lua/Mzscheme/TCL.\n+ mess\t No output available for |g<|.\n+ showmatch Error occurred for 'showmatch' function.\n+ operator Empty region error |cpo-E|.\n+ register Unknown register after in |Insert-mode|.\n+ shell\t Bell from shell output |:!|.\n+ spell\t Error happened on spell suggest.\n+ wildmode More matches in |cmdline-completion| available\n+ \t (depends on the 'wildmode' setting).\n+\n+ This is most useful to fine tune when in Insert mode the bell should\n+ be rung. For Normal mode and Ex commands, the bell is often rung to\n+ indicate that an error occurred. It can be silenced by adding the\n+ \"error\" keyword.\n+ ]=],\n+ full_name = 'belloff',\n+ list = 'comma',\n+ scope = { 'global' },\n+ short_desc = N_('do not ring the bell for these reasons'),\n+ type = 'string',\n+ varname = 'p_bo',\n+ },\n+ {\n+ abbreviation = 'bin',\n+ cb = 'did_set_binary',\n+ defaults = { if_true = false },\n+ desc = [=[\n+ This option should be set before editing a binary file. You can also\n+ use the |-b| Vim argument. When this option is switched on a few\n+ options will be changed (also when it already was on):\n+ \t'textwidth' will be set to 0\n+ \t'wrapmargin' will be set to 0\n+ \t'modeline' will be off\n+ \t'expandtab' will be off\n+ Also, 'fileformat' and 'fileformats' options will not be used, the\n+ file is read and written like 'fileformat' was \"unix\" (a single \n+ separates lines).\n+ The 'fileencoding' and 'fileencodings' options will not be used, the\n+ file is read without conversion.\n+ NOTE: When you start editing a(nother) file while the 'bin' option is\n+ on, settings from autocommands may change the settings again (e.g.,\n+ 'textwidth'), causing trouble when editing. You might want to set\n+ 'bin' again when the file has been loaded.\n+ The previous values of these options are remembered and restored when\n+ 'bin' is switched from on to off. Each buffer has its own set of\n+ saved option values.\n+ To edit a file with 'binary' set you can use the |++bin| argument.\n+ This avoids you have to do \":set bin\", which would have effect for all\n+ files you edit.\n+ When writing a file the for the last line is only written if\n+ there was one in the original file (normally Vim appends an to\n+ the last line if there is none; this would make the file longer). See\n+ the 'endofline' option.\n+ ]=],\n+ full_name = 'binary',\n+ redraw = { 'statuslines' },\n+ scope = { 'buffer' },\n+ short_desc = N_('read/write/edit file in binary mode'),\n+ type = 'bool',\n+ varname = 'p_bin',\n+ },\n+ {\n+ cb = 'did_set_eof_eol_fixeol_bomb',\n+ defaults = { if_true = false },\n+ desc = [=[\n+ When writing a file and the following conditions are met, a BOM (Byte\n+ Order Mark) is prepended to the file:\n+ - this option is on\n+ - the 'binary' option is off\n+ - 'fileencoding' is \"utf-8\", \"ucs-2\", \"ucs-4\" or one of the little/big\n+ endian variants.\n+ Some applications use the BOM to recognize the encoding of the file.\n+ Often used for UCS-2 files on MS-Windows. For other applications it\n+ causes trouble, for example: \"cat file1 file2\" makes the BOM of file2\n+ appear halfway through the resulting file. Gcc doesn't accept a BOM.\n+ When Vim reads a file and 'fileencodings' starts with \"ucs-bom\", a\n+ check for the presence of the BOM is done and 'bomb' set accordingly.\n+ Unless 'binary' is set, it is removed from the first line, so that you\n+ don't see it when editing. When you don't change the options, the BOM\n+ will be restored when writing the file.\n+ ]=],\n+ full_name = 'bomb',\n+ no_mkrc = true,\n+ redraw = { 'statuslines' },\n+ scope = { 'buffer' },\n+ short_desc = N_('a Byte Order Mark to the file'),\n+ type = 'bool',\n+ varname = 'p_bomb',\n+ },\n+ {\n+ abbreviation = 'brk',\n+ cb = 'did_set_breakat',\n+ defaults = {\n+ if_true = ' \\t!@*-+;:,./?',\n+ doc = '\" ^I!@*-+;:,./?\"',\n },\n- cb='did_set_isopt'\n- },\n- {\n- full_name='isident', abbreviation='isi',\n- short_desc=N_(\"characters included in identifiers\"),\n- type='string', list='comma', scope={'global'},\n- deny_duplicates=true,\n- varname='p_isi',\n- defaults={\n- condition='MSWIN',\n- if_true=\"@,48-57,_,128-167,224-235\",\n- if_false=\"@,48-57,_,192-255\"\n+ desc = [=[\n+ This option lets you choose which characters might cause a line\n+ break if 'linebreak' is on. Only works for ASCII characters.\n+ ]=],\n+ full_name = 'breakat',\n+ list = 'flags',\n+ redraw = { 'all_windows' },\n+ scope = { 'global' },\n+ short_desc = N_('characters that may cause a line break'),\n+ type = 'string',\n+ varname = 'p_breakat',\n+ },\n+ {\n+ abbreviation = 'bri',\n+ defaults = { if_true = false },\n+ desc = [=[\n+ Every wrapped line will continue visually indented (same amount of\n+ space as the beginning of that line), thus preserving horizontal blocks\n+ of text.\n+ ]=],\n+ full_name = 'breakindent',\n+ redraw = { 'current_window' },\n+ scope = { 'window' },\n+ short_desc = N_('wrapped line repeats indent'),\n+ type = 'bool',\n+ },\n+ {\n+ abbreviation = 'briopt',\n+ alloced = true,\n+ cb = 'did_set_breakindentopt',\n+ defaults = { if_true = '' },\n+ deny_duplicates = true,\n+ desc = [=[\n+ Settings for 'breakindent'. It can consist of the following optional\n+ items and must be separated by a comma:\n+ \tmin:{n}\t Minimum text width that will be kept after\n+ \t\t applying 'breakindent', even if the resulting\n+ \t\t text should normally be narrower. This prevents\n+ \t\t text indented almost to the right window border\n+ \t\t occupying lot of vertical space when broken.\n+ \t\t (default: 20)\n+ \tshift:{n} After applying 'breakindent', the wrapped line's\n+ \t\t beginning will be shifted by the given number of\n+ \t\t characters. It permits dynamic French paragraph\n+ \t\t indentation (negative) or emphasizing the line\n+ \t\t continuation (positive).\n+ \t\t (default: 0)\n+ \tsbr\t Display the 'showbreak' value before applying the\n+ \t\t additional indent.\n+ \t\t (default: off)\n+ \tlist:{n} Adds an additional indent for lines that match a\n+ \t\t numbered or bulleted list (using the\n+ \t\t 'formatlistpat' setting).\n+ \tlist:-1\t Uses the length of a match with 'formatlistpat'\n+ \t\t for indentation.\n+ \t\t (default: 0)\n+ \tcolumn:{n} Indent at column {n}. Will overrule the other\n+ \t\t sub-options. Note: an additional indent may be\n+ \t\t added for the 'showbreak' setting.\n+ \t\t (default: off)\n+ ]=],\n+ full_name = 'breakindentopt',\n+ list = 'onecomma',\n+ redraw = { 'current_buffer' },\n+ scope = { 'window' },\n+ short_desc = N_(\"settings for 'breakindent'\"),\n+ type = 'string',\n+ },\n+ {\n+ abbreviation = 'bsdir',\n+ defaults = {\n+ if_true = '',\n+ doc = '\"last\"',\n },\n- cb='did_set_isopt'\n- },\n- {\n- full_name='iskeyword', abbreviation='isk',\n- short_desc=N_(\"characters included in keywords\"),\n- type='string', list='comma', scope={'buffer'},\n- deny_duplicates=true,\n- alloced=true,\n- varname='p_isk',\n- defaults={if_true=\"@,48-57,_,192-255\"},\n- cb='did_set_isopt'\n- },\n- {\n- full_name='isprint', abbreviation='isp',\n- short_desc=N_(\"printable characters\"),\n- type='string', list='comma', scope={'global'},\n- deny_duplicates=true,\n- redraw={'all_windows'},\n- varname='p_isp',\n- defaults={if_true=\"@,161-255\"},\n- cb='did_set_isopt'\n- },\n- {\n- full_name='joinspaces', abbreviation='js',\n- short_desc=N_(\"two spaces after a period with a join command\"),\n- type='bool', scope={'global'},\n- varname='p_js',\n- defaults={if_true=false}\n- },\n- {\n- full_name='jumpoptions', abbreviation='jop',\n- short_desc=N_(\"Controls the behavior of the jumplist\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- varname='p_jop',\n- defaults={if_true=''},\n- cb='did_set_jumpoptions'\n- },\n- {\n- full_name='keymap', abbreviation='kmp',\n- short_desc=N_(\"name of a keyboard mapping\"),\n- type='string', scope={'buffer'},\n- normal_fname_chars=true,\n- pri_mkrc=true,\n- alloced=true,\n- redraw={'statuslines', 'current_buffer'},\n- varname='p_keymap', pv_name='p_kmap',\n- defaults={if_true=\"\"},\n- cb='did_set_keymap'\n- },\n- {\n- full_name='keymodel', abbreviation='km',\n- short_desc=N_(\"enable starting/stopping selection with keys\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- varname='p_km',\n- defaults={if_true=\"\"},\n- cb='did_set_keymodel'\n- },\n- {\n- full_name='keywordprg', abbreviation='kp',\n- short_desc=N_(\"program to use for the \\\"K\\\" command\"),\n- type='string', scope={'global', 'buffer'},\n- secure=true,\n- expand=true,\n- varname='p_kp',\n- defaults={\n- if_true=\":Man\",\n- }\n- },\n- {\n- full_name='langmap', abbreviation='lmap',\n- short_desc=N_(\"alphabetic characters for other language mode\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- secure=true,\n- varname='p_langmap',\n- defaults={if_true=\"\"},\n- cb='did_set_langmap'\n- },\n- {\n- full_name='langmenu', abbreviation='lm',\n- short_desc=N_(\"language to be used for the menus\"),\n- type='string', scope={'global'},\n- normal_fname_chars=true,\n- varname='p_lm',\n- defaults={if_true=\"\"}\n- },\n- {\n- full_name='langnoremap', abbreviation='lnr',\n- short_desc=N_(\"do not apply 'langmap' to mapped characters\"),\n- type='bool', scope={'global'},\n- varname='p_lnr',\n- defaults={if_true=true},\n- cb='did_set_langnoremap'\n- },\n- {\n- full_name='langremap', abbreviation='lrm',\n- short_desc=N_('No description'),\n- type='bool', scope={'global'},\n- varname='p_lrm',\n- defaults={if_true=false},\n- cb='did_set_langremap'\n- },\n- {\n- full_name='laststatus', abbreviation='ls',\n- short_desc=N_(\"tells when last window has status lines\"),\n- type='number', scope={'global'},\n- redraw={'all_windows'},\n- varname='p_ls',\n- defaults={if_true=2},\n- cb='did_set_laststatus'\n- },\n- {\n- full_name='lazyredraw', abbreviation='lz',\n- short_desc=N_(\"don't redraw while executing macros\"),\n- type='bool', scope={'global'},\n- varname='p_lz',\n- defaults={if_true=false}\n- },\n- {\n- full_name='linebreak', abbreviation='lbr',\n- short_desc=N_(\"wrap long lines at a blank\"),\n- type='bool', scope={'window'},\n- redraw={'current_window'},\n- defaults={if_true=false}\n- },\n- {\n- full_name='lines',\n- short_desc=N_(\"of lines in the display\"),\n- type='number', scope={'global'},\n- no_mkrc=true,\n- varname='p_lines',\n- defaults={if_true=macros('DFLT_ROWS')}\n- },\n- {\n- full_name='linespace', abbreviation='lsp',\n- short_desc=N_(\"number of pixel lines to use between characters\"),\n- type='number', scope={'global'},\n- redraw={'ui_option'},\n- varname='p_linespace',\n- defaults={if_true=0}\n- },\n- {\n- full_name='lisp',\n- short_desc=N_(\"indenting for Lisp\"),\n- type='bool', scope={'buffer'},\n- varname='p_lisp',\n- defaults={if_true=false},\n- cb='did_set_lisp'\n- },\n- {\n- full_name='lispoptions', abbreviation='lop',\n- short_desc=N_(\"options for lisp indenting\"),\n- type='string', list='onecomma', scope={'buffer'},\n- deny_duplicates=true,\n- varname='p_lop', pv_name='p_lop',\n- defaults={if_true=''},\n- cb='did_set_lispoptions'\n- },\n- {\n- full_name='lispwords', abbreviation='lw',\n- short_desc=N_(\"words that change how lisp indenting works\"),\n- type='string', list='onecomma', scope={'global', 'buffer'},\n- deny_duplicates=true,\n- varname='p_lispwords', pv_name='p_lw',\n- defaults={if_true=macros('LISPWORD_VALUE')}\n- },\n- {\n- full_name='list',\n- short_desc=N_(\" and \"),\n- type='bool', scope={'window'},\n- redraw={'current_window'},\n- defaults={if_true=false}\n- },\n- {\n- full_name='listchars', abbreviation='lcs',\n- short_desc=N_(\"characters for displaying in list mode\"),\n- type='string', list='onecomma', scope={'global', 'window'},\n- deny_duplicates=true,\n- alloced=true,\n- redraw={'current_window'},\n- varname='p_lcs',\n- defaults={if_true=\"tab:> ,trail:-,nbsp:+\"},\n- cb='did_set_chars_option'\n- },\n- {\n- full_name='loadplugins', abbreviation='lpl',\n- short_desc=N_(\"load plugin scripts when starting up\"),\n- type='bool', scope={'global'},\n- varname='p_lpl',\n- defaults={if_true=true}\n- },\n- {\n- full_name='magic',\n- short_desc=N_(\"special characters in search patterns\"),\n- type='bool', scope={'global'},\n- varname='p_magic',\n- defaults={if_true=true}\n- },\n- {\n- full_name='makeef', abbreviation='mef',\n- short_desc=N_(\"name of the errorfile for \\\":make\\\"\"),\n- type='string', scope={'global'},\n- secure=true,\n- expand=true,\n- varname='p_mef',\n- defaults={if_true=\"\"}\n- },\n- {\n- full_name='makeencoding', abbreviation='menc',\n- short_desc=N_(\"Converts the output of external commands\"),\n- type='string', scope={'global', 'buffer'},\n- varname='p_menc',\n- defaults={if_true=\"\"},\n- cb='did_set_encoding'\n- },\n- {\n- full_name='makeprg', abbreviation='mp',\n- short_desc=N_(\"program to use for the \\\":make\\\" command\"),\n- type='string', scope={'global', 'buffer'},\n- secure=true,\n- expand=true,\n- varname='p_mp',\n- defaults={if_true=\"make\"}\n- },\n- {\n- full_name='matchpairs', abbreviation='mps',\n- short_desc=N_(\"pairs of characters that \\\"%\\\" can match\"),\n- type='string', list='onecomma', scope={'buffer'},\n- deny_duplicates=true,\n- alloced=true,\n- varname='p_mps',\n- defaults={if_true=\"(:),{:},[:]\"},\n- cb='did_set_matchpairs'\n- },\n- {\n- full_name='matchtime', abbreviation='mat',\n- short_desc=N_(\"tenths of a second to show matching paren\"),\n- type='number', scope={'global'},\n- varname='p_mat',\n- defaults={if_true=5}\n- },\n- {\n- full_name='maxcombine', abbreviation='mco',\n- short_desc=N_(\"maximum nr of combining characters displayed\"),\n- type='number', scope={'global'},\n- varname='p_mco',\n- defaults={if_true=6}\n- },\n- {\n- full_name='maxfuncdepth', abbreviation='mfd',\n- short_desc=N_(\"maximum recursive depth for user functions\"),\n- type='number', scope={'global'},\n- varname='p_mfd',\n- defaults={if_true=100}\n- },\n- {\n- full_name='maxmapdepth', abbreviation='mmd',\n- short_desc=N_(\"maximum recursive depth for mapping\"),\n- type='number', scope={'global'},\n- varname='p_mmd',\n- defaults={if_true=1000}\n- },\n- {\n- full_name='maxmempattern', abbreviation='mmp',\n- short_desc=N_(\"maximum memory (in Kbyte) used for pattern search\"),\n- type='number', scope={'global'},\n- varname='p_mmp',\n- defaults={if_true=1000}\n- },\n- {\n- full_name='menuitems', abbreviation='mis',\n- short_desc=N_(\"maximum number of items in a menu\"),\n- type='number', scope={'global'},\n- varname='p_mis',\n- defaults={if_true=25}\n- },\n- {\n- full_name='mkspellmem', abbreviation='msm',\n- short_desc=N_(\"memory used before |:mkspell| compresses the tree\"),\n- type='string', scope={'global'},\n- secure=true,\n- expand=true,\n- varname='p_msm',\n- defaults={if_true=\"460000,2000,500\"},\n- cb='did_set_mkspellmem'\n- },\n- {\n- full_name='modeline', abbreviation='ml',\n- short_desc=N_(\"recognize modelines at start or end of file\"),\n- type='bool', scope={'buffer'},\n- varname='p_ml',\n- defaults={if_true=true}\n- },\n- {\n- full_name='modelineexpr', abbreviation='mle',\n- short_desc=N_(\"allow some options to be set in modeline\"),\n- type='bool', scope={'global'},\n- secure=true,\n- varname='p_mle',\n- defaults={if_true=false}\n- },\n- {\n- full_name='modelines', abbreviation='mls',\n- short_desc=N_(\"number of lines checked for modelines\"),\n- type='number', scope={'global'},\n- varname='p_mls',\n- defaults={if_true=5}\n- },\n- {\n- full_name='modifiable', abbreviation='ma',\n- short_desc=N_(\"changes to the text are not possible\"),\n- type='bool', scope={'buffer'},\n- noglob=true,\n- varname='p_ma',\n- defaults={if_true=true},\n- cb='did_set_modifiable'\n- },\n- {\n- full_name='modified', abbreviation='mod',\n- short_desc=N_(\"buffer has been modified\"),\n- type='bool', scope={'buffer'},\n- no_mkrc=true,\n- redraw={'statuslines'},\n- varname='p_mod',\n- defaults={if_true=false},\n- cb='did_set_modified'\n- },\n- {\n- full_name='more',\n- short_desc=N_(\"listings when the whole screen is filled\"),\n- type='bool', scope={'global'},\n- varname='p_more',\n- defaults={if_true=true}\n- },\n- {\n- full_name='mouse',\n- short_desc=N_(\"the use of mouse clicks\"),\n- type='string', list='flags', scope={'global'},\n- varname='p_mouse',\n- defaults={if_true=\"nvi\"},\n- cb='did_set_mouse'\n- },\n- {\n- full_name='mousefocus', abbreviation='mousef',\n- short_desc=N_(\"keyboard focus follows the mouse\"),\n- type='bool', scope={'global'},\n- redraw={'ui_option'},\n- varname='p_mousef',\n- defaults={if_true=false}\n- },\n- {\n- full_name='mousehide', abbreviation='mh',\n- short_desc=N_(\"hide mouse pointer while typing\"),\n- type='bool', scope={'global'},\n- enable_if=false,\n- defaults={if_true=true}\n- },\n- {\n- full_name='mousemodel', abbreviation='mousem',\n- short_desc=N_(\"changes meaning of mouse buttons\"),\n- type='string', scope={'global'},\n- varname='p_mousem',\n- defaults={if_true=\"popup_setpos\"},\n- cb='did_set_mousemodel'\n- },\n- {\n- full_name='mousemoveevent', abbreviation='mousemev',\n- short_desc=N_(\"deliver mouse move events to input queue\"),\n- type='bool', scope={'global'},\n- redraw={'ui_option'},\n- varname='p_mousemev',\n- defaults={if_true=false}\n- },\n- {\n- full_name='mousescroll',\n- short_desc=N_(\"amount to scroll by when scrolling with a mouse\"),\n- type='string', list='comma', scope={'global'},\n- vi_def=true,\n- varname='p_mousescroll',\n- defaults={if_true=\"ver:3,hor:6\"},\n- cb='did_set_mousescroll'\n- },\n- {\n- full_name='mouseshape', abbreviation='mouses',\n- short_desc=N_(\"shape of the mouse pointer in different modes\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- enable_if=false,\n- },\n- {\n- full_name='mousetime', abbreviation='mouset',\n- short_desc=N_(\"max time between mouse double-click\"),\n- type='number', scope={'global'},\n- varname='p_mouset',\n- defaults={if_true=500}\n- },\n- {\n- full_name='nrformats', abbreviation='nf',\n- short_desc=N_(\"number formats recognized for CTRL-A command\"),\n- type='string', list='onecomma', scope={'buffer'},\n- deny_duplicates=true,\n- alloced=true,\n- varname='p_nf',\n- defaults={if_true=\"bin,hex\"},\n- cb='did_set_nrformats'\n- },\n- {\n- full_name='number', abbreviation='nu',\n- short_desc=N_(\"print the line number in front of each line\"),\n- type='bool', scope={'window'},\n- redraw={'current_window'},\n- defaults={if_true=false},\n- cb='did_set_number_relativenumber'\n- },\n- {\n- full_name='numberwidth', abbreviation='nuw',\n- short_desc=N_(\"number of columns used for the line number\"),\n- type='number', scope={'window'},\n- redraw={'current_window'},\n- defaults={if_true=4},\n- cb='did_set_numberwidth'\n- },\n- {\n- full_name='omnifunc', abbreviation='ofu',\n- short_desc=N_(\"function for filetype-specific completion\"),\n- type='string', scope={'buffer'},\n- secure=true,\n- alloced=true,\n- func=true,\n- varname='p_ofu',\n- defaults={if_true=\"\"},\n- cb='did_set_omnifunc'\n- },\n- {\n- full_name='opendevice', abbreviation='odev',\n- short_desc=N_(\"allow reading/writing devices on MS-Windows\"),\n- type='bool', scope={'global'},\n- enable_if=false,\n- defaults={if_true=false}\n- },\n- {\n- full_name='operatorfunc', abbreviation='opfunc',\n- short_desc=N_(\"function to be called for |g@| operator\"),\n- type='string', scope={'global'},\n- secure=true,\n- func=true,\n- varname='p_opfunc',\n- defaults={if_true=\"\"},\n- cb='did_set_operatorfunc'\n- },\n- {\n- full_name='packpath', abbreviation='pp',\n- short_desc=N_(\"list of directories used for packages\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- secure=true,\n- expand=true,\n- varname='p_pp',\n- defaults={if_true=''},\n- cb='did_set_runtimepackpath'\n- },\n- {\n- full_name='paragraphs', abbreviation='para',\n- short_desc=N_(\"nroff macros that separate paragraphs\"),\n- type='string', scope={'global'},\n- varname='p_para',\n- defaults={if_true=\"IPLPPPQPP TPHPLIPpLpItpplpipbp\"}\n- },\n- {\n- full_name='paste',\n- short_desc=N_(\"pasting text\"),\n- type='bool', scope={'global'},\n- pri_mkrc=true,\n- varname='p_paste',\n- defaults={if_true=false},\n- cb='did_set_paste'\n- },\n- {\n- full_name='pastetoggle', abbreviation='pt',\n- short_desc=N_(\"No description\"),\n- type='string', scope={'global'},\n- defaults={if_true=\"\"}\n- },\n- {\n- full_name='patchexpr', abbreviation='pex',\n- short_desc=N_(\"expression used to patch a file\"),\n- type='string', scope={'global'},\n- secure=true,\n- varname='p_pex',\n- defaults={if_true=\"\"},\n- cb='did_set_optexpr'\n- },\n- {\n- full_name='patchmode', abbreviation='pm',\n- short_desc=N_(\"keep the oldest version of a file\"),\n- type='string', scope={'global'},\n- normal_fname_chars=true,\n- varname='p_pm',\n- defaults={if_true=\"\"},\n- cb='did_set_backupext_or_patchmode'\n- },\n- {\n- full_name='path', abbreviation='pa',\n- short_desc=N_(\"list of directories searched with \\\"gf\\\" et.al.\"),\n- type='string', list='comma', scope={'global', 'buffer'},\n- deny_duplicates=true,\n- expand=true,\n- varname='p_path',\n- defaults={if_true=\".,,\"}\n- },\n- {\n- full_name='preserveindent', abbreviation='pi',\n- short_desc=N_(\"preserve the indent structure when reindenting\"),\n- type='bool', scope={'buffer'},\n- varname='p_pi',\n- defaults={if_true=false}\n- },\n- {\n- full_name='previewheight', abbreviation='pvh',\n- short_desc=N_(\"height of the preview window\"),\n- type='number', scope={'global'},\n- varname='p_pvh',\n- defaults={if_true=12}\n- },\n- {\n- full_name='previewwindow', abbreviation='pvw',\n- short_desc=N_(\"identifies the preview window\"),\n- type='bool', scope={'window'},\n- noglob=true,\n- redraw={'statuslines'},\n- defaults={if_true=false},\n- cb='did_set_previewwindow'\n- },\n- {\n- full_name='prompt',\n- short_desc=N_(\"enable prompt in Ex mode\"),\n- type='bool', scope={'global'},\n- varname='p_force_on',\n- defaults={if_true=true}\n- },\n- {\n- full_name='pumblend', abbreviation='pb',\n- short_desc=N_(\"Controls transparency level of popup menu\"),\n- type='number', scope={'global'},\n- redraw={'ui_option'},\n- varname='p_pb',\n- defaults={if_true=0},\n- cb='did_set_pumblend'\n- },\n- {\n- full_name='pumheight', abbreviation='ph',\n- short_desc=N_(\"maximum height of the popup menu\"),\n- type='number', scope={'global'},\n- varname='p_ph',\n- defaults={if_true=0}\n- },\n- {\n- full_name='pumwidth', abbreviation='pw',\n- short_desc=N_(\"minimum width of the popup menu\"),\n- type='number', scope={'global'},\n- varname='p_pw',\n- defaults={if_true=15}\n- },\n- {\n- full_name='pyxversion', abbreviation='pyx',\n- short_desc=N_(\"selects default python version to use\"),\n- type='number', scope={'global'},\n- secure=true,\n- varname='p_pyx',\n- defaults={if_true=3}\n- },\n- {\n- full_name='quickfixtextfunc', abbreviation='qftf',\n- short_desc=N_(\"customize the quickfix window\"),\n- type='string', scope={'global'},\n- secure=true,\n- func=true,\n- varname='p_qftf',\n- defaults={if_true=\"\"},\n- cb='did_set_quickfixtextfunc'\n- },\n- {\n- full_name='quoteescape', abbreviation='qe',\n- short_desc=N_(\"escape characters used in a string\"),\n- type='string', scope={'buffer'},\n- alloced=true,\n- varname='p_qe',\n- defaults={if_true=\"\\\\\"}\n- },\n- {\n- full_name='readonly', abbreviation='ro',\n- short_desc=N_(\"disallow writing the buffer\"),\n- type='bool', scope={'buffer'},\n- noglob=true,\n- redraw={'statuslines'},\n- varname='p_ro',\n- defaults={if_true=false},\n- cb='did_set_readonly'\n- },\n- {\n- full_name='redrawdebug', abbreviation='rdb',\n- short_desc=N_(\"Changes the way redrawing works (debug)\"),\n- type='string', list='onecomma', scope={'global'},\n- varname='p_rdb',\n- defaults={if_true=''},\n- cb='did_set_redrawdebug'\n- },\n- {\n- full_name='redrawtime', abbreviation='rdt',\n- short_desc=N_(\"timeout for 'hlsearch' and |:match| highlighting\"),\n- type='number', scope={'global'},\n- varname='p_rdt',\n- defaults={if_true=2000}\n- },\n- {\n- full_name='regexpengine', abbreviation='re',\n- short_desc=N_(\"default regexp engine to use\"),\n- type='number', scope={'global'},\n- varname='p_re',\n- defaults={if_true=0}\n- },\n- {\n- full_name='relativenumber', abbreviation='rnu',\n- short_desc=N_(\"show relative line number in front of each line\"),\n- type='bool', scope={'window'},\n- redraw={'current_window'},\n- defaults={if_true=false},\n- cb='did_set_number_relativenumber'\n- },\n- {\n- full_name='remap',\n- short_desc=N_(\"No description\"),\n- type='bool', scope={'global'},\n- varname='p_force_on',\n- defaults={if_true=true}\n- },\n- {\n- full_name='report',\n- short_desc=N_(\"for reporting nr. of lines changed\"),\n- type='number', scope={'global'},\n- varname='p_report',\n- defaults={if_true=2}\n- },\n- {\n- full_name='revins', abbreviation='ri',\n- short_desc=N_(\"inserting characters will work backwards\"),\n- type='bool', scope={'global'},\n- varname='p_ri',\n- defaults={if_true=false}\n- },\n- {\n- full_name='rightleft', abbreviation='rl',\n- short_desc=N_(\"window is right-to-left oriented\"),\n- type='bool', scope={'window'},\n- redraw={'current_window'},\n- defaults={if_true=false}\n- },\n- {\n- full_name='rightleftcmd', abbreviation='rlc',\n- short_desc=N_(\"commands for which editing works right-to-left\"),\n- type='string', scope={'window'},\n- alloced=true,\n- redraw={'current_window'},\n- defaults={if_true=\"search\"},\n- cb='did_set_rightleftcmd'\n- },\n- {\n- full_name='ruler', abbreviation='ru',\n- short_desc=N_(\"show cursor line and column in the status line\"),\n- type='bool', scope={'global'},\n- redraw={'statuslines'},\n- varname='p_ru',\n- defaults={if_true=true}\n- },\n- {\n- full_name='rulerformat', abbreviation='ruf',\n- short_desc=N_(\"custom format for the ruler\"),\n- type='string', scope={'global'},\n- alloced=true,\n- modelineexpr=true,\n- redraw={'statuslines'},\n- varname='p_ruf',\n- defaults={if_true=\"\"},\n- cb='did_set_rulerformat'\n- },\n- {\n- full_name='runtimepath', abbreviation='rtp',\n- short_desc=N_(\"list of directories used for runtime files\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- secure=true,\n- expand='nodefault',\n- varname='p_rtp',\n- defaults={if_true=''},\n- cb='did_set_runtimepackpath'\n- },\n- {\n- full_name='scroll', abbreviation='scr',\n- short_desc=N_(\"lines to scroll with CTRL-U and CTRL-D\"),\n- type='number', scope={'window'},\n- no_mkrc=true,\n- pv_name='p_scroll',\n- defaults={if_true=0}\n- },\n- {\n- full_name='smoothscroll', abbreviation='sms',\n- short_desc=N_(\"scroll by screen lines when 'wrap' is set\"),\n- type='bool', scope={'window'},\n- pv_name='p_sms',\n- redraw={'current_window'},\n- defaults={if_true=0},\n- cb='did_set_smoothscroll'\n- },\n- {\n- full_name='scrollback', abbreviation='scbk',\n- short_desc=N_(\"lines to scroll with CTRL-U and CTRL-D\"),\n- type='number', scope={'buffer'},\n- varname='p_scbk',\n- redraw={'current_buffer'},\n- defaults={if_true=-1},\n- cb='did_set_scrollback'\n- },\n- {\n- full_name='scrollbind', abbreviation='scb',\n- short_desc=N_(\"scroll in window as other windows scroll\"),\n- type='bool', scope={'window'},\n- pv_name='p_scbind',\n- defaults={if_true=false},\n- cb='did_set_scrollbind'\n- },\n- {\n- full_name='scrolljump', abbreviation='sj',\n- short_desc=N_(\"minimum number of lines to scroll\"),\n- type='number', scope={'global'},\n- varname='p_sj',\n- defaults={if_true=1}\n- },\n- {\n- full_name='scrolloff', abbreviation='so',\n- short_desc=N_(\"minimum nr. of lines above and below cursor\"),\n- type='number', scope={'global', 'window'},\n- varname='p_so',\n- defaults={if_true=0}\n- },\n- {\n- full_name='scrollopt', abbreviation='sbo',\n- short_desc=N_(\"how 'scrollbind' should behave\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- varname='p_sbo',\n- defaults={if_true=\"ver,jump\"},\n- cb='did_set_scrollopt'\n- },\n- {\n- full_name='sections', abbreviation='sect',\n- short_desc=N_(\"nroff macros that separate sections\"),\n- type='string', scope={'global'},\n- varname='p_sections',\n- defaults={if_true=\"SHNHH HUnhsh\"}\n- },\n- {\n- full_name='secure',\n- short_desc=N_(\"No description\"),\n- type='bool', scope={'global'},\n- secure=true,\n- varname='p_secure',\n- defaults={if_true=false}\n- },\n- {\n- full_name='selection', abbreviation='sel',\n- short_desc=N_(\"what type of selection to use\"),\n- type='string', scope={'global'},\n- varname='p_sel',\n- defaults={if_true=\"inclusive\"},\n- cb='did_set_selection'\n- },\n- {\n- full_name='selectmode', abbreviation='slm',\n- short_desc=N_(\"when to use Select mode instead of Visual mode\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- varname='p_slm',\n- defaults={if_true=\"\"},\n- cb='did_set_selectmode'\n- },\n- {\n- full_name='sessionoptions', abbreviation='ssop',\n- short_desc=N_(\"options for |:mksession|\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- varname='p_ssop',\n- defaults={if_true=\"blank,buffers,curdir,folds,help,tabpages,winsize,terminal\"},\n- cb='did_set_sessionoptions',\n- },\n- {\n- full_name='shada', abbreviation='sd',\n- short_desc=N_(\"use .shada file upon startup and exiting\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- secure=true,\n- varname='p_shada',\n- defaults={if_true=\"!,'100,<50,s10,h\"}\n- },\n- {\n- full_name='shadafile', abbreviation='sdf',\n- short_desc=N_(\"overrides the filename used for shada\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- secure=true,\n- expand=true,\n- varname='p_shadafile',\n- defaults={if_true=\"\"}\n- },\n- {\n- full_name='shell', abbreviation='sh',\n- short_desc=N_(\"name of shell to use for external commands\"),\n- type='string', scope={'global'},\n- secure=true,\n- expand=true,\n- varname='p_sh',\n- defaults={\n- condition='MSWIN',\n- if_true=\"cmd.exe\",\n- if_false=\"sh\"\n- }\n- },\n- {\n- full_name='shellcmdflag', abbreviation='shcf',\n- short_desc=N_(\"flag to shell to execute one command\"),\n- type='string', scope={'global'},\n- secure=true,\n- varname='p_shcf',\n- defaults={\n- condition='MSWIN',\n- if_true=\"/s /c\",\n- if_false=\"-c\"\n- }\n- },\n- {\n- full_name='shellpipe', abbreviation='sp',\n- short_desc=N_(\"string to put output of \\\":make\\\" in error file\"),\n- type='string', scope={'global'},\n- secure=true,\n- varname='p_sp',\n- defaults={\n- condition='MSWIN',\n- if_true=\"2>&1| tee\",\n- if_false=\"| tee\",\n- }\n- },\n- {\n- full_name='shellquote', abbreviation='shq',\n- short_desc=N_(\"quote character(s) for around shell command\"),\n- type='string', scope={'global'},\n- secure=true,\n- varname='p_shq',\n- defaults={if_true=\"\"}\n- },\n- {\n- full_name='shellredir', abbreviation='srr',\n- short_desc=N_(\"string to put output of filter in a temp file\"),\n- type='string', scope={'global'},\n- secure=true,\n- varname='p_srr',\n- defaults={\n- condition='MSWIN',\n- if_true=\">%s 2>&1\",\n- if_false=\">\"\n- }\n- },\n- {\n- full_name='shellslash', abbreviation='ssl',\n- short_desc=N_(\"use forward slash for shell file names\"),\n- type='bool', scope={'global'},\n- varname='p_ssl',\n- enable_if='BACKSLASH_IN_FILENAME',\n- defaults={if_true=false},\n- cb='did_set_shellslash'\n- },\n- {\n- full_name='shelltemp', abbreviation='stmp',\n- short_desc=N_(\"whether to use a temp file for shell commands\"),\n- type='bool', scope={'global'},\n- varname='p_stmp',\n- defaults={if_true=true}\n- },\n- {\n- full_name='shellxquote', abbreviation='sxq',\n- short_desc=N_(\"like 'shellquote', but include redirection\"),\n- type='string', scope={'global'},\n- secure=true,\n- varname='p_sxq',\n- defaults={\n- condition='MSWIN',\n- if_true=\"\\\"\",\n- if_false=\"\",\n- }\n- },\n- {\n- full_name='shellxescape', abbreviation='sxe',\n- short_desc=N_(\"characters to escape when 'shellxquote' is (\"),\n- type='string', scope={'global'},\n- secure=true,\n- varname='p_sxe',\n- defaults={if_true=\"\"}\n- },\n- {\n- full_name='shiftround', abbreviation='sr',\n- short_desc=N_(\"round indent to multiple of shiftwidth\"),\n- type='bool', scope={'global'},\n- varname='p_sr',\n- defaults={if_true=false}\n- },\n- {\n- full_name='shiftwidth', abbreviation='sw',\n- short_desc=N_(\"number of spaces to use for (auto)indent step\"),\n- type='number', scope={'buffer'},\n- varname='p_sw',\n- defaults={if_true=8},\n- cb='did_set_shiftwidth_tabstop'\n- },\n- {\n- full_name='shortmess', abbreviation='shm',\n- short_desc=N_(\"list of flags, reduce length of messages\"),\n- type='string', list='flags', scope={'global'},\n- varname='p_shm',\n- defaults={if_true=\"filnxtToOCF\"},\n- cb='did_set_shortmess'\n- },\n- {\n- full_name='showbreak', abbreviation='sbr',\n- short_desc=N_(\"string to use at the start of wrapped lines\"),\n- type='string', scope={'global', 'window'},\n- redraw={'all_windows'},\n- varname='p_sbr',\n- defaults={if_true=\"\"},\n- cb='did_set_showbreak'\n- },\n- {\n- full_name='showcmd', abbreviation='sc',\n- short_desc=N_(\"show (partial) command in status line\"),\n- type='bool', scope={'global'},\n- varname='p_sc',\n- defaults={if_true=true}\n- },\n- {\n- full_name='showcmdloc', abbreviation='sloc',\n- short_desc=N_(\"change location of partial command\"),\n- type='string', scope={'global'},\n- varname='p_sloc',\n- defaults={if_true=\"last\"},\n- cb='did_set_showcmdloc'\n- },\n- {\n- full_name='showfulltag', abbreviation='sft',\n- short_desc=N_(\"show full tag pattern when completing tag\"),\n- type='bool', scope={'global'},\n- varname='p_sft',\n- defaults={if_true=false}\n- },\n- {\n- full_name='showmatch', abbreviation='sm',\n- short_desc=N_(\"briefly jump to matching bracket if insert one\"),\n- type='bool', scope={'global'},\n- varname='p_sm',\n- defaults={if_true=false}\n- },\n- {\n- full_name='showmode', abbreviation='smd',\n- short_desc=N_(\"message on status line to show current mode\"),\n- type='bool', scope={'global'},\n- varname='p_smd',\n- defaults={if_true=true}\n- },\n- {\n- full_name='showtabline', abbreviation='stal',\n- short_desc=N_(\"tells when the tab pages line is displayed\"),\n- type='number', scope={'global'},\n- redraw={'all_windows', 'ui_option'},\n- varname='p_stal',\n- defaults={if_true=1},\n- cb='did_set_showtabline'\n- },\n- {\n- full_name='sidescroll', abbreviation='ss',\n- short_desc=N_(\"minimum number of columns to scroll horizontal\"),\n- type='number', scope={'global'},\n- varname='p_ss',\n- defaults={if_true=1}\n- },\n- {\n- full_name='sidescrolloff', abbreviation='siso',\n- short_desc=N_(\"min. nr. of columns to left and right of cursor\"),\n- type='number', scope={'global', 'window'},\n- varname='p_siso',\n- defaults={if_true=0}\n- },\n- {\n- full_name='signcolumn', abbreviation='scl',\n- short_desc=N_(\"when to display the sign column\"),\n- type='string', scope={'window'},\n- alloced=true,\n- redraw={'current_window'},\n- defaults={if_true=\"auto\"},\n- cb='did_set_signcolumn'\n- },\n- {\n- full_name='smartcase', abbreviation='scs',\n- short_desc=N_(\"no ignore case when pattern has uppercase\"),\n- type='bool', scope={'global'},\n- varname='p_scs',\n- defaults={if_true=false}\n- },\n- {\n- full_name='smartindent', abbreviation='si',\n- short_desc=N_(\"smart autoindenting for C programs\"),\n- type='bool', scope={'buffer'},\n- varname='p_si',\n- defaults={if_true=false}\n- },\n- {\n- full_name='smarttab', abbreviation='sta',\n- short_desc=N_(\"use 'shiftwidth' when inserting \"),\n- type='bool', scope={'global'},\n- varname='p_sta',\n- defaults={if_true=true}\n- },\n- {\n- full_name='softtabstop', abbreviation='sts',\n- short_desc=N_(\"number of spaces that uses while editing\"),\n- type='number', scope={'buffer'},\n- varname='p_sts',\n- defaults={if_true=0}\n- },\n- {\n- full_name='spell',\n- short_desc=N_(\"spell checking\"),\n- type='bool', scope={'window'},\n- redraw={'current_window'},\n- defaults={if_true=false},\n- cb='did_set_spell'\n- },\n- {\n- full_name='spellcapcheck', abbreviation='spc',\n- short_desc=N_(\"pattern to locate end of a sentence\"),\n- type='string', scope={'buffer'},\n- alloced=true,\n- redraw={'current_buffer'},\n- varname='p_spc',\n- defaults={if_true=\"[.?!]\\\\_[\\\\])'\\\"\t ]\\\\+\"},\n- cb='did_set_spellcapcheck'\n- },\n- {\n- full_name='spellfile', abbreviation='spf',\n- short_desc=N_(\"files where |zg| and |zw| store words\"),\n- type='string', list='onecomma', scope={'buffer'},\n- deny_duplicates=true,\n- secure=true,\n- alloced=true,\n- expand=true,\n- varname='p_spf',\n- defaults={if_true=\"\"},\n- cb='did_set_spellfile'\n- },\n- {\n- full_name='spelllang', abbreviation='spl',\n- short_desc=N_(\"language(s) to do spell checking for\"),\n- type='string', list='onecomma', scope={'buffer'},\n- deny_duplicates=true,\n- alloced=true,\n- expand=true,\n- redraw={'current_buffer'},\n- varname='p_spl',\n- defaults={if_true=\"en\"},\n- cb='did_set_spelllang'\n- },\n- {\n- full_name='spellsuggest', abbreviation='sps',\n- short_desc=N_(\"method(s) used to suggest spelling corrections\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- secure=true,\n- expand=true,\n- varname='p_sps',\n- defaults={if_true=\"best\"},\n- cb='did_set_spellsuggest'\n- },\n- {\n- full_name='spelloptions', abbreviation='spo',\n- type='string', list='onecomma', scope={'buffer'},\n- deny_duplicates=true,\n- secure=true,\n- expand=true,\n- varname='p_spo',\n- redraw={'current_buffer'},\n- defaults={if_true=\"\"},\n- cb='did_set_spelloptions'\n- },\n- {\n- full_name='splitbelow', abbreviation='sb',\n- short_desc=N_(\"new window from split is below the current one\"),\n- type='bool', scope={'global'},\n- varname='p_sb',\n- defaults={if_true=false}\n- },\n- {\n- full_name='splitkeep', abbreviation='spk',\n- short_desc=N_(\"determines scroll behavior for split windows\"),\n- type='string', scope={'global'},\n- varname='p_spk',\n- defaults={if_true='cursor'},\n- cb='did_set_splitkeep'\n- },\n- {\n- full_name='splitright', abbreviation='spr',\n- short_desc=N_(\"new window is put right of the current one\"),\n- type='bool', scope={'global'},\n- varname='p_spr',\n- defaults={if_true=false}\n- },\n- {\n- full_name='startofline', abbreviation='sol',\n- short_desc=N_(\"commands move cursor to first non-blank in line\"),\n- type='bool', scope={'global'},\n- vim=false,\n- varname='p_sol',\n- defaults={if_true=false}\n- },\n- {\n- full_name='statuscolumn', abbreviation='stc',\n- short_desc=N_(\"custom format for the status column\"),\n- type='string', scope={'window'},\n- redraw={'current_window'},\n- secure=true,\n- alloced=true,\n- defaults={if_true=\"\"},\n- cb='did_set_statuscolumn'\n- },\n- {\n- full_name='statusline', abbreviation='stl',\n- short_desc=N_(\"custom format for the status line\"),\n- type='string', scope={'global', 'window'},\n- alloced=true,\n- modelineexpr=true,\n- redraw={'statuslines'},\n- varname='p_stl',\n- defaults={if_true=\"\"},\n- cb='did_set_statusline'\n- },\n- {\n- full_name='suffixes', abbreviation='su',\n- short_desc=N_(\"suffixes that are ignored with multiple match\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- varname='p_su',\n- defaults={if_true=\".bak,~,.o,.h,.info,.swp,.obj\"}\n- },\n- {\n- full_name='suffixesadd', abbreviation='sua',\n- short_desc=N_(\"suffixes added when searching for a file\"),\n- type='string', list='onecomma', scope={'buffer'},\n- deny_duplicates=true,\n- alloced=true,\n- varname='p_sua',\n- defaults={if_true=\"\"}\n- },\n- {\n- full_name='swapfile', abbreviation='swf',\n- short_desc=N_(\"whether to use a swapfile for a buffer\"),\n- type='bool', scope={'buffer'},\n- redraw={'statuslines'},\n- varname='p_swf',\n- defaults={if_true=true},\n- cb='did_set_swapfile'\n- },\n- {\n- full_name='switchbuf', abbreviation='swb',\n- short_desc=N_(\"sets behavior when switching to another buffer\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- varname='p_swb',\n- defaults={if_true=\"uselast\"},\n- cb='did_set_switchbuf'\n- },\n- {\n- full_name='synmaxcol', abbreviation='smc',\n- short_desc=N_(\"maximum column to find syntax items\"),\n- type='number', scope={'buffer'},\n- redraw={'current_buffer'},\n- varname='p_smc',\n- defaults={if_true=3000}\n- },\n- {\n- full_name='syntax', abbreviation='syn',\n- short_desc=N_(\"syntax to be loaded for current buffer\"),\n- type='string', scope={'buffer'},\n- noglob=true,\n- normal_fname_chars=true,\n- alloced=true,\n- varname='p_syn',\n- defaults={if_true=\"\"},\n- cb='did_set_filetype_or_syntax'\n- },\n- {\n- full_name='tagfunc', abbreviation='tfu',\n- short_desc=N_(\"function used to perform tag searches\"),\n- type='string', scope={'buffer'},\n- secure=true,\n- func=true,\n- varname='p_tfu',\n- defaults={if_true=\"\"},\n- cb='did_set_tagfunc'\n- },\n- {\n- full_name='tabline', abbreviation='tal',\n- short_desc=N_(\"custom format for the console tab pages line\"),\n- type='string', scope={'global'},\n- modelineexpr=true,\n- redraw={'tabline'},\n- varname='p_tal',\n- defaults={if_true=\"\"},\n- cb='did_set_tabline'\n- },\n- {\n- full_name='tabpagemax', abbreviation='tpm',\n- short_desc=N_(\"maximum number of tab pages for |-p| and \\\"tab all\\\"\"),\n- type='number', scope={'global'},\n- varname='p_tpm',\n- defaults={if_true=50}\n- },\n- {\n- full_name='tabstop', abbreviation='ts',\n- short_desc=N_(\"number of spaces that in file uses\"),\n- type='number', scope={'buffer'},\n- redraw={'current_buffer'},\n- varname='p_ts',\n- defaults={if_true=8},\n- cb='did_set_shiftwidth_tabstop'\n- },\n- {\n- full_name='tagbsearch', abbreviation='tbs',\n- short_desc=N_(\"use binary searching in tags files\"),\n- type='bool', scope={'global'},\n- varname='p_tbs',\n- defaults={if_true=true}\n- },\n- {\n- full_name='tagcase', abbreviation='tc',\n- short_desc=N_(\"how to handle case when searching in tags files\"),\n- type='string', scope={'global', 'buffer'},\n- varname='p_tc',\n- defaults={if_true=\"followic\"},\n- cb='did_set_tagcase'\n- },\n- {\n- full_name='taglength', abbreviation='tl',\n- short_desc=N_(\"number of significant characters for a tag\"),\n- type='number', scope={'global'},\n- varname='p_tl',\n- defaults={if_true=0}\n- },\n- {\n- full_name='tagrelative', abbreviation='tr',\n- short_desc=N_(\"file names in tag file are relative\"),\n- type='bool', scope={'global'},\n- varname='p_tr',\n- defaults={if_true=true}\n- },\n- {\n- full_name='tags', abbreviation='tag',\n- short_desc=N_(\"list of file names used by the tag command\"),\n- type='string', list='onecomma', scope={'global', 'buffer'},\n- deny_duplicates=true,\n- expand=true,\n- varname='p_tags',\n- defaults={if_true=\"./tags;,tags\"}\n- },\n- {\n- full_name='tagstack', abbreviation='tgst',\n- short_desc=N_(\"push tags onto the tag stack\"),\n- type='bool', scope={'global'},\n- varname='p_tgst',\n- defaults={if_true=true}\n- },\n- {\n- full_name='termbidi', abbreviation='tbidi',\n- short_desc=N_(\"terminal takes care of bi-directionality\"),\n- type='bool', scope={'global'},\n- varname='p_tbidi',\n- defaults={if_true=false}\n- },\n- {\n- full_name='termencoding', abbreviation='tenc',\n- short_desc=N_(\"Terminal encoding\"),\n- type='string', scope={'global'},\n- defaults={if_true=\"\"}\n- },\n- {\n- full_name='termguicolors', abbreviation='tgc',\n- short_desc=N_(\"Terminal true color support\"),\n- type='bool', scope={'global'},\n- redraw={'ui_option'},\n- varname='p_tgc',\n- defaults={if_true=false}\n- },\n- {\n- full_name='termpastefilter', abbreviation='tpf',\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- varname='p_tpf',\n- defaults={if_true=\"BS,HT,ESC,DEL\"},\n- cb='did_set_termpastefilter'\n- },\n- {\n- full_name='terse',\n- short_desc=N_(\"No description\"),\n- type='bool', scope={'global'},\n- varname='p_force_off',\n- defaults={if_true=false}\n- },\n- {\n- full_name='textwidth', abbreviation='tw',\n- short_desc=N_(\"maximum width of text that is being inserted\"),\n- type='number', scope={'buffer'},\n- redraw={'current_buffer'},\n- varname='p_tw',\n- defaults={if_true=0},\n- cb='did_set_textwidth'\n- },\n- {\n- full_name='thesaurus', abbreviation='tsr',\n- short_desc=N_(\"list of thesaurus files for keyword completion\"),\n- type='string', list='onecomma', scope={'global', 'buffer'},\n- deny_duplicates=true,\n- normal_dname_chars=true,\n- expand=true,\n- varname='p_tsr',\n- defaults={if_true=\"\"}\n- },\n- {\n- full_name='thesaurusfunc', abbreviation='tsrfu',\n- short_desc=N_(\"function used for thesaurus completion\"),\n- type='string', scope={'global', 'buffer'},\n- secure=true,\n- alloced=true,\n- func=true,\n- varname='p_tsrfu',\n- defaults={if_true=\"\"},\n- cb='did_set_thesaurusfunc'\n- },\n- {\n- full_name='tildeop', abbreviation='top',\n- short_desc=N_(\"tilde command \\\"~\\\" behaves like an operator\"),\n- type='bool', scope={'global'},\n- varname='p_to',\n- defaults={if_true=false}\n- },\n- {\n- full_name='timeout', abbreviation='to',\n- short_desc=N_(\"time out on mappings and key codes\"),\n- type='bool', scope={'global'},\n- varname='p_timeout',\n- defaults={if_true=true}\n- },\n- {\n- full_name='timeoutlen', abbreviation='tm',\n- short_desc=N_(\"time out time in milliseconds\"),\n- type='number', scope={'global'},\n- varname='p_tm',\n- defaults={if_true=1000}\n- },\n- {\n- full_name='title',\n- short_desc=N_(\"Vim set the title of the window\"),\n- type='bool', scope={'global'},\n- varname='p_title',\n- defaults={if_true=false},\n- cb='did_set_title_icon'\n- },\n- {\n- full_name='titlelen',\n- short_desc=N_(\"of 'columns' used for window title\"),\n- type='number', scope={'global'},\n- varname='p_titlelen',\n- defaults={if_true=85},\n- cb='did_set_titlelen'\n- },\n- {\n- full_name='titleold',\n- short_desc=N_(\"title, restored when exiting\"),\n- type='string', scope={'global'},\n- secure=true,\n- no_mkrc=true,\n- varname='p_titleold',\n- defaults={if_true=\"\"}\n- },\n- {\n- full_name='titlestring',\n- short_desc=N_(\"to use for the Vim window title\"),\n- type='string', scope={'global'},\n- modelineexpr=true,\n- varname='p_titlestring',\n- defaults={if_true=\"\"},\n- cb='did_set_titlestring'\n- },\n- {\n- full_name='ttimeout',\n- short_desc=N_(\"out on mappings\"),\n- type='bool', scope={'global'},\n- redraw={'ui_option'},\n- varname='p_ttimeout',\n- defaults={if_true=true}\n- },\n- {\n- full_name='ttimeoutlen', abbreviation='ttm',\n- short_desc=N_(\"time out time for key codes in milliseconds\"),\n- type='number', scope={'global'},\n- redraw={'ui_option'},\n- varname='p_ttm',\n- defaults={if_true=50}\n- },\n- {\n- full_name='ttyfast', abbreviation='tf',\n- short_desc=N_(\"No description\"),\n- type='bool', scope={'global'},\n- no_mkrc=true,\n- varname='p_force_on',\n- defaults={if_true=true}\n- },\n- {\n- full_name='undodir', abbreviation='udir',\n- short_desc=N_(\"where to store undo files\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- secure=true,\n- expand='nodefault',\n- varname='p_udir',\n- defaults={if_true=''}\n- },\n- {\n- full_name='undofile', abbreviation='udf',\n- short_desc=N_(\"save undo information in a file\"),\n- type='bool', scope={'buffer'},\n- varname='p_udf',\n- defaults={if_true=false},\n- cb='did_set_undofile'\n- },\n- {\n- full_name='undolevels', abbreviation='ul',\n- short_desc=N_(\"maximum number of changes that can be undone\"),\n- type='number', scope={'global', 'buffer'},\n- varname='p_ul',\n- defaults={if_true=1000},\n- cb='did_set_undolevels'\n- },\n- {\n- full_name='undoreload', abbreviation='ur',\n- short_desc=N_(\"max nr of lines to save for undo on a buffer reload\"),\n- type='number', scope={'global'},\n- varname='p_ur',\n- defaults={if_true=10000}\n- },\n- {\n- full_name='updatecount', abbreviation='uc',\n- short_desc=N_(\"after this many characters flush swap file\"),\n- type='number', scope={'global'},\n- varname='p_uc',\n- defaults={if_true=200},\n- cb='did_set_updatecount'\n- },\n- {\n- full_name='updatetime', abbreviation='ut',\n- short_desc=N_(\"after this many milliseconds flush swap file\"),\n- type='number', scope={'global'},\n- varname='p_ut',\n- defaults={if_true=4000}\n- },\n- {\n- full_name='varsofttabstop', abbreviation='vsts',\n- short_desc=N_(\"list of numbers of spaces that uses while editing\"),\n- type='string', list='comma', scope={'buffer'},\n- varname='p_vsts',\n- defaults={if_true=\"\"},\n- cb='did_set_varsofttabstop'\n- },\n- {\n- full_name='vartabstop', abbreviation='vts',\n- short_desc=N_(\"list of numbers of spaces that in file uses\"),\n- type='string', list='comma', scope={'buffer'},\n- varname='p_vts',\n- redraw={'current_buffer'},\n- defaults={if_true=\"\"},\n- cb='did_set_vartabstop'\n- },\n- {\n- full_name='verbose', abbreviation='vbs',\n- short_desc=N_(\"give informative messages\"),\n- type='number', scope={'global'},\n- varname='p_verbose', redraw={'ui_option'},\n- defaults={if_true=0}\n- },\n- {\n- full_name='verbosefile', abbreviation='vfile',\n- short_desc=N_(\"file to write messages in\"),\n- type='string', scope={'global'},\n- secure=true,\n- expand=true,\n- varname='p_vfile',\n- defaults={if_true=\"\"},\n- cb='did_set_verbosefile'\n- },\n- {\n- full_name='viewdir', abbreviation='vdir',\n- short_desc=N_(\"directory where to store files with :mkview\"),\n- type='string', scope={'global'},\n- secure=true,\n- expand='nodefault',\n- varname='p_vdir',\n- defaults={if_true=''}\n- },\n- {\n- full_name='viewoptions', abbreviation='vop',\n- short_desc=N_(\"specifies what to save for :mkview\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- varname='p_vop',\n- defaults={if_true=\"folds,cursor,curdir\"},\n- cb='did_set_viewoptions'\n- },\n- {\n- -- Alias for \"shada\".\n- full_name='viminfo', abbreviation='vi',\n- short_desc=N_(\"Alias for shada\"),\n- type='string', scope={'global'}, nodefault=true,\n- },\n- {\n- -- Alias for \"shadafile\".\n- full_name='viminfofile', abbreviation='vif',\n- short_desc=N_(\"Alias for shadafile instead\"),\n- type='string', scope={'global'}, nodefault=true,\n- },\n- {\n- full_name='virtualedit', abbreviation='ve',\n- short_desc=N_(\"when to use virtual editing\"),\n- type='string', list='onecomma', scope={'global', 'window'},\n- deny_duplicates=true,\n- redraw={'curswant'},\n- varname='p_ve',\n- defaults={if_true=\"\"},\n- cb='did_set_virtualedit'\n- },\n- {\n- full_name='visualbell', abbreviation='vb',\n- short_desc=N_(\"use visual bell instead of beeping\"),\n- type='bool', scope={'global'},\n- varname='p_vb',\n- defaults={if_true=false}\n- },\n- {\n- full_name='warn',\n- short_desc=N_(\"for shell command when buffer was changed\"),\n- type='bool', scope={'global'},\n- varname='p_warn',\n- defaults={if_true=true}\n- },\n- {\n- full_name='whichwrap', abbreviation='ww',\n- short_desc=N_(\"allow specified keys to cross line boundaries\"),\n- type='string', list='flagscomma', scope={'global'},\n- varname='p_ww',\n- defaults={if_true=\"b,s\"},\n- cb='did_set_whichwrap'\n- },\n- {\n- full_name='wildchar', abbreviation='wc',\n- short_desc=N_(\"command-line character for wildcard expansion\"),\n- type='number', scope={'global'},\n- varname='p_wc',\n- defaults={if_true=imacros('TAB')}\n- },\n- {\n- full_name='wildcharm', abbreviation='wcm',\n- short_desc=N_(\"like 'wildchar' but also works when mapped\"),\n- type='number', scope={'global'},\n- varname='p_wcm',\n- defaults={if_true=0}\n- },\n- {\n- full_name='wildignore', abbreviation='wig',\n- short_desc=N_(\"files matching these patterns are not completed\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- varname='p_wig',\n- defaults={if_true=\"\"}\n- },\n- {\n- full_name='wildignorecase', abbreviation='wic',\n- short_desc=N_(\"ignore case when completing file names\"),\n- type='bool', scope={'global'},\n- varname='p_wic',\n- defaults={if_true=false}\n- },\n- {\n- full_name='wildmenu', abbreviation='wmnu',\n- short_desc=N_(\"use menu for command line completion\"),\n- type='bool', scope={'global'},\n- varname='p_wmnu',\n- defaults={if_true=true}\n- },\n- {\n- full_name='wildmode', abbreviation='wim',\n- short_desc=N_(\"mode for 'wildchar' command-line expansion\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=false,\n- varname='p_wim',\n- defaults={if_true=\"full\"},\n- cb='did_set_wildmode'\n- },\n- {\n- full_name='wildoptions', abbreviation='wop',\n- short_desc=N_(\"specifies how command line completion is done\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- varname='p_wop',\n- defaults={if_true='pum,tagfile'},\n- cb='did_set_wildoptions'\n- },\n- {\n- full_name='winaltkeys', abbreviation='wak',\n- short_desc=N_(\"when the windows system handles ALT keys\"),\n- type='string', scope={'global'},\n- varname='p_wak',\n- defaults={if_true=\"menu\"},\n- cb='did_set_winaltkeys'\n- },\n- {\n- full_name='winbar', abbreviation='wbr',\n- short_desc=N_(\"custom format for the window bar\"),\n- type='string', scope={'global', 'window'},\n- alloced=true,\n- modelineexpr=true,\n- redraw={'statuslines'},\n- varname='p_wbr',\n- defaults={if_true=\"\"},\n- cb='did_set_winbar'\n- },\n- {\n- full_name='winblend', abbreviation='winbl',\n- short_desc=N_(\"Controls transparency level for floating windows\"),\n- type='number', scope={'window'},\n- redraw={'current_window'},\n- defaults={if_true=0},\n- cb='did_set_winblend'\n- },\n- {\n- full_name='winhighlight', abbreviation='winhl',\n- short_desc=N_(\"Setup window-local highlights\");\n- type='string', list='onecomma', scope={'window'},\n- deny_duplicates=true,\n- alloced=true,\n- redraw={'current_window'},\n- defaults={if_true=\"\"},\n- cb='did_set_winhl'\n- },\n- {\n- full_name='window', abbreviation='wi',\n- short_desc=N_(\"nr of lines to scroll for CTRL-F and CTRL-B\"),\n- type='number', scope={'global'},\n- varname='p_window',\n- defaults={if_true=0},\n- cb='did_set_window'\n- },\n- {\n- full_name='winheight', abbreviation='wh',\n- short_desc=N_(\"minimum number of lines for the current window\"),\n- type='number', scope={'global'},\n- varname='p_wh',\n- defaults={if_true=1},\n- cb='did_set_winheight'\n- },\n- {\n- full_name='winfixheight', abbreviation='wfh',\n- short_desc=N_(\"keep window height when opening/closing windows\"),\n- type='bool', scope={'window'},\n- redraw={'statuslines'},\n- defaults={if_true=false}\n- },\n- {\n- full_name='winfixwidth', abbreviation='wfw',\n- short_desc=N_(\"keep window width when opening/closing windows\"),\n- type='bool', scope={'window'},\n- redraw={'statuslines'},\n- defaults={if_true=false}\n- },\n- {\n- full_name='winminheight', abbreviation='wmh',\n- short_desc=N_(\"minimum number of lines for any window\"),\n- type='number', scope={'global'},\n- varname='p_wmh',\n- defaults={if_true=1},\n- cb='did_set_winminheight'\n- },\n- {\n- full_name='winminwidth', abbreviation='wmw',\n- short_desc=N_(\"minimal number of columns for any window\"),\n- type='number', scope={'global'},\n- varname='p_wmw',\n- defaults={if_true=1},\n- cb='did_set_winminwidth'\n- },\n- {\n- full_name='winwidth', abbreviation='wiw',\n- short_desc=N_(\"minimal number of columns for current window\"),\n- type='number', scope={'global'},\n- varname='p_wiw',\n- defaults={if_true=20},\n- cb='did_set_winwidth'\n- },\n- {\n- full_name='wrap',\n- short_desc=N_(\"lines wrap and continue on the next line\"),\n- type='bool', scope={'window'},\n- redraw={'current_window'},\n- defaults={if_true=true},\n- cb='did_set_wrap'\n- },\n- {\n- full_name='wrapmargin', abbreviation='wm',\n- short_desc=N_(\"chars from the right where wrapping starts\"),\n- type='number', scope={'buffer'},\n- varname='p_wm',\n- defaults={if_true=0}\n- },\n- {\n- full_name='wrapscan', abbreviation='ws',\n- short_desc=N_(\"searches wrap around the end of the file\"),\n- type='bool', scope={'global'},\n- varname='p_ws',\n- defaults={if_true=true}\n- },\n- {\n- full_name='write',\n- short_desc=N_(\"to a file is allowed\"),\n- type='bool', scope={'global'},\n- varname='p_write',\n- defaults={if_true=true}\n- },\n- {\n- full_name='writeany', abbreviation='wa',\n- short_desc=N_(\"write to file with no need for \\\"!\\\" override\"),\n- type='bool', scope={'global'},\n- varname='p_wa',\n- defaults={if_true=false}\n- },\n- {\n- full_name='writebackup', abbreviation='wb',\n- short_desc=N_(\"make a backup before overwriting a file\"),\n- type='bool', scope={'global'},\n- varname='p_wb',\n- defaults={if_true=true}\n- },\n- {\n- full_name='writedelay', abbreviation='wd',\n- short_desc=N_(\"delay this many msec for each char (for debug)\"),\n- type='number', scope={'global'},\n- varname='p_wd',\n- defaults={if_true=0}\n- },\n- }\n+ desc = [=[\n+ Which directory to use for the file browser:\n+ last\t\tUse same directory as with last file browser, where a\n+ \t\tfile was opened or saved.\n+ buffer\tUse the directory of the related buffer.\n+ current\tUse the current directory.\n+ {path}\tUse the specified directory\n+ ]=],\n+ enable_if = false,\n+ full_name = 'browsedir',\n+ scope = { 'global' },\n+ short_desc = N_('which directory to start browsing in'),\n+ type = 'string',\n+ },\n+ {\n+ abbreviation = 'bh',\n+ alloced = true,\n+ cb = 'did_set_bufhidden',\n+ defaults = { if_true = '' },\n+ desc = [=[\n+ This option specifies what happens when a buffer is no longer\n+ displayed in a window:\n+ \tfollow the global 'hidden' option\n+ hide\t\thide the buffer (don't unload it), even if 'hidden' is\n+ \t\tnot set\n+ unload\tunload the buffer, even if 'hidden' is set; the\n+ \t\t|:hide| command will also unload the buffer\n+ delete\tdelete the buffer from the buffer list, even if\n+ \t\t'hidden' is set; the |:hide| command will also delete\n+ \t\tthe buffer, making it behave like |:bdelete|\n+ wipe\t\twipe the buffer from the buffer list, even if\n+ \t\t'hidden' is set; the |:hide| command will also wipe\n+ \t\tout the buffer, making it behave like |:bwipeout|\n+\n+ CAREFUL: when \"unload\", \"delete\" or \"wipe\" is used changes in a buffer\n+ are lost without a warning. Also, these values may break autocommands\n+ that switch between buffers temporarily.\n+ This option is used together with 'buftype' and 'swapfile' to specify\n+ special kinds of buffers. See |special-buffers|.\n+ ]=],\n+ full_name = 'bufhidden',\n+ noglob = true,\n+ scope = { 'buffer' },\n+ short_desc = N_('what to do when buffer is no longer in window'),\n+ type = 'string',\n+ varname = 'p_bh',\n+ },\n+ {\n+ abbreviation = 'bl',\n+ cb = 'did_set_buflisted',\n+ defaults = { if_true = true },\n+ desc = [=[\n+ When this option is set, the buffer shows up in the buffer list. If\n+ it is reset it is not used for \":bnext\", \"ls\", the Buffers menu, etc.\n+ This option is reset by Vim for buffers that are only used to remember\n+ a file name or marks. Vim sets it when starting to edit a buffer.\n+ But not when moving to a buffer with \":buffer\".\n+ ]=],\n+ full_name = 'buflisted',\n+ noglob = true,\n+ scope = { 'buffer' },\n+ short_desc = N_('whether the buffer shows up in the buffer list'),\n+ tags = { 'E85' },\n+ type = 'bool',\n+ varname = 'p_bl',\n+ },\n+ {\n+ abbreviation = 'bt',\n+ alloced = true,\n+ cb = 'did_set_buftype',\n+ defaults = { if_true = '' },\n+ desc = [=[\n+ The value of this option specifies the type of a buffer:\n+ \tnormal buffer\n+ acwrite\tbuffer will always be written with |BufWriteCmd|s\n+ help\t\thelp buffer (do not set this manually)\n+ nofile\tbuffer is not related to a file, will not be written\n+ nowrite\tbuffer will not be written\n+ quickfix\tlist of errors |:cwindow| or locations |:lwindow|\n+ terminal\t|terminal-emulator| buffer\n+ prompt\tbuffer where only the last line can be edited, meant\n+ \t\tto be used by a plugin, see |prompt-buffer|\n+\n+ This option is used together with 'bufhidden' and 'swapfile' to\n+ specify special kinds of buffers. See |special-buffers|.\n+ Also see |win_gettype()|, which returns the type of the window.\n+\n+ Be careful with changing this option, it can have many side effects!\n+ One such effect is that Vim will not check the timestamp of the file,\n+ if the file is changed by another program this will not be noticed.\n+\n+ A \"quickfix\" buffer is only used for the error list and the location\n+ list. This value is set by the |:cwindow| and |:lwindow| commands and\n+ you are not supposed to change it.\n+\n+ \"nofile\" and \"nowrite\" buffers are similar:\n+ both:\t\tThe buffer is not to be written to disk, \":w\" doesn't\n+ \t\twork (\":w filename\" does work though).\n+ both:\t\tThe buffer is never considered to be |'modified'|.\n+ \t\tThere is no warning when the changes will be lost, for\n+ \t\texample when you quit Vim.\n+ both:\t\tA swap file is only created when using too much memory\n+ \t\t(when 'swapfile' has been reset there is never a swap\n+ \t\tfile).\n+ nofile only:\tThe buffer name is fixed, it is not handled like a\n+ \t\tfile name. It is not modified in response to a |:cd|\n+ \t\tcommand.\n+ both:\t\tWhen using \":e bufname\" and already editing \"bufname\"\n+ \t\tthe buffer is made empty and autocommands are\n+ \t\ttriggered as usual for |:edit|.\n+ \t\t\t\t\t\t*E676*\n+ \"acwrite\" implies that the buffer name is not related to a file, like\n+ \"nofile\", but it will be written. Thus, in contrast to \"nofile\" and\n+ \"nowrite\", \":w\" does work and a modified buffer can't be abandoned\n+ without saving. For writing there must be matching |BufWriteCmd|,\n+ |FileWriteCmd| or |FileAppendCmd| autocommands.\n+ ]=],\n+ full_name = 'buftype',\n+ noglob = true,\n+ scope = { 'buffer' },\n+ tags = { 'E382' },\n+ short_desc = N_('special type of buffer'),\n+ type = 'string',\n+ varname = 'p_bt',\n+ },\n+ {\n+ abbreviation = 'cmp',\n+ cb = 'did_set_casemap',\n+ defaults = { if_true = 'internal,keepascii' },\n+ deny_duplicates = true,\n+ desc = [=[\n+ Specifies details about changing the case of letters. It may contain\n+ these words, separated by a comma:\n+ internal\tUse internal case mapping functions, the current\n+ \t\tlocale does not change the case mapping. When\n+ \t\t\"internal\" is omitted, the towupper() and towlower()\n+ \t\tsystem library functions are used when available.\n+ keepascii\tFor the ASCII characters (0x00 to 0x7f) use the US\n+ \t\tcase mapping, the current locale is not effective.\n+ \t\tThis probably only matters for Turkish.\n+ ]=],\n+ full_name = 'casemap',\n+ list = 'onecomma',\n+ scope = { 'global' },\n+ short_desc = N_('specifies how case of letters is changed'),\n+ type = 'string',\n+ varname = 'p_cmp',\n+ },\n+ {\n+ abbreviation = 'cdh',\n+ defaults = { if_true = false },\n+ desc = [=[\n+ When on, |:cd|, |:tcd| and |:lcd| without an argument changes the\n+ current working directory to the |$HOME| directory like in Unix.\n+ When off, those commands just print the current directory name.\n+ On Unix this option has no effect.\n+ ]=],\n+ full_name = 'cdhome',\n+ scope = { 'global' },\n+ secure = true,\n+ short_desc = N_(':cd without argument goes to the home directory'),\n+ type = 'bool',\n+ varname = 'p_cdh',\n+ },\n+ {\n+ abbreviation = 'cd',\n+ defaults = {\n+ if_true = ',,',\n+ doc = 'equivalent to $CDPATH or \",,\"',\n+ },\n+ deny_duplicates = true,\n+ desc = [=[\n+ This is a list of directories which will be searched when using the\n+ |:cd|, |:tcd| and |:lcd| commands, provided that the directory being\n+ searched for has a relative path, not an absolute part starting with\n+ \"/\", \"./\" or \"../\", the 'cdpath' option is not used then.\n+ The 'cdpath' option's value has the same form and semantics as\n+ |'path'|. Also see |file-searching|.\n+ The default value is taken from $CDPATH, with a \",\" prepended to look\n+ in the current directory first.\n+ If the default value taken from $CDPATH is not what you want, include\n+ a modified version of the following command in your vimrc file to\n+ override it: >\n+ :let &cdpath = ',' .. substitute(substitute($CDPATH, '[, ]', '\\\\\\0', 'g'), ':', ',', 'g')\n+ <\tThis option cannot be set from a |modeline| or in the |sandbox|, for\n+ security reasons.\n+ (parts of 'cdpath' can be passed to the shell to expand file names).\n+ ]=],\n+ expand = true,\n+ full_name = 'cdpath',\n+ list = 'comma',\n+ scope = { 'global' },\n+ secure = true,\n+ short_desc = N_('list of directories searched with \":cd\"'),\n+ tags = { 'E344', 'E346' },\n+ type = 'string',\n+ varname = 'p_cdpath',\n+ },\n+ {\n+ cb = 'did_set_cedit',\n+ defaults = {\n+ if_true = macros('CTRL_F_STR'),\n+ doc = 'CTRL-F',\n+ },\n+ desc = [=[\n+ The key used in Command-line Mode to open the command-line window.\n+ Only non-printable keys are allowed.\n+ The key can be specified as a single character, but it is difficult to\n+ type. The preferred way is to use the <> notation. Examples: >\n+ \t:exe \"set cedit=\\\\\"\n+ \t:exe \"set cedit=\\\\\"\n+ <\t|Nvi| also has this option, but it only uses the first character.\n+ See |cmdwin|.\n+ ]=],\n+ full_name = 'cedit',\n+ scope = { 'global' },\n+ short_desc = N_('used to open the command-line window'),\n+ type = 'string',\n+ varname = 'p_cedit',\n+ },\n+ {\n+ defaults = { if_true = 0 },\n+ desc = [=[\n+ |channel| connected to the buffer, or 0 if no channel is connected.\n+ In a |:terminal| buffer this is the terminal channel.\n+ Read-only.\n+ ]=],\n+ full_name = 'channel',\n+ no_mkrc = true,\n+ nodefault = true,\n+ scope = { 'buffer' },\n+ short_desc = N_('Channel connected to the buffer'),\n+ type = 'number',\n+ varname = 'p_channel',\n+ },\n+ {\n+ abbreviation = 'ccv',\n+ cb = 'did_set_optexpr',\n+ defaults = { if_true = '' },\n+ desc = [=[\n+ An expression that is used for character encoding conversion. It is\n+ evaluated when a file that is to be read or has been written has a\n+ different encoding from what is desired.\n+ 'charconvert' is not used when the internal iconv() function is\n+ supported and is able to do the conversion. Using iconv() is\n+ preferred, because it is much faster.\n+ 'charconvert' is not used when reading stdin |--|, because there is no\n+ file to convert from. You will have to save the text in a file first.\n+ The expression must return zero, false or an empty string for success,\n+ non-zero or true for failure.\n+ See |encoding-names| for possible encoding names.\n+ Additionally, names given in 'fileencodings' and 'fileencoding' are\n+ used.\n+ Conversion between \"latin1\", \"unicode\", \"ucs-2\", \"ucs-4\" and \"utf-8\"\n+ is done internally by Vim, 'charconvert' is not used for this.\n+ Also used for Unicode conversion.\n+ Example: >\n+ \tset charconvert=CharConvert()\n+ \tfun CharConvert()\n+ \t system(\"recode \"\n+ \t\t\\ .. v:charconvert_from .. \"..\" .. v:charconvert_to\n+ \t\t\\ .. \" <\" .. v:fname_in .. \" >\" .. v:fname_out)\n+ \t return v:shell_error\n+ \tendfun\n+ <\tThe related Vim variables are:\n+ \tv:charconvert_from\tname of the current encoding\n+ \tv:charconvert_to\tname of the desired encoding\n+ \tv:fname_in\t\tname of the input file\n+ \tv:fname_out\t\tname of the output file\n+ Note that v:fname_in and v:fname_out will never be the same.\n+ This option cannot be set from a |modeline| or in the |sandbox|, for\n+ security reasons.\n+ ]=],\n+ full_name = 'charconvert',\n+ scope = { 'global' },\n+ secure = true,\n+ short_desc = N_('expression for character encoding conversion'),\n+ type = 'string',\n+ tags = { 'E202', 'E214', 'E513' },\n+ varname = 'p_ccv',\n+ },\n+ {\n+ abbreviation = 'cin',\n+ defaults = { if_true = false },\n+ desc = [=[\n+ Enables automatic C program indenting. See 'cinkeys' to set the keys\n+ that trigger reindenting in insert mode and 'cinoptions' to set your\n+ preferred indent style.\n+ If 'indentexpr' is not empty, it overrules 'cindent'.\n+ If 'lisp' is not on and both 'indentexpr' and 'equalprg' are empty,\n+ the \"=\" operator indents using this algorithm rather than calling an\n+ external program.\n+ See |C-indenting|.\n+ When you don't like the way 'cindent' works, try the 'smartindent'\n+ option or 'indentexpr'.\n+ ]=],\n+ full_name = 'cindent',\n+ scope = { 'buffer' },\n+ short_desc = N_('do C program indenting'),\n+ type = 'bool',\n+ varname = 'p_cin',\n+ },\n+ {\n+ abbreviation = 'cink',\n+ alloced = true,\n+ defaults = { if_true = '0{,0},0),0],:,0#,!^F,o,O,e' },\n+ deny_duplicates = true,\n+ desc = [=[\n+ A list of keys that, when typed in Insert mode, cause reindenting of\n+ the current line. Only used if 'cindent' is on and 'indentexpr' is\n+ empty.\n+ For the format of this option see |cinkeys-format|.\n+ See |C-indenting|.\n+ ]=],\n+ full_name = 'cinkeys',\n+ list = 'onecomma',\n+ scope = { 'buffer' },\n+ short_desc = N_(\"keys that trigger indent when 'cindent' is set\"),\n+ type = 'string',\n+ varname = 'p_cink',\n+ },\n+ {\n+ abbreviation = 'cino',\n+ alloced = true,\n+ cb = 'did_set_cinoptions',\n+ defaults = { if_true = '' },\n+ deny_duplicates = true,\n+ desc = [=[\n+ The 'cinoptions' affect the way 'cindent' reindents lines in a C\n+ program. See |cinoptions-values| for the values of this option, and\n+ |C-indenting| for info on C indenting in general.\n+ ]=],\n+ full_name = 'cinoptions',\n+ list = 'onecomma',\n+ scope = { 'buffer' },\n+ short_desc = N_(\"how to do indenting when 'cindent' is set\"),\n+ type = 'string',\n+ varname = 'p_cino',\n+ },\n+ {\n+ abbreviation = 'cinw',\n+ alloced = true,\n+ defaults = { if_true = 'if,else,while,do,for,switch' },\n+ deny_duplicates = true,\n+ desc = [=[\n+ These keywords start an extra indent in the next line when\n+ 'smartindent' or 'cindent' is set. For 'cindent' this is only done at\n+ an appropriate place (inside {}).\n+ Note that 'ignorecase' isn't used for 'cinwords'. If case doesn't\n+ matter, include the keyword both the uppercase and lowercase:\n+ \"if,If,IF\".\n+ ]=],\n+ full_name = 'cinwords',\n+ list = 'onecomma',\n+ scope = { 'buffer' },\n+ short_desc = N_(\"words where 'si' and 'cin' add an indent\"),\n+ type = 'string',\n+ varname = 'p_cinw',\n+ },\n+ {\n+ abbreviation = 'cinsd',\n+ alloced = true,\n+ defaults = { if_true = 'public,protected,private' },\n+ deny_duplicates = true,\n+ desc = [=[\n+ Keywords that are interpreted as a C++ scope declaration by |cino-g|.\n+ Useful e.g. for working with the Qt framework that defines additional\n+ scope declarations \"signals\", \"public slots\" and \"private slots\": >\n+ \tset cinscopedecls+=signals,public\\ slots,private\\ slots\n+ <\n+ ]=],\n+ full_name = 'cinscopedecls',\n+ list = 'onecomma',\n+ scope = { 'buffer' },\n+ short_desc = N_(\"words that are recognized by 'cino-g'\"),\n+ type = 'string',\n+ varname = 'p_cinsd',\n+ },\n+ {\n+ abbreviation = 'cb',\n+ cb = 'did_set_clipboard',\n+ defaults = { if_true = '' },\n+ desc = [=[\n+ This option is a list of comma-separated names.\n+ These names are recognized:\n+\n+ \t\t\t\t\t*clipboard-unnamed*\n+ unnamed\t\tWhen included, Vim will use the clipboard register \"*\"\n+ \t\tfor all yank, delete, change and put operations which\n+ \t\twould normally go to the unnamed register. When a\n+ \t\tregister is explicitly specified, it will always be\n+ \t\tused regardless of whether \"unnamed\" is in 'clipboard'\n+ \t\tor not. The clipboard register can always be\n+ \t\texplicitly accessed using the \"* notation. Also see\n+ \t\t|clipboard|.\n+\n+ \t\t\t\t\t*clipboard-unnamedplus*\n+ unnamedplus\tA variant of the \"unnamed\" flag which uses the\n+ \t\tclipboard register \"+\" (|quoteplus|) instead of\n+ \t\tregister \"*\" for all yank, delete, change and put\n+ \t\toperations which would normally go to the unnamed\n+ \t\tregister. When \"unnamed\" is also included to the\n+ \t\toption, yank and delete operations (but not put)\n+ \t\twill additionally copy the text into register\n+ \t\t\"*\". See |clipboard|.\n+ ]=],\n+ deny_duplicates = true,\n+ full_name = 'clipboard',\n+ list = 'onecomma',\n+ scope = { 'global' },\n+ short_desc = N_('use the clipboard as the unnamed register'),\n+ type = 'string',\n+ varname = 'p_cb',\n+ },\n+ {\n+ abbreviation = 'ch',\n+ cb = 'did_set_cmdheight',\n+ defaults = { if_true = 1 },\n+ desc = [=[\n+ Number of screen lines to use for the command-line. Helps avoiding\n+ |hit-enter| prompts.\n+ The value of this option is stored with the tab page, so that each tab\n+ page can have a different value.\n+\n+ When 'cmdheight' is zero, there is no command-line unless it is being\n+ used. The command-line will cover the last line of the screen when\n+ shown.\n+\n+ WARNING: `cmdheight=0` is considered experimental. Expect some\n+ unwanted behaviour. Some 'shortmess' flags and similar\n+ mechanism might fail to take effect, causing unwanted hit-enter\n+ prompts. Some informative messages, both from Nvim itself and\n+ plugins, will not be displayed.\n+ ]=],\n+ full_name = 'cmdheight',\n+ redraw = { 'all_windows' },\n+ scope = { 'global' },\n+ short_desc = N_('number of lines to use for the command-line'),\n+ type = 'number',\n+ varname = 'p_ch',\n+ },\n+ {\n+ abbreviation = 'cwh',\n+ defaults = { if_true = 7 },\n+ desc = [=[\n+ Number of screen lines to use for the command-line window. |cmdwin|\n+ ]=],\n+ full_name = 'cmdwinheight',\n+ scope = { 'global' },\n+ short_desc = N_('height of the command-line window'),\n+ type = 'number',\n+ varname = 'p_cwh',\n+ },\n+ {\n+ abbreviation = 'cc',\n+ cb = 'did_set_colorcolumn',\n+ defaults = { if_true = '' },\n+ deny_duplicates = true,\n+ desc = [=[\n+ 'colorcolumn' is a comma-separated list of screen columns that are\n+ highlighted with ColorColumn |hl-ColorColumn|. Useful to align\n+ text. Will make screen redrawing slower.\n+ The screen column can be an absolute number, or a number preceded with\n+ '+' or '-', which is added to or subtracted from 'textwidth'. >\n+\n+ \t:set cc=+1\t \" highlight column after 'textwidth'\n+ \t:set cc=+1,+2,+3 \" highlight three columns after 'textwidth'\n+ \t:hi ColorColumn ctermbg=lightgrey guibg=lightgrey\n+ <\n+ When 'textwidth' is zero then the items with '-' and '+' are not used.\n+ A maximum of 256 columns are highlighted.\n+ ]=],\n+ full_name = 'colorcolumn',\n+ list = 'onecomma',\n+ redraw = { 'current_window' },\n+ scope = { 'window' },\n+ short_desc = N_('columns to highlight'),\n+ type = 'string',\n+ },\n+ {\n+ abbreviation = 'co',\n+ defaults = {\n+ if_true = macros('DFLT_COLS'),\n+ doc = '80 or terminal width',\n+ },\n+ desc = [=[\n+ Number of columns of the screen. Normally this is set by the terminal\n+ initialization and does not have to be set by hand.\n+ When Vim is running in the GUI or in a resizable window, setting this\n+ option will cause the window size to be changed. When you only want\n+ to use the size for the GUI, put the command in your |ginit.vim| file.\n+ When you set this option and Vim is unable to change the physical\n+ number of columns of the display, the display may be messed up. For\n+ the GUI it is always possible and Vim limits the number of columns to\n+ what fits on the screen. You can use this command to get the widest\n+ window possible: >\n+ \t:set columns=9999\n+ <\tMinimum value is 12, maximum value is 10000.\n+ ]=],\n+ full_name = 'columns',\n+ no_mkrc = true,\n+ scope = { 'global' },\n+ short_desc = N_('number of columns in the display'),\n+ tags = { 'E594' },\n+ type = 'number',\n+ varname = 'p_columns',\n+ },\n+ {\n+ abbreviation = 'com',\n+ alloced = true,\n+ cb = 'did_set_comments',\n+ defaults = { if_true = 's1:/*,mb:*,ex:*/,://,b:#,:%,:XCOMM,n:>,fb:-' },\n+ deny_duplicates = true,\n+ desc = [=[\n+ A comma-separated list of strings that can start a comment line. See\n+ |format-comments|. See |option-backslash| about using backslashes to\n+ insert a space.\n+ ]=],\n+ full_name = 'comments',\n+ list = 'onecomma',\n+ redraw = { 'curswant' },\n+ scope = { 'buffer' },\n+ short_desc = N_('patterns that can start a comment line'),\n+ tags = { 'E524', 'E525' },\n+ type = 'string',\n+ varname = 'p_com',\n+ },\n+ {\n+ abbreviation = 'cms',\n+ alloced = true,\n+ cb = 'did_set_commentstring',\n+ defaults = { if_true = '' },\n+ desc = [=[\n+ A template for a comment. The \"%s\" in the value is replaced with the\n+ comment text. For example, C uses \"/*%s*/\". Currently only used to\n+ add markers for folding, see |fold-marker|.\n+ ]=],\n+ full_name = 'commentstring',\n+ redraw = { 'curswant' },\n+ scope = { 'buffer' },\n+ short_desc = N_('template for comments; used for fold marker'),\n+ tags = { 'E537' },\n+ type = 'string',\n+ varname = 'p_cms',\n+ },\n+ {\n+ abbreviation = 'cp',\n+ defaults = { if_true = false },\n+ full_name = 'compatible',\n+ scope = { 'global' },\n+ short_desc = N_('No description'),\n+ type = 'bool',\n+ varname = 'p_force_off',\n+ },\n+ {\n+ abbreviation = 'cpt',\n+ alloced = true,\n+ cb = 'did_set_complete',\n+ defaults = { if_true = '.,w,b,u,t' },\n+ deny_duplicates = true,\n+ desc = [=[\n+ This option specifies how keyword completion |ins-completion| works\n+ when CTRL-P or CTRL-N are used. It is also used for whole-line\n+ completion |i_CTRL-X_CTRL-L|. It indicates the type of completion\n+ and the places to scan. It is a comma-separated list of flags:\n+ .\tscan the current buffer ('wrapscan' is ignored)\n+ w\tscan buffers from other windows\n+ b\tscan other loaded buffers that are in the buffer list\n+ u\tscan the unloaded buffers that are in the buffer list\n+ U\tscan the buffers that are not in the buffer list\n+ k\tscan the files given with the 'dictionary' option\n+ kspell use the currently active spell checking |spell|\n+ k{dict}\tscan the file {dict}. Several \"k\" flags can be given,\n+ \tpatterns are valid too. For example: >\n+ \t\t:set cpt=k/usr/dict/*,k~/spanish\n+ <\ts\tscan the files given with the 'thesaurus' option\n+ s{tsr}\tscan the file {tsr}. Several \"s\" flags can be given, patterns\n+ \tare valid too.\n+ i\tscan current and included files\n+ d\tscan current and included files for defined name or macro\n+ \t|i_CTRL-X_CTRL-D|\n+ ]\ttag completion\n+ t\tsame as \"]\"\n+\n+ Unloaded buffers are not loaded, thus their autocmds |:autocmd| are\n+ not executed, this may lead to unexpected completions from some files\n+ (gzipped files for example). Unloaded buffers are not scanned for\n+ whole-line completion.\n+\n+ As you can see, CTRL-N and CTRL-P can be used to do any 'iskeyword'-\n+ based expansion (e.g., dictionary |i_CTRL-X_CTRL-K|, included patterns\n+ |i_CTRL-X_CTRL-I|, tags |i_CTRL-X_CTRL-]| and normal expansions).\n+ ]=],\n+ full_name = 'complete',\n+ list = 'onecomma',\n+ scope = { 'buffer' },\n+ short_desc = N_('specify how Insert mode completion works'),\n+ tags = { 'E535' },\n+ type = 'string',\n+ varname = 'p_cpt',\n+ },\n+ {\n+ abbreviation = 'cocu',\n+ alloced = true,\n+ cb = 'did_set_concealcursor',\n+ defaults = { if_true = '' },\n+ desc = [=[\n+ Sets the modes in which text in the cursor line can also be concealed.\n+ When the current mode is listed then concealing happens just like in\n+ other lines.\n+ n\t\tNormal mode\n+ v\t\tVisual mode\n+ i\t\tInsert mode\n+ c\t\tCommand line editing, for 'incsearch'\n+\n+ 'v' applies to all lines in the Visual area, not only the cursor.\n+ A useful value is \"nc\". This is used in help files. So long as you\n+ are moving around text is concealed, but when starting to insert text\n+ or selecting a Visual area the concealed text is displayed, so that\n+ you can see what you are doing.\n+ Keep in mind that the cursor position is not always where it's\n+ displayed. E.g., when moving vertically it may change column.\n+ ]=],\n+ full_name = 'concealcursor',\n+ redraw = { 'current_window' },\n+ scope = { 'window' },\n+ short_desc = N_('whether concealable text is hidden in cursor line'),\n+ type = 'string',\n+ },\n+ {\n+ abbreviation = 'cole',\n+ defaults = { if_true = 0 },\n+ desc = [=[\n+ Determine how text with the \"conceal\" syntax attribute |:syn-conceal|\n+ is shown:\n+\n+ Value\t\tEffect ~\n+ 0\t\tText is shown normally\n+ 1\t\tEach block of concealed text is replaced with one\n+ \t\tcharacter. If the syntax item does not have a custom\n+ \t\treplacement character defined (see |:syn-cchar|) the\n+ \t\tcharacter defined in 'listchars' is used.\n+ \t\tIt is highlighted with the \"Conceal\" highlight group.\n+ 2\t\tConcealed text is completely hidden unless it has a\n+ \t\tcustom replacement character defined (see\n+ \t\t|:syn-cchar|).\n+ 3\t\tConcealed text is completely hidden.\n+\n+ Note: in the cursor line concealed text is not hidden, so that you can\n+ edit and copy the text. This can be changed with the 'concealcursor'\n+ option.\n+ ]=],\n+ full_name = 'conceallevel',\n+ redraw = { 'current_window' },\n+ scope = { 'window' },\n+ short_desc = N_('whether concealable text is shown or hidden'),\n+ type = 'number',\n+ },\n+ {\n+ abbreviation = 'cfu',\n+ alloced = true,\n+ cb = 'did_set_completefunc',\n+ defaults = { if_true = '' },\n+ desc = [=[\n+ This option specifies a function to be used for Insert mode completion\n+ with CTRL-X CTRL-U. |i_CTRL-X_CTRL-U|\n+ See |complete-functions| for an explanation of how the function is\n+ invoked and what it should return. The value can be the name of a\n+ function, a |lambda| or a |Funcref|. See |option-value-function| for\n+ more information.\n+ This option cannot be set from a |modeline| or in the |sandbox|, for\n+ security reasons.\n+ ]=],\n+ full_name = 'completefunc',\n+ func = true,\n+ scope = { 'buffer' },\n+ secure = true,\n+ short_desc = N_('function to be used for Insert mode completion'),\n+ type = 'string',\n+ varname = 'p_cfu',\n+ },\n+ {\n+ abbreviation = 'cot',\n+ cb = 'did_set_completeopt',\n+ defaults = { if_true = 'menu,preview' },\n+ deny_duplicates = true,\n+ desc = [=[\n+ A comma-separated list of options for Insert mode completion\n+ |ins-completion|. The supported values are:\n+\n+ menu\t Use a popup menu to show the possible completions. The\n+ \t menu is only shown when there is more than one match and\n+ \t sufficient colors are available. |ins-completion-menu|\n+\n+ menuone Use the popup menu also when there is only one match.\n+ \t Useful when there is additional information about the\n+ \t match, e.g., what file it comes from.\n+\n+ longest Only insert the longest common text of the matches. If\n+ \t the menu is displayed you can use CTRL-L to add more\n+ \t characters. Whether case is ignored depends on the kind\n+ \t of completion. For buffer text the 'ignorecase' option is\n+ \t used.\n+\n+ preview Show extra information about the currently selected\n+ \t completion in the preview window. Only works in\n+ \t combination with \"menu\" or \"menuone\".\n+\n+ noinsert Do not insert any text for a match until the user selects\n+ \t a match from the menu. Only works in combination with\n+ \t \"menu\" or \"menuone\". No effect if \"longest\" is present.\n+\n+ noselect Do not select a match in the menu, force the user to\n+ \t select one from the menu. Only works in combination with\n+ \t \"menu\" or \"menuone\".\n+ ]=],\n+ full_name = 'completeopt',\n+ list = 'onecomma',\n+ scope = { 'global' },\n+ short_desc = N_('options for Insert mode completion'),\n+ type = 'string',\n+ varname = 'p_cot',\n+ },\n+ {\n+ abbreviation = 'csl',\n+ cb = 'did_set_completeslash',\n+ defaults = { if_true = '' },\n+ desc = [=[\n+ \t\tonly for MS-Windows\n+ When this option is set it overrules 'shellslash' for completion:\n+ - When this option is set to \"slash\", a forward slash is used for path\n+ completion in insert mode. This is useful when editing HTML tag, or\n+ Makefile with 'noshellslash' on MS-Windows.\n+ - When this option is set to \"backslash\", backslash is used. This is\n+ useful when editing a batch file with 'shellslash' set on MS-Windows.\n+ - When this option is empty, same character is used as for\n+ 'shellslash'.\n+ For Insert mode completion the buffer-local value is used. For\n+ command line completion the global value is used.\n+ ]=],\n+ enable_if = 'BACKSLASH_IN_FILENAME',\n+ full_name = 'completeslash',\n+ scope = { 'buffer' },\n+ type = 'string',\n+ varname = 'p_csl',\n+ },\n+ {\n+ abbreviation = 'cf',\n+ defaults = { if_true = false },\n+ desc = [=[\n+ When 'confirm' is on, certain operations that would normally\n+ fail because of unsaved changes to a buffer, e.g. \":q\" and \":e\",\n+ instead raise a dialog asking if you wish to save the current\n+ file(s). You can still use a ! to unconditionally |abandon| a buffer.\n+ If 'confirm' is off you can still activate confirmation for one\n+ command only (this is most useful in mappings) with the |:confirm|\n+ command.\n+ Also see the |confirm()| function and the 'v' flag in 'guioptions'.\n+ ]=],\n+ full_name = 'confirm',\n+ scope = { 'global' },\n+ short_desc = N_('ask what to do about unsaved/read-only files'),\n+ type = 'bool',\n+ varname = 'p_confirm',\n+ },\n+ {\n+ abbreviation = 'ci',\n+ defaults = { if_true = false },\n+ desc = [=[\n+ Copy the structure of the existing lines indent when autoindenting a\n+ new line. Normally the new indent is reconstructed by a series of\n+ tabs followed by spaces as required (unless |'expandtab'| is enabled,\n+ in which case only spaces are used). Enabling this option makes the\n+ new line copy whatever characters were used for indenting on the\n+ existing line. 'expandtab' has no effect on these characters, a Tab\n+ remains a Tab. If the new indent is greater than on the existing\n+ line, the remaining space is filled in the normal manner.\n+ See 'preserveindent'.\n+ ]=],\n+ full_name = 'copyindent',\n+ scope = { 'buffer' },\n+ short_desc = N_(\"make 'autoindent' use existing indent structure\"),\n+ type = 'bool',\n+ varname = 'p_ci',\n+ },\n+ {\n+ abbreviation = 'cpo',\n+ cb = 'did_set_cpoptions',\n+ defaults = { if_true = macros('CPO_VIM') },\n+ desc = [=[\n+ A sequence of single character flags. When a character is present\n+ this indicates Vi-compatible behavior. This is used for things where\n+ not being Vi-compatible is mostly or sometimes preferred.\n+ 'cpoptions' stands for \"compatible-options\".\n+ Commas can be added for readability.\n+ To avoid problems with flags that are added in the future, use the\n+ \"+=\" and \"-=\" feature of \":set\" |add-option-flags|.\n+\n+ contains\tbehavior\t~\n+ \t\t\t\t\t\t\t*cpo-a*\n+ \ta\tWhen included, a \":read\" command with a file name\n+ \t\targument will set the alternate file name for the\n+ \t\tcurrent window.\n+ \t\t\t\t\t\t\t*cpo-A*\n+ \tA\tWhen included, a \":write\" command with a file name\n+ \t\targument will set the alternate file name for the\n+ \t\tcurrent window.\n+ \t\t\t\t\t\t\t*cpo-b*\n+ \tb\t\"\\|\" in a \":map\" command is recognized as the end of\n+ \t\tthe map command. The '\\' is included in the mapping,\n+ \t\tthe text after the '|' is interpreted as the next\n+ \t\tcommand. Use a CTRL-V instead of a backslash to\n+ \t\tinclude the '|' in the mapping. Applies to all\n+ \t\tmapping, abbreviation, menu and autocmd commands.\n+ \t\tSee also |map_bar|.\n+ \t\t\t\t\t\t\t*cpo-B*\n+ \tB\tA backslash has no special meaning in mappings,\n+ \t\tabbreviations, user commands and the \"to\" part of the\n+ \t\tmenu commands. Remove this flag to be able to use a\n+ \t\tbackslash like a CTRL-V. For example, the command\n+ \t\t\":map X \\\\\" results in X being mapped to:\n+ \t\t\t'B' included:\t\"\\^[\"\t (^[ is a real )\n+ \t\t\t'B' excluded:\t\"\" (5 characters)\n+ \t\t\t\t\t\t\t*cpo-c*\n+ \tc\tSearching continues at the end of any match at the\n+ \t\tcursor position, but not further than the start of the\n+ \t\tnext line. When not present searching continues\n+ \t\tone character from the cursor position. With 'c'\n+ \t\t\"abababababab\" only gets three matches when repeating\n+ \t\t\"/abab\", without 'c' there are five matches.\n+ \t\t\t\t\t\t\t*cpo-C*\n+ \tC\tDo not concatenate sourced lines that start with a\n+ \t\tbackslash. See |line-continuation|.\n+ \t\t\t\t\t\t\t*cpo-d*\n+ \td\tUsing \"./\" in the 'tags' option doesn't mean to use\n+ \t\tthe tags file relative to the current file, but the\n+ \t\ttags file in the current directory.\n+ \t\t\t\t\t\t\t*cpo-D*\n+ \tD\tCan't use CTRL-K to enter a digraph after Normal mode\n+ \t\tcommands with a character argument, like |r|, |f| and\n+ \t\t|t|.\n+ \t\t\t\t\t\t\t*cpo-e*\n+ \te\tWhen executing a register with \":@r\", always add a\n+ \t\t to the last line, also when the register is not\n+ \t\tlinewise. If this flag is not present, the register\n+ \t\tis not linewise and the last line does not end in a\n+ \t\t, then the last line is put on the command-line\n+ \t\tand can be edited before hitting .\n+ \t\t\t\t\t\t\t*cpo-E*\n+ \tE\tIt is an error when using \"y\", \"d\", \"c\", \"g~\", \"gu\" or\n+ \t\t\"gU\" on an Empty region. The operators only work when\n+ \t\tat least one character is to be operated on. Example:\n+ \t\tThis makes \"y0\" fail in the first column.\n+ \t\t\t\t\t\t\t*cpo-f*\n+ \tf\tWhen included, a \":read\" command with a file name\n+ \t\targument will set the file name for the current buffer,\n+ \t\tif the current buffer doesn't have a file name yet.\n+ \t\t\t\t\t\t\t*cpo-F*\n+ \tF\tWhen included, a \":write\" command with a file name\n+ \t\targument will set the file name for the current\n+ \t\tbuffer, if the current buffer doesn't have a file name\n+ \t\tyet. Also see |cpo-P|.\n+ \t\t\t\t\t\t\t*cpo-i*\n+ \ti\tWhen included, interrupting the reading of a file will\n+ \t\tleave it modified.\n+ \t\t\t\t\t\t\t*cpo-I*\n+ \tI\tWhen moving the cursor up or down just after inserting\n+ \t\tindent for 'autoindent', do not delete the indent.\n+ \t\t\t\t\t\t\t*cpo-J*\n+ \tJ\tA |sentence| has to be followed by two spaces after\n+ \t\tthe '.', '!' or '?'. A is not recognized as\n+ \t\twhite space.\n+ \t\t\t\t\t\t\t*cpo-K*\n+ \tK\tDon't wait for a key code to complete when it is\n+ \t\thalfway through a mapping. This breaks mapping\n+ \t\t when only part of the second has been\n+ \t\tread. It enables cancelling the mapping by typing\n+ \t\t.\n+ \t\t\t\t\t\t\t*cpo-l*\n+ \tl\tBackslash in a [] range in a search pattern is taken\n+ \t\tliterally, only \"\\]\", \"\\^\", \"\\-\" and \"\\\\\" are special.\n+ \t\tSee |/[]|\n+ \t\t 'l' included: \"/[ \\t]\" finds , '\\' and 't'\n+ \t\t 'l' excluded: \"/[ \\t]\" finds and \n+ \t\t\t\t\t\t\t*cpo-L*\n+ \tL\tWhen the 'list' option is set, 'wrapmargin',\n+ \t\t'textwidth', 'softtabstop' and Virtual Replace mode\n+ \t\t(see |gR|) count a as two characters, instead of\n+ \t\tthe normal behavior of a .\n+ \t\t\t\t\t\t\t*cpo-m*\n+ \tm\tWhen included, a showmatch will always wait half a\n+ \t\tsecond. When not included, a showmatch will wait half\n+ \t\ta second or until a character is typed. |'showmatch'|\n+ \t\t\t\t\t\t\t*cpo-M*\n+ \tM\tWhen excluded, \"%\" matching will take backslashes into\n+ \t\taccount. Thus in \"( \\( )\" and \"\\( ( \\)\" the outer\n+ \t\tparenthesis match. When included \"%\" ignores\n+ \t\tbackslashes, which is Vi compatible.\n+ \t\t\t\t\t\t\t*cpo-n*\n+ \tn\tWhen included, the column used for 'number' and\n+ \t\t'relativenumber' will also be used for text of wrapped\n+ \t\tlines.\n+ \t\t\t\t\t\t\t*cpo-o*\n+ \to\tLine offset to search command is not remembered for\n+ \t\tnext search.\n+ \t\t\t\t\t\t\t*cpo-O*\n+ \tO\tDon't complain if a file is being overwritten, even\n+ \t\twhen it didn't exist when editing it. This is a\n+ \t\tprotection against a file unexpectedly created by\n+ \t\tsomeone else. Vi didn't complain about this.\n+ \t\t\t\t\t\t\t*cpo-p*\n+ \tp\tVi compatible Lisp indenting. When not present, a\n+ \t\tslightly better algorithm is used.\n+ \t\t\t\t\t\t\t*cpo-P*\n+ \tP\tWhen included, a \":write\" command that appends to a\n+ \t\tfile will set the file name for the current buffer, if\n+ \t\tthe current buffer doesn't have a file name yet and\n+ \t\tthe 'F' flag is also included |cpo-F|.\n+ \t\t\t\t\t\t\t*cpo-q*\n+ \tq\tWhen joining multiple lines leave the cursor at the\n+ \t\tposition where it would be when joining two lines.\n+ \t\t\t\t\t\t\t*cpo-r*\n+ \tr\tRedo (\".\" command) uses \"/\" to repeat a search\n+ \t\tcommand, instead of the actually used search string.\n+ \t\t\t\t\t\t\t*cpo-R*\n+ \tR\tRemove marks from filtered lines. Without this flag\n+ \t\tmarks are kept like |:keepmarks| was used.\n+ \t\t\t\t\t\t\t*cpo-s*\n+ \ts\tSet buffer options when entering the buffer for the\n+ \t\tfirst time. This is like it is in Vim version 3.0.\n+ \t\tAnd it is the default. If not present the options are\n+ \t\tset when the buffer is created.\n+ \t\t\t\t\t\t\t*cpo-S*\n+ \tS\tSet buffer options always when entering a buffer\n+ \t\t(except 'readonly', 'fileformat', 'filetype' and\n+ \t\t'syntax'). This is the (most) Vi compatible setting.\n+ \t\tThe options are set to the values in the current\n+ \t\tbuffer. When you change an option and go to another\n+ \t\tbuffer, the value is copied. Effectively makes the\n+ \t\tbuffer options global to all buffers.\n+\n+ \t\t's' 'S' copy buffer options\n+ \t\tno no when buffer created\n+ \t\tyes no when buffer first entered (default)\n+ \t\t X yes each time when buffer entered (vi comp.)\n+ \t\t\t\t\t\t\t*cpo-t*\n+ \tt\tSearch pattern for the tag command is remembered for\n+ \t\t\"n\" command. Otherwise Vim only puts the pattern in\n+ \t\tthe history for search pattern, but doesn't change the\n+ \t\tlast used search pattern.\n+ \t\t\t\t\t\t\t*cpo-u*\n+ \tu\tUndo is Vi compatible. See |undo-two-ways|.\n+ \t\t\t\t\t\t\t*cpo-v*\n+ \tv\tBackspaced characters remain visible on the screen in\n+ \t\tInsert mode. Without this flag the characters are\n+ \t\terased from the screen right away. With this flag the\n+ \t\tscreen newly typed text overwrites backspaced\n+ \t\tcharacters.\n+ \t\t\t\t\t\t\t*cpo-W*\n+ \tW\tDon't overwrite a readonly file. When omitted, \":w!\"\n+ \t\toverwrites a readonly file, if possible.\n+ \t\t\t\t\t\t\t*cpo-x*\n+ \tx\t on the command-line executes the command-line.\n+ \t\tThe default in Vim is to abandon the command-line,\n+ \t\tbecause normally aborts a command. |c_|\n+ \t\t\t\t\t\t\t*cpo-X*\n+ \tX\tWhen using a count with \"R\" the replaced text is\n+ \t\tdeleted only once. Also when repeating \"R\" with \".\"\n+ \t\tand a count.\n+ \t\t\t\t\t\t\t*cpo-y*\n+ \ty\tA yank command can be redone with \".\". Think twice if\n+ \t\tyou really want to use this, it may break some\n+ \t\tplugins, since most people expect \".\" to only repeat a\n+ \t\tchange.\n+ \t\t\t\t\t\t\t*cpo-Z*\n+ \tZ\tWhen using \"w!\" while the 'readonly' option is set,\n+ \t\tdon't reset 'readonly'.\n+ \t\t\t\t\t\t\t*cpo-!*\n+ \t!\tWhen redoing a filter command, use the last used\n+ \t\texternal command, whatever it was. Otherwise the last\n+ \t\tused -filter- command is used.\n+ \t\t\t\t\t\t\t*cpo-$*\n+ \t$\tWhen making a change to one line, don't redisplay the\n+ \t\tline, but put a '$' at the end of the changed text.\n+ \t\tThe changed text will be overwritten when you type the\n+ \t\tnew text. The line is redisplayed if you type any\n+ \t\tcommand that moves the cursor from the insertion\n+ \t\tpoint.\n+ \t\t\t\t\t\t\t*cpo-%*\n+ \t%\tVi-compatible matching is done for the \"%\" command.\n+ \t\tDoes not recognize \"#if\", \"#endif\", etc.\n+ \t\tDoes not recognize \"/*\" and \"*/\".\n+ \t\tParens inside single and double quotes are also\n+ \t\tcounted, causing a string that contains a paren to\n+ \t\tdisturb the matching. For example, in a line like\n+ \t\t\"if (strcmp(\"foo(\", s))\" the first paren does not\n+ \t\tmatch the last one. When this flag is not included,\n+ \t\tparens inside single and double quotes are treated\n+ \t\tspecially. When matching a paren outside of quotes,\n+ \t\teverything inside quotes is ignored. When matching a\n+ \t\tparen inside quotes, it will find the matching one (if\n+ \t\tthere is one). This works very well for C programs.\n+ \t\tThis flag is also used for other features, such as\n+ \t\tC-indenting.\n+ \t\t\t\t\t\t\t*cpo-+*\n+ \t+\tWhen included, a \":write file\" command will reset the\n+ \t\t'modified' flag of the buffer, even though the buffer\n+ \t\titself may still be different from its file.\n+ \t\t\t\t\t\t\t*cpo->*\n+ \t>\tWhen appending to a register, put a line break before\n+ \t\tthe appended text.\n+ \t\t\t\t\t\t\t*cpo-;*\n+ \t;\tWhen using |,| or |;| to repeat the last |t| search\n+ \t\tand the cursor is right in front of the searched\n+ \t\tcharacter, the cursor won't move. When not included,\n+ \t\tthe cursor would skip over it and jump to the\n+ \t\tfollowing occurrence.\n+ \t\t\t\t\t\t\t*cpo-_*\n+ \t_\tWhen using |cw| on a word, do not include the\n+ \t\twhitespace following the word in the motion.\n+ ]=],\n+ full_name = 'cpoptions',\n+ list = 'flags',\n+ redraw = { 'all_windows' },\n+ scope = { 'global' },\n+ short_desc = N_('flags for Vi-compatible behavior'),\n+ tags = { 'cpo' },\n+ type = 'string',\n+ varname = 'p_cpo',\n+ },\n+ {\n+ abbreviation = 'crb',\n+ defaults = { if_true = false },\n+ desc = [=[\n+ When this option is set, as the cursor in the current\n+ window moves other cursorbound windows (windows that also have\n+ this option set) move their cursors to the corresponding line and\n+ column. This option is useful for viewing the\n+ differences between two versions of a file (see 'diff'); in diff mode,\n+ inserted and deleted lines (though not characters within a line) are\n+ taken into account.\n+ ]=],\n+ full_name = 'cursorbind',\n+ pv_name = 'p_crbind',\n+ scope = { 'window' },\n+ short_desc = N_('move cursor in window as it moves in other windows'),\n+ type = 'bool',\n+ },\n+ {\n+ abbreviation = 'cuc',\n+ defaults = { if_true = false },\n+ desc = [=[\n+ Highlight the screen column of the cursor with CursorColumn\n+ |hl-CursorColumn|. Useful to align text. Will make screen redrawing\n+ slower.\n+ If you only want the highlighting in the current window you can use\n+ these autocommands: >\n+ \tau WinLeave * set nocursorline nocursorcolumn\n+ \tau WinEnter * set cursorline cursorcolumn\n+ <\n+ ]=],\n+ full_name = 'cursorcolumn',\n+ redraw = { 'current_window_only' },\n+ scope = { 'window' },\n+ short_desc = N_('highlight the screen column of the cursor'),\n+ type = 'bool',\n+ },\n+ {\n+ abbreviation = 'cul',\n+ defaults = { if_true = false },\n+ desc = [=[\n+ Highlight the text line of the cursor with CursorLine |hl-CursorLine|.\n+ Useful to easily spot the cursor. Will make screen redrawing slower.\n+ When Visual mode is active the highlighting isn't used to make it\n+ easier to see the selected text.\n+ ]=],\n+ full_name = 'cursorline',\n+ redraw = { 'current_window_only' },\n+ scope = { 'window' },\n+ short_desc = N_('highlight the screen line of the cursor'),\n+ type = 'bool',\n+ },\n+ {\n+ abbreviation = 'culopt',\n+ cb = 'did_set_cursorlineopt',\n+ defaults = { if_true = 'both' },\n+ deny_duplicates = true,\n+ desc = [=[\n+ Comma-separated list of settings for how 'cursorline' is displayed.\n+ Valid values:\n+ \"line\"\t\tHighlight the text line of the cursor with\n+ \t\tCursorLine |hl-CursorLine|.\n+ \"screenline\"\tHighlight only the screen line of the cursor with\n+ \t\tCursorLine |hl-CursorLine|.\n+ \"number\"\tHighlight the line number of the cursor with\n+ \t\tCursorLineNr |hl-CursorLineNr|.\n+\n+ Special value:\n+ \"both\"\t\tAlias for the values \"line,number\".\n+\n+ \"line\" and \"screenline\" cannot be used together.\n+ ]=],\n+ full_name = 'cursorlineopt',\n+ list = 'onecomma',\n+ redraw = { 'current_window_only' },\n+ scope = { 'window' },\n+ short_desc = N_(\"settings for 'cursorline'\"),\n+ type = 'string',\n+ },\n+ {\n+ cb = 'did_set_debug',\n+ defaults = { if_true = '' },\n+ desc = [=[\n+ These values can be used:\n+ msg\tError messages that would otherwise be omitted will be given\n+ \tanyway.\n+ throw\tError messages that would otherwise be omitted will be given\n+ \tanyway and also throw an exception and set |v:errmsg|.\n+ beep\tA message will be given when otherwise only a beep would be\n+ \tproduced.\n+ The values can be combined, separated by a comma.\n+ \"msg\" and \"throw\" are useful for debugging 'foldexpr', 'formatexpr' or\n+ 'indentexpr'.\n+ ]=],\n+ full_name = 'debug',\n+ scope = { 'global' },\n+ short_desc = N_('to \"msg\" to see all error messages'),\n+ type = 'string',\n+ varname = 'p_debug',\n+ },\n+ {\n+ abbreviation = 'def',\n+ alloced = true,\n+ defaults = { if_true = '' },\n+ desc = [=[\n+ Pattern to be used to find a macro definition. It is a search\n+ pattern, just like for the \"/\" command. This option is used for the\n+ commands like \"[i\" and \"[d\" |include-search|. The 'isident' option is\n+ used to recognize the defined name after the match: >\n+ \t{match with 'define'}{non-ID chars}{defined name}{non-ID char}\n+ <\tSee |option-backslash| about inserting backslashes to include a space\n+ or backslash.\n+ For C++ this value would be useful, to include const type declarations: >\n+ \t^\\(#\\s*define\\|[a-z]*\\s*const\\s*[a-z]*\\)\n+ <\tYou can also use \"\\ze\" just before the name and continue the pattern\n+ to check what is following. E.g. for Javascript, if a function is\n+ defined with `func_name = function(args)`: >\n+ \t^\\s*\\ze\\i\\+\\s*=\\s*function(\n+ <\tIf the function is defined with `func_name : function() {...`: >\n+ ^\\s*\\ze\\i\\+\\s*[:]\\s*(*function\\s*(\n+ <\tWhen using the \":set\" command, you need to double the backslashes!\n+ To avoid that use `:let` with a single quote string: >\n+ \tlet &l:define = '^\\s*\\ze\\k\\+\\s*=\\s*function('\n+ <\n+ ]=],\n+ full_name = 'define',\n+ redraw = { 'curswant' },\n+ scope = { 'global', 'buffer' },\n+ short_desc = N_('pattern to be used to find a macro definition'),\n+ type = 'string',\n+ varname = 'p_def',\n+ },\n+ {\n+ abbreviation = 'deco',\n+ defaults = { if_true = false },\n+ desc = [=[\n+ If editing Unicode and this option is set, backspace and Normal mode\n+ \"x\" delete each combining character on its own. When it is off (the\n+ default) the character along with its combining characters are\n+ deleted.\n+ Note: When 'delcombine' is set \"xx\" may work differently from \"2x\"!\n+\n+ This is useful for Arabic, Hebrew and many other languages where one\n+ may have combining characters overtop of base characters, and want\n+ to remove only the combining ones.\n+ ]=],\n+ full_name = 'delcombine',\n+ scope = { 'global' },\n+ short_desc = N_('delete combining characters on their own'),\n+ type = 'bool',\n+ varname = 'p_deco',\n+ },\n+ {\n+ abbreviation = 'dict',\n+ defaults = { if_true = '' },\n+ deny_duplicates = true,\n+ desc = [=[\n+ List of file names, separated by commas, that are used to lookup words\n+ for keyword completion commands |i_CTRL-X_CTRL-K|. Each file should\n+ contain a list of words. This can be one word per line, or several\n+ words per line, separated by non-keyword characters (white space is\n+ preferred). Maximum line length is 510 bytes.\n+\n+ When this option is empty or an entry \"spell\" is present, and spell\n+ checking is enabled, words in the word lists for the currently active\n+ 'spelllang' are used. See |spell|.\n+\n+ To include a comma in a file name precede it with a backslash. Spaces\n+ after a comma are ignored, otherwise spaces are included in the file\n+ name. See |option-backslash| about using backslashes.\n+ This has nothing to do with the |Dictionary| variable type.\n+ Where to find a list of words?\n+ - BSD/macOS include the \"/usr/share/dict/words\" file.\n+ - Try \"apt install spell\" to get the \"/usr/share/dict/words\" file on\n+ apt-managed systems (Debian/Ubuntu).\n+ The use of |:set+=| and |:set-=| is preferred when adding or removing\n+ directories from the list. This avoids problems when a future version\n+ uses another default.\n+ Backticks cannot be used in this option for security reasons.\n+ ]=],\n+ expand = true,\n+ full_name = 'dictionary',\n+ list = 'onecomma',\n+ normal_dname_chars = true,\n+ scope = { 'global', 'buffer' },\n+ short_desc = N_('list of file names used for keyword completion'),\n+ type = 'string',\n+ varname = 'p_dict',\n+ },\n+ {\n+ cb = 'did_set_diff',\n+ defaults = { if_true = false },\n+ desc = [=[\n+ Join the current window in the group of windows that shows differences\n+ between files. See |diff-mode|.\n+ ]=],\n+ full_name = 'diff',\n+ noglob = true,\n+ redraw = { 'current_window' },\n+ scope = { 'window' },\n+ short_desc = N_('diff mode for the current window'),\n+ type = 'bool',\n+ },\n+ {\n+ abbreviation = 'dex',\n+ cb = 'did_set_optexpr',\n+ defaults = { if_true = '' },\n+ desc = [=[\n+ Expression which is evaluated to obtain a diff file (either ed-style\n+ or unified-style) from two versions of a file. See |diff-diffexpr|.\n+ This option cannot be set from a |modeline| or in the |sandbox|, for\n+ security reasons.\n+ ]=],\n+ full_name = 'diffexpr',\n+ redraw = { 'curswant' },\n+ scope = { 'global' },\n+ secure = true,\n+ short_desc = N_('expression used to obtain a diff file'),\n+ type = 'string',\n+ varname = 'p_dex',\n+ },\n+ {\n+ abbreviation = 'dip',\n+ alloced = true,\n+ cb = 'did_set_diffopt',\n+ defaults = { if_true = 'internal,filler,closeoff' },\n+ deny_duplicates = true,\n+ desc = [=[\n+ Option settings for diff mode. It can consist of the following items.\n+ All are optional. Items must be separated by a comma.\n+\n+ \tfiller\t\tShow filler lines, to keep the text\n+ \t\t\tsynchronized with a window that has inserted\n+ \t\t\tlines at the same position. Mostly useful\n+ \t\t\twhen windows are side-by-side and 'scrollbind'\n+ \t\t\tis set.\n+\n+ \tcontext:{n}\tUse a context of {n} lines between a change\n+ \t\t\tand a fold that contains unchanged lines.\n+ \t\t\tWhen omitted a context of six lines is used.\n+ \t\t\tWhen using zero the context is actually one,\n+ \t\t\tsince folds require a line in between, also\n+ \t\t\tfor a deleted line.\n+ \t\t\tSee |fold-diff|.\n+\n+ \tiblank\t\tIgnore changes where lines are all blank. Adds\n+ \t\t\tthe \"-B\" flag to the \"diff\" command if\n+ \t\t\t'diffexpr' is empty. Check the documentation\n+ \t\t\tof the \"diff\" command for what this does\n+ \t\t\texactly.\n+ \t\t\tNOTE: the diff windows will get out of sync,\n+ \t\t\tbecause no differences between blank lines are\n+ \t\t\ttaken into account.\n+\n+ \ticase\t\tIgnore changes in case of text. \"a\" and \"A\"\n+ \t\t\tare considered the same. Adds the \"-i\" flag\n+ \t\t\tto the \"diff\" command if 'diffexpr' is empty.\n+\n+ \tiwhite\t\tIgnore changes in amount of white space. Adds\n+ \t\t\tthe \"-b\" flag to the \"diff\" command if\n+ \t\t\t'diffexpr' is empty. Check the documentation\n+ \t\t\tof the \"diff\" command for what this does\n+ \t\t\texactly. It should ignore adding trailing\n+ \t\t\twhite space, but not leading white space.\n+\n+ \tiwhiteall\tIgnore all white space changes. Adds\n+ \t\t\tthe \"-w\" flag to the \"diff\" command if\n+ \t\t\t'diffexpr' is empty. Check the documentation\n+ \t\t\tof the \"diff\" command for what this does\n+ \t\t\texactly.\n+\n+ \tiwhiteeol\tIgnore white space changes at end of line.\n+ \t\t\tAdds the \"-Z\" flag to the \"diff\" command if\n+ \t\t\t'diffexpr' is empty. Check the documentation\n+ \t\t\tof the \"diff\" command for what this does\n+ \t\t\texactly.\n+\n+ \thorizontal\tStart diff mode with horizontal splits (unless\n+ \t\t\texplicitly specified otherwise).\n+\n+ \tvertical\tStart diff mode with vertical splits (unless\n+ \t\t\texplicitly specified otherwise).\n+\n+ \tcloseoff\tWhen a window is closed where 'diff' is set\n+ \t\t\tand there is only one window remaining in the\n+ \t\t\tsame tab page with 'diff' set, execute\n+ \t\t\t`:diffoff` in that window. This undoes a\n+ \t\t\t`:diffsplit` command.\n+\n+ \thiddenoff\tDo not use diff mode for a buffer when it\n+ \t\t\tbecomes hidden.\n+\n+ \tfoldcolumn:{n}\tSet the 'foldcolumn' option to {n} when\n+ \t\t\tstarting diff mode. Without this 2 is used.\n+\n+ \tfollowwrap\tFollow the 'wrap' option and leave as it is.\n+\n+ \tinternal\tUse the internal diff library. This is\n+ \t\t\tignored when 'diffexpr' is set. *E960*\n+ \t\t\tWhen running out of memory when writing a\n+ \t\t\tbuffer this item will be ignored for diffs\n+ \t\t\tinvolving that buffer. Set the 'verbose'\n+ \t\t\toption to see when this happens.\n+\n+ \tindent-heuristic\n+ \t\t\tUse the indent heuristic for the internal\n+ \t\t\tdiff library.\n+\n+ \tlinematch:{n} Enable a second stage diff on each generated\n+ \t\t\thunk in order to align lines. When the total\n+ \t\t\tnumber of lines in a hunk exceeds {n}, the\n+ \t\t\tsecond stage diff will not be performed as\n+ \t\t\tvery large hunks can cause noticeable lag. A\n+ \t\t\trecommended setting is \"linematch:60\", as this\n+ \t\t\twill enable alignment for a 2 buffer diff with\n+ \t\t\thunks of up to 30 lines each, or a 3 buffer\n+ \t\t\tdiff with hunks of up to 20 lines each.\n+\n+ \talgorithm:{text} Use the specified diff algorithm with the\n+ \t\t\tinternal diff engine. Currently supported\n+ \t\t\talgorithms are:\n+ \t\t\tmyers the default algorithm\n+ \t\t\tminimal spend extra time to generate the\n+ \t\t\t\t smallest possible diff\n+ \t\t\tpatience patience diff algorithm\n+ \t\t\thistogram histogram diff algorithm\n+\n+ Examples: >\n+ \t:set diffopt=internal,filler,context:4\n+ \t:set diffopt=\n+ \t:set diffopt=internal,filler,foldcolumn:3\n+ \t:set diffopt-=internal \" do NOT use the internal diff parser\n+ <\n+ ]=],\n+ full_name = 'diffopt',\n+ list = 'onecomma',\n+ redraw = { 'current_window' },\n+ scope = { 'global' },\n+ short_desc = N_('options for using diff mode'),\n+ type = 'string',\n+ varname = 'p_dip',\n+ },\n+ {\n+ abbreviation = 'dg',\n+ defaults = { if_true = false },\n+ desc = [=[\n+ Enable the entering of digraphs in Insert mode with {char1} \n+ {char2}. See |digraphs|.\n+ ]=],\n+ full_name = 'digraph',\n+ scope = { 'global' },\n+ short_desc = N_('enable the entering of digraphs in Insert mode'),\n+ type = 'bool',\n+ varname = 'p_dg',\n+ },\n+ {\n+ abbreviation = 'dir',\n+ defaults = { if_true = '' },\n+ deny_duplicates = true,\n+ desc = [=[\n+ List of directory names for the swap file, separated with commas.\n+\n+ Possible items:\n+ - The swap file will be created in the first directory where this is\n+ possible. If it is not possible in any directory, but last\n+ directory listed in the option does not exist, it is created.\n+ - Empty means that no swap file will be used (recovery is\n+ impossible!) and no |E303| error will be given.\n+ - A directory \".\" means to put the swap file in the same directory as\n+ the edited file. On Unix, a dot is prepended to the file name, so\n+ it doesn't show in a directory listing. On MS-Windows the \"hidden\"\n+ attribute is set and a dot prepended if possible.\n+ - A directory starting with \"./\" (or \".\\\" for MS-Windows) means to put\n+ the swap file relative to where the edited file is. The leading \".\"\n+ is replaced with the path name of the edited file.\n+ - For Unix and Win32, if a directory ends in two path separators \"//\",\n+ the swap file name will be built from the complete path to the file\n+ with all path separators replaced by percent '%' signs (including\n+ the colon following the drive letter on Win32). This will ensure\n+ file name uniqueness in the preserve directory.\n+ On Win32, it is also possible to end with \"\\\\\". However, When a\n+ separating comma is following, you must use \"//\", since \"\\\\\" will\n+ include the comma in the file name. Therefore it is recommended to\n+ use '//', instead of '\\\\'.\n+ - Spaces after the comma are ignored, other spaces are considered part\n+ of the directory name. To have a space at the start of a directory\n+ name, precede it with a backslash.\n+ - To include a comma in a directory name precede it with a backslash.\n+ - A directory name may end in an ':' or '/'.\n+ - Environment variables are expanded |:set_env|.\n+ - Careful with '\\' characters, type one before a space, type two to\n+ get one in the option (see |option-backslash|), for example: >\n+ :set dir=c:\\\\tmp,\\ dir\\\\,with\\\\,commas,\\\\\\ dir\\ with\\ spaces\n+ <\n+ Editing the same file twice will result in a warning. Using \"/tmp\" on\n+ is discouraged: if the system crashes you lose the swap file. And\n+ others on the computer may be able to see the files.\n+ Use |:set+=| and |:set-=| when adding or removing directories from the\n+ list, this avoids problems if the Nvim default is changed.\n+\n+ This option cannot be set from a |modeline| or in the |sandbox|, for\n+ security reasons.\n+ ]=],\n+ expand = 'nodefault',\n+ full_name = 'directory',\n+ list = 'onecomma',\n+ scope = { 'global' },\n+ secure = true,\n+ short_desc = N_('list of directory names for the swap file'),\n+ type = 'string',\n+ varname = 'p_dir',\n+ },\n+ {\n+ abbreviation = 'dy',\n+ cb = 'did_set_display',\n+ defaults = { if_true = 'lastline' },\n+ deny_duplicates = true,\n+ desc = [=[\n+ Change the way text is displayed. This is a comma-separated list of\n+ flags:\n+ lastline\tWhen included, as much as possible of the last line\n+ \t\tin a window will be displayed. \"@@@\" is put in the\n+ \t\tlast columns of the last screen line to indicate the\n+ \t\trest of the line is not displayed.\n+ truncate\tLike \"lastline\", but \"@@@\" is displayed in the first\n+ \t\tcolumn of the last screen line. Overrules \"lastline\".\n+ uhex\t\tShow unprintable characters hexadecimal as \n+ \t\tinstead of using ^C and ~C.\n+ msgsep\t\tObsolete flag. Allowed but takes no effect. |msgsep|\n+\n+ When neither \"lastline\" nor \"truncate\" is included, a last line that\n+ doesn't fit is replaced with \"@\" lines.\n+\n+ The \"@\" character can be changed by setting the \"lastline\" item in\n+ 'fillchars'. The character is highlighted with |hl-NonText|.\n+ ]=],\n+ full_name = 'display',\n+ list = 'onecomma',\n+ redraw = { 'all_windows' },\n+ scope = { 'global' },\n+ short_desc = N_('list of flags for how to display text'),\n+ type = 'string',\n+ varname = 'p_dy',\n+ },\n+ {\n+ abbreviation = 'ead',\n+ cb = 'did_set_eadirection',\n+ defaults = { if_true = 'both' },\n+ desc = [=[\n+ Tells when the 'equalalways' option applies:\n+ \tver\tvertically, width of windows is not affected\n+ \thor\thorizontally, height of windows is not affected\n+ \tboth\twidth and height of windows is affected\n+ ]=],\n+ full_name = 'eadirection',\n+ scope = { 'global' },\n+ short_desc = N_(\"in which direction 'equalalways' works\"),\n+ type = 'string',\n+ varname = 'p_ead',\n+ },\n+ {\n+ abbreviation = 'ed',\n+ defaults = { if_true = false },\n+ full_name = 'edcompatible',\n+ scope = { 'global' },\n+ short_desc = N_('No description'),\n+ type = 'bool',\n+ varname = 'p_force_off',\n+ },\n+ {\n+ abbreviation = 'emo',\n+ cb = 'did_set_ambiwidth',\n+ defaults = { if_true = true },\n+ desc = [=[\n+ When on all Unicode emoji characters are considered to be full width.\n+ This excludes \"text emoji\" characters, which are normally displayed as\n+ single width. Unfortunately there is no good specification for this\n+ and it has been determined on trial-and-error basis. Use the\n+ |setcellwidths()| function to change the behavior.\n+ ]=],\n+ full_name = 'emoji',\n+ redraw = { 'all_windows', 'ui_option' },\n+ scope = { 'global' },\n+ short_desc = N_('No description'),\n+ type = 'bool',\n+ varname = 'p_emoji',\n+ },\n+ {\n+ abbreviation = 'enc',\n+ cb = 'did_set_encoding',\n+ defaults = { if_true = macros('ENC_DFLT') },\n+ deny_in_modelines = true,\n+ desc = [=[\n+ String-encoding used internally and for |RPC| communication.\n+ Always UTF-8.\n+\n+ See 'fileencoding' to control file-content encoding.\n+ ]=],\n+ full_name = 'encoding',\n+ scope = { 'global' },\n+ short_desc = N_('encoding used internally'),\n+ type = 'string',\n+ varname = 'p_enc',\n+ },\n+ {\n+ abbreviation = 'eof',\n+ cb = 'did_set_eof_eol_fixeol_bomb',\n+ defaults = { if_true = false },\n+ desc = [=[\n+ Indicates that a CTRL-Z character was found at the end of the file\n+ when reading it. Normally only happens when 'fileformat' is \"dos\".\n+ When writing a file and this option is off and the 'binary' option\n+ is on, or 'fixeol' option is off, no CTRL-Z will be written at the\n+ end of the file.\n+ See |eol-and-eof| for example settings.\n+ ]=],\n+ full_name = 'endoffile',\n+ no_mkrc = true,\n+ redraw = { 'statuslines' },\n+ scope = { 'buffer' },\n+ short_desc = N_('write CTRL-Z for last line in file'),\n+ type = 'bool',\n+ varname = 'p_eof',\n+ },\n+ {\n+ abbreviation = 'eol',\n+ cb = 'did_set_eof_eol_fixeol_bomb',\n+ defaults = { if_true = true },\n+ desc = [=[\n+ When writing a file and this option is off and the 'binary' option\n+ is on, or 'fixeol' option is off, no will be written for the\n+ last line in the file. This option is automatically set or reset when\n+ starting to edit a new file, depending on whether file has an \n+ for the last line in the file. Normally you don't have to set or\n+ reset this option.\n+ When 'binary' is off and 'fixeol' is on the value is not used when\n+ writing the file. When 'binary' is on or 'fixeol' is off it is used\n+ to remember the presence of a for the last line in the file, so\n+ that when you write the file the situation from the original file can\n+ be kept. But you can change it if you want to.\n+ See |eol-and-eof| for example settings.\n+ ]=],\n+ full_name = 'endofline',\n+ no_mkrc = true,\n+ redraw = { 'statuslines' },\n+ scope = { 'buffer' },\n+ short_desc = N_('write for last line in file'),\n+ type = 'bool',\n+ varname = 'p_eol',\n+ },\n+ {\n+ abbreviation = 'ea',\n+ cb = 'did_set_equalalways',\n+ defaults = { if_true = true },\n+ desc = [=[\n+ When on, all the windows are automatically made the same size after\n+ splitting or closing a window. This also happens the moment the\n+ option is switched on. When off, splitting a window will reduce the\n+ size of the current window and leave the other windows the same. When\n+ closing a window the extra lines are given to the window next to it\n+ (depending on 'splitbelow' and 'splitright').\n+ When mixing vertically and horizontally split windows, a minimal size\n+ is computed and some windows may be larger if there is room. The\n+ 'eadirection' option tells in which direction the size is affected.\n+ Changing the height and width of a window can be avoided by setting\n+ 'winfixheight' and 'winfixwidth', respectively.\n+ If a window size is specified when creating a new window sizes are\n+ currently not equalized (it's complicated, but may be implemented in\n+ the future).\n+ ]=],\n+ full_name = 'equalalways',\n+ scope = { 'global' },\n+ short_desc = N_('windows are automatically made the same size'),\n+ type = 'bool',\n+ varname = 'p_ea',\n+ },\n+ {\n+ abbreviation = 'ep',\n+ defaults = { if_true = '' },\n+ desc = [=[\n+ External program to use for \"=\" command. When this option is empty\n+ the internal formatting functions are used; either 'lisp', 'cindent'\n+ or 'indentexpr'.\n+ Environment variables are expanded |:set_env|. See |option-backslash|\n+ about including spaces and backslashes.\n+ This option cannot be set from a |modeline| or in the |sandbox|, for\n+ security reasons.\n+ ]=],\n+ expand = true,\n+ full_name = 'equalprg',\n+ scope = { 'global', 'buffer' },\n+ secure = true,\n+ short_desc = N_('external program to use for \"=\" command'),\n+ type = 'string',\n+ varname = 'p_ep',\n+ },\n+ {\n+ abbreviation = 'eb',\n+ defaults = { if_true = false },\n+ desc = [=[\n+ Ring the bell (beep or screen flash) for error messages. This only\n+ makes a difference for error messages, the bell will be used always\n+ for a lot of errors without a message (e.g., hitting in Normal\n+ mode). See 'visualbell' to make the bell behave like a screen flash\n+ or do nothing. See 'belloff' to finetune when to ring the bell.\n+ ]=],\n+ full_name = 'errorbells',\n+ scope = { 'global' },\n+ short_desc = N_('ring the bell for error messages'),\n+ type = 'bool',\n+ varname = 'p_eb',\n+ },\n+ {\n+ abbreviation = 'ef',\n+ defaults = { if_true = macros('DFLT_ERRORFILE') },\n+ desc = [=[\n+ Name of the errorfile for the QuickFix mode (see |:cf|).\n+ When the \"-q\" command-line argument is used, 'errorfile' is set to the\n+ following argument. See |-q|.\n+ NOT used for the \":make\" command. See 'makeef' for that.\n+ Environment variables are expanded |:set_env|.\n+ See |option-backslash| about including spaces and backslashes.\n+ This option cannot be set from a |modeline| or in the |sandbox|, for\n+ security reasons.\n+ ]=],\n+ expand = true,\n+ full_name = 'errorfile',\n+ scope = { 'global' },\n+ secure = true,\n+ short_desc = N_('name of the errorfile for the QuickFix mode'),\n+ type = 'string',\n+ varname = 'p_ef',\n+ },\n+ {\n+ abbreviation = 'efm',\n+ defaults = {\n+ if_true = macros('DFLT_EFM'),\n+ doc = 'is very long',\n+ },\n+ deny_duplicates = true,\n+ desc = [=[\n+ Scanf-like description of the format for the lines in the error file\n+ (see |errorformat|).\n+ ]=],\n+ full_name = 'errorformat',\n+ list = 'onecomma',\n+ scope = { 'global', 'buffer' },\n+ short_desc = N_('description of the lines in the error file'),\n+ type = 'string',\n+ varname = 'p_efm',\n+ },\n+ {\n+ abbreviation = 'ei',\n+ cb = 'did_set_eventignore',\n+ defaults = { if_true = '' },\n+ deny_duplicates = true,\n+ desc = [=[\n+ A list of autocommand event names, which are to be ignored.\n+ When set to \"all\" or when \"all\" is one of the items, all autocommand\n+ events are ignored, autocommands will not be executed.\n+ Otherwise this is a comma-separated list of event names. Example: >\n+ :set ei=WinEnter,WinLeave\n+ <\n+ ]=],\n+ full_name = 'eventignore',\n+ list = 'onecomma',\n+ scope = { 'global' },\n+ short_desc = N_('autocommand events that are ignored'),\n+ type = 'string',\n+ varname = 'p_ei',\n+ },\n+ {\n+ abbreviation = 'et',\n+ defaults = { if_true = false },\n+ desc = [=[\n+ In Insert mode: Use the appropriate number of spaces to insert a\n+ . Spaces are used in indents with the '>' and '<' commands and\n+ when 'autoindent' is on. To insert a real tab when 'expandtab' is\n+ on, use CTRL-V. See also |:retab| and |ins-expandtab|.\n+ ]=],\n+ full_name = 'expandtab',\n+ scope = { 'buffer' },\n+ short_desc = N_('use spaces when is inserted'),\n+ type = 'bool',\n+ varname = 'p_et',\n+ },\n+ {\n+ abbreviation = 'ex',\n+ defaults = { if_true = false },\n+ desc = [=[\n+ Automatically execute .nvim.lua, .nvimrc, and .exrc files in the\n+ current directory, if the file is in the |trust| list. Use |:trust| to\n+ manage trusted files. See also |vim.secure.read()|.\n+\n+ Compare 'exrc' to |editorconfig|:\n+ - 'exrc' can execute any code; editorconfig only specifies settings.\n+ - 'exrc' is Nvim-specific; editorconfig works in other editors.\n+\n+ This option cannot be set from a |modeline| or in the |sandbox|, for\n+ security reasons.\n+ ]=],\n+ full_name = 'exrc',\n+ scope = { 'global' },\n+ secure = true,\n+ short_desc = N_('read .nvimrc and .exrc in the current directory'),\n+ type = 'bool',\n+ varname = 'p_exrc',\n+ },\n+ {\n+ abbreviation = 'fenc',\n+ alloced = true,\n+ cb = 'did_set_encoding',\n+ defaults = { if_true = '' },\n+ desc = [=[\n+ File-content encoding for the current buffer. Conversion is done with\n+ iconv() or as specified with 'charconvert'.\n+\n+ When 'fileencoding' is not UTF-8, conversion will be done when\n+ writing the file. For reading see below.\n+ When 'fileencoding' is empty, the file will be saved with UTF-8\n+ encoding (no conversion when reading or writing a file).\n+\n+ WARNING: Conversion to a non-Unicode encoding can cause loss of\n+ information!\n+\n+ See |encoding-names| for the possible values. Additionally, values may be\n+ specified that can be handled by the converter, see\n+ |mbyte-conversion|.\n+\n+ When reading a file 'fileencoding' will be set from 'fileencodings'.\n+ To read a file in a certain encoding it won't work by setting\n+ 'fileencoding', use the |++enc| argument. One exception: when\n+ 'fileencodings' is empty the value of 'fileencoding' is used.\n+ For a new file the global value of 'fileencoding' is used.\n+\n+ Prepending \"8bit-\" and \"2byte-\" has no meaning here, they are ignored.\n+ When the option is set, the value is converted to lowercase. Thus\n+ you can set it with uppercase values too. '_' characters are\n+ replaced with '-'. If a name is recognized from the list at\n+ |encoding-names|, it is replaced by the standard name. For example\n+ \"ISO8859-2\" becomes \"iso-8859-2\".\n+\n+ When this option is set, after starting to edit a file, the 'modified'\n+ option is set, because the file would be different when written.\n+\n+ Keep in mind that changing 'fenc' from a modeline happens\n+ AFTER the text has been read, thus it applies to when the file will be\n+ written. If you do set 'fenc' in a modeline, you might want to set\n+ 'nomodified' to avoid not being able to \":q\".\n+\n+ This option cannot be changed when 'modifiable' is off.\n+ ]=],\n+ full_name = 'fileencoding',\n+ no_mkrc = true,\n+ redraw = { 'statuslines', 'current_buffer' },\n+ scope = { 'buffer' },\n+ short_desc = N_('file encoding for multi-byte text'),\n+ tags = { 'E213' },\n+ type = 'string',\n+ varname = 'p_fenc',\n+ },\n+ {\n+ abbreviation = 'fencs',\n+ defaults = { if_true = 'ucs-bom,utf-8,default,latin1' },\n+ deny_duplicates = true,\n+ desc = [=[\n+ This is a list of character encodings considered when starting to edit\n+ an existing file. When a file is read, Vim tries to use the first\n+ mentioned character encoding. If an error is detected, the next one\n+ in the list is tried. When an encoding is found that works,\n+ 'fileencoding' is set to it. If all fail, 'fileencoding' is set to\n+ an empty string, which means that UTF-8 is used.\n+ \tWARNING: Conversion can cause loss of information! You can use\n+ \tthe |++bad| argument to specify what is done with characters\n+ \tthat can't be converted.\n+ For an empty file or a file with only ASCII characters most encodings\n+ will work and the first entry of 'fileencodings' will be used (except\n+ \"ucs-bom\", which requires the BOM to be present). If you prefer\n+ another encoding use an BufReadPost autocommand event to test if your\n+ preferred encoding is to be used. Example: >\n+ \tau BufReadPost * if search('\\S', 'w') == 0 |\n+ \t\t\\ set fenc=iso-2022-jp | endif\n+ <\tThis sets 'fileencoding' to \"iso-2022-jp\" if the file does not contain\n+ non-blank characters.\n+ When the |++enc| argument is used then the value of 'fileencodings' is\n+ not used.\n+ Note that 'fileencodings' is not used for a new file, the global value\n+ of 'fileencoding' is used instead. You can set it with: >\n+ \t:setglobal fenc=iso-8859-2\n+ <\tThis means that a non-existing file may get a different encoding than\n+ an empty file.\n+ The special value \"ucs-bom\" can be used to check for a Unicode BOM\n+ (Byte Order Mark) at the start of the file. It must not be preceded\n+ by \"utf-8\" or another Unicode encoding for this to work properly.\n+ An entry for an 8-bit encoding (e.g., \"latin1\") should be the last,\n+ because Vim cannot detect an error, thus the encoding is always\n+ accepted.\n+ The special value \"default\" can be used for the encoding from the\n+ environment. It is useful when your environment uses a non-latin1\n+ encoding, such as Russian.\n+ When a file contains an illegal UTF-8 byte sequence it won't be\n+ recognized as \"utf-8\". You can use the |8g8| command to find the\n+ illegal byte sequence.\n+ WRONG VALUES:\t\t\tWHAT'S WRONG:\n+ \tlatin1,utf-8\t\t\"latin1\" will always be used\n+ \tutf-8,ucs-bom,latin1\tBOM won't be recognized in an utf-8\n+ \t\t\t\tfile\n+ \tcp1250,latin1\t\t\"cp1250\" will always be used\n+ If 'fileencodings' is empty, 'fileencoding' is not modified.\n+ See 'fileencoding' for the possible values.\n+ Setting this option does not have an effect until the next time a file\n+ is read.\n+ ]=],\n+ full_name = 'fileencodings',\n+ list = 'onecomma',\n+ scope = { 'global' },\n+ short_desc = N_('automatically detected character encodings'),\n+ type = 'string',\n+ varname = 'p_fencs',\n+ },\n+ {\n+ abbreviation = 'ff',\n+ alloced = true,\n+ cb = 'did_set_fileformat',\n+ defaults = {\n+ if_true = macros('DFLT_FF'),\n+ doc = 'Windows: \"dos\", Unix: \"unix\"',\n+ },\n+ desc = [=[\n+ This gives the of the current buffer, which is used for\n+ reading/writing the buffer from/to a file:\n+ dos\t \n+ unix \n+ mac\t \n+ When \"dos\" is used, CTRL-Z at the end of a file is ignored.\n+ See |file-formats| and |file-read|.\n+ For the character encoding of the file see 'fileencoding'.\n+ When 'binary' is set, the value of 'fileformat' is ignored, file I/O\n+ works like it was set to \"unix\".\n+ This option is set automatically when starting to edit a file and\n+ 'fileformats' is not empty and 'binary' is off.\n+ When this option is set, after starting to edit a file, the 'modified'\n+ option is set, because the file would be different when written.\n+ This option cannot be changed when 'modifiable' is off.\n+ ]=],\n+ full_name = 'fileformat',\n+ no_mkrc = true,\n+ redraw = { 'curswant', 'statuslines' },\n+ scope = { 'buffer' },\n+ short_desc = N_('file format used for file I/O'),\n+ type = 'string',\n+ varname = 'p_ff',\n+ },\n+ {\n+ abbreviation = 'ffs',\n+ cb = 'did_set_fileformats',\n+ defaults = {\n+ if_true = macros('DFLT_FFS_VIM'),\n+ doc = 'Windows: \"dos,unix\", Unix: \"unix,dos\"',\n+ },\n+ deny_duplicates = true,\n+ desc = [=[\n+ This gives the end-of-line () formats that will be tried when\n+ starting to edit a new buffer and when reading a file into an existing\n+ buffer:\n+ - When empty, the format defined with 'fileformat' will be used\n+ always. It is not set automatically.\n+ - When set to one name, that format will be used whenever a new buffer\n+ is opened. 'fileformat' is set accordingly for that buffer. The\n+ 'fileformats' name will be used when a file is read into an existing\n+ buffer, no matter what 'fileformat' for that buffer is set to.\n+ - When more than one name is present, separated by commas, automatic\n+ detection will be done when reading a file. When starting to\n+ edit a file, a check is done for the :\n+ 1. If all lines end in , and 'fileformats' includes \"dos\",\n+ 'fileformat' is set to \"dos\".\n+ 2. If a is found and 'fileformats' includes \"unix\", 'fileformat'\n+ is set to \"unix\". Note that when a is found without a\n+ preceding , \"unix\" is preferred over \"dos\".\n+ 3. If 'fileformat' has not yet been set, and if a is found, and\n+ if 'fileformats' includes \"mac\", 'fileformat' is set to \"mac\".\n+ This means that \"mac\" is only chosen when:\n+ \"unix\" is not present or no is found in the file, and\n+ \"dos\" is not present or no is found in the file.\n+ Except: if \"unix\" was chosen, but there is a before\n+ the first , and there appear to be more s than s in\n+ the first few lines, \"mac\" is used.\n+ 4. If 'fileformat' is still not set, the first name from\n+ 'fileformats' is used.\n+ When reading a file into an existing buffer, the same is done, but\n+ this happens like 'fileformat' has been set appropriately for that\n+ file only, the option is not changed.\n+ When 'binary' is set, the value of 'fileformats' is not used.\n+\n+ When Vim starts up with an empty buffer the first item is used. You\n+ can overrule this by setting 'fileformat' in your .vimrc.\n+\n+ For systems with a Dos-like (), when reading files that\n+ are \":source\"ed and for vimrc files, automatic detection may be\n+ done:\n+ - When 'fileformats' is empty, there is no automatic detection. Dos\n+ format will be used.\n+ - When 'fileformats' is set to one or more names, automatic detection\n+ is done. This is based on the first in the file: If there is a\n+ in front of it, Dos format is used, otherwise Unix format is\n+ used.\n+ Also see |file-formats|.\n+ ]=],\n+ full_name = 'fileformats',\n+ list = 'onecomma',\n+ scope = { 'global' },\n+ short_desc = N_(\"automatically detected values for 'fileformat'\"),\n+ type = 'string',\n+ varname = 'p_ffs',\n+ },\n+ {\n+ abbreviation = 'fic',\n+ defaults = {\n+ condition = 'CASE_INSENSITIVE_FILENAME',\n+ if_false = false,\n+ if_true = true,\n+ doc = [[on for systems where case in file\n+ names is normally ignored]],\n+ },\n+ desc = [=[\n+ When set case is ignored when using file names and directories.\n+ See 'wildignorecase' for only ignoring case when doing completion.\n+ ]=],\n+ full_name = 'fileignorecase',\n+ scope = { 'global' },\n+ short_desc = N_('ignore case when using file names'),\n+ type = 'bool',\n+ varname = 'p_fic',\n+ },\n+ {\n+ abbreviation = 'ft',\n+ alloced = true,\n+ cb = 'did_set_filetype_or_syntax',\n+ defaults = { if_true = '' },\n+ desc = [=[\n+ When this option is set, the FileType autocommand event is triggered.\n+ All autocommands that match with the value of this option will be\n+ executed. Thus the value of 'filetype' is used in place of the file\n+ name.\n+ Otherwise this option does not always reflect the current file type.\n+ This option is normally set when the file type is detected. To enable\n+ this use the \":filetype on\" command. |:filetype|\n+ Setting this option to a different value is most useful in a modeline,\n+ for a file for which the file type is not automatically recognized.\n+ Example, for in an IDL file: >\n+ \t/* vim: set filetype=idl : */\n+ <\t|FileType| |filetypes|\n+ When a dot appears in the value then this separates two filetype\n+ names. Example: >\n+ \t/* vim: set filetype=c.doxygen : */\n+ <\tThis will use the \"c\" filetype first, then the \"doxygen\" filetype.\n+ This works both for filetype plugins and for syntax files. More than\n+ one dot may appear.\n+ This option is not copied to another buffer, independent of the 's' or\n+ 'S' flag in 'cpoptions'.\n+ Only normal file name characters can be used, `/\\*?[|<>` are illegal.\n+ ]=],\n+ expand = true,\n+ full_name = 'filetype',\n+ noglob = true,\n+ normal_fname_chars = true,\n+ scope = { 'buffer' },\n+ short_desc = N_('type of file, used for autocommands'),\n+ type = 'string',\n+ varname = 'p_ft',\n+ },\n+ {\n+ abbreviation = 'fcs',\n+ alloced = true,\n+ cb = 'did_set_chars_option',\n+ defaults = { if_true = '' },\n+ deny_duplicates = true,\n+ desc = [=[\n+ Characters to fill the statuslines, vertical separators and special\n+ lines in the window.\n+ It is a comma-separated list of items. Each item has a name, a colon\n+ and the value of that item:\n+\n+ item\t\tdefault\t\tUsed for ~\n+ stl\t\t' ' or '^'\tstatusline of the current window\n+ stlnc\t\t' ' or '='\tstatusline of the non-current windows\n+ wbr\t\t' '\t\twindow bar\n+ horiz\t\t'─' or '-'\thorizontal separators |:split|\n+ horizup\t'┴' or '-'\tupwards facing horizontal separator\n+ horizdown\t'┬' or '-'\tdownwards facing horizontal separator\n+ vert\t\t'│' or '|'\tvertical separators |:vsplit|\n+ vertleft\t'┤' or '|'\tleft facing vertical separator\n+ vertright\t'├' or '|'\tright facing vertical separator\n+ verthoriz\t'┼' or '+'\toverlapping vertical and horizontal\n+ \t\t\t\tseparator\n+ fold\t\t'·' or '-'\tfilling 'foldtext'\n+ foldopen\t'-'\t\tmark the beginning of a fold\n+ foldclose\t'+'\t\tshow a closed fold\n+ foldsep\t'│' or '|' open fold middle marker\n+ diff\t\t'-'\t\tdeleted lines of the 'diff' option\n+ msgsep\t' '\t\tmessage separator 'display'\n+ eob\t\t'~'\t\tempty lines at the end of a buffer\n+ lastline\t'@'\t\t'display' contains lastline/truncate\n+\n+ Any one that is omitted will fall back to the default. For \"stl\" and\n+ \"stlnc\" the space will be used when there is highlighting, '^' or '='\n+ otherwise.\n+\n+ Note that \"horiz\", \"horizup\", \"horizdown\", \"vertleft\", \"vertright\" and\n+ \"verthoriz\" are only used when 'laststatus' is 3, since only vertical\n+ window separators are used otherwise.\n+\n+ If 'ambiwidth' is \"double\" then \"horiz\", \"horizup\", \"horizdown\",\n+ \"vert\", \"vertleft\", \"vertright\", \"verthoriz\", \"foldsep\" and \"fold\"\n+ default to single-byte alternatives.\n+\n+ Example: >\n+ :set fillchars=stl:^,stlnc:=,vert:│,fold:·,diff:-\n+ <\tThis is similar to the default, except that these characters will also\n+ be used when there is highlighting.\n+\n+ For the \"stl\", \"stlnc\", \"foldopen\", \"foldclose\" and \"foldsep\" items\n+ single-byte and multibyte characters are supported. But double-width\n+ characters are not supported.\n+\n+ The highlighting used for these items:\n+ item\t\thighlight group ~\n+ stl\t\tStatusLine\t\t|hl-StatusLine|\n+ stlnc\t\tStatusLineNC\t\t|hl-StatusLineNC|\n+ wbr\t\tWinBar\t\t\t|hl-WinBar| or |hl-WinBarNC|\n+ horiz\t\tWinSeparator\t\t|hl-WinSeparator|\n+ horizup\tWinSeparator\t\t|hl-WinSeparator|\n+ horizdown\tWinSeparator\t\t|hl-WinSeparator|\n+ vert\t\tWinSeparator\t\t|hl-WinSeparator|\n+ vertleft\tWinSeparator\t\t|hl-WinSeparator|\n+ vertright\tWinSeparator\t\t|hl-WinSeparator|\n+ verthoriz\tWinSeparator\t\t|hl-WinSeparator|\n+ fold\t\tFolded\t\t\t|hl-Folded|\n+ diff\t\tDiffDelete\t\t|hl-DiffDelete|\n+ eob\t\tEndOfBuffer\t\t|hl-EndOfBuffer|\n+ lastline\tNonText\t\t\t|hl-NonText|\n+ ]=],\n+ full_name = 'fillchars',\n+ list = 'onecomma',\n+ redraw = { 'current_window' },\n+ scope = { 'global', 'window' },\n+ short_desc = N_('characters to use for displaying special items'),\n+ type = 'string',\n+ varname = 'p_fcs',\n+ },\n+ {\n+ abbreviation = 'fixeol',\n+ cb = 'did_set_eof_eol_fixeol_bomb',\n+ defaults = { if_true = true },\n+ desc = [=[\n+ When writing a file and this option is on, at the end of file\n+ will be restored if missing. Turn this option off if you want to\n+ preserve the situation from the original file.\n+ When the 'binary' option is set the value of this option doesn't\n+ matter.\n+ See the 'endofline' option.\n+ See |eol-and-eof| for example settings.\n+ ]=],\n+ full_name = 'fixendofline',\n+ redraw = { 'statuslines' },\n+ scope = { 'buffer' },\n+ short_desc = N_('make sure last line in file has '),\n+ type = 'bool',\n+ varname = 'p_fixeol',\n+ },\n+ {\n+ abbreviation = 'fcl',\n+ cb = 'did_set_foldclose',\n+ defaults = { if_true = '' },\n+ deny_duplicates = true,\n+ desc = [=[\n+ When set to \"all\", a fold is closed when the cursor isn't in it and\n+ its level is higher than 'foldlevel'. Useful if you want folds to\n+ automatically close when moving out of them.\n+ ]=],\n+ full_name = 'foldclose',\n+ list = 'onecomma',\n+ redraw = { 'current_window' },\n+ scope = { 'global' },\n+ short_desc = N_('close a fold when the cursor leaves it'),\n+ type = 'string',\n+ varname = 'p_fcl',\n+ },\n+ {\n+ abbreviation = 'fdc',\n+ alloced = true,\n+ cb = 'did_set_foldcolumn',\n+ defaults = { if_true = '0' },\n+ desc = [=[\n+ When and how to draw the foldcolumn. Valid values are:\n+ \"auto\": resize to the minimum amount of folds to display.\n+ \"auto:[1-9]\": resize to accommodate multiple folds up to the\n+ \t\t selected level\n+ 0: to disable foldcolumn\n+ \"[1-9]\": to display a fixed number of columns\n+ See |folding|.\n+ ]=],\n+ full_name = 'foldcolumn',\n+ redraw = { 'current_window' },\n+ scope = { 'window' },\n+ short_desc = N_('width of the column used to indicate folds'),\n+ type = 'string',\n+ },\n+ {\n+ abbreviation = 'fen',\n+ defaults = { if_true = true },\n+ desc = [=[\n+ When off, all folds are open. This option can be used to quickly\n+ switch between showing all text unfolded and viewing the text with\n+ folds (including manually opened or closed folds). It can be toggled\n+ with the |zi| command. The 'foldcolumn' will remain blank when\n+ 'foldenable' is off.\n+ This option is set by commands that create a new fold or close a fold.\n+ See |folding|.\n+ ]=],\n+ full_name = 'foldenable',\n+ redraw = { 'current_window' },\n+ scope = { 'window' },\n+ short_desc = N_('set to display all folds open'),\n+ type = 'bool',\n+ },\n+ {\n+ abbreviation = 'fde',\n+ alloced = true,\n+ cb = 'did_set_foldexpr',\n+ defaults = { if_true = '0' },\n+ desc = [=[\n+ The expression used for when 'foldmethod' is \"expr\". It is evaluated\n+ for each line to obtain its fold level. The context is set to the\n+ script where 'foldexpr' was set, script-local items can be accessed.\n+ See |fold-expr| for the usage.\n+\n+ The expression will be evaluated in the |sandbox| if set from a\n+ modeline, see |sandbox-option|.\n+ This option can't be set from a |modeline| when the 'diff' option is\n+ on or the 'modelineexpr' option is off.\n+\n+ It is not allowed to change text or jump to another window while\n+ evaluating 'foldexpr' |textlock|.\n+ ]=],\n+ full_name = 'foldexpr',\n+ modelineexpr = true,\n+ redraw = { 'current_window' },\n+ scope = { 'window' },\n+ short_desc = N_('expression used when \\'foldmethod\\' is \"expr\"'),\n+ type = 'string',\n+ },\n+ {\n+ abbreviation = 'fdi',\n+ alloced = true,\n+ cb = 'did_set_foldignore',\n+ defaults = { if_true = '#' },\n+ desc = [=[\n+ Used only when 'foldmethod' is \"indent\". Lines starting with\n+ characters in 'foldignore' will get their fold level from surrounding\n+ lines. White space is skipped before checking for this character.\n+ The default \"#\" works well for C programs. See |fold-indent|.\n+ ]=],\n+ full_name = 'foldignore',\n+ redraw = { 'current_window' },\n+ scope = { 'window' },\n+ short_desc = N_('ignore lines when \\'foldmethod\\' is \"indent\"'),\n+ type = 'string',\n+ },\n+ {\n+ abbreviation = 'fdl',\n+ cb = 'did_set_foldlevel',\n+ defaults = { if_true = 0 },\n+ desc = [=[\n+ Sets the fold level: Folds with a higher level will be closed.\n+ Setting this option to zero will close all folds. Higher numbers will\n+ close fewer folds.\n+ This option is set by commands like |zm|, |zM| and |zR|.\n+ See |fold-foldlevel|.\n+ ]=],\n+ full_name = 'foldlevel',\n+ redraw = { 'current_window' },\n+ scope = { 'window' },\n+ short_desc = N_('close folds with a level higher than this'),\n+ type = 'number',\n+ },\n+ {\n+ abbreviation = 'fdls',\n+ defaults = { if_true = -1 },\n+ desc = [=[\n+ Sets 'foldlevel' when starting to edit another buffer in a window.\n+ Useful to always start editing with all folds closed (value zero),\n+ some folds closed (one) or no folds closed (99).\n+ This is done before reading any modeline, thus a setting in a modeline\n+ overrules this option. Starting to edit a file for |diff-mode| also\n+ ignores this option and closes all folds.\n+ It is also done before BufReadPre autocommands, to allow an autocmd to\n+ overrule the 'foldlevel' value for specific files.\n+ When the value is negative, it is not used.\n+ ]=],\n+ full_name = 'foldlevelstart',\n+ redraw = { 'curswant' },\n+ scope = { 'global' },\n+ short_desc = N_(\"'foldlevel' when starting to edit a file\"),\n+ type = 'number',\n+ varname = 'p_fdls',\n+ },\n+ {\n+ abbreviation = 'fmr',\n+ alloced = true,\n+ cb = 'did_set_foldmarker',\n+ defaults = { if_true = '{{{,}}}' },\n+ deny_duplicates = true,\n+ desc = [=[\n+ The start and end marker used when 'foldmethod' is \"marker\". There\n+ must be one comma, which separates the start and end marker. The\n+ marker is a literal string (a regular expression would be too slow).\n+ See |fold-marker|.\n+ ]=],\n+ full_name = 'foldmarker',\n+ list = 'onecomma',\n+ redraw = { 'current_window' },\n+ scope = { 'window' },\n+ short_desc = N_('markers used when \\'foldmethod\\' is \"marker\"'),\n+ type = 'string',\n+ },\n+ {\n+ abbreviation = 'fdm',\n+ alloced = true,\n+ cb = 'did_set_foldmethod',\n+ defaults = { if_true = 'manual' },\n+ desc = [=[\n+ The kind of folding used for the current window. Possible values:\n+ |fold-manual|\tmanual\t Folds are created manually.\n+ |fold-indent|\tindent\t Lines with equal indent form a fold.\n+ |fold-expr|\texpr\t 'foldexpr' gives the fold level of a line.\n+ |fold-marker|\tmarker\t Markers are used to specify folds.\n+ |fold-syntax|\tsyntax\t Syntax highlighting items specify folds.\n+ |fold-diff|\tdiff\t Fold text that is not changed.\n+ ]=],\n+ full_name = 'foldmethod',\n+ redraw = { 'current_window' },\n+ scope = { 'window' },\n+ short_desc = N_('folding type'),\n+ type = 'string',\n+ },\n+ {\n+ abbreviation = 'fml',\n+ cb = 'did_set_foldminlines',\n+ defaults = { if_true = 1 },\n+ desc = [=[\n+ Sets the number of screen lines above which a fold can be displayed\n+ closed. Also for manually closed folds. With the default value of\n+ one a fold can only be closed if it takes up two or more screen lines.\n+ Set to zero to be able to close folds of just one screen line.\n+ Note that this only has an effect on what is displayed. After using\n+ \"zc\" to close a fold, which is displayed open because it's smaller\n+ than 'foldminlines', a following \"zc\" may close a containing fold.\n+ ]=],\n+ full_name = 'foldminlines',\n+ redraw = { 'current_window' },\n+ scope = { 'window' },\n+ short_desc = N_('minimum number of lines for a fold to be closed'),\n+ type = 'number',\n+ },\n+ {\n+ abbreviation = 'fdn',\n+ cb = 'did_set_foldnestmax',\n+ defaults = { if_true = 20 },\n+ desc = [=[\n+ Sets the maximum nesting of folds for the \"indent\" and \"syntax\"\n+ methods. This avoids that too many folds will be created. Using more\n+ than 20 doesn't work, because the internal limit is 20.\n+ ]=],\n+ full_name = 'foldnestmax',\n+ redraw = { 'current_window' },\n+ scope = { 'window' },\n+ short_desc = N_('maximum fold depth'),\n+ type = 'number',\n+ },\n+ {\n+ abbreviation = 'fdo',\n+ cb = 'did_set_foldopen',\n+ defaults = { if_true = 'block,hor,mark,percent,quickfix,search,tag,undo' },\n+ deny_duplicates = true,\n+ desc = [=[\n+ Specifies for which type of commands folds will be opened, if the\n+ command moves the cursor into a closed fold. It is a comma-separated\n+ list of items.\n+ NOTE: When the command is part of a mapping this option is not used.\n+ Add the |zv| command to the mapping to get the same effect.\n+ (rationale: the mapping may want to control opening folds itself)\n+\n+ \titem\t\tcommands ~\n+ \tall\t\tany\n+ \tblock\t\t(, {, [[, [{, etc.\n+ \thor\t\thorizontal movements: \"l\", \"w\", \"fx\", etc.\n+ \tinsert\t\tany command in Insert mode\n+ \tjump\t\tfar jumps: \"G\", \"gg\", etc.\n+ \tmark\t\tjumping to a mark: \"'m\", CTRL-O, etc.\n+ \tpercent\t\t\"%\"\n+ \tquickfix\t\":cn\", \":crew\", \":make\", etc.\n+ \tsearch\t\tsearch for a pattern: \"/\", \"n\", \"*\", \"gd\", etc.\n+ \t\t\t(not for a search pattern in a \":\" command)\n+ \t\t\tAlso for |[s| and |]s|.\n+ \ttag\t\tjumping to a tag: \":ta\", CTRL-T, etc.\n+ \tundo\t\tundo or redo: \"u\" and CTRL-R\n+ When a movement command is used for an operator (e.g., \"dl\" or \"y%\")\n+ this option is not used. This means the operator will include the\n+ whole closed fold.\n+ Note that vertical movements are not here, because it would make it\n+ very difficult to move onto a closed fold.\n+ In insert mode the folds containing the cursor will always be open\n+ when text is inserted.\n+ To close folds you can re-apply 'foldlevel' with the |zx| command or\n+ set the 'foldclose' option to \"all\".\n+ ]=],\n+ full_name = 'foldopen',\n+ list = 'onecomma',\n+ redraw = { 'curswant' },\n+ scope = { 'global' },\n+ short_desc = N_('for which commands a fold will be opened'),\n+ type = 'string',\n+ varname = 'p_fdo',\n+ },\n+ {\n+ abbreviation = 'fdt',\n+ alloced = true,\n+ cb = 'did_set_optexpr',\n+ defaults = { if_true = 'foldtext()' },\n+ desc = [=[\n+ An expression which is used to specify the text displayed for a closed\n+ fold. The context is set to the script where 'foldexpr' was set,\n+ script-local items can be accessed. See |fold-foldtext| for the\n+ usage.\n+\n+ The expression will be evaluated in the |sandbox| if set from a\n+ modeline, see |sandbox-option|.\n+ This option cannot be set in a modeline when 'modelineexpr' is off.\n+\n+ It is not allowed to change text or jump to another window while\n+ evaluating 'foldtext' |textlock|.\n+ ]=],\n+ full_name = 'foldtext',\n+ modelineexpr = true,\n+ redraw = { 'current_window' },\n+ scope = { 'window' },\n+ short_desc = N_('expression used to display for a closed fold'),\n+ type = 'string',\n+ },\n+ {\n+ abbreviation = 'fex',\n+ alloced = true,\n+ cb = 'did_set_optexpr',\n+ defaults = { if_true = '' },\n+ desc = [=[\n+ Expression which is evaluated to format a range of lines for the |gq|\n+ operator or automatic formatting (see 'formatoptions'). When this\n+ option is empty 'formatprg' is used.\n+\n+ The |v:lnum| variable holds the first line to be formatted.\n+ The |v:count| variable holds the number of lines to be formatted.\n+ The |v:char| variable holds the character that is going to be\n+ \t inserted if the expression is being evaluated due to\n+ \t automatic formatting. This can be empty. Don't insert\n+ \t it yet!\n+\n+ Example: >\n+ \t:set formatexpr=mylang#Format()\n+ <\tThis will invoke the mylang#Format() function in the\n+ autoload/mylang.vim file in 'runtimepath'. |autoload|\n+\n+ The expression is also evaluated when 'textwidth' is set and adding\n+ text beyond that limit. This happens under the same conditions as\n+ when internal formatting is used. Make sure the cursor is kept in the\n+ same spot relative to the text then! The |mode()| function will\n+ return \"i\" or \"R\" in this situation.\n+\n+ When the expression evaluates to non-zero Vim will fall back to using\n+ the internal format mechanism.\n+\n+ If the expression starts with s: or ||, then it is replaced with\n+ the script ID (|local-function|). Example: >\n+ \tset formatexpr=s:MyFormatExpr()\n+ \tset formatexpr=SomeFormatExpr()\n+ <\tOtherwise, the expression is evaluated in the context of the script\n+ where the option was set, thus script-local items are available.\n+\n+ The expression will be evaluated in the |sandbox| when set from a\n+ modeline, see |sandbox-option|. That stops the option from working,\n+ since changing the buffer text is not allowed.\n+ This option cannot be set in a modeline when 'modelineexpr' is off.\n+ NOTE: This option is set to \"\" when 'compatible' is set.\n+ ]=],\n+ full_name = 'formatexpr',\n+ modelineexpr = true,\n+ scope = { 'buffer' },\n+ short_desc = N_('expression used with \"gq\" command'),\n+ type = 'string',\n+ varname = 'p_fex',\n+ },\n+ {\n+ abbreviation = 'fo',\n+ alloced = true,\n+ cb = 'did_set_formatoptions',\n+ defaults = { if_true = macros('DFLT_FO_VIM') },\n+ desc = [=[\n+ This is a sequence of letters which describes how automatic\n+ formatting is to be done. See |fo-table|. Commas can be inserted for\n+ readability.\n+ To avoid problems with flags that are added in the future, use the\n+ \"+=\" and \"-=\" feature of \":set\" |add-option-flags|.\n+ ]=],\n+ full_name = 'formatoptions',\n+ list = 'flags',\n+ scope = { 'buffer' },\n+ short_desc = N_('how automatic formatting is to be done'),\n+ type = 'string',\n+ varname = 'p_fo',\n+ },\n+ {\n+ abbreviation = 'flp',\n+ alloced = true,\n+ defaults = { if_true = '^\\\\s*\\\\d\\\\+[\\\\]:.)}\\\\t ]\\\\s*' },\n+ desc = [=[\n+ A pattern that is used to recognize a list header. This is used for\n+ the \"n\" flag in 'formatoptions'.\n+ The pattern must match exactly the text that will be the indent for\n+ the line below it. You can use |/\\ze| to mark the end of the match\n+ while still checking more characters. There must be a character\n+ following the pattern, when it matches the whole line it is handled\n+ like there is no match.\n+ The default recognizes a number, followed by an optional punctuation\n+ character and white space.\n+ ]=],\n+ full_name = 'formatlistpat',\n+ scope = { 'buffer' },\n+ short_desc = N_('pattern used to recognize a list header'),\n+ type = 'string',\n+ varname = 'p_flp',\n+ },\n+ {\n+ abbreviation = 'fp',\n+ defaults = { if_true = '' },\n+ desc = [=[\n+ The name of an external program that will be used to format the lines\n+ selected with the |gq| operator. The program must take the input on\n+ stdin and produce the output on stdout. The Unix program \"fmt\" is\n+ such a program.\n+ If the 'formatexpr' option is not empty it will be used instead.\n+ Otherwise, if 'formatprg' option is an empty string, the internal\n+ format function will be used |C-indenting|.\n+ Environment variables are expanded |:set_env|. See |option-backslash|\n+ about including spaces and backslashes.\n+ This option cannot be set from a |modeline| or in the |sandbox|, for\n+ security reasons.\n+ ]=],\n+ expand = true,\n+ full_name = 'formatprg',\n+ scope = { 'global', 'buffer' },\n+ secure = true,\n+ short_desc = N_('name of external program used with \"gq\" command'),\n+ type = 'string',\n+ varname = 'p_fp',\n+ },\n+ {\n+ abbreviation = 'fs',\n+ defaults = { if_true = false },\n+ desc = [=[\n+ When on, the OS function fsync() will be called after saving a file\n+ (|:write|, |writefile()|, …), |swap-file|, |undo-persistence| and |shada-file|.\n+ This flushes the file to disk, ensuring that it is safely written.\n+ Slow on some systems: writing buffers, quitting Nvim, and other\n+ operations may sometimes take a few seconds.\n+\n+ Files are ALWAYS flushed ('fsync' is ignored) when:\n+ - |CursorHold| event is triggered\n+ - |:preserve| is called\n+ - system signals low battery life\n+ - Nvim exits abnormally\n+\n+ This option cannot be set from a |modeline| or in the |sandbox|, for\n+ security reasons.\n+ ]=],\n+ full_name = 'fsync',\n+ scope = { 'global' },\n+ secure = true,\n+ short_desc = N_('whether to invoke fsync() after file write'),\n+ type = 'bool',\n+ varname = 'p_fs',\n+ },\n+ {\n+ abbreviation = 'gd',\n+ defaults = { if_true = false },\n+ desc = [=[\n+ When on, the \":substitute\" flag 'g' is default on. This means that\n+ all matches in a line are substituted instead of one. When a 'g' flag\n+ is given to a \":substitute\" command, this will toggle the substitution\n+ of all or one match. See |complex-change|.\n+\n+ \tcommand\t\t'gdefault' on\t'gdefault' off\t~\n+ \t:s///\t\t subst. all\t subst. one\n+ \t:s///g\t\t subst. one\t subst. all\n+ \t:s///gg\t\t subst. all\t subst. one\n+\n+ DEPRECATED: Setting this option may break plugins that are not aware\n+ of this option. Also, many users get confused that adding the /g flag\n+ has the opposite effect of that it normally does.\n+ ]=],\n+ full_name = 'gdefault',\n+ scope = { 'global' },\n+ short_desc = N_('the \":substitute\" flag \\'g\\' is default on'),\n+ type = 'bool',\n+ varname = 'p_gd',\n+ },\n+ {\n+ abbreviation = 'gfm',\n+ defaults = { if_true = macros('DFLT_GREPFORMAT') },\n+ deny_duplicates = true,\n+ desc = [=[\n+ Format to recognize for the \":grep\" command output.\n+ This is a scanf-like string that uses the same format as the\n+ 'errorformat' option: see |errorformat|.\n+ ]=],\n+ full_name = 'grepformat',\n+ list = 'onecomma',\n+ scope = { 'global' },\n+ short_desc = N_(\"format of 'grepprg' output\"),\n+ type = 'string',\n+ varname = 'p_gefm',\n+ },\n+ {\n+ abbreviation = 'gp',\n+ defaults = {\n+ condition = 'MSWIN',\n+ if_false = 'grep -n $* /dev/null',\n+ if_true = 'findstr /n $* nul',\n+ doc = [[\"grep -n \",\n+ Unix: \"grep -n $* /dev/null\"]],\n+ },\n+ desc = [=[\n+ Program to use for the |:grep| command. This option may contain '%'\n+ and '#' characters, which are expanded like when used in a command-\n+ line. The placeholder \"$*\" is allowed to specify where the arguments\n+ will be included. Environment variables are expanded |:set_env|. See\n+ |option-backslash| about including spaces and backslashes.\n+ When your \"grep\" accepts the \"-H\" argument, use this to make \":grep\"\n+ also work well with a single file: >\n+ \t:set grepprg=grep\\ -nH\n+ <\tSpecial value: When 'grepprg' is set to \"internal\" the |:grep| command\n+ works like |:vimgrep|, |:lgrep| like |:lvimgrep|, |:grepadd| like\n+ |:vimgrepadd| and |:lgrepadd| like |:lvimgrepadd|.\n+ See also the section |:make_makeprg|, since most of the comments there\n+ apply equally to 'grepprg'.\n+ This option cannot be set from a |modeline| or in the |sandbox|, for\n+ security reasons.\n+ ]=],\n+ expand = true,\n+ full_name = 'grepprg',\n+ scope = { 'global', 'buffer' },\n+ secure = true,\n+ short_desc = N_('program to use for \":grep\"'),\n+ type = 'string',\n+ varname = 'p_gp',\n+ },\n+ {\n+ abbreviation = 'gcr',\n+ cb = 'did_set_guicursor',\n+ defaults = { if_true = 'n-v-c-sm:block,i-ci-ve:ver25,r-cr-o:hor20' },\n+ deny_duplicates = true,\n+ desc = [=[\n+ Configures the cursor style for each mode. Works in the GUI and many\n+ terminals. See |tui-cursor-shape|.\n+\n+ To disable cursor-styling, reset the option: >\n+ \t:set guicursor=\n+\n+ <\tTo enable mode shapes, \"Cursor\" highlight, and blinking: >\n+ \t:set guicursor=n-v-c:block,i-ci-ve:ver25,r-cr:hor20,o:hor50\n+ \t \\,a:blinkwait700-blinkoff400-blinkon250-Cursor/lCursor\n+ \t \\,sm:block-blinkwait175-blinkoff150-blinkon175\n+\n+ <\tThe option is a comma-separated list of parts. Each part consists of a\n+ mode-list and an argument-list:\n+ \tmode-list:argument-list,mode-list:argument-list,..\n+ The mode-list is a dash separated list of these modes:\n+ \tn\tNormal mode\n+ \tv\tVisual mode\n+ \tve\tVisual mode with 'selection' \"exclusive\" (same as 'v',\n+ \t\tif not specified)\n+ \to\tOperator-pending mode\n+ \ti\tInsert mode\n+ \tr\tReplace mode\n+ \tc\tCommand-line Normal (append) mode\n+ \tci\tCommand-line Insert mode\n+ \tcr\tCommand-line Replace mode\n+ \tsm\tshowmatch in Insert mode\n+ \ta\tall modes\n+ The argument-list is a dash separated list of these arguments:\n+ \thor{N}\thorizontal bar, {N} percent of the character height\n+ \tver{N}\tvertical bar, {N} percent of the character width\n+ \tblock\tblock cursor, fills the whole character\n+ \t\t- Only one of the above three should be present.\n+ \t\t- Default is \"block\" for each mode.\n+ \tblinkwait{N}\t\t\t\t*cursor-blinking*\n+ \tblinkon{N}\n+ \tblinkoff{N}\n+ \t\tblink times for cursor: blinkwait is the delay before\n+ \t\tthe cursor starts blinking, blinkon is the time that\n+ \t\tthe cursor is shown and blinkoff is the time that the\n+ \t\tcursor is not shown. Times are in msec. When one of\n+ \t\tthe numbers is zero, there is no blinking. E.g.: >\n+ \t\t\t:set guicursor=n:blinkon0\n+ <\t\t\t- Default is \"blinkon0\" for each mode.\n+ \t{group-name}\n+ \t\tHighlight group that decides the color and font of the\n+ \t\tcursor.\n+ \t\tIn the |TUI|:\n+ \t\t- |inverse|/reverse and no group-name are interpreted\n+ \t\t as \"host-terminal default cursor colors\" which\n+ \t\t typically means \"inverted bg and fg colors\".\n+ \t\t- |ctermfg| and |guifg| are ignored.\n+ \t{group-name}/{group-name}\n+ \t\tTwo highlight group names, the first is used when\n+ \t\tno language mappings are used, the other when they\n+ \t\tare. |language-mapping|\n+\n+ Examples of parts:\n+ n-c-v:block-nCursor\tIn Normal, Command-line and Visual mode, use a\n+ \t\t\tblock cursor with colors from the \"nCursor\"\n+ \t\t\thighlight group\n+ n-v-c-sm:block,i-ci-ve:ver25-Cursor,r-cr-o:hor20\n+ \t\t\tIn Normal et al. modes, use a block cursor\n+ \t\t\twith the default colors defined by the host\n+ \t\t\tterminal. In Insert-likes modes, use\n+ \t\t\ta vertical bar cursor with colors from\n+ \t\t\t\"Cursor\" highlight group. In Replace-likes\n+ \t\t\tmodes, use a underline cursor with\n+ \t\t\tdefault colors.\n+ i-ci:ver30-iCursor-blinkwait300-blinkon200-blinkoff150\n+ \t\t\tIn Insert and Command-line Insert mode, use a\n+ \t\t\t30% vertical bar cursor with colors from the\n+ \t\t\t\"iCursor\" highlight group. Blink a bit\n+ \t\t\tfaster.\n+\n+ The 'a' mode is different. It will set the given argument-list for\n+ all modes. It does not reset anything to defaults. This can be used\n+ to do a common setting for all modes. For example, to switch off\n+ blinking: \"a:blinkon0\"\n+\n+ Examples of cursor highlighting: >\n+ :highlight Cursor gui=reverse guifg=NONE guibg=NONE\n+ :highlight Cursor gui=NONE guifg=bg guibg=fg\n+ <\n+ ]=],\n+ full_name = 'guicursor',\n+ list = 'onecomma',\n+ scope = { 'global' },\n+ short_desc = N_('GUI: settings for cursor shape and blinking'),\n+ tags = { 'E545', 'E546', 'E548', 'E549' },\n+ type = 'string',\n+ varname = 'p_guicursor',\n+ },\n+ {\n+ abbreviation = 'gfn',\n+ defaults = { if_true = '' },\n+ desc = [=[\n+ This is a list of fonts which will be used for the GUI version of Vim.\n+ In its simplest form the value is just one font name. When\n+ the font cannot be found you will get an error message. To try other\n+ font names a list can be specified, font names separated with commas.\n+ The first valid font is used.\n+\n+ Spaces after a comma are ignored. To include a comma in a font name\n+ precede it with a backslash. Setting an option requires an extra\n+ backslash before a space and a backslash. See also\n+ |option-backslash|. For example: >\n+ :set guifont=Screen15,\\ 7x13,font\\\\,with\\\\,commas\n+ <\twill make Vim try to use the font \"Screen15\" first, and if it fails it\n+ will try to use \"7x13\" and then \"font,with,commas\" instead.\n+\n+ If none of the fonts can be loaded, Vim will keep the current setting.\n+ If an empty font list is given, Vim will try using other resource\n+ settings (for X, it will use the Vim.font resource), and finally it\n+ will try some builtin default which should always be there (\"7x13\" in\n+ the case of X). The font names given should be \"normal\" fonts. Vim\n+ will try to find the related bold and italic fonts.\n+\n+ For Win32 and Mac OS: >\n+ :set guifont=*\n+ <\twill bring up a font requester, where you can pick the font you want.\n+\n+ The font name depends on the GUI used.\n+\n+ For Mac OSX you can use something like this: >\n+ :set guifont=Monaco:h10\n+ <\t\t\t\t\t\t\t\t*E236*\n+ Note that the fonts must be mono-spaced (all characters have the same\n+ width).\n+\n+ To preview a font on X11, you might be able to use the \"xfontsel\"\n+ program. The \"xlsfonts\" program gives a list of all available fonts.\n+\n+ For the Win32 GUI\t\t\t\t\t*E244* *E245*\n+ - takes these options in the font name:\n+ \thXX - height is XX (points, can be floating-point)\n+ \twXX - width is XX (points, can be floating-point)\n+ \tb - bold\n+ \ti - italic\n+ \tu - underline\n+ \ts - strikeout\n+ \tcXX - character set XX. Valid charsets are: ANSI, ARABIC,\n+ \t BALTIC, CHINESEBIG5, DEFAULT, EASTEUROPE, GB2312, GREEK,\n+ \t HANGEUL, HEBREW, JOHAB, MAC, OEM, RUSSIAN, SHIFTJIS,\n+ \t SYMBOL, THAI, TURKISH, VIETNAMESE ANSI and BALTIC.\n+ \t Normally you would use \"cDEFAULT\".\n+\n+ Use a ':' to separate the options.\n+ - A '_' can be used in the place of a space, so you don't need to use\n+ backslashes to escape the spaces.\n+ - Examples: >\n+ :set guifont=courier_new:h12:w5:b:cRUSSIAN\n+ :set guifont=Andale_Mono:h7.5:w4.5\n+ <\n+ ]=],\n+ deny_duplicates = true,\n+ full_name = 'guifont',\n+ list = 'onecomma',\n+ redraw = { 'ui_option' },\n+ scope = { 'global' },\n+ short_desc = N_('GUI: Name(s) of font(s) to be used'),\n+ tags = { 'E235', 'E596' },\n+ type = 'string',\n+ varname = 'p_guifont',\n+ },\n+ {\n+ abbreviation = 'gfw',\n+ defaults = { if_true = '' },\n+ deny_duplicates = true,\n+ desc = [=[\n+ Comma-separated list of fonts to be used for double-width characters.\n+ The first font that can be loaded is used.\n+ Note: The size of these fonts must be exactly twice as wide as the one\n+ specified with 'guifont' and the same height.\n+\n+ When 'guifont' has a valid font and 'guifontwide' is empty Vim will\n+ attempt to set 'guifontwide' to a matching double-width font.\n+ ]=],\n+ full_name = 'guifontwide',\n+ list = 'onecomma',\n+ redraw = { 'ui_option' },\n+ scope = { 'global' },\n+ short_desc = N_('list of font names for double-wide characters'),\n+ tags = { 'E231', 'E533', 'E534' },\n+ type = 'string',\n+ varname = 'p_guifontwide',\n+ },\n+ {\n+ abbreviation = 'go',\n+ defaults = {\n+ if_true = '',\n+ doc = '\"egmrLT\" (MS-Windows)',\n+ },\n+ desc = [=[\n+ This option only has an effect in the GUI version of Vim. It is a\n+ sequence of letters which describes what components and options of the\n+ GUI should be used.\n+ To avoid problems with flags that are added in the future, use the\n+ \"+=\" and \"-=\" feature of \":set\" |add-option-flags|.\n+\n+ Valid letters are as follows:\n+ \t\t\t\t\t\t*guioptions_a* *'go-a'*\n+ 'a'\tAutoselect: If present, then whenever VISUAL mode is started,\n+ \tor the Visual area extended, Vim tries to become the owner of\n+ \tthe windowing system's global selection. This means that the\n+ \tVisually highlighted text is available for pasting into other\n+ \tapplications as well as into Vim itself. When the Visual mode\n+ \tends, possibly due to an operation on the text, or when an\n+ \tapplication wants to paste the selection, the highlighted text\n+ \tis automatically yanked into the \"* selection register.\n+ \tThus the selection is still available for pasting into other\n+ \tapplications after the VISUAL mode has ended.\n+ \t If not present, then Vim won't become the owner of the\n+ \twindowing system's global selection unless explicitly told to\n+ \tby a yank or delete operation for the \"* register.\n+ \tThe same applies to the modeless selection.\n+ \t\t\t\t\t\t\t*'go-P'*\n+ 'P'\tLike autoselect but using the \"+ register instead of the \"*\n+ \tregister.\n+ \t\t\t\t\t\t\t*'go-A'*\n+ 'A'\tAutoselect for the modeless selection. Like 'a', but only\n+ \tapplies to the modeless selection.\n+\n+ \t 'guioptions' autoselect Visual autoselect modeless ~\n+ \t\t \"\"\t\t -\t\t\t -\n+ \t\t \"a\"\t\tyes\t\t\tyes\n+ \t\t \"A\"\t\t -\t\t\tyes\n+ \t\t \"aA\"\t\tyes\t\t\tyes\n+\n+ \t\t\t\t\t\t\t*'go-c'*\n+ 'c'\tUse console dialogs instead of popup dialogs for simple\n+ \tchoices.\n+ \t\t\t\t\t\t\t*'go-d'*\n+ 'd'\tUse dark theme variant if available.\n+ \t\t\t\t\t\t\t*'go-e'*\n+ 'e'\tAdd tab pages when indicated with 'showtabline'.\n+ \t'guitablabel' can be used to change the text in the labels.\n+ \tWhen 'e' is missing a non-GUI tab pages line may be used.\n+ \tThe GUI tabs are only supported on some systems, currently\n+ \tMac OS/X and MS-Windows.\n+ \t\t\t\t\t\t\t*'go-i'*\n+ 'i'\tUse a Vim icon.\n+ \t\t\t\t\t\t\t*'go-m'*\n+ 'm'\tMenu bar is present.\n+ \t\t\t\t\t\t\t*'go-M'*\n+ 'M'\tThe system menu \"$VIMRUNTIME/menu.vim\" is not sourced. Note\n+ \tthat this flag must be added in the vimrc file, before\n+ \tswitching on syntax or filetype recognition (when the |gvimrc|\n+ \tfile is sourced the system menu has already been loaded; the\n+ \t`:syntax on` and `:filetype on` commands load the menu too).\n+ \t\t\t\t\t\t\t*'go-g'*\n+ 'g'\tGrey menu items: Make menu items that are not active grey. If\n+ \t'g' is not included inactive menu items are not shown at all.\n+ \t\t\t\t\t\t\t*'go-T'*\n+ 'T'\tInclude Toolbar. Currently only in Win32 GUI.\n+ \t\t\t\t\t\t\t*'go-r'*\n+ 'r'\tRight-hand scrollbar is always present.\n+ \t\t\t\t\t\t\t*'go-R'*\n+ 'R'\tRight-hand scrollbar is present when there is a vertically\n+ \tsplit window.\n+ \t\t\t\t\t\t\t*'go-l'*\n+ 'l'\tLeft-hand scrollbar is always present.\n+ \t\t\t\t\t\t\t*'go-L'*\n+ 'L'\tLeft-hand scrollbar is present when there is a vertically\n+ \tsplit window.\n+ \t\t\t\t\t\t\t*'go-b'*\n+ 'b'\tBottom (horizontal) scrollbar is present. Its size depends on\n+ \tthe longest visible line, or on the cursor line if the 'h'\n+ \tflag is included. |gui-horiz-scroll|\n+ \t\t\t\t\t\t\t*'go-h'*\n+ 'h'\tLimit horizontal scrollbar size to the length of the cursor\n+ \tline. Reduces computations. |gui-horiz-scroll|\n+\n+ And yes, you may even have scrollbars on the left AND the right if\n+ you really want to :-). See |gui-scrollbars| for more information.\n+\n+ \t\t\t\t\t\t\t*'go-v'*\n+ 'v'\tUse a vertical button layout for dialogs. When not included,\n+ \ta horizontal layout is preferred, but when it doesn't fit a\n+ \tvertical layout is used anyway. Not supported in GTK 3.\n+ \t\t\t\t\t\t\t*'go-p'*\n+ 'p'\tUse Pointer callbacks for X11 GUI. This is required for some\n+ \twindow managers. If the cursor is not blinking or hollow at\n+ \tthe right moment, try adding this flag. This must be done\n+ \tbefore starting the GUI. Set it in your |gvimrc|. Adding or\n+ \tremoving it after the GUI has started has no effect.\n+ \t\t\t\t\t\t\t*'go-k'*\n+ 'k'\tKeep the GUI window size when adding/removing a scrollbar, or\n+ \ttoolbar, tabline, etc. Instead, the behavior is similar to\n+ \twhen the window is maximized and will adjust 'lines' and\n+ \t'columns' to fit to the window. Without the 'k' flag Vim will\n+ \ttry to keep 'lines' and 'columns' the same when adding and\n+ \tremoving GUI components.\n+ ]=],\n+ enable_if = false,\n+ full_name = 'guioptions',\n+ list = 'flags',\n+ scope = { 'global' },\n+ short_desc = N_('GUI: Which components and options are used'),\n+ type = 'string',\n+ },\n+ {\n+ abbreviation = 'gtl',\n+ desc = [=[\n+ When non-empty describes the text to use in a label of the GUI tab\n+ pages line. When empty and when the result is empty Vim will use a\n+ default label. See |setting-guitablabel| for more info.\n+\n+ The format of this option is like that of 'statusline'.\n+ 'guitabtooltip' is used for the tooltip, see below.\n+ The expression will be evaluated in the |sandbox| when set from a\n+ modeline, see |sandbox-option|.\n+ This option cannot be set in a modeline when 'modelineexpr' is off.\n+\n+ Only used when the GUI tab pages line is displayed. 'e' must be\n+ present in 'guioptions'. For the non-GUI tab pages line 'tabline' is\n+ used.\n+ ]=],\n+ enable_if = false,\n+ full_name = 'guitablabel',\n+ modelineexpr = true,\n+ redraw = { 'current_window' },\n+ scope = { 'global' },\n+ short_desc = N_('GUI: custom label for a tab page'),\n+ type = 'string',\n+ },\n+ {\n+ abbreviation = 'gtt',\n+ desc = [=[\n+ When non-empty describes the text to use in a tooltip for the GUI tab\n+ pages line. When empty Vim will use a default tooltip.\n+ This option is otherwise just like 'guitablabel' above.\n+ You can include a line break. Simplest method is to use |:let|: >\n+ \t:let &guitabtooltip = \"line one\\nline two\"\n+ <\n+ ]=],\n+ enable_if = false,\n+ full_name = 'guitabtooltip',\n+ redraw = { 'current_window' },\n+ scope = { 'global' },\n+ short_desc = N_('GUI: custom tooltip for a tab page'),\n+ type = 'string',\n+ },\n+ {\n+ abbreviation = 'hf',\n+ cb = 'did_set_helpfile',\n+ defaults = {\n+ if_true = macros('DFLT_HELPFILE'),\n+ doc = [[(MS-Windows) \"$VIMRUNTIME\\doc\\help.txt\"\n+ (others) \"$VIMRUNTIME/doc/help.txt\")\n+ ]],\n+ },\n+ desc = [=[\n+ Name of the main help file. All distributed help files should be\n+ placed together in one directory. Additionally, all \"doc\" directories\n+ in 'runtimepath' will be used.\n+ Environment variables are expanded |:set_env|. For example:\n+ \"$VIMRUNTIME/doc/help.txt\". If $VIMRUNTIME is not set, $VIM is also\n+ tried. Also see |$VIMRUNTIME| and |option-backslash| about including\n+ spaces and backslashes.\n+ This option cannot be set from a |modeline| or in the |sandbox|, for\n+ security reasons.\n+ ]=],\n+ expand = true,\n+ full_name = 'helpfile',\n+ scope = { 'global' },\n+ secure = true,\n+ short_desc = N_('full path name of the main help file'),\n+ type = 'string',\n+ varname = 'p_hf',\n+ },\n+ {\n+ abbreviation = 'hh',\n+ cb = 'did_set_helpheight',\n+ defaults = { if_true = 20 },\n+ desc = [=[\n+ Minimal initial height of the help window when it is opened with the\n+ \":help\" command. The initial height of the help window is half of the\n+ current window, or (when the 'ea' option is on) the same as other\n+ windows. When the height is less than 'helpheight', the height is\n+ set to 'helpheight'. Set to zero to disable.\n+ ]=],\n+ full_name = 'helpheight',\n+ scope = { 'global' },\n+ short_desc = N_('minimum height of a new help window'),\n+ type = 'number',\n+ varname = 'p_hh',\n+ },\n+ {\n+ abbreviation = 'hlg',\n+ cb = 'did_set_helplang',\n+ defaults = {\n+ if_true = '',\n+ doc = 'messages language or empty',\n+ },\n+ deny_duplicates = true,\n+ desc = [=[\n+ Comma-separated list of languages. Vim will use the first language\n+ for which the desired help can be found. The English help will always\n+ be used as a last resort. You can add \"en\" to prefer English over\n+ another language, but that will only find tags that exist in that\n+ language and not in the English help.\n+ Example: >\n+ \t:set helplang=de,it\n+ <\tThis will first search German, then Italian and finally English help\n+ files.\n+ When using |CTRL-]| and \":help!\" in a non-English help file Vim will\n+ try to find the tag in the current language before using this option.\n+ See |help-translated|.\n+ ]=],\n+ full_name = 'helplang',\n+ list = 'onecomma',\n+ scope = { 'global' },\n+ short_desc = N_('preferred help languages'),\n+ type = 'string',\n+ varname = 'p_hlg',\n+ },\n+ {\n+ abbreviation = 'hid',\n+ defaults = { if_true = true },\n+ desc = [=[\n+ When off a buffer is unloaded (including loss of undo information)\n+ when it is |abandon|ed. When on a buffer becomes hidden when it is\n+ |abandon|ed. A buffer displayed in another window does not become\n+ hidden, of course.\n+\n+ Commands that move through the buffer list sometimes hide a buffer\n+ although the 'hidden' option is off when these three are true:\n+ - the buffer is modified\n+ - 'autowrite' is off or writing is not possible\n+ - the '!' flag was used\n+ Also see |windows|.\n+\n+ To hide a specific buffer use the 'bufhidden' option.\n+ 'hidden' is set for one command with \":hide {command}\" |:hide|.\n+ ]=],\n+ full_name = 'hidden',\n+ scope = { 'global' },\n+ short_desc = N_(\"don't unload buffer when it is |abandon|ed\"),\n+ type = 'bool',\n+ varname = 'p_hid',\n+ },\n+ {\n+ abbreviation = 'hl',\n+ cb = 'did_set_highlight',\n+ defaults = { if_true = macros('HIGHLIGHT_INIT') },\n+ deny_duplicates = true,\n+ full_name = 'highlight',\n+ list = 'onecomma',\n+ scope = { 'global' },\n+ short_desc = N_('sets highlighting mode for various occasions'),\n+ type = 'string',\n+ varname = 'p_hl',\n+ },\n+ {\n+ abbreviation = 'hi',\n+ defaults = { if_true = 10000 },\n+ desc = [=[\n+ A history of \":\" commands, and a history of previous search patterns\n+ is remembered. This option decides how many entries may be stored in\n+ each of these histories (see |cmdline-editing|).\n+ The maximum value is 10000.\n+ ]=],\n+ full_name = 'history',\n+ scope = { 'global' },\n+ short_desc = N_('number of command-lines that are remembered'),\n+ type = 'number',\n+ varname = 'p_hi',\n+ },\n+ {\n+ abbreviation = 'hk',\n+ defaults = { if_true = false },\n+ full_name = 'hkmap',\n+ scope = { 'global' },\n+ short_desc = N_('No descripti", + "html_url": "https://github.com/neovim/neovim/pull/24528#discussion_r1284344262", + "id": 1284344262, + "line": null, + "node_id": "PRRC_kwDOAPphoM5MjYnG", + "original_commit_id": "8735c361b3f2657c5ac340f75c31cdaf12cd6e59", + "original_line": 7660, + "original_position": 10719, + "original_start_line": null, + "path": "src/nvim/options.lua", + "position": null, + "pull_request_review_id": 1562749068, + "pull_request_url": "https://api.github.com/repos/neovim/neovim/pulls/24528", + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/pulls/comments/1284344262/reactions" + }, + "side": "RIGHT", + "start_line": null, + "start_side": null, + "subject_type": "line", + "updated_at": "2023-08-04T12:09:43Z", + "url": "https://api.github.com/repos/neovim/neovim/pulls/comments/1284344262", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/35768171?v=4", + "events_url": "https://api.github.com/users/zeertzjq/events{/privacy}", + "followers_url": "https://api.github.com/users/zeertzjq/followers", + "following_url": "https://api.github.com/users/zeertzjq/following{/other_user}", + "gists_url": "https://api.github.com/users/zeertzjq/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/zeertzjq", + "id": 35768171, + "login": "zeertzjq", + "node_id": "MDQ6VXNlcjM1NzY4MTcx", + "organizations_url": "https://api.github.com/users/zeertzjq/orgs", + "received_events_url": "https://api.github.com/users/zeertzjq/received_events", + "repos_url": "https://api.github.com/users/zeertzjq/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/zeertzjq/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/zeertzjq/subscriptions", + "type": "User", + "url": "https://api.github.com/users/zeertzjq" + } + }, + { + "_links": { + "html": { + "href": "https://github.com/neovim/neovim/pull/24528#discussion_r1284345865" + }, + "pull_request": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/24528" + }, + "self": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/comments/1284345865" + } + }, + "author_association": "MEMBER", + "body": "Hmm the suggestion is broken again", + "commit_id": "fe5eadf4a3c0dd57c5a9936c4982187e3f9d082c", + "created_at": "2023-08-04T12:10:57Z", + "diff_hunk": "@@ -1,3079 +1,10001 @@\n--- {\n--- {\n--- full_name='aleph', abbreviation='al',\n--- short_desc=\"ASCII code of the letter Aleph (Hebrew)\",\n--- varname='p_aleph', pv_name=nil,\n--- type='number', list=nil, scope={'global'},\n--- deny_duplicates=nil,\n--- enable_if=nil,\n--- defaults={condition=nil, if_true=224, if_false=nil},\n--- secure=nil, gettext=nil, noglob=nil, normal_fname_chars=nil,\n--- pri_mkrc=nil, deny_in_modelines=nil, normal_dname_chars=nil,\n--- modelineexpr=nil,\n--- func=nil,\n--- expand=nil, nodefault=nil, no_mkrc=nil,\n--- alloced=nil,\n--- save_pv_indir=nil,\n--- redraw={'curswant'},\n--- }\n--- }\n--- types: bool, number, string\n--- lists: (nil), comma, onecomma, flags, flagscomma\n--- scopes: global, buffer, window\n--- redraw options: statuslines, tabline, current_window, current_window_only,\n--- current_buffer, all_windows, curswant\n--- defaults: {condition=#if condition, if_true=default, if_false=default}\n--- #if condition:\n--- string: #ifdef string\n--- !string: #ifndef string\n--- {string, string}: #if defined(string) && defined(string)\n--- {!string, !string}: #if !defined(string) && !defined(string)\n-local cstr = function(s)\n+--- @class vim.option_meta\n+--- @field full_name string\n+--- @field desc? string\n+--- @field abbreviation? string\n+--- @field short_desc? string|fun(): string\n+--- @field varname? string\n+--- @field pv_name? string\n+--- @field type 'bool'|'number'|'string'\n+--- @field list? 'comma'|'onecomma'|'flags'|'flagscomma'\n+--- @field scope vim.option_scope[]\n+--- @field deny_duplicates? boolean\n+--- @field enable_if? string|false\n+--- @field defaults? vim.option_defaults\n+--- @field secure? true\n+--- @field noglob? true\n+--- @field normal_fname_chars? true\n+--- @field pri_mkrc? true\n+--- @field deny_in_modelines? true\n+--- @field normal_dname_chars? true\n+--- @field modelineexpr? true\n+--- @field func? true\n+--- @field expand? string|true\n+--- @field nodefault? true\n+--- @field no_mkrc? true\n+--- @field alloced? true\n+--- @field redraw? vim.option_redraw[]\n+--- @field cb? string\n+--- @field tags? string[]\n+\n+--- @class vim.option_defaults\n+--- @field condition? string\n+--- string: #ifdef string\n+--- !string: #ifndef string\n+--- @field if_true integer|boolean|string|fun(): string\n+--- @field if_false? integer|boolean|string\n+--- @field doc? string Default to show in options.txt\n+--- @field meta? integer|boolean|string Default to use in Lua meta files\n+\n+--- @alias vim.option_scope 'global'|'buffer'|'window'\n+\n+--- @alias vim.option_redraw\n+--- |'statuslines'\n+--- |'tabline'\n+--- |'current_window'\n+--- |'current_window_only'\n+--- |'current_buffer'\n+--- |'all_windows'\n+--- |'curswant'\n+--- |'ui_option'\n+\n+--- @param s string\n+--- @return string\n+local function cstr(s)\n return '\"' .. s:gsub('[\"\\\\]', '\\\\%0'):gsub('\\t', '\\\\t') .. '\"'\n end\n-local macros=function(s)\n+\n+--- @param s string\n+--- @return fun(): string\n+local function macros(s)\n return function()\n return s\n end\n end\n-local imacros=function(s)\n+\n+--- @param s string\n+--- @return fun(): string\n+local function imacros(s)\n return function()\n return '(intptr_t)' .. s\n end\n end\n-local N_=function(s) -- luacheck: ignore 211 (currently unused)\n+\n+--- @param s string\n+--- @return fun(): string\n+local function N_(s) -- luacheck: ignore 211 (currently unused)\n return function()\n return 'N_(' .. cstr(s) .. ')'\n end\n end\n--- used for 'cinkeys' and 'indentkeys'\n-local indentkeys_default = '0{,0},0),0],:,0#,!^F,o,O,e';\n+\n return {\n- cstr=cstr,\n- options={\n- {\n- full_name='aleph', abbreviation='al',\n- short_desc=N_(\"ASCII code of the letter Aleph (Hebrew)\"),\n- type='number', scope={'global'},\n- defaults={if_true=224}\n- },\n- {\n- full_name='arabic', abbreviation='arab',\n- short_desc=N_(\"Arabic as a default second language\"),\n- type='bool', scope={'window'},\n- redraw={'curswant'},\n- defaults={if_true=false},\n- cb='did_set_arabic'\n- },\n- {\n- full_name='arabicshape', abbreviation='arshape',\n- short_desc=N_(\"do shaping for Arabic characters\"),\n- type='bool', scope={'global'},\n- redraw={'all_windows', 'ui_option'},\n+ cstr = cstr,\n+ --- @type vim.option_meta[]\n+ options = {\n+ {\n+ abbreviation = 'al',\n+ defaults = { if_true = 224 },\n+ full_name = 'aleph',\n+ scope = { 'global' },\n+ short_desc = N_('ASCII code of the letter Aleph (Hebrew)'),\n+ type = 'number',\n+ },\n+ {\n+ abbreviation = 'arab',\n+ cb = 'did_set_arabic',\n+ defaults = { if_true = false },\n+ desc = [=[\n+ This option can be set to start editing Arabic text.\n+ Setting this option will:\n+ - Set the 'rightleft' option, unless 'termbidi' is set.\n+ - Set the 'arabicshape' option, unless 'termbidi' is set.\n+ - Set the 'keymap' option to \"arabic\"; in Insert mode CTRL-^ toggles\n+ between typing English and Arabic key mapping.\n+ - Set the 'delcombine' option\n \n- varname='p_arshape',\n- defaults={if_true=true}\n- },\n- {\n- full_name='allowrevins', abbreviation='ari',\n- short_desc=N_(\"allow CTRL-_ in Insert and Command-line mode\"),\n- type='bool', scope={'global'},\n- varname='p_ari',\n- defaults={if_true=false}\n- },\n- {\n- full_name='ambiwidth', abbreviation='ambw',\n- short_desc=N_(\"what to do with Unicode chars of ambiguous width\"),\n- type='string', scope={'global'},\n- redraw={'all_windows', 'ui_option'},\n- varname='p_ambw',\n- defaults={if_true=\"single\"},\n- cb='did_set_ambiwidth'\n- },\n- {\n- full_name='autochdir', abbreviation='acd',\n- short_desc=N_(\"change directory to the file in the current window\"),\n- type='bool', scope={'global'},\n- varname='p_acd',\n- defaults={if_true=false},\n- cb='did_set_autochdir'\n- },\n- {\n- full_name='autoindent', abbreviation='ai',\n- short_desc=N_(\"take indent for new line from previous line\"),\n- type='bool', scope={'buffer'},\n- varname='p_ai',\n- defaults={if_true=true}\n- },\n- {\n- full_name='autoread', abbreviation='ar',\n- short_desc=N_(\"autom. read file when changed outside of Vim\"),\n- type='bool', scope={'global', 'buffer'},\n- varname='p_ar',\n- defaults={if_true=true}\n- },\n- {\n- full_name='autowrite', abbreviation='aw',\n- short_desc=N_(\"automatically write file if changed\"),\n- type='bool', scope={'global'},\n- varname='p_aw',\n- defaults={if_true=false}\n- },\n- {\n- full_name='autowriteall', abbreviation='awa',\n- short_desc=N_(\"as 'autowrite', but works with more commands\"),\n- type='bool', scope={'global'},\n- varname='p_awa',\n- defaults={if_true=false}\n- },\n- {\n- full_name='background', abbreviation='bg',\n- short_desc=N_(\"\\\"dark\\\" or \\\"light\\\", used for highlight colors\"),\n- type='string', scope={'global'},\n- varname='p_bg',\n- defaults={if_true=\"dark\"},\n- cb='did_set_background'\n- },\n- {\n- full_name='backspace', abbreviation='bs',\n- short_desc=N_(\"how backspace works at start of line\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- varname='p_bs',\n- defaults={if_true=\"indent,eol,start\"},\n- cb='did_set_backspace'\n- },\n- {\n- full_name='backup', abbreviation='bk',\n- short_desc=N_(\"keep backup file after overwriting a file\"),\n- type='bool', scope={'global'},\n- varname='p_bk',\n- defaults={if_true=false}\n- },\n- {\n- full_name='backupcopy', abbreviation='bkc',\n- short_desc=N_(\"make backup as a copy, don't rename the file\"),\n- type='string', list='onecomma', scope={'global', 'buffer'},\n- deny_duplicates=true,\n- varname='p_bkc',\n- defaults={\n- condition='UNIX',\n- if_true=\"auto\",\n- if_false=\"auto\"\n+ Resetting this option will:\n+ - Reset the 'rightleft' option.\n+ - Disable the use of 'keymap' (without changing its value).\n+ Note that 'arabicshape' and 'delcombine' are not reset (it is a global\n+ option).\n+ Also see |arabic.txt|.\n+ ]=],\n+ full_name = 'arabic',\n+ redraw = { 'curswant' },\n+ scope = { 'window' },\n+ short_desc = N_('Arabic as a default second language'),\n+ type = 'bool',\n+ },\n+ {\n+ abbreviation = 'arshape',\n+ defaults = { if_true = true },\n+ desc = [=[\n+ When on and 'termbidi' is off, the required visual character\n+ corrections that need to take place for displaying the Arabic language\n+ take effect. Shaping, in essence, gets enabled; the term is a broad\n+ one which encompasses:\n+ a) the changing/morphing of characters based on their location\n+ within a word (initial, medial, final and stand-alone).\n+ b) the enabling of the ability to compose characters\n+ c) the enabling of the required combining of some characters\n+ When disabled the display shows each character's true stand-alone\n+ form.\n+ Arabic is a complex language which requires other settings, for\n+ further details see |arabic.txt|.\n+ ]=],\n+ full_name = 'arabicshape',\n+ redraw = { 'all_windows', 'ui_option' },\n+ scope = { 'global' },\n+ short_desc = N_('do shaping for Arabic characters'),\n+ type = 'bool',\n+ varname = 'p_arshape',\n+ },\n+ {\n+ abbreviation = 'ari',\n+ defaults = { if_true = false },\n+ desc = [=[\n+ Allow CTRL-_ in Insert and Command-line mode. This is default off, to\n+ avoid that users that accidentally type CTRL-_ instead of SHIFT-_ get\n+ into reverse Insert mode, and don't know how to get out. See\n+ 'revins'.\n+ ]=],\n+ full_name = 'allowrevins',\n+ scope = { 'global' },\n+ short_desc = N_('allow CTRL-_ in Insert and Command-line mode'),\n+ type = 'bool',\n+ varname = 'p_ari',\n+ },\n+ {\n+ abbreviation = 'ambw',\n+ cb = 'did_set_ambiwidth',\n+ defaults = { if_true = 'single' },\n+ desc = [=[\n+ Tells Vim what to do with characters with East Asian Width Class\n+ Ambiguous (such as Euro, Registered Sign, Copyright Sign, Greek\n+ letters, Cyrillic letters).\n+\n+ There are currently two possible values:\n+ \"single\":\tUse the same width as characters in US-ASCII. This is\n+ \t\texpected by most users.\n+ \"double\":\tUse twice the width of ASCII characters.\n+ \t\t\t\t\t\t*E834* *E835*\n+ The value \"double\" cannot be used if 'listchars' or 'fillchars'\n+ contains a character that would be double width. These errors may\n+ also be given when calling setcellwidths().\n+\n+ The values are overruled for characters specified with\n+ |setcellwidths()|.\n+\n+ There are a number of CJK fonts for which the width of glyphs for\n+ those characters are solely based on how many octets they take in\n+ legacy/traditional CJK encodings. In those encodings, Euro,\n+ Registered sign, Greek/Cyrillic letters are represented by two octets,\n+ therefore those fonts have \"wide\" glyphs for them. This is also\n+ true of some line drawing characters used to make tables in text\n+ file. Therefore, when a CJK font is used for GUI Vim or\n+ Vim is running inside a terminal (emulators) that uses a CJK font\n+ (or Vim is run inside an xterm invoked with \"-cjkwidth\" option.),\n+ this option should be set to \"double\" to match the width perceived\n+ by Vim with the width of glyphs in the font. Perhaps it also has\n+ to be set to \"double\" under CJK MS-Windows when the system locale is\n+ set to one of CJK locales. See Unicode Standard Annex #11\n+ (https://www.unicode.org/reports/tr11).\n+ ]=],\n+ full_name = 'ambiwidth',\n+ redraw = { 'all_windows', 'ui_option' },\n+ scope = { 'global' },\n+ short_desc = N_('what to do with Unicode chars of ambiguous width'),\n+ type = 'string',\n+ varname = 'p_ambw',\n+ },\n+ {\n+ abbreviation = 'acd',\n+ cb = 'did_set_autochdir',\n+ defaults = { if_true = false },\n+ desc = [=[\n+ When on, Vim will change the current working directory whenever you\n+ open a file, switch buffers, delete a buffer or open/close a window.\n+ It will change to the directory containing the file which was opened\n+ or selected. When a buffer has no name it also has no directory, thus\n+ the current directory won't change when navigating to it.\n+ Note: When this option is on some plugins may not work.\n+ ]=],\n+ full_name = 'autochdir',\n+ scope = { 'global' },\n+ short_desc = N_('change directory to the file in the current window'),\n+ type = 'bool',\n+ varname = 'p_acd',\n+ },\n+ {\n+ abbreviation = 'ai',\n+ defaults = { if_true = true },\n+ desc = [=[\n+ Copy indent from current line when starting a new line (typing \n+ in Insert mode or when using the \"o\" or \"O\" command). If you do not\n+ type anything on the new line except or CTRL-D and then type\n+ , CTRL-O or , the indent is deleted again. Moving the cursor\n+ to another line has the same effect, unless the 'I' flag is included\n+ in 'cpoptions'.\n+ When autoindent is on, formatting (with the \"gq\" command or when you\n+ reach 'textwidth' in Insert mode) uses the indentation of the first\n+ line.\n+ When 'smartindent' or 'cindent' is on the indent is changed in\n+ a different way.\n+ ]=],\n+ full_name = 'autoindent',\n+ scope = { 'buffer' },\n+ short_desc = N_('take indent for new line from previous line'),\n+ type = 'bool',\n+ varname = 'p_ai',\n+ },\n+ {\n+ abbreviation = 'ar',\n+ defaults = { if_true = true },\n+ desc = [=[\n+ When a file has been detected to have been changed outside of Vim and\n+ it has not been changed inside of Vim, automatically read it again.\n+ When the file has been deleted this is not done, so you have the text\n+ from before it was deleted. When it appears again then it is read.\n+ |timestamp|\n+ If this option has a local value, use this command to switch back to\n+ using the global value: >\n+ \t:set autoread<\n+ <\n+ ]=],\n+ full_name = 'autoread',\n+ scope = { 'global', 'buffer' },\n+ short_desc = N_('autom. read file when changed outside of Vim'),\n+ type = 'bool',\n+ varname = 'p_ar',\n+ },\n+ {\n+ abbreviation = 'aw',\n+ defaults = { if_true = false },\n+ desc = [=[\n+ Write the contents of the file, if it has been modified, on each\n+ `:next`, `:rewind`, `:last`, `:first`, `:previous`, `:stop`,\n+ `:suspend`, `:tag`, `:!`, `:make`, CTRL-] and CTRL-^ command; and when\n+ a `:buffer`, CTRL-O, CTRL-I, '{A-Z0-9}, or `{A-Z0-9} command takes one\n+ to another file.\n+ A buffer is not written if it becomes hidden, e.g. when 'bufhidden' is\n+ set to \"hide\" and `:next` is used.\n+ Note that for some commands the 'autowrite' option is not used, see\n+ 'autowriteall' for that.\n+ Some buffers will not be written, specifically when 'buftype' is\n+ \"nowrite\", \"nofile\", \"terminal\" or \"prompt\".\n+ USE WITH CARE: If you make temporary changes to a buffer that you\n+ don't want to be saved this option may cause it to be saved anyway.\n+ Renaming the buffer with \":file {name}\" may help avoid this.\n+ ]=],\n+ full_name = 'autowrite',\n+ scope = { 'global' },\n+ short_desc = N_('automatically write file if changed'),\n+ type = 'bool',\n+ varname = 'p_aw',\n+ },\n+ {\n+ abbreviation = 'awa',\n+ defaults = { if_true = false },\n+ desc = [=[\n+ Like 'autowrite', but also used for commands \":edit\", \":enew\", \":quit\",\n+ \":qall\", \":exit\", \":xit\", \":recover\" and closing the Vim window.\n+ Setting this option also implies that Vim behaves like 'autowrite' has\n+ been set.\n+ ]=],\n+ full_name = 'autowriteall',\n+ scope = { 'global' },\n+ short_desc = N_(\"as 'autowrite', but works with more commands\"),\n+ type = 'bool',\n+ varname = 'p_awa',\n+ },\n+ {\n+ abbreviation = 'bg',\n+ cb = 'did_set_background',\n+ defaults = { if_true = 'dark' },\n+ desc = [=[\n+ When set to \"dark\" or \"light\", adjusts the default color groups for\n+ that background type. The |TUI| or other UI sets this on startup\n+ (triggering |OptionSet|) if it can detect the background color.\n+\n+ This option does NOT change the background color, it tells Nvim what\n+ the \"inherited\" (terminal/GUI) background looks like.\n+ See |:hi-normal| if you want to set the background color explicitly.\n+ \t\t\t\t\t*g:colors_name*\n+ When a color scheme is loaded (the \"g:colors_name\" variable is set)\n+ setting 'background' will cause the color scheme to be reloaded. If\n+ the color scheme adjusts to the value of 'background' this will work.\n+ However, if the color scheme sets 'background' itself the effect may\n+ be undone. First delete the \"g:colors_name\" variable when needed.\n+\n+ Normally this option would be set in the vimrc file. Possibly\n+ depending on the terminal name. Example: >\n+ \t:if $TERM ==# \"xterm\"\n+ \t: set background=dark\n+ \t:endif\n+ <\tWhen this option is set, the default settings for the highlight groups\n+ will change. To use other settings, place \":highlight\" commands AFTER\n+ the setting of the 'background' option.\n+ This option is also used in the \"$VIMRUNTIME/syntax/syntax.vim\" file\n+ to select the colors for syntax highlighting. After changing this\n+ option, you must load syntax.vim again to see the result. This can be\n+ done with \":syntax on\".\n+ ]=],\n+ full_name = 'background',\n+ scope = { 'global' },\n+ short_desc = N_('\"dark\" or \"light\", used for highlight colors'),\n+ type = 'string',\n+ varname = 'p_bg',\n+ },\n+ {\n+ abbreviation = 'bs',\n+ cb = 'did_set_backspace',\n+ defaults = { if_true = 'indent,eol,start' },\n+ deny_duplicates = true,\n+ desc = [=[\n+ Influences the working of , , CTRL-W and CTRL-U in Insert\n+ mode. This is a list of items, separated by commas. Each item allows\n+ a way to backspace over something:\n+ value\teffect\t~\n+ indent\tallow backspacing over autoindent\n+ eol\tallow backspacing over line breaks (join lines)\n+ start\tallow backspacing over the start of insert; CTRL-W and CTRL-U\n+ \tstop once at the start of insert.\n+ nostop\tlike start, except CTRL-W and CTRL-U do not stop at the start of\n+ \tinsert.\n+\n+ When the value is empty, Vi compatible backspacing is used, none of\n+ the ways mentioned for the items above are possible.\n+ ]=],\n+ full_name = 'backspace',\n+ list = 'onecomma',\n+ scope = { 'global' },\n+ short_desc = N_('how backspace works at start of line'),\n+ type = 'string',\n+ varname = 'p_bs',\n+ },\n+ {\n+ abbreviation = 'bk',\n+ defaults = { if_true = false },\n+ desc = [=[\n+ Make a backup before overwriting a file. Leave it around after the\n+ file has been successfully written. If you do not want to keep the\n+ backup file, but you do want a backup while the file is being\n+ written, reset this option and set the 'writebackup' option (this is\n+ the default). If you do not want a backup file at all reset both\n+ options (use this if your file system is almost full). See the\n+ |backup-table| for more explanations.\n+ When the 'backupskip' pattern matches, a backup is not made anyway.\n+ When 'patchmode' is set, the backup may be renamed to become the\n+ oldest version of a file.\n+ ]=],\n+ full_name = 'backup',\n+ scope = { 'global' },\n+ short_desc = N_('keep backup file after overwriting a file'),\n+ type = 'bool',\n+ varname = 'p_bk',\n+ },\n+ {\n+ abbreviation = 'bkc',\n+ cb = 'did_set_backupcopy',\n+ defaults = { condition = 'UNIX', if_false = 'auto', if_true = 'auto' },\n+ deny_duplicates = true,\n+ desc = [=[\n+ When writing a file and a backup is made, this option tells how it's\n+ done. This is a comma-separated list of words.\n+\n+ The main values are:\n+ \"yes\"\tmake a copy of the file and overwrite the original one\n+ \"no\"\trename the file and write a new one\n+ \"auto\"\tone of the previous, what works best\n+\n+ Extra values that can be combined with the ones above are:\n+ \"breaksymlink\"\talways break symlinks when writing\n+ \"breakhardlink\"\talways break hardlinks when writing\n+\n+ Making a copy and overwriting the original file:\n+ - Takes extra time to copy the file.\n+ + When the file has special attributes, is a (hard/symbolic) link or\n+ has a resource fork, all this is preserved.\n+ - When the file is a link the backup will have the name of the link,\n+ not of the real file.\n+\n+ Renaming the file and writing a new one:\n+ + It's fast.\n+ - Sometimes not all attributes of the file can be copied to the new\n+ file.\n+ - When the file is a link the new file will not be a link.\n+\n+ The \"auto\" value is the middle way: When Vim sees that renaming the\n+ file is possible without side effects (the attributes can be passed on\n+ and the file is not a link) that is used. When problems are expected,\n+ a copy will be made.\n+\n+ The \"breaksymlink\" and \"breakhardlink\" values can be used in\n+ combination with any of \"yes\", \"no\" and \"auto\". When included, they\n+ force Vim to always break either symbolic or hard links by doing\n+ exactly what the \"no\" option does, renaming the original file to\n+ become the backup and writing a new file in its place. This can be\n+ useful for example in source trees where all the files are symbolic or\n+ hard links and any changes should stay in the local source tree, not\n+ be propagated back to the original source.\n+ \t\t\t\t\t\t*crontab*\n+ One situation where \"no\" and \"auto\" will cause problems: A program\n+ that opens a file, invokes Vim to edit that file, and then tests if\n+ the open file was changed (through the file descriptor) will check the\n+ backup file instead of the newly created file. \"crontab -e\" is an\n+ example.\n+\n+ When a copy is made, the original file is truncated and then filled\n+ with the new text. This means that protection bits, owner and\n+ symbolic links of the original file are unmodified. The backup file,\n+ however, is a new file, owned by the user who edited the file. The\n+ group of the backup is set to the group of the original file. If this\n+ fails, the protection bits for the group are made the same as for\n+ others.\n+\n+ When the file is renamed, this is the other way around: The backup has\n+ the same attributes of the original file, and the newly written file\n+ is owned by the current user. When the file was a (hard/symbolic)\n+ link, the new file will not! That's why the \"auto\" value doesn't\n+ rename when the file is a link. The owner and group of the newly\n+ written file will be set to the same ones as the original file, but\n+ the system may refuse to do this. In that case the \"auto\" value will\n+ again not rename the file.\n+ ]=],\n+ full_name = 'backupcopy',\n+ list = 'onecomma',\n+ scope = { 'global', 'buffer' },\n+ short_desc = N_(\"make backup as a copy, don't rename the file\"),\n+ type = 'string',\n+ varname = 'p_bkc',\n+ },\n+ {\n+ abbreviation = 'bdir',\n+ defaults = { if_true = '' },\n+ deny_duplicates = true,\n+ desc = [=[\n+ List of directories for the backup file, separated with commas.\n+ - The backup file will be created in the first directory in the list\n+ where this is possible. If none of the directories exist Nvim will\n+ attempt to create the last directory in the list.\n+ - Empty means that no backup file will be created ('patchmode' is\n+ impossible!). Writing may fail because of this.\n+ - A directory \".\" means to put the backup file in the same directory\n+ as the edited file.\n+ - A directory starting with \"./\" (or \".\\\" for MS-Windows) means to put\n+ the backup file relative to where the edited file is. The leading\n+ \".\" is replaced with the path name of the edited file.\n+ (\".\" inside a directory name has no special meaning).\n+ - Spaces after the comma are ignored, other spaces are considered part\n+ of the directory name. To have a space at the start of a directory\n+ name, precede it with a backslash.\n+ - To include a comma in a directory name precede it with a backslash.\n+ - A directory name may end in an '/'.\n+ - For Unix and Win32, if a directory ends in two path separators \"//\",\n+ the swap file name will be built from the complete path to the file\n+ with all path separators changed to percent '%' signs. This will\n+ ensure file name uniqueness in the backup directory.\n+ On Win32, it is also possible to end with \"\\\\\". However, When a\n+ separating comma is following, you must use \"//\", since \"\\\\\" will\n+ include the comma in the file name. Therefore it is recommended to\n+ use '//', instead of '\\\\'.\n+ - Environment variables are expanded |:set_env|.\n+ - Careful with '\\' characters, type one before a space, type two to\n+ get one in the option (see |option-backslash|), for example: >\n+ :set bdir=c:\\\\tmp,\\ dir\\\\,with\\\\,commas,\\\\\\ dir\\ with\\ spaces\n+ <\n+ See also 'backup' and 'writebackup' options.\n+ If you want to hide your backup files on Unix, consider this value: >\n+ \t:set backupdir=./.backup,~/.backup,.,/tmp\n+ <\tYou must create a \".backup\" directory in each directory and in your\n+ home directory for this to work properly.\n+ The use of |:set+=| and |:set-=| is preferred when adding or removing\n+ directories from the list. This avoids problems when a future version\n+ uses another default.\n+ This option cannot be set from a |modeline| or in the |sandbox|, for\n+ security reasons.\n+ ]=],\n+ expand = 'nodefault',\n+ full_name = 'backupdir',\n+ list = 'onecomma',\n+ scope = { 'global' },\n+ secure = true,\n+ short_desc = N_('list of directories for the backup file'),\n+ type = 'string',\n+ varname = 'p_bdir',\n+ },\n+ {\n+ abbreviation = 'bex',\n+ cb = 'did_set_backupext_or_patchmode',\n+ defaults = { if_true = '~' },\n+ desc = [=[\n+ String which is appended to a file name to make the name of the\n+ backup file. The default is quite unusual, because this avoids\n+ accidentally overwriting existing files with a backup file. You might\n+ prefer using \".bak\", but make sure that you don't have files with\n+ \".bak\" that you want to keep.\n+ Only normal file name characters can be used; `/\\*?[|<>` are illegal.\n+\n+ If you like to keep a lot of backups, you could use a BufWritePre\n+ autocommand to change 'backupext' just before writing the file to\n+ include a timestamp. >\n+ \t:au BufWritePre * let &bex = '-' .. strftime(\"%Y%b%d%X\") .. '~'\n+ <\tUse 'backupdir' to put the backup in a different directory.\n+ ]=],\n+ full_name = 'backupext',\n+ normal_fname_chars = true,\n+ scope = { 'global' },\n+ short_desc = N_('extension used for the backup file'),\n+ tags = { 'E589' },\n+ type = 'string',\n+ varname = 'p_bex',\n+ },\n+ {\n+ abbreviation = 'bsk',\n+ defaults = {\n+ if_true = '',\n+ doc = [[\"$TMPDIR/*,$TMP/*,$TEMP/*\"\n+ Unix: \"/tmp/*,$TMPDIR/*,$TMP/*,$TEMP/*\"\n+ Mac: \"/private/tmp/*,$TMPDIR/*,$TMP/*,$TEMP/*\")]],\n+ meta = '/tmp/*',\n },\n- cb='did_set_backupcopy'\n- },\n- {\n- full_name='backupdir', abbreviation='bdir',\n- short_desc=N_(\"list of directories for the backup file\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- secure=true,\n- expand='nodefault',\n- varname='p_bdir',\n- defaults={if_true=''}\n- },\n- {\n- full_name='backupext', abbreviation='bex',\n- short_desc=N_(\"extension used for the backup file\"),\n- type='string', scope={'global'},\n- normal_fname_chars=true,\n- varname='p_bex',\n- defaults={if_true=\"~\"},\n- cb='did_set_backupext_or_patchmode'\n- },\n- {\n- full_name='backupskip', abbreviation='bsk',\n- short_desc=N_(\"no backup for files that match these patterns\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- varname='p_bsk',\n- defaults={if_true=\"\"}\n- },\n- {\n- full_name='belloff', abbreviation='bo',\n- short_desc=N_(\"do not ring the bell for these reasons\"),\n- type='string', list='comma', scope={'global'},\n- deny_duplicates=true,\n- varname='p_bo',\n- defaults={if_true=\"all\"},\n- cb='did_set_belloff'\n- },\n- {\n- full_name='binary', abbreviation='bin',\n- short_desc=N_(\"read/write/edit file in binary mode\"),\n- type='bool', scope={'buffer'},\n- redraw={'statuslines'},\n- varname='p_bin',\n- defaults={if_true=false},\n- cb='did_set_binary'\n- },\n- {\n- full_name='bomb',\n- short_desc=N_(\"a Byte Order Mark to the file\"),\n- type='bool', scope={'buffer'},\n- no_mkrc=true,\n- redraw={'statuslines'},\n- varname='p_bomb',\n- defaults={if_true=false},\n- cb='did_set_eof_eol_fixeol_bomb'\n- },\n- {\n- full_name='breakat', abbreviation='brk',\n- short_desc=N_(\"characters that may cause a line break\"),\n- type='string', list='flags', scope={'global'},\n- redraw={'all_windows'},\n- varname='p_breakat',\n- defaults={if_true=\" \\t!@*-+;:,./?\"},\n- cb='did_set_breakat'\n- },\n- {\n- full_name='breakindent', abbreviation='bri',\n- short_desc=N_(\"wrapped line repeats indent\"),\n- type='bool', scope={'window'},\n- redraw={'current_window'},\n- defaults={if_true=false}\n- },\n- {\n- full_name='breakindentopt', abbreviation='briopt',\n- short_desc=N_(\"settings for 'breakindent'\"),\n- type='string', list='onecomma', scope={'window'},\n- deny_duplicates=true,\n- alloced=true,\n- redraw={'current_buffer'},\n- defaults={if_true=\"\"},\n- cb='did_set_breakindentopt'\n- },\n- {\n- full_name='browsedir', abbreviation='bsdir',\n- short_desc=N_(\"which directory to start browsing in\"),\n- type='string', scope={'global'},\n- enable_if=false,\n- },\n- {\n- full_name='bufhidden', abbreviation='bh',\n- short_desc=N_(\"what to do when buffer is no longer in window\"),\n- type='string', scope={'buffer'},\n- noglob=true,\n- alloced=true,\n- varname='p_bh',\n- defaults={if_true=\"\"},\n- cb='did_set_bufhidden'\n- },\n- {\n- full_name='buflisted', abbreviation='bl',\n- short_desc=N_(\"whether the buffer shows up in the buffer list\"),\n- type='bool', scope={'buffer'},\n- noglob=true,\n- varname='p_bl',\n- defaults={if_true=1},\n- cb='did_set_buflisted'\n- },\n- {\n- full_name='buftype', abbreviation='bt',\n- short_desc=N_(\"special type of buffer\"),\n- type='string', scope={'buffer'},\n- noglob=true,\n- alloced=true,\n- varname='p_bt',\n- defaults={if_true=\"\"},\n- cb='did_set_buftype'\n- },\n- {\n- full_name='casemap', abbreviation='cmp',\n- short_desc=N_(\"specifies how case of letters is changed\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- varname='p_cmp',\n- defaults={if_true=\"internal,keepascii\"},\n- cb='did_set_casemap'\n- },\n- {\n- full_name='cdhome', abbreviation='cdh',\n- short_desc=N_(\":cd without argument goes to the home directory\"),\n- type='bool', scope={'global'},\n- secure=true,\n- varname='p_cdh',\n- defaults={if_true=false}\n- },\n- {\n- full_name='cdpath', abbreviation='cd',\n- short_desc=N_(\"list of directories searched with \\\":cd\\\"\"),\n- type='string', list='comma', scope={'global'},\n- deny_duplicates=true,\n- expand=true,\n- secure=true,\n- varname='p_cdpath',\n- defaults={if_true=\",,\"}\n- },\n- {\n- full_name='cedit',\n- short_desc=N_(\"used to open the command-line window\"),\n- type='string', scope={'global'},\n- varname='p_cedit',\n- defaults={if_true=macros('CTRL_F_STR')},\n- cb='did_set_cedit'\n- },\n- {\n- full_name='channel',\n- short_desc=N_(\"Channel connected to the buffer\"),\n- type='number', scope={'buffer'},\n- no_mkrc=true,\n- nodefault=true,\n- varname='p_channel',\n- defaults={if_true=0}\n- },\n- {\n- full_name='charconvert', abbreviation='ccv',\n- short_desc=N_(\"expression for character encoding conversion\"),\n- type='string', scope={'global'},\n- secure=true,\n- varname='p_ccv',\n- defaults={if_true=\"\"},\n- cb='did_set_optexpr'\n- },\n- {\n- full_name='cindent', abbreviation='cin',\n- short_desc=N_(\"do C program indenting\"),\n- type='bool', scope={'buffer'},\n- varname='p_cin',\n- defaults={if_true=false}\n- },\n- {\n- full_name='cinkeys', abbreviation='cink',\n- short_desc=N_(\"keys that trigger indent when 'cindent' is set\"),\n- type='string', list='onecomma', scope={'buffer'},\n- deny_duplicates=true,\n- alloced=true,\n- varname='p_cink',\n- defaults={if_true=indentkeys_default}\n- },\n- {\n- full_name='cinoptions', abbreviation='cino',\n- short_desc=N_(\"how to do indenting when 'cindent' is set\"),\n- type='string', list='onecomma', scope={'buffer'},\n- deny_duplicates=true,\n- alloced=true,\n- varname='p_cino',\n- defaults={if_true=\"\"},\n- cb='did_set_cinoptions'\n- },\n- {\n- full_name='cinwords', abbreviation='cinw',\n- short_desc=N_(\"words where 'si' and 'cin' add an indent\"),\n- type='string', list='onecomma', scope={'buffer'},\n- deny_duplicates=true,\n- alloced=true,\n- varname='p_cinw',\n- defaults={if_true=\"if,else,while,do,for,switch\"}\n- },\n- {\n- full_name='cinscopedecls', abbreviation='cinsd',\n- short_desc=N_(\"words that are recognized by 'cino-g'\"),\n- type='string', list='onecomma', scope={'buffer'},\n- deny_duplicates=true,\n- alloced=true,\n- varname='p_cinsd',\n- defaults={if_true=\"public,protected,private\"}\n- },\n- {\n- full_name='clipboard', abbreviation='cb',\n- short_desc=N_(\"use the clipboard as the unnamed register\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- varname='p_cb',\n- defaults={if_true=\"\"},\n- cb='did_set_clipboard'\n- },\n- {\n- full_name='cmdheight', abbreviation='ch',\n- short_desc=N_(\"number of lines to use for the command-line\"),\n- type='number', scope={'global'},\n- redraw={'all_windows'},\n- varname='p_ch',\n- defaults={if_true=1},\n- cb='did_set_cmdheight'\n- },\n- {\n- full_name='cmdwinheight', abbreviation='cwh',\n- short_desc=N_(\"height of the command-line window\"),\n- type='number', scope={'global'},\n- varname='p_cwh',\n- defaults={if_true=7}\n- },\n- {\n- full_name='colorcolumn', abbreviation='cc',\n- short_desc=N_(\"columns to highlight\"),\n- type='string', list='onecomma', scope={'window'},\n- deny_duplicates=true,\n- redraw={'current_window'},\n- defaults={if_true=\"\"},\n- cb='did_set_colorcolumn'\n- },\n- {\n- full_name='columns', abbreviation='co',\n- short_desc=N_(\"number of columns in the display\"),\n- type='number', scope={'global'},\n- no_mkrc=true,\n- varname='p_columns',\n- defaults={if_true=macros('DFLT_COLS')}\n- },\n- {\n- full_name='comments', abbreviation='com',\n- short_desc=N_(\"patterns that can start a comment line\"),\n- type='string', list='onecomma', scope={'buffer'},\n- deny_duplicates=true,\n- alloced=true,\n- redraw={'curswant'},\n- varname='p_com',\n- defaults={if_true=\"s1:/*,mb:*,ex:*/,://,b:#,:%,:XCOMM,n:>,fb:-\"},\n- cb='did_set_comments'\n- },\n- {\n- full_name='commentstring', abbreviation='cms',\n- short_desc=N_(\"template for comments; used for fold marker\"),\n- type='string', scope={'buffer'},\n- alloced=true,\n- redraw={'curswant'},\n- varname='p_cms',\n- defaults={if_true=\"\"},\n- cb='did_set_commentstring'\n- },\n- {\n- full_name='compatible', abbreviation='cp',\n- short_desc=N_(\"No description\"),\n- type='bool', scope={'global'},\n- varname='p_force_off',\n- -- pri_mkrc isn't needed here, optval_default()\n- -- always returns TRUE for 'compatible'\n- defaults={if_true=false}\n- },\n- {\n- full_name='complete', abbreviation='cpt',\n- short_desc=N_(\"specify how Insert mode completion works\"),\n- type='string', list='onecomma', scope={'buffer'},\n- deny_duplicates=true,\n- alloced=true,\n- varname='p_cpt',\n- defaults={if_true=\".,w,b,u,t\"},\n- cb='did_set_complete'\n- },\n- {\n- full_name='concealcursor', abbreviation='cocu',\n- short_desc=N_(\"whether concealable text is hidden in cursor line\"),\n- type='string', scope={'window'},\n- alloced=true,\n- redraw={'current_window'},\n- defaults={if_true=\"\"},\n- cb='did_set_concealcursor'\n- },\n- {\n- full_name='conceallevel', abbreviation='cole',\n- short_desc=N_(\"whether concealable text is shown or hidden\"),\n- type='number', scope={'window'},\n- redraw={'current_window'},\n- defaults={if_true=0}\n- },\n- {\n- full_name='completefunc', abbreviation='cfu',\n- short_desc=N_(\"function to be used for Insert mode completion\"),\n- type='string', scope={'buffer'},\n- secure=true,\n- alloced=true,\n- func=true,\n- varname='p_cfu',\n- defaults={if_true=\"\"},\n- cb='did_set_completefunc'\n- },\n- {\n- full_name='completeopt', abbreviation='cot',\n- short_desc=N_(\"options for Insert mode completion\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- varname='p_cot',\n- defaults={if_true=\"menu,preview\"},\n- cb='did_set_completeopt'\n- },\n- {\n- full_name='completeslash', abbreviation='csl',\n- type='string', scope={'buffer'},\n- varname='p_csl',\n- enable_if='BACKSLASH_IN_FILENAME',\n- defaults={if_true=\"\"},\n- cb='did_set_completeslash'\n- },\n- {\n- full_name='confirm', abbreviation='cf',\n- short_desc=N_(\"ask what to do about unsaved/read-only files\"),\n- type='bool', scope={'global'},\n- varname='p_confirm',\n- defaults={if_true=false}\n- },\n- {\n- full_name='copyindent', abbreviation='ci',\n- short_desc=N_(\"make 'autoindent' use existing indent structure\"),\n- type='bool', scope={'buffer'},\n- varname='p_ci',\n- defaults={if_true=false}\n- },\n- {\n- full_name='cpoptions', abbreviation='cpo',\n- short_desc=N_(\"flags for Vi-compatible behavior\"),\n- type='string', list='flags', scope={'global'},\n- redraw={'all_windows'},\n- varname='p_cpo',\n- defaults={if_true=macros('CPO_VIM')},\n- cb='did_set_cpoptions'\n- },\n- {\n- full_name='cursorbind', abbreviation='crb',\n- short_desc=N_(\"move cursor in window as it moves in other windows\"),\n- type='bool', scope={'window'},\n- pv_name='p_crbind',\n- defaults={if_true=false}\n- },\n- {\n- full_name='cursorcolumn', abbreviation='cuc',\n- short_desc=N_(\"highlight the screen column of the cursor\"),\n- type='bool', scope={'window'},\n- redraw={'current_window_only'},\n- defaults={if_true=false}\n- },\n- {\n- full_name='cursorline', abbreviation='cul',\n- short_desc=N_(\"highlight the screen line of the cursor\"),\n- type='bool', scope={'window'},\n- redraw={'current_window_only'},\n- defaults={if_true=false}\n- },\n- {\n- full_name='cursorlineopt', abbreviation='culopt',\n- short_desc=N_(\"settings for 'cursorline'\"),\n- type='string', list='onecomma', scope={'window'},\n- deny_duplicates=true,\n- redraw={'current_window_only'},\n- defaults={if_true=\"both\"},\n- cb='did_set_cursorlineopt'\n- },\n- {\n- full_name='debug',\n- short_desc=N_(\"to \\\"msg\\\" to see all error messages\"),\n- type='string', scope={'global'},\n- varname='p_debug',\n- defaults={if_true=\"\"},\n- cb='did_set_debug'\n- },\n- {\n- full_name='define', abbreviation='def',\n- short_desc=N_(\"pattern to be used to find a macro definition\"),\n- type='string', scope={'global', 'buffer'},\n- alloced=true,\n- redraw={'curswant'},\n- varname='p_def',\n- defaults={if_true=\"\"}\n- },\n- {\n- full_name='delcombine', abbreviation='deco',\n- short_desc=N_(\"delete combining characters on their own\"),\n- type='bool', scope={'global'},\n- varname='p_deco',\n- defaults={if_true=false}\n- },\n- {\n- full_name='dictionary', abbreviation='dict',\n- short_desc=N_(\"list of file names used for keyword completion\"),\n- type='string', list='onecomma', scope={'global', 'buffer'},\n- deny_duplicates=true,\n- normal_dname_chars=true,\n- expand=true,\n- varname='p_dict',\n- defaults={if_true=\"\"}\n- },\n- {\n- full_name='diff',\n- short_desc=N_(\"diff mode for the current window\"),\n- type='bool', scope={'window'},\n- noglob=true,\n- redraw={'current_window'},\n- defaults={if_true=false},\n- cb='did_set_diff'\n- },\n- {\n- full_name='diffexpr', abbreviation='dex',\n- short_desc=N_(\"expression used to obtain a diff file\"),\n- type='string', scope={'global'},\n- secure=true,\n- redraw={'curswant'},\n- varname='p_dex',\n- defaults={if_true=\"\"},\n- cb='did_set_optexpr'\n- },\n- {\n- full_name='diffopt', abbreviation='dip',\n- short_desc=N_(\"options for using diff mode\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- alloced=true,\n- redraw={'current_window'},\n- varname='p_dip',\n- defaults={if_true=\"internal,filler,closeoff\"},\n- cb='did_set_diffopt'\n- },\n- {\n- full_name='digraph', abbreviation='dg',\n- short_desc=N_(\"enable the entering of digraphs in Insert mode\"),\n- type='bool', scope={'global'},\n- varname='p_dg',\n- defaults={if_true=false}\n- },\n- {\n- full_name='directory', abbreviation='dir',\n- short_desc=N_(\"list of directory names for the swap file\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- secure=true,\n- expand='nodefault',\n- varname='p_dir',\n- defaults={if_true=''}\n- },\n- {\n- full_name='display', abbreviation='dy',\n- short_desc=N_(\"list of flags for how to display text\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- redraw={'all_windows'},\n- varname='p_dy',\n- defaults={if_true=\"lastline\"},\n- cb='did_set_display'\n- },\n- {\n- full_name='eadirection', abbreviation='ead',\n- short_desc=N_(\"in which direction 'equalalways' works\"),\n- type='string', scope={'global'},\n- varname='p_ead',\n- defaults={if_true=\"both\"},\n- cb='did_set_eadirection'\n- },\n- {\n- full_name='edcompatible', abbreviation='ed',\n- short_desc=N_(\"No description\"),\n- type='bool', scope={'global'},\n- varname='p_force_off',\n- defaults={if_true=false}\n- },\n- {\n- full_name='emoji', abbreviation='emo',\n- short_desc=N_(\"No description\"),\n- type='bool', scope={'global'},\n- redraw={'all_windows', 'ui_option'},\n- varname='p_emoji',\n- defaults={if_true=true},\n- cb='did_set_ambiwidth'\n- },\n- {\n- full_name='encoding', abbreviation='enc',\n- short_desc=N_(\"encoding used internally\"),\n- type='string', scope={'global'},\n- deny_in_modelines=true,\n- varname='p_enc',\n- defaults={if_true=macros('ENC_DFLT')},\n- cb='did_set_encoding'\n- },\n- {\n- full_name='endoffile', abbreviation='eof',\n- short_desc=N_(\"write CTRL-Z for last line in file\"),\n- type='bool', scope={'buffer'},\n- no_mkrc=true,\n- redraw={'statuslines'},\n- varname='p_eof',\n- defaults={if_true=false},\n- cb='did_set_eof_eol_fixeol_bomb'\n- },\n- {\n- full_name='endofline', abbreviation='eol',\n- short_desc=N_(\"write for last line in file\"),\n- type='bool', scope={'buffer'},\n- no_mkrc=true,\n- redraw={'statuslines'},\n- varname='p_eol',\n- defaults={if_true=true},\n- cb='did_set_eof_eol_fixeol_bomb'\n- },\n- {\n- full_name='equalalways', abbreviation='ea',\n- short_desc=N_(\"windows are automatically made the same size\"),\n- type='bool', scope={'global'},\n- varname='p_ea',\n- defaults={if_true=true},\n- cb='did_set_equalalways'\n- },\n- {\n- full_name='equalprg', abbreviation='ep',\n- short_desc=N_(\"external program to use for \\\"=\\\" command\"),\n- type='string', scope={'global', 'buffer'},\n- secure=true,\n- expand=true,\n- varname='p_ep',\n- defaults={if_true=\"\"}\n- },\n- {\n- full_name='errorbells', abbreviation='eb',\n- short_desc=N_(\"ring the bell for error messages\"),\n- type='bool', scope={'global'},\n- varname='p_eb',\n- defaults={if_true=false}\n- },\n- {\n- full_name='errorfile', abbreviation='ef',\n- short_desc=N_(\"name of the errorfile for the QuickFix mode\"),\n- type='string', scope={'global'},\n- secure=true,\n- expand=true,\n- varname='p_ef',\n- defaults={if_true=macros('DFLT_ERRORFILE')}\n- },\n- {\n- full_name='errorformat', abbreviation='efm',\n- short_desc=N_(\"description of the lines in the error file\"),\n- type='string', list='onecomma', scope={'global', 'buffer'},\n- deny_duplicates=true,\n- varname='p_efm',\n- defaults={if_true=macros('DFLT_EFM')}\n- },\n- {\n- full_name='eventignore', abbreviation='ei',\n- short_desc=N_(\"autocommand events that are ignored\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- varname='p_ei',\n- defaults={if_true=\"\"},\n- cb='did_set_eventignore'\n- },\n- {\n- full_name='expandtab', abbreviation='et',\n- short_desc=N_(\"use spaces when is inserted\"),\n- type='bool', scope={'buffer'},\n- varname='p_et',\n- defaults={if_true=false}\n- },\n- {\n- full_name='exrc', abbreviation='ex',\n- short_desc=N_(\"read .nvimrc and .exrc in the current directory\"),\n- type='bool', scope={'global'},\n- secure=true,\n- varname='p_exrc',\n- defaults={if_true=false}\n- },\n- {\n- full_name='fileencoding', abbreviation='fenc',\n- short_desc=N_(\"file encoding for multi-byte text\"),\n- type='string', scope={'buffer'},\n- no_mkrc=true,\n- alloced=true,\n- redraw={'statuslines', 'current_buffer'},\n- varname='p_fenc',\n- defaults={if_true=\"\"},\n- cb='did_set_encoding'\n- },\n- {\n- full_name='fileencodings', abbreviation='fencs',\n- short_desc=N_(\"automatically detected character encodings\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- varname='p_fencs',\n- defaults={if_true=\"ucs-bom,utf-8,default,latin1\"}\n- },\n- {\n- full_name='fileformat', abbreviation='ff',\n- short_desc=N_(\"file format used for file I/O\"),\n- type='string', scope={'buffer'},\n- no_mkrc=true,\n- alloced=true,\n- redraw={'curswant', 'statuslines'},\n- varname='p_ff',\n- defaults={if_true=macros('DFLT_FF')},\n- cb='did_set_fileformat'\n- },\n- {\n- full_name='fileformats', abbreviation='ffs',\n- short_desc=N_(\"automatically detected values for 'fileformat'\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- varname='p_ffs',\n- defaults={if_true=macros('DFLT_FFS_VIM')},\n- cb='did_set_fileformats'\n- },\n- {\n- full_name='fileignorecase', abbreviation='fic',\n- short_desc=N_(\"ignore case when using file names\"),\n- type='bool', scope={'global'},\n- varname='p_fic',\n- defaults={\n- condition='CASE_INSENSITIVE_FILENAME',\n- if_true=true,\n- if_false=false,\n- }\n- },\n- {\n- full_name='filetype', abbreviation='ft',\n- short_desc=N_(\"type of file, used for autocommands\"),\n- type='string', scope={'buffer'},\n- noglob=true,\n- normal_fname_chars=true,\n- alloced=true,\n- expand=true,\n- varname='p_ft',\n- defaults={if_true=\"\"},\n- cb='did_set_filetype_or_syntax'\n- },\n- {\n- full_name='fillchars', abbreviation='fcs',\n- short_desc=N_(\"characters to use for displaying special items\"),\n- type='string', list='onecomma', scope={'global', 'window'},\n- deny_duplicates=true,\n- alloced=true,\n- redraw={'current_window'},\n- varname='p_fcs',\n- defaults={if_true=''},\n- cb='did_set_chars_option'\n- },\n- {\n- full_name='fixendofline', abbreviation='fixeol',\n- short_desc=N_(\"make sure last line in file has \"),\n- type='bool', scope={'buffer'},\n- redraw={'statuslines'},\n- varname='p_fixeol',\n- defaults={if_true=true},\n- cb='did_set_eof_eol_fixeol_bomb'\n- },\n- {\n- full_name='foldclose', abbreviation='fcl',\n- short_desc=N_(\"close a fold when the cursor leaves it\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- redraw={'current_window'},\n- varname='p_fcl',\n- defaults={if_true=\"\"},\n- cb='did_set_foldclose'\n- },\n- {\n- full_name='foldcolumn', abbreviation='fdc',\n- short_desc=N_(\"width of the column used to indicate folds\"),\n- type='string', scope={'window'},\n- alloced=true,\n- redraw={'current_window'},\n- defaults={if_true=\"0\"},\n- cb='did_set_foldcolumn'\n- },\n- {\n- full_name='foldenable', abbreviation='fen',\n- short_desc=N_(\"set to display all folds open\"),\n- type='bool', scope={'window'},\n- redraw={'current_window'},\n- defaults={if_true=true}\n- },\n- {\n- full_name='foldexpr', abbreviation='fde',\n- short_desc=N_(\"expression used when 'foldmethod' is \\\"expr\\\"\"),\n- type='string', scope={'window'},\n- modelineexpr=true,\n- alloced=true,\n- redraw={'current_window'},\n- defaults={if_true=\"0\"},\n- cb='did_set_foldexpr'\n- },\n- {\n- full_name='foldignore', abbreviation='fdi',\n- short_desc=N_(\"ignore lines when 'foldmethod' is \\\"indent\\\"\"),\n- type='string', scope={'window'},\n- alloced=true,\n- redraw={'current_window'},\n- defaults={if_true=\"#\"},\n- cb='did_set_foldignore'\n- },\n- {\n- full_name='foldlevel', abbreviation='fdl',\n- short_desc=N_(\"close folds with a level higher than this\"),\n- type='number', scope={'window'},\n- redraw={'current_window'},\n- defaults={if_true=0},\n- cb='did_set_foldlevel'\n- },\n- {\n- full_name='foldlevelstart', abbreviation='fdls',\n- short_desc=N_(\"'foldlevel' when starting to edit a file\"),\n- type='number', scope={'global'},\n- redraw={'curswant'},\n- varname='p_fdls',\n- defaults={if_true=-1}\n- },\n- {\n- full_name='foldmarker', abbreviation='fmr',\n- short_desc=N_(\"markers used when 'foldmethod' is \\\"marker\\\"\"),\n- type='string', list='onecomma', scope={'window'},\n- deny_duplicates=true,\n- alloced=true,\n- redraw={'current_window'},\n- defaults={if_true=\"{{{,}}}\"},\n- cb='did_set_foldmarker'\n- },\n- {\n- full_name='foldmethod', abbreviation='fdm',\n- short_desc=N_(\"folding type\"),\n- type='string', scope={'window'},\n- alloced=true,\n- redraw={'current_window'},\n- defaults={if_true=\"manual\"},\n- cb='did_set_foldmethod'\n- },\n- {\n- full_name='foldminlines', abbreviation='fml',\n- short_desc=N_(\"minimum number of lines for a fold to be closed\"),\n- type='number', scope={'window'},\n- redraw={'current_window'},\n- defaults={if_true=1},\n- cb='did_set_foldminlines'\n- },\n- {\n- full_name='foldnestmax', abbreviation='fdn',\n- short_desc=N_(\"maximum fold depth\"),\n- type='number', scope={'window'},\n- redraw={'current_window'},\n- defaults={if_true=20},\n- cb='did_set_foldnestmax'\n- },\n- {\n- full_name='foldopen', abbreviation='fdo',\n- short_desc=N_(\"for which commands a fold will be opened\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- redraw={'curswant'},\n- varname='p_fdo',\n- defaults={if_true=\"block,hor,mark,percent,quickfix,search,tag,undo\"},\n- cb='did_set_foldopen'\n- },\n- {\n- full_name='foldtext', abbreviation='fdt',\n- short_desc=N_(\"expression used to display for a closed fold\"),\n- type='string', scope={'window'},\n- modelineexpr=true,\n- alloced=true,\n- redraw={'current_window'},\n- defaults={if_true=\"foldtext()\"},\n- cb='did_set_optexpr'\n- },\n- {\n- full_name='formatexpr', abbreviation='fex',\n- short_desc=N_(\"expression used with \\\"gq\\\" command\"),\n- type='string', scope={'buffer'},\n- modelineexpr=true,\n- alloced=true,\n- varname='p_fex',\n- defaults={if_true=\"\"},\n- cb='did_set_optexpr'\n- },\n- {\n- full_name='formatoptions', abbreviation='fo',\n- short_desc=N_(\"how automatic formatting is to be done\"),\n- type='string', list='flags', scope={'buffer'},\n- alloced=true,\n- varname='p_fo',\n- defaults={if_true=macros('DFLT_FO_VIM')},\n- cb='did_set_formatoptions'\n- },\n- {\n- full_name='formatlistpat', abbreviation='flp',\n- short_desc=N_(\"pattern used to recognize a list header\"),\n- type='string', scope={'buffer'},\n- alloced=true,\n- varname='p_flp',\n- defaults={if_true=\"^\\\\s*\\\\d\\\\+[\\\\]:.)}\\\\t ]\\\\s*\"}\n- },\n- {\n- full_name='formatprg', abbreviation='fp',\n- short_desc=N_(\"name of external program used with \\\"gq\\\" command\"),\n- type='string', scope={'global', 'buffer'},\n- secure=true,\n- expand=true,\n- varname='p_fp',\n- defaults={if_true=\"\"}\n- },\n- {\n- full_name='fsync', abbreviation='fs',\n- short_desc=N_(\"whether to invoke fsync() after file write\"),\n- type='bool', scope={'global'},\n- secure=true,\n- varname='p_fs',\n- defaults={if_true=false}\n- },\n- {\n- full_name='gdefault', abbreviation='gd',\n- short_desc=N_(\"the \\\":substitute\\\" flag 'g' is default on\"),\n- type='bool', scope={'global'},\n- varname='p_gd',\n- defaults={if_true=false}\n- },\n- {\n- full_name='grepformat', abbreviation='gfm',\n- short_desc=N_(\"format of 'grepprg' output\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- varname='p_gefm',\n- defaults={if_true=macros('DFLT_GREPFORMAT')}\n- },\n- {\n- full_name='grepprg', abbreviation='gp',\n- short_desc=N_(\"program to use for \\\":grep\\\"\"),\n- type='string', scope={'global', 'buffer'},\n- secure=true,\n- expand=true,\n- varname='p_gp',\n- defaults={\n- condition='MSWIN',\n- -- Add an extra file name so that grep will always\n- -- insert a file name in the match line. */\n- if_true=\"findstr /n $* nul\",\n- if_false=\"grep -n $* /dev/null\"\n- }\n- },\n- {\n- full_name='guicursor', abbreviation='gcr',\n- short_desc=N_(\"GUI: settings for cursor shape and blinking\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- varname='p_guicursor',\n- defaults={if_true=\"n-v-c-sm:block,i-ci-ve:ver25,r-cr-o:hor20\"},\n- cb='did_set_guicursor'\n- },\n- {\n- full_name='guifont', abbreviation='gfn',\n- short_desc=N_(\"GUI: Name(s) of font(s) to be used\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- varname='p_guifont',\n- redraw={'ui_option'},\n- defaults={if_true=\"\"}\n- },\n- {\n- full_name='guifontwide', abbreviation='gfw',\n- short_desc=N_(\"list of font names for double-wide characters\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- redraw={'ui_option'},\n- varname='p_guifontwide',\n- defaults={if_true=\"\"}\n- },\n- {\n- full_name='guioptions', abbreviation='go',\n- short_desc=N_(\"GUI: Which components and options are used\"),\n- type='string', list='flags', scope={'global'},\n- enable_if=false,\n- },\n- {\n- full_name='guitablabel', abbreviation='gtl',\n- short_desc=N_(\"GUI: custom label for a tab page\"),\n- type='string', scope={'global'},\n- modelineexpr=true,\n- redraw={'current_window'},\n- enable_if=false,\n- },\n- {\n- full_name='guitabtooltip', abbreviation='gtt',\n- short_desc=N_(\"GUI: custom tooltip for a tab page\"),\n- type='string', scope={'global'},\n- redraw={'current_window'},\n- enable_if=false,\n- },\n- {\n- full_name='helpfile', abbreviation='hf',\n- short_desc=N_(\"full path name of the main help file\"),\n- type='string', scope={'global'},\n- secure=true,\n- expand=true,\n- varname='p_hf',\n- defaults={if_true=macros('DFLT_HELPFILE')},\n- cb='did_set_helpfile'\n- },\n- {\n- full_name='helpheight', abbreviation='hh',\n- short_desc=N_(\"minimum height of a new help window\"),\n- type='number', scope={'global'},\n- varname='p_hh',\n- defaults={if_true=20},\n- cb='did_set_helpheight'\n- },\n- {\n- full_name='helplang', abbreviation='hlg',\n- short_desc=N_(\"preferred help languages\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- varname='p_hlg',\n- defaults={if_true=\"\"},\n- cb='did_set_helplang'\n- },\n- {\n- full_name='hidden', abbreviation='hid',\n- short_desc=N_(\"don't unload buffer when it is |abandon|ed\"),\n- type='bool', scope={'global'},\n- varname='p_hid',\n- defaults={if_true=true}\n- },\n- {\n- full_name='highlight', abbreviation='hl',\n- short_desc=N_(\"sets highlighting mode for various occasions\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- varname='p_hl',\n- defaults={if_true=macros('HIGHLIGHT_INIT')},\n- cb='did_set_highlight'\n- },\n- {\n- full_name='history', abbreviation='hi',\n- short_desc=N_(\"number of command-lines that are remembered\"),\n- type='number', scope={'global'},\n- varname='p_hi',\n- defaults={if_true=10000}\n- },\n- {\n- full_name='hkmap', abbreviation='hk',\n- short_desc=N_(\"No description\"),\n- type='bool', scope={'global'},\n- varname='p_force_off',\n- defaults={if_true=false}\n- },\n- {\n- full_name='hkmapp', abbreviation='hkp',\n- short_desc=N_(\"No description\"),\n- type='bool', scope={'global'},\n- varname='p_force_off',\n- defaults={if_true=false}\n- },\n- {\n- full_name='hlsearch', abbreviation='hls',\n- short_desc=N_(\"highlight matches with last search pattern\"),\n- type='bool', scope={'global'},\n- redraw={'all_windows'},\n- varname='p_hls',\n- defaults={if_true=true},\n- cb='did_set_hlsearch'\n- },\n- {\n- full_name='icon',\n- short_desc=N_(\"Vim set the text of the window icon\"),\n- type='bool', scope={'global'},\n- varname='p_icon',\n- defaults={if_true=false},\n- cb='did_set_title_icon'\n- },\n- {\n- full_name='iconstring',\n- short_desc=N_(\"to use for the Vim icon text\"),\n- type='string', scope={'global'},\n- modelineexpr=true,\n- varname='p_iconstring',\n- defaults={if_true=\"\"},\n- cb='did_set_iconstring'\n- },\n- {\n- full_name='ignorecase', abbreviation='ic',\n- short_desc=N_(\"ignore case in search patterns\"),\n- type='bool', scope={'global'},\n- varname='p_ic',\n- defaults={if_true=false},\n- cb='did_set_ignorecase'\n- },\n- {\n- full_name='imcmdline', abbreviation='imc',\n- short_desc=N_(\"use IM when starting to edit a command line\"),\n- type='bool', scope={'global'},\n- enable_if=false,\n- defaults={if_true=false}\n- },\n- {\n- full_name='imdisable', abbreviation='imd',\n- short_desc=N_(\"do not use the IM in any mode\"),\n- type='bool', scope={'global'},\n- enable_if=false,\n- defaults={if_true=false}\n- },\n- {\n- full_name='iminsert', abbreviation='imi',\n- short_desc=N_(\"use :lmap or IM in Insert mode\"),\n- type='number', scope={'buffer'},\n- varname='p_iminsert', pv_name='p_imi',\n- defaults={if_true=macros('B_IMODE_NONE')},\n- cb='did_set_iminsert'\n- },\n- {\n- full_name='imsearch', abbreviation='ims',\n- short_desc=N_(\"use :lmap or IM when typing a search pattern\"),\n- type='number', scope={'buffer'},\n- varname='p_imsearch', pv_name='p_ims',\n- defaults={\n- if_true=macros('B_IMODE_USE_INSERT'),\n- }\n- },\n- {\n- full_name='inccommand', abbreviation='icm',\n- short_desc=N_(\"Live preview of substitution\"),\n- type='string', scope={'global'},\n- varname='p_icm',\n- defaults={if_true=\"nosplit\"},\n- cb='did_set_inccommand'\n- },\n- {\n- full_name='include', abbreviation='inc',\n- short_desc=N_(\"pattern to be used to find an include file\"),\n- type='string', scope={'global', 'buffer'},\n- alloced=true,\n- varname='p_inc',\n- defaults={if_true=\"\"}\n- },\n- {\n- full_name='includeexpr', abbreviation='inex',\n- short_desc=N_(\"expression used to process an include line\"),\n- type='string', scope={'buffer'},\n- modelineexpr=true,\n- alloced=true,\n- varname='p_inex',\n- defaults={if_true=\"\"},\n- cb='did_set_optexpr'\n- },\n- {\n- full_name='incsearch', abbreviation='is',\n- short_desc=N_(\"highlight match while typing search pattern\"),\n- type='bool', scope={'global'},\n- varname='p_is',\n- defaults={if_true=true}\n- },\n- {\n- full_name='indentexpr', abbreviation='inde',\n- short_desc=N_(\"expression used to obtain the indent of a line\"),\n- type='string', scope={'buffer'},\n- modelineexpr=true,\n- alloced=true,\n- varname='p_inde',\n- defaults={if_true=\"\"},\n- cb='did_set_optexpr'\n- },\n- {\n- full_name='indentkeys', abbreviation='indk',\n- short_desc=N_(\"keys that trigger indenting with 'indentexpr'\"),\n- type='string', list='onecomma', scope={'buffer'},\n- deny_duplicates=true,\n- alloced=true,\n- varname='p_indk',\n- defaults={if_true=indentkeys_default}\n- },\n- {\n- full_name='infercase', abbreviation='inf',\n- short_desc=N_(\"adjust case of match for keyword completion\"),\n- type='bool', scope={'buffer'},\n- varname='p_inf',\n- defaults={if_true=false}\n- },\n- {\n- full_name='insertmode', abbreviation='im',\n- short_desc=N_(\"No description\"),\n- type='bool', scope={'global'},\n- varname='p_force_off',\n- defaults={if_true=false}\n- },\n- {\n- full_name='isfname', abbreviation='isf',\n- short_desc=N_(\"characters included in file names and pathnames\"),\n- type='string', list='comma', scope={'global'},\n- deny_duplicates=true,\n- varname='p_isf',\n- defaults={\n- condition='BACKSLASH_IN_FILENAME',\n- -- Excluded are: & and ^ are special in cmd.exe\n- -- ( and ) are used in text separating fnames */\n- if_true=\"@,48-57,/,\\\\,.,-,_,+,,,#,$,%,{,},[,],:,@-@,!,~,=\",\n- if_false=\"@,48-57,/,.,-,_,+,,,#,$,%,~,=\"\n+ deny_duplicates = true,\n+ desc = [=[\n+ A list of file patterns. When one of the patterns matches with the\n+ name of the file which is written, no backup file is created. Both\n+ the specified file name and the full path name of the file are used.\n+ The pattern is used like with |:autocmd|, see |autocmd-pattern|.\n+ Watch out for special characters, see |option-backslash|.\n+ When $TMPDIR, $TMP or $TEMP is not defined, it is not used for the\n+ default value. \"/tmp/*\" is only used for Unix.\n+\n+ WARNING: Not having a backup file means that when Vim fails to write\n+ your buffer correctly and then, for whatever reason, Vim exits, you\n+ lose both the original file and what you were writing. Only disable\n+ backups if you don't care about losing the file.\n+\n+ Note that environment variables are not expanded. If you want to use\n+ $HOME you must expand it explicitly, e.g.: >\n+ \t:let &backupskip = escape(expand('$HOME'), '\\') .. '/tmp/*'\n+\n+ <\tNote that the default also makes sure that \"crontab -e\" works (when a\n+ backup would be made by renaming the original file crontab won't see\n+ the newly created file). Also see 'backupcopy' and |crontab|.\n+ ]=],\n+ full_name = 'backupskip',\n+ list = 'onecomma',\n+ scope = { 'global' },\n+ short_desc = N_('no backup for files that match these patterns'),\n+ type = 'string',\n+ varname = 'p_bsk',\n+ },\n+ {\n+ abbreviation = 'bo',\n+ cb = 'did_set_belloff',\n+ defaults = { if_true = 'all' },\n+ deny_duplicates = true,\n+ desc = [=[\n+ Specifies for which events the bell will not be rung. It is a comma-\n+ separated list of items. For each item that is present, the bell\n+ will be silenced. This is most useful to specify specific events in\n+ insert mode to be silenced.\n+\n+ item\t meaning when present\t~\n+ all\t All events.\n+ backspace When hitting or and deleting results in an\n+ \t error.\n+ cursor\t Fail to move around using the cursor keys or\n+ \t / in |Insert-mode|.\n+ complete Error occurred when using |i_CTRL-X_CTRL-K| or\n+ \t |i_CTRL-X_CTRL-T|.\n+ copy\t Cannot copy char from insert mode using |i_CTRL-Y| or\n+ \t |i_CTRL-E|.\n+ ctrlg\t Unknown Char after in Insert mode.\n+ error\t Other Error occurred (e.g. try to join last line)\n+ \t (mostly used in |Normal-mode| or |Cmdline-mode|).\n+ esc\t hitting in |Normal-mode|.\n+ hangul\t Ignored.\n+ lang\t Calling the beep module for Lua/Mzscheme/TCL.\n+ mess\t No output available for |g<|.\n+ showmatch Error occurred for 'showmatch' function.\n+ operator Empty region error |cpo-E|.\n+ register Unknown register after in |Insert-mode|.\n+ shell\t Bell from shell output |:!|.\n+ spell\t Error happened on spell suggest.\n+ wildmode More matches in |cmdline-completion| available\n+ \t (depends on the 'wildmode' setting).\n+\n+ This is most useful to fine tune when in Insert mode the bell should\n+ be rung. For Normal mode and Ex commands, the bell is often rung to\n+ indicate that an error occurred. It can be silenced by adding the\n+ \"error\" keyword.\n+ ]=],\n+ full_name = 'belloff',\n+ list = 'comma',\n+ scope = { 'global' },\n+ short_desc = N_('do not ring the bell for these reasons'),\n+ type = 'string',\n+ varname = 'p_bo',\n+ },\n+ {\n+ abbreviation = 'bin',\n+ cb = 'did_set_binary',\n+ defaults = { if_true = false },\n+ desc = [=[\n+ This option should be set before editing a binary file. You can also\n+ use the |-b| Vim argument. When this option is switched on a few\n+ options will be changed (also when it already was on):\n+ \t'textwidth' will be set to 0\n+ \t'wrapmargin' will be set to 0\n+ \t'modeline' will be off\n+ \t'expandtab' will be off\n+ Also, 'fileformat' and 'fileformats' options will not be used, the\n+ file is read and written like 'fileformat' was \"unix\" (a single \n+ separates lines).\n+ The 'fileencoding' and 'fileencodings' options will not be used, the\n+ file is read without conversion.\n+ NOTE: When you start editing a(nother) file while the 'bin' option is\n+ on, settings from autocommands may change the settings again (e.g.,\n+ 'textwidth'), causing trouble when editing. You might want to set\n+ 'bin' again when the file has been loaded.\n+ The previous values of these options are remembered and restored when\n+ 'bin' is switched from on to off. Each buffer has its own set of\n+ saved option values.\n+ To edit a file with 'binary' set you can use the |++bin| argument.\n+ This avoids you have to do \":set bin\", which would have effect for all\n+ files you edit.\n+ When writing a file the for the last line is only written if\n+ there was one in the original file (normally Vim appends an to\n+ the last line if there is none; this would make the file longer). See\n+ the 'endofline' option.\n+ ]=],\n+ full_name = 'binary',\n+ redraw = { 'statuslines' },\n+ scope = { 'buffer' },\n+ short_desc = N_('read/write/edit file in binary mode'),\n+ type = 'bool',\n+ varname = 'p_bin',\n+ },\n+ {\n+ cb = 'did_set_eof_eol_fixeol_bomb',\n+ defaults = { if_true = false },\n+ desc = [=[\n+ When writing a file and the following conditions are met, a BOM (Byte\n+ Order Mark) is prepended to the file:\n+ - this option is on\n+ - the 'binary' option is off\n+ - 'fileencoding' is \"utf-8\", \"ucs-2\", \"ucs-4\" or one of the little/big\n+ endian variants.\n+ Some applications use the BOM to recognize the encoding of the file.\n+ Often used for UCS-2 files on MS-Windows. For other applications it\n+ causes trouble, for example: \"cat file1 file2\" makes the BOM of file2\n+ appear halfway through the resulting file. Gcc doesn't accept a BOM.\n+ When Vim reads a file and 'fileencodings' starts with \"ucs-bom\", a\n+ check for the presence of the BOM is done and 'bomb' set accordingly.\n+ Unless 'binary' is set, it is removed from the first line, so that you\n+ don't see it when editing. When you don't change the options, the BOM\n+ will be restored when writing the file.\n+ ]=],\n+ full_name = 'bomb',\n+ no_mkrc = true,\n+ redraw = { 'statuslines' },\n+ scope = { 'buffer' },\n+ short_desc = N_('a Byte Order Mark to the file'),\n+ type = 'bool',\n+ varname = 'p_bomb',\n+ },\n+ {\n+ abbreviation = 'brk',\n+ cb = 'did_set_breakat',\n+ defaults = {\n+ if_true = ' \\t!@*-+;:,./?',\n+ doc = '\" ^I!@*-+;:,./?\"',\n },\n- cb='did_set_isopt'\n- },\n- {\n- full_name='isident', abbreviation='isi',\n- short_desc=N_(\"characters included in identifiers\"),\n- type='string', list='comma', scope={'global'},\n- deny_duplicates=true,\n- varname='p_isi',\n- defaults={\n- condition='MSWIN',\n- if_true=\"@,48-57,_,128-167,224-235\",\n- if_false=\"@,48-57,_,192-255\"\n+ desc = [=[\n+ This option lets you choose which characters might cause a line\n+ break if 'linebreak' is on. Only works for ASCII characters.\n+ ]=],\n+ full_name = 'breakat',\n+ list = 'flags',\n+ redraw = { 'all_windows' },\n+ scope = { 'global' },\n+ short_desc = N_('characters that may cause a line break'),\n+ type = 'string',\n+ varname = 'p_breakat',\n+ },\n+ {\n+ abbreviation = 'bri',\n+ defaults = { if_true = false },\n+ desc = [=[\n+ Every wrapped line will continue visually indented (same amount of\n+ space as the beginning of that line), thus preserving horizontal blocks\n+ of text.\n+ ]=],\n+ full_name = 'breakindent',\n+ redraw = { 'current_window' },\n+ scope = { 'window' },\n+ short_desc = N_('wrapped line repeats indent'),\n+ type = 'bool',\n+ },\n+ {\n+ abbreviation = 'briopt',\n+ alloced = true,\n+ cb = 'did_set_breakindentopt',\n+ defaults = { if_true = '' },\n+ deny_duplicates = true,\n+ desc = [=[\n+ Settings for 'breakindent'. It can consist of the following optional\n+ items and must be separated by a comma:\n+ \tmin:{n}\t Minimum text width that will be kept after\n+ \t\t applying 'breakindent', even if the resulting\n+ \t\t text should normally be narrower. This prevents\n+ \t\t text indented almost to the right window border\n+ \t\t occupying lot of vertical space when broken.\n+ \t\t (default: 20)\n+ \tshift:{n} After applying 'breakindent', the wrapped line's\n+ \t\t beginning will be shifted by the given number of\n+ \t\t characters. It permits dynamic French paragraph\n+ \t\t indentation (negative) or emphasizing the line\n+ \t\t continuation (positive).\n+ \t\t (default: 0)\n+ \tsbr\t Display the 'showbreak' value before applying the\n+ \t\t additional indent.\n+ \t\t (default: off)\n+ \tlist:{n} Adds an additional indent for lines that match a\n+ \t\t numbered or bulleted list (using the\n+ \t\t 'formatlistpat' setting).\n+ \tlist:-1\t Uses the length of a match with 'formatlistpat'\n+ \t\t for indentation.\n+ \t\t (default: 0)\n+ \tcolumn:{n} Indent at column {n}. Will overrule the other\n+ \t\t sub-options. Note: an additional indent may be\n+ \t\t added for the 'showbreak' setting.\n+ \t\t (default: off)\n+ ]=],\n+ full_name = 'breakindentopt',\n+ list = 'onecomma',\n+ redraw = { 'current_buffer' },\n+ scope = { 'window' },\n+ short_desc = N_(\"settings for 'breakindent'\"),\n+ type = 'string',\n+ },\n+ {\n+ abbreviation = 'bsdir',\n+ defaults = {\n+ if_true = '',\n+ doc = '\"last\"',\n },\n- cb='did_set_isopt'\n- },\n- {\n- full_name='iskeyword', abbreviation='isk',\n- short_desc=N_(\"characters included in keywords\"),\n- type='string', list='comma', scope={'buffer'},\n- deny_duplicates=true,\n- alloced=true,\n- varname='p_isk',\n- defaults={if_true=\"@,48-57,_,192-255\"},\n- cb='did_set_isopt'\n- },\n- {\n- full_name='isprint', abbreviation='isp',\n- short_desc=N_(\"printable characters\"),\n- type='string', list='comma', scope={'global'},\n- deny_duplicates=true,\n- redraw={'all_windows'},\n- varname='p_isp',\n- defaults={if_true=\"@,161-255\"},\n- cb='did_set_isopt'\n- },\n- {\n- full_name='joinspaces', abbreviation='js',\n- short_desc=N_(\"two spaces after a period with a join command\"),\n- type='bool', scope={'global'},\n- varname='p_js',\n- defaults={if_true=false}\n- },\n- {\n- full_name='jumpoptions', abbreviation='jop',\n- short_desc=N_(\"Controls the behavior of the jumplist\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- varname='p_jop',\n- defaults={if_true=''},\n- cb='did_set_jumpoptions'\n- },\n- {\n- full_name='keymap', abbreviation='kmp',\n- short_desc=N_(\"name of a keyboard mapping\"),\n- type='string', scope={'buffer'},\n- normal_fname_chars=true,\n- pri_mkrc=true,\n- alloced=true,\n- redraw={'statuslines', 'current_buffer'},\n- varname='p_keymap', pv_name='p_kmap',\n- defaults={if_true=\"\"},\n- cb='did_set_keymap'\n- },\n- {\n- full_name='keymodel', abbreviation='km',\n- short_desc=N_(\"enable starting/stopping selection with keys\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- varname='p_km',\n- defaults={if_true=\"\"},\n- cb='did_set_keymodel'\n- },\n- {\n- full_name='keywordprg', abbreviation='kp',\n- short_desc=N_(\"program to use for the \\\"K\\\" command\"),\n- type='string', scope={'global', 'buffer'},\n- secure=true,\n- expand=true,\n- varname='p_kp',\n- defaults={\n- if_true=\":Man\",\n- }\n- },\n- {\n- full_name='langmap', abbreviation='lmap',\n- short_desc=N_(\"alphabetic characters for other language mode\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- secure=true,\n- varname='p_langmap',\n- defaults={if_true=\"\"},\n- cb='did_set_langmap'\n- },\n- {\n- full_name='langmenu', abbreviation='lm',\n- short_desc=N_(\"language to be used for the menus\"),\n- type='string', scope={'global'},\n- normal_fname_chars=true,\n- varname='p_lm',\n- defaults={if_true=\"\"}\n- },\n- {\n- full_name='langnoremap', abbreviation='lnr',\n- short_desc=N_(\"do not apply 'langmap' to mapped characters\"),\n- type='bool', scope={'global'},\n- varname='p_lnr',\n- defaults={if_true=true},\n- cb='did_set_langnoremap'\n- },\n- {\n- full_name='langremap', abbreviation='lrm',\n- short_desc=N_('No description'),\n- type='bool', scope={'global'},\n- varname='p_lrm',\n- defaults={if_true=false},\n- cb='did_set_langremap'\n- },\n- {\n- full_name='laststatus', abbreviation='ls',\n- short_desc=N_(\"tells when last window has status lines\"),\n- type='number', scope={'global'},\n- redraw={'all_windows'},\n- varname='p_ls',\n- defaults={if_true=2},\n- cb='did_set_laststatus'\n- },\n- {\n- full_name='lazyredraw', abbreviation='lz',\n- short_desc=N_(\"don't redraw while executing macros\"),\n- type='bool', scope={'global'},\n- varname='p_lz',\n- defaults={if_true=false}\n- },\n- {\n- full_name='linebreak', abbreviation='lbr',\n- short_desc=N_(\"wrap long lines at a blank\"),\n- type='bool', scope={'window'},\n- redraw={'current_window'},\n- defaults={if_true=false}\n- },\n- {\n- full_name='lines',\n- short_desc=N_(\"of lines in the display\"),\n- type='number', scope={'global'},\n- no_mkrc=true,\n- varname='p_lines',\n- defaults={if_true=macros('DFLT_ROWS')}\n- },\n- {\n- full_name='linespace', abbreviation='lsp',\n- short_desc=N_(\"number of pixel lines to use between characters\"),\n- type='number', scope={'global'},\n- redraw={'ui_option'},\n- varname='p_linespace',\n- defaults={if_true=0}\n- },\n- {\n- full_name='lisp',\n- short_desc=N_(\"indenting for Lisp\"),\n- type='bool', scope={'buffer'},\n- varname='p_lisp',\n- defaults={if_true=false},\n- cb='did_set_lisp'\n- },\n- {\n- full_name='lispoptions', abbreviation='lop',\n- short_desc=N_(\"options for lisp indenting\"),\n- type='string', list='onecomma', scope={'buffer'},\n- deny_duplicates=true,\n- varname='p_lop', pv_name='p_lop',\n- defaults={if_true=''},\n- cb='did_set_lispoptions'\n- },\n- {\n- full_name='lispwords', abbreviation='lw',\n- short_desc=N_(\"words that change how lisp indenting works\"),\n- type='string', list='onecomma', scope={'global', 'buffer'},\n- deny_duplicates=true,\n- varname='p_lispwords', pv_name='p_lw',\n- defaults={if_true=macros('LISPWORD_VALUE')}\n- },\n- {\n- full_name='list',\n- short_desc=N_(\" and \"),\n- type='bool', scope={'window'},\n- redraw={'current_window'},\n- defaults={if_true=false}\n- },\n- {\n- full_name='listchars', abbreviation='lcs',\n- short_desc=N_(\"characters for displaying in list mode\"),\n- type='string', list='onecomma', scope={'global', 'window'},\n- deny_duplicates=true,\n- alloced=true,\n- redraw={'current_window'},\n- varname='p_lcs',\n- defaults={if_true=\"tab:> ,trail:-,nbsp:+\"},\n- cb='did_set_chars_option'\n- },\n- {\n- full_name='loadplugins', abbreviation='lpl',\n- short_desc=N_(\"load plugin scripts when starting up\"),\n- type='bool', scope={'global'},\n- varname='p_lpl',\n- defaults={if_true=true}\n- },\n- {\n- full_name='magic',\n- short_desc=N_(\"special characters in search patterns\"),\n- type='bool', scope={'global'},\n- varname='p_magic',\n- defaults={if_true=true}\n- },\n- {\n- full_name='makeef', abbreviation='mef',\n- short_desc=N_(\"name of the errorfile for \\\":make\\\"\"),\n- type='string', scope={'global'},\n- secure=true,\n- expand=true,\n- varname='p_mef',\n- defaults={if_true=\"\"}\n- },\n- {\n- full_name='makeencoding', abbreviation='menc',\n- short_desc=N_(\"Converts the output of external commands\"),\n- type='string', scope={'global', 'buffer'},\n- varname='p_menc',\n- defaults={if_true=\"\"},\n- cb='did_set_encoding'\n- },\n- {\n- full_name='makeprg', abbreviation='mp',\n- short_desc=N_(\"program to use for the \\\":make\\\" command\"),\n- type='string', scope={'global', 'buffer'},\n- secure=true,\n- expand=true,\n- varname='p_mp',\n- defaults={if_true=\"make\"}\n- },\n- {\n- full_name='matchpairs', abbreviation='mps',\n- short_desc=N_(\"pairs of characters that \\\"%\\\" can match\"),\n- type='string', list='onecomma', scope={'buffer'},\n- deny_duplicates=true,\n- alloced=true,\n- varname='p_mps',\n- defaults={if_true=\"(:),{:},[:]\"},\n- cb='did_set_matchpairs'\n- },\n- {\n- full_name='matchtime', abbreviation='mat',\n- short_desc=N_(\"tenths of a second to show matching paren\"),\n- type='number', scope={'global'},\n- varname='p_mat',\n- defaults={if_true=5}\n- },\n- {\n- full_name='maxcombine', abbreviation='mco',\n- short_desc=N_(\"maximum nr of combining characters displayed\"),\n- type='number', scope={'global'},\n- varname='p_mco',\n- defaults={if_true=6}\n- },\n- {\n- full_name='maxfuncdepth', abbreviation='mfd',\n- short_desc=N_(\"maximum recursive depth for user functions\"),\n- type='number', scope={'global'},\n- varname='p_mfd',\n- defaults={if_true=100}\n- },\n- {\n- full_name='maxmapdepth', abbreviation='mmd',\n- short_desc=N_(\"maximum recursive depth for mapping\"),\n- type='number', scope={'global'},\n- varname='p_mmd',\n- defaults={if_true=1000}\n- },\n- {\n- full_name='maxmempattern', abbreviation='mmp',\n- short_desc=N_(\"maximum memory (in Kbyte) used for pattern search\"),\n- type='number', scope={'global'},\n- varname='p_mmp',\n- defaults={if_true=1000}\n- },\n- {\n- full_name='menuitems', abbreviation='mis',\n- short_desc=N_(\"maximum number of items in a menu\"),\n- type='number', scope={'global'},\n- varname='p_mis',\n- defaults={if_true=25}\n- },\n- {\n- full_name='mkspellmem', abbreviation='msm',\n- short_desc=N_(\"memory used before |:mkspell| compresses the tree\"),\n- type='string', scope={'global'},\n- secure=true,\n- expand=true,\n- varname='p_msm',\n- defaults={if_true=\"460000,2000,500\"},\n- cb='did_set_mkspellmem'\n- },\n- {\n- full_name='modeline', abbreviation='ml',\n- short_desc=N_(\"recognize modelines at start or end of file\"),\n- type='bool', scope={'buffer'},\n- varname='p_ml',\n- defaults={if_true=true}\n- },\n- {\n- full_name='modelineexpr', abbreviation='mle',\n- short_desc=N_(\"allow some options to be set in modeline\"),\n- type='bool', scope={'global'},\n- secure=true,\n- varname='p_mle',\n- defaults={if_true=false}\n- },\n- {\n- full_name='modelines', abbreviation='mls',\n- short_desc=N_(\"number of lines checked for modelines\"),\n- type='number', scope={'global'},\n- varname='p_mls',\n- defaults={if_true=5}\n- },\n- {\n- full_name='modifiable', abbreviation='ma',\n- short_desc=N_(\"changes to the text are not possible\"),\n- type='bool', scope={'buffer'},\n- noglob=true,\n- varname='p_ma',\n- defaults={if_true=true},\n- cb='did_set_modifiable'\n- },\n- {\n- full_name='modified', abbreviation='mod',\n- short_desc=N_(\"buffer has been modified\"),\n- type='bool', scope={'buffer'},\n- no_mkrc=true,\n- redraw={'statuslines'},\n- varname='p_mod',\n- defaults={if_true=false},\n- cb='did_set_modified'\n- },\n- {\n- full_name='more',\n- short_desc=N_(\"listings when the whole screen is filled\"),\n- type='bool', scope={'global'},\n- varname='p_more',\n- defaults={if_true=true}\n- },\n- {\n- full_name='mouse',\n- short_desc=N_(\"the use of mouse clicks\"),\n- type='string', list='flags', scope={'global'},\n- varname='p_mouse',\n- defaults={if_true=\"nvi\"},\n- cb='did_set_mouse'\n- },\n- {\n- full_name='mousefocus', abbreviation='mousef',\n- short_desc=N_(\"keyboard focus follows the mouse\"),\n- type='bool', scope={'global'},\n- redraw={'ui_option'},\n- varname='p_mousef',\n- defaults={if_true=false}\n- },\n- {\n- full_name='mousehide', abbreviation='mh',\n- short_desc=N_(\"hide mouse pointer while typing\"),\n- type='bool', scope={'global'},\n- enable_if=false,\n- defaults={if_true=true}\n- },\n- {\n- full_name='mousemodel', abbreviation='mousem',\n- short_desc=N_(\"changes meaning of mouse buttons\"),\n- type='string', scope={'global'},\n- varname='p_mousem',\n- defaults={if_true=\"popup_setpos\"},\n- cb='did_set_mousemodel'\n- },\n- {\n- full_name='mousemoveevent', abbreviation='mousemev',\n- short_desc=N_(\"deliver mouse move events to input queue\"),\n- type='bool', scope={'global'},\n- redraw={'ui_option'},\n- varname='p_mousemev',\n- defaults={if_true=false}\n- },\n- {\n- full_name='mousescroll',\n- short_desc=N_(\"amount to scroll by when scrolling with a mouse\"),\n- type='string', list='comma', scope={'global'},\n- vi_def=true,\n- varname='p_mousescroll',\n- defaults={if_true=\"ver:3,hor:6\"},\n- cb='did_set_mousescroll'\n- },\n- {\n- full_name='mouseshape', abbreviation='mouses',\n- short_desc=N_(\"shape of the mouse pointer in different modes\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- enable_if=false,\n- },\n- {\n- full_name='mousetime', abbreviation='mouset',\n- short_desc=N_(\"max time between mouse double-click\"),\n- type='number', scope={'global'},\n- varname='p_mouset',\n- defaults={if_true=500}\n- },\n- {\n- full_name='nrformats', abbreviation='nf',\n- short_desc=N_(\"number formats recognized for CTRL-A command\"),\n- type='string', list='onecomma', scope={'buffer'},\n- deny_duplicates=true,\n- alloced=true,\n- varname='p_nf',\n- defaults={if_true=\"bin,hex\"},\n- cb='did_set_nrformats'\n- },\n- {\n- full_name='number', abbreviation='nu',\n- short_desc=N_(\"print the line number in front of each line\"),\n- type='bool', scope={'window'},\n- redraw={'current_window'},\n- defaults={if_true=false},\n- cb='did_set_number_relativenumber'\n- },\n- {\n- full_name='numberwidth', abbreviation='nuw',\n- short_desc=N_(\"number of columns used for the line number\"),\n- type='number', scope={'window'},\n- redraw={'current_window'},\n- defaults={if_true=4},\n- cb='did_set_numberwidth'\n- },\n- {\n- full_name='omnifunc', abbreviation='ofu',\n- short_desc=N_(\"function for filetype-specific completion\"),\n- type='string', scope={'buffer'},\n- secure=true,\n- alloced=true,\n- func=true,\n- varname='p_ofu',\n- defaults={if_true=\"\"},\n- cb='did_set_omnifunc'\n- },\n- {\n- full_name='opendevice', abbreviation='odev',\n- short_desc=N_(\"allow reading/writing devices on MS-Windows\"),\n- type='bool', scope={'global'},\n- enable_if=false,\n- defaults={if_true=false}\n- },\n- {\n- full_name='operatorfunc', abbreviation='opfunc',\n- short_desc=N_(\"function to be called for |g@| operator\"),\n- type='string', scope={'global'},\n- secure=true,\n- func=true,\n- varname='p_opfunc',\n- defaults={if_true=\"\"},\n- cb='did_set_operatorfunc'\n- },\n- {\n- full_name='packpath', abbreviation='pp',\n- short_desc=N_(\"list of directories used for packages\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- secure=true,\n- expand=true,\n- varname='p_pp',\n- defaults={if_true=''},\n- cb='did_set_runtimepackpath'\n- },\n- {\n- full_name='paragraphs', abbreviation='para',\n- short_desc=N_(\"nroff macros that separate paragraphs\"),\n- type='string', scope={'global'},\n- varname='p_para',\n- defaults={if_true=\"IPLPPPQPP TPHPLIPpLpItpplpipbp\"}\n- },\n- {\n- full_name='paste',\n- short_desc=N_(\"pasting text\"),\n- type='bool', scope={'global'},\n- pri_mkrc=true,\n- varname='p_paste',\n- defaults={if_true=false},\n- cb='did_set_paste'\n- },\n- {\n- full_name='pastetoggle', abbreviation='pt',\n- short_desc=N_(\"No description\"),\n- type='string', scope={'global'},\n- defaults={if_true=\"\"}\n- },\n- {\n- full_name='patchexpr', abbreviation='pex',\n- short_desc=N_(\"expression used to patch a file\"),\n- type='string', scope={'global'},\n- secure=true,\n- varname='p_pex',\n- defaults={if_true=\"\"},\n- cb='did_set_optexpr'\n- },\n- {\n- full_name='patchmode', abbreviation='pm',\n- short_desc=N_(\"keep the oldest version of a file\"),\n- type='string', scope={'global'},\n- normal_fname_chars=true,\n- varname='p_pm',\n- defaults={if_true=\"\"},\n- cb='did_set_backupext_or_patchmode'\n- },\n- {\n- full_name='path', abbreviation='pa',\n- short_desc=N_(\"list of directories searched with \\\"gf\\\" et.al.\"),\n- type='string', list='comma', scope={'global', 'buffer'},\n- deny_duplicates=true,\n- expand=true,\n- varname='p_path',\n- defaults={if_true=\".,,\"}\n- },\n- {\n- full_name='preserveindent', abbreviation='pi',\n- short_desc=N_(\"preserve the indent structure when reindenting\"),\n- type='bool', scope={'buffer'},\n- varname='p_pi',\n- defaults={if_true=false}\n- },\n- {\n- full_name='previewheight', abbreviation='pvh',\n- short_desc=N_(\"height of the preview window\"),\n- type='number', scope={'global'},\n- varname='p_pvh',\n- defaults={if_true=12}\n- },\n- {\n- full_name='previewwindow', abbreviation='pvw',\n- short_desc=N_(\"identifies the preview window\"),\n- type='bool', scope={'window'},\n- noglob=true,\n- redraw={'statuslines'},\n- defaults={if_true=false},\n- cb='did_set_previewwindow'\n- },\n- {\n- full_name='prompt',\n- short_desc=N_(\"enable prompt in Ex mode\"),\n- type='bool', scope={'global'},\n- varname='p_force_on',\n- defaults={if_true=true}\n- },\n- {\n- full_name='pumblend', abbreviation='pb',\n- short_desc=N_(\"Controls transparency level of popup menu\"),\n- type='number', scope={'global'},\n- redraw={'ui_option'},\n- varname='p_pb',\n- defaults={if_true=0},\n- cb='did_set_pumblend'\n- },\n- {\n- full_name='pumheight', abbreviation='ph',\n- short_desc=N_(\"maximum height of the popup menu\"),\n- type='number', scope={'global'},\n- varname='p_ph',\n- defaults={if_true=0}\n- },\n- {\n- full_name='pumwidth', abbreviation='pw',\n- short_desc=N_(\"minimum width of the popup menu\"),\n- type='number', scope={'global'},\n- varname='p_pw',\n- defaults={if_true=15}\n- },\n- {\n- full_name='pyxversion', abbreviation='pyx',\n- short_desc=N_(\"selects default python version to use\"),\n- type='number', scope={'global'},\n- secure=true,\n- varname='p_pyx',\n- defaults={if_true=3}\n- },\n- {\n- full_name='quickfixtextfunc', abbreviation='qftf',\n- short_desc=N_(\"customize the quickfix window\"),\n- type='string', scope={'global'},\n- secure=true,\n- func=true,\n- varname='p_qftf',\n- defaults={if_true=\"\"},\n- cb='did_set_quickfixtextfunc'\n- },\n- {\n- full_name='quoteescape', abbreviation='qe',\n- short_desc=N_(\"escape characters used in a string\"),\n- type='string', scope={'buffer'},\n- alloced=true,\n- varname='p_qe',\n- defaults={if_true=\"\\\\\"}\n- },\n- {\n- full_name='readonly', abbreviation='ro',\n- short_desc=N_(\"disallow writing the buffer\"),\n- type='bool', scope={'buffer'},\n- noglob=true,\n- redraw={'statuslines'},\n- varname='p_ro',\n- defaults={if_true=false},\n- cb='did_set_readonly'\n- },\n- {\n- full_name='redrawdebug', abbreviation='rdb',\n- short_desc=N_(\"Changes the way redrawing works (debug)\"),\n- type='string', list='onecomma', scope={'global'},\n- varname='p_rdb',\n- defaults={if_true=''},\n- cb='did_set_redrawdebug'\n- },\n- {\n- full_name='redrawtime', abbreviation='rdt',\n- short_desc=N_(\"timeout for 'hlsearch' and |:match| highlighting\"),\n- type='number', scope={'global'},\n- varname='p_rdt',\n- defaults={if_true=2000}\n- },\n- {\n- full_name='regexpengine', abbreviation='re',\n- short_desc=N_(\"default regexp engine to use\"),\n- type='number', scope={'global'},\n- varname='p_re',\n- defaults={if_true=0}\n- },\n- {\n- full_name='relativenumber', abbreviation='rnu',\n- short_desc=N_(\"show relative line number in front of each line\"),\n- type='bool', scope={'window'},\n- redraw={'current_window'},\n- defaults={if_true=false},\n- cb='did_set_number_relativenumber'\n- },\n- {\n- full_name='remap',\n- short_desc=N_(\"No description\"),\n- type='bool', scope={'global'},\n- varname='p_force_on',\n- defaults={if_true=true}\n- },\n- {\n- full_name='report',\n- short_desc=N_(\"for reporting nr. of lines changed\"),\n- type='number', scope={'global'},\n- varname='p_report',\n- defaults={if_true=2}\n- },\n- {\n- full_name='revins', abbreviation='ri',\n- short_desc=N_(\"inserting characters will work backwards\"),\n- type='bool', scope={'global'},\n- varname='p_ri',\n- defaults={if_true=false}\n- },\n- {\n- full_name='rightleft', abbreviation='rl',\n- short_desc=N_(\"window is right-to-left oriented\"),\n- type='bool', scope={'window'},\n- redraw={'current_window'},\n- defaults={if_true=false}\n- },\n- {\n- full_name='rightleftcmd', abbreviation='rlc',\n- short_desc=N_(\"commands for which editing works right-to-left\"),\n- type='string', scope={'window'},\n- alloced=true,\n- redraw={'current_window'},\n- defaults={if_true=\"search\"},\n- cb='did_set_rightleftcmd'\n- },\n- {\n- full_name='ruler', abbreviation='ru',\n- short_desc=N_(\"show cursor line and column in the status line\"),\n- type='bool', scope={'global'},\n- redraw={'statuslines'},\n- varname='p_ru',\n- defaults={if_true=true}\n- },\n- {\n- full_name='rulerformat', abbreviation='ruf',\n- short_desc=N_(\"custom format for the ruler\"),\n- type='string', scope={'global'},\n- alloced=true,\n- modelineexpr=true,\n- redraw={'statuslines'},\n- varname='p_ruf',\n- defaults={if_true=\"\"},\n- cb='did_set_rulerformat'\n- },\n- {\n- full_name='runtimepath', abbreviation='rtp',\n- short_desc=N_(\"list of directories used for runtime files\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- secure=true,\n- expand='nodefault',\n- varname='p_rtp',\n- defaults={if_true=''},\n- cb='did_set_runtimepackpath'\n- },\n- {\n- full_name='scroll', abbreviation='scr',\n- short_desc=N_(\"lines to scroll with CTRL-U and CTRL-D\"),\n- type='number', scope={'window'},\n- no_mkrc=true,\n- pv_name='p_scroll',\n- defaults={if_true=0}\n- },\n- {\n- full_name='smoothscroll', abbreviation='sms',\n- short_desc=N_(\"scroll by screen lines when 'wrap' is set\"),\n- type='bool', scope={'window'},\n- pv_name='p_sms',\n- redraw={'current_window'},\n- defaults={if_true=0},\n- cb='did_set_smoothscroll'\n- },\n- {\n- full_name='scrollback', abbreviation='scbk',\n- short_desc=N_(\"lines to scroll with CTRL-U and CTRL-D\"),\n- type='number', scope={'buffer'},\n- varname='p_scbk',\n- redraw={'current_buffer'},\n- defaults={if_true=-1},\n- cb='did_set_scrollback'\n- },\n- {\n- full_name='scrollbind', abbreviation='scb',\n- short_desc=N_(\"scroll in window as other windows scroll\"),\n- type='bool', scope={'window'},\n- pv_name='p_scbind',\n- defaults={if_true=false},\n- cb='did_set_scrollbind'\n- },\n- {\n- full_name='scrolljump', abbreviation='sj',\n- short_desc=N_(\"minimum number of lines to scroll\"),\n- type='number', scope={'global'},\n- varname='p_sj',\n- defaults={if_true=1}\n- },\n- {\n- full_name='scrolloff', abbreviation='so',\n- short_desc=N_(\"minimum nr. of lines above and below cursor\"),\n- type='number', scope={'global', 'window'},\n- varname='p_so',\n- defaults={if_true=0}\n- },\n- {\n- full_name='scrollopt', abbreviation='sbo',\n- short_desc=N_(\"how 'scrollbind' should behave\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- varname='p_sbo',\n- defaults={if_true=\"ver,jump\"},\n- cb='did_set_scrollopt'\n- },\n- {\n- full_name='sections', abbreviation='sect',\n- short_desc=N_(\"nroff macros that separate sections\"),\n- type='string', scope={'global'},\n- varname='p_sections',\n- defaults={if_true=\"SHNHH HUnhsh\"}\n- },\n- {\n- full_name='secure',\n- short_desc=N_(\"No description\"),\n- type='bool', scope={'global'},\n- secure=true,\n- varname='p_secure',\n- defaults={if_true=false}\n- },\n- {\n- full_name='selection', abbreviation='sel',\n- short_desc=N_(\"what type of selection to use\"),\n- type='string', scope={'global'},\n- varname='p_sel',\n- defaults={if_true=\"inclusive\"},\n- cb='did_set_selection'\n- },\n- {\n- full_name='selectmode', abbreviation='slm',\n- short_desc=N_(\"when to use Select mode instead of Visual mode\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- varname='p_slm',\n- defaults={if_true=\"\"},\n- cb='did_set_selectmode'\n- },\n- {\n- full_name='sessionoptions', abbreviation='ssop',\n- short_desc=N_(\"options for |:mksession|\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- varname='p_ssop',\n- defaults={if_true=\"blank,buffers,curdir,folds,help,tabpages,winsize,terminal\"},\n- cb='did_set_sessionoptions',\n- },\n- {\n- full_name='shada', abbreviation='sd',\n- short_desc=N_(\"use .shada file upon startup and exiting\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- secure=true,\n- varname='p_shada',\n- defaults={if_true=\"!,'100,<50,s10,h\"}\n- },\n- {\n- full_name='shadafile', abbreviation='sdf',\n- short_desc=N_(\"overrides the filename used for shada\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- secure=true,\n- expand=true,\n- varname='p_shadafile',\n- defaults={if_true=\"\"}\n- },\n- {\n- full_name='shell', abbreviation='sh',\n- short_desc=N_(\"name of shell to use for external commands\"),\n- type='string', scope={'global'},\n- secure=true,\n- expand=true,\n- varname='p_sh',\n- defaults={\n- condition='MSWIN',\n- if_true=\"cmd.exe\",\n- if_false=\"sh\"\n- }\n- },\n- {\n- full_name='shellcmdflag', abbreviation='shcf',\n- short_desc=N_(\"flag to shell to execute one command\"),\n- type='string', scope={'global'},\n- secure=true,\n- varname='p_shcf',\n- defaults={\n- condition='MSWIN',\n- if_true=\"/s /c\",\n- if_false=\"-c\"\n- }\n- },\n- {\n- full_name='shellpipe', abbreviation='sp',\n- short_desc=N_(\"string to put output of \\\":make\\\" in error file\"),\n- type='string', scope={'global'},\n- secure=true,\n- varname='p_sp',\n- defaults={\n- condition='MSWIN',\n- if_true=\"2>&1| tee\",\n- if_false=\"| tee\",\n- }\n- },\n- {\n- full_name='shellquote', abbreviation='shq',\n- short_desc=N_(\"quote character(s) for around shell command\"),\n- type='string', scope={'global'},\n- secure=true,\n- varname='p_shq',\n- defaults={if_true=\"\"}\n- },\n- {\n- full_name='shellredir', abbreviation='srr',\n- short_desc=N_(\"string to put output of filter in a temp file\"),\n- type='string', scope={'global'},\n- secure=true,\n- varname='p_srr',\n- defaults={\n- condition='MSWIN',\n- if_true=\">%s 2>&1\",\n- if_false=\">\"\n- }\n- },\n- {\n- full_name='shellslash', abbreviation='ssl',\n- short_desc=N_(\"use forward slash for shell file names\"),\n- type='bool', scope={'global'},\n- varname='p_ssl',\n- enable_if='BACKSLASH_IN_FILENAME',\n- defaults={if_true=false},\n- cb='did_set_shellslash'\n- },\n- {\n- full_name='shelltemp', abbreviation='stmp',\n- short_desc=N_(\"whether to use a temp file for shell commands\"),\n- type='bool', scope={'global'},\n- varname='p_stmp',\n- defaults={if_true=true}\n- },\n- {\n- full_name='shellxquote', abbreviation='sxq',\n- short_desc=N_(\"like 'shellquote', but include redirection\"),\n- type='string', scope={'global'},\n- secure=true,\n- varname='p_sxq',\n- defaults={\n- condition='MSWIN',\n- if_true=\"\\\"\",\n- if_false=\"\",\n- }\n- },\n- {\n- full_name='shellxescape', abbreviation='sxe',\n- short_desc=N_(\"characters to escape when 'shellxquote' is (\"),\n- type='string', scope={'global'},\n- secure=true,\n- varname='p_sxe',\n- defaults={if_true=\"\"}\n- },\n- {\n- full_name='shiftround', abbreviation='sr',\n- short_desc=N_(\"round indent to multiple of shiftwidth\"),\n- type='bool', scope={'global'},\n- varname='p_sr',\n- defaults={if_true=false}\n- },\n- {\n- full_name='shiftwidth', abbreviation='sw',\n- short_desc=N_(\"number of spaces to use for (auto)indent step\"),\n- type='number', scope={'buffer'},\n- varname='p_sw',\n- defaults={if_true=8},\n- cb='did_set_shiftwidth_tabstop'\n- },\n- {\n- full_name='shortmess', abbreviation='shm',\n- short_desc=N_(\"list of flags, reduce length of messages\"),\n- type='string', list='flags', scope={'global'},\n- varname='p_shm',\n- defaults={if_true=\"filnxtToOCF\"},\n- cb='did_set_shortmess'\n- },\n- {\n- full_name='showbreak', abbreviation='sbr',\n- short_desc=N_(\"string to use at the start of wrapped lines\"),\n- type='string', scope={'global', 'window'},\n- redraw={'all_windows'},\n- varname='p_sbr',\n- defaults={if_true=\"\"},\n- cb='did_set_showbreak'\n- },\n- {\n- full_name='showcmd', abbreviation='sc',\n- short_desc=N_(\"show (partial) command in status line\"),\n- type='bool', scope={'global'},\n- varname='p_sc',\n- defaults={if_true=true}\n- },\n- {\n- full_name='showcmdloc', abbreviation='sloc',\n- short_desc=N_(\"change location of partial command\"),\n- type='string', scope={'global'},\n- varname='p_sloc',\n- defaults={if_true=\"last\"},\n- cb='did_set_showcmdloc'\n- },\n- {\n- full_name='showfulltag', abbreviation='sft',\n- short_desc=N_(\"show full tag pattern when completing tag\"),\n- type='bool', scope={'global'},\n- varname='p_sft',\n- defaults={if_true=false}\n- },\n- {\n- full_name='showmatch', abbreviation='sm',\n- short_desc=N_(\"briefly jump to matching bracket if insert one\"),\n- type='bool', scope={'global'},\n- varname='p_sm',\n- defaults={if_true=false}\n- },\n- {\n- full_name='showmode', abbreviation='smd',\n- short_desc=N_(\"message on status line to show current mode\"),\n- type='bool', scope={'global'},\n- varname='p_smd',\n- defaults={if_true=true}\n- },\n- {\n- full_name='showtabline', abbreviation='stal',\n- short_desc=N_(\"tells when the tab pages line is displayed\"),\n- type='number', scope={'global'},\n- redraw={'all_windows', 'ui_option'},\n- varname='p_stal',\n- defaults={if_true=1},\n- cb='did_set_showtabline'\n- },\n- {\n- full_name='sidescroll', abbreviation='ss',\n- short_desc=N_(\"minimum number of columns to scroll horizontal\"),\n- type='number', scope={'global'},\n- varname='p_ss',\n- defaults={if_true=1}\n- },\n- {\n- full_name='sidescrolloff', abbreviation='siso',\n- short_desc=N_(\"min. nr. of columns to left and right of cursor\"),\n- type='number', scope={'global', 'window'},\n- varname='p_siso',\n- defaults={if_true=0}\n- },\n- {\n- full_name='signcolumn', abbreviation='scl',\n- short_desc=N_(\"when to display the sign column\"),\n- type='string', scope={'window'},\n- alloced=true,\n- redraw={'current_window'},\n- defaults={if_true=\"auto\"},\n- cb='did_set_signcolumn'\n- },\n- {\n- full_name='smartcase', abbreviation='scs',\n- short_desc=N_(\"no ignore case when pattern has uppercase\"),\n- type='bool', scope={'global'},\n- varname='p_scs',\n- defaults={if_true=false}\n- },\n- {\n- full_name='smartindent', abbreviation='si',\n- short_desc=N_(\"smart autoindenting for C programs\"),\n- type='bool', scope={'buffer'},\n- varname='p_si',\n- defaults={if_true=false}\n- },\n- {\n- full_name='smarttab', abbreviation='sta',\n- short_desc=N_(\"use 'shiftwidth' when inserting \"),\n- type='bool', scope={'global'},\n- varname='p_sta',\n- defaults={if_true=true}\n- },\n- {\n- full_name='softtabstop', abbreviation='sts',\n- short_desc=N_(\"number of spaces that uses while editing\"),\n- type='number', scope={'buffer'},\n- varname='p_sts',\n- defaults={if_true=0}\n- },\n- {\n- full_name='spell',\n- short_desc=N_(\"spell checking\"),\n- type='bool', scope={'window'},\n- redraw={'current_window'},\n- defaults={if_true=false},\n- cb='did_set_spell'\n- },\n- {\n- full_name='spellcapcheck', abbreviation='spc',\n- short_desc=N_(\"pattern to locate end of a sentence\"),\n- type='string', scope={'buffer'},\n- alloced=true,\n- redraw={'current_buffer'},\n- varname='p_spc',\n- defaults={if_true=\"[.?!]\\\\_[\\\\])'\\\"\t ]\\\\+\"},\n- cb='did_set_spellcapcheck'\n- },\n- {\n- full_name='spellfile', abbreviation='spf',\n- short_desc=N_(\"files where |zg| and |zw| store words\"),\n- type='string', list='onecomma', scope={'buffer'},\n- deny_duplicates=true,\n- secure=true,\n- alloced=true,\n- expand=true,\n- varname='p_spf',\n- defaults={if_true=\"\"},\n- cb='did_set_spellfile'\n- },\n- {\n- full_name='spelllang', abbreviation='spl',\n- short_desc=N_(\"language(s) to do spell checking for\"),\n- type='string', list='onecomma', scope={'buffer'},\n- deny_duplicates=true,\n- alloced=true,\n- expand=true,\n- redraw={'current_buffer'},\n- varname='p_spl',\n- defaults={if_true=\"en\"},\n- cb='did_set_spelllang'\n- },\n- {\n- full_name='spellsuggest', abbreviation='sps',\n- short_desc=N_(\"method(s) used to suggest spelling corrections\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- secure=true,\n- expand=true,\n- varname='p_sps',\n- defaults={if_true=\"best\"},\n- cb='did_set_spellsuggest'\n- },\n- {\n- full_name='spelloptions', abbreviation='spo',\n- type='string', list='onecomma', scope={'buffer'},\n- deny_duplicates=true,\n- secure=true,\n- expand=true,\n- varname='p_spo',\n- redraw={'current_buffer'},\n- defaults={if_true=\"\"},\n- cb='did_set_spelloptions'\n- },\n- {\n- full_name='splitbelow', abbreviation='sb',\n- short_desc=N_(\"new window from split is below the current one\"),\n- type='bool', scope={'global'},\n- varname='p_sb',\n- defaults={if_true=false}\n- },\n- {\n- full_name='splitkeep', abbreviation='spk',\n- short_desc=N_(\"determines scroll behavior for split windows\"),\n- type='string', scope={'global'},\n- varname='p_spk',\n- defaults={if_true='cursor'},\n- cb='did_set_splitkeep'\n- },\n- {\n- full_name='splitright', abbreviation='spr',\n- short_desc=N_(\"new window is put right of the current one\"),\n- type='bool', scope={'global'},\n- varname='p_spr',\n- defaults={if_true=false}\n- },\n- {\n- full_name='startofline', abbreviation='sol',\n- short_desc=N_(\"commands move cursor to first non-blank in line\"),\n- type='bool', scope={'global'},\n- vim=false,\n- varname='p_sol',\n- defaults={if_true=false}\n- },\n- {\n- full_name='statuscolumn', abbreviation='stc',\n- short_desc=N_(\"custom format for the status column\"),\n- type='string', scope={'window'},\n- redraw={'current_window'},\n- secure=true,\n- alloced=true,\n- defaults={if_true=\"\"},\n- cb='did_set_statuscolumn'\n- },\n- {\n- full_name='statusline', abbreviation='stl',\n- short_desc=N_(\"custom format for the status line\"),\n- type='string', scope={'global', 'window'},\n- alloced=true,\n- modelineexpr=true,\n- redraw={'statuslines'},\n- varname='p_stl',\n- defaults={if_true=\"\"},\n- cb='did_set_statusline'\n- },\n- {\n- full_name='suffixes', abbreviation='su',\n- short_desc=N_(\"suffixes that are ignored with multiple match\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- varname='p_su',\n- defaults={if_true=\".bak,~,.o,.h,.info,.swp,.obj\"}\n- },\n- {\n- full_name='suffixesadd', abbreviation='sua',\n- short_desc=N_(\"suffixes added when searching for a file\"),\n- type='string', list='onecomma', scope={'buffer'},\n- deny_duplicates=true,\n- alloced=true,\n- varname='p_sua',\n- defaults={if_true=\"\"}\n- },\n- {\n- full_name='swapfile', abbreviation='swf',\n- short_desc=N_(\"whether to use a swapfile for a buffer\"),\n- type='bool', scope={'buffer'},\n- redraw={'statuslines'},\n- varname='p_swf',\n- defaults={if_true=true},\n- cb='did_set_swapfile'\n- },\n- {\n- full_name='switchbuf', abbreviation='swb',\n- short_desc=N_(\"sets behavior when switching to another buffer\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- varname='p_swb',\n- defaults={if_true=\"uselast\"},\n- cb='did_set_switchbuf'\n- },\n- {\n- full_name='synmaxcol', abbreviation='smc',\n- short_desc=N_(\"maximum column to find syntax items\"),\n- type='number', scope={'buffer'},\n- redraw={'current_buffer'},\n- varname='p_smc',\n- defaults={if_true=3000}\n- },\n- {\n- full_name='syntax', abbreviation='syn',\n- short_desc=N_(\"syntax to be loaded for current buffer\"),\n- type='string', scope={'buffer'},\n- noglob=true,\n- normal_fname_chars=true,\n- alloced=true,\n- varname='p_syn',\n- defaults={if_true=\"\"},\n- cb='did_set_filetype_or_syntax'\n- },\n- {\n- full_name='tagfunc', abbreviation='tfu',\n- short_desc=N_(\"function used to perform tag searches\"),\n- type='string', scope={'buffer'},\n- secure=true,\n- func=true,\n- varname='p_tfu',\n- defaults={if_true=\"\"},\n- cb='did_set_tagfunc'\n- },\n- {\n- full_name='tabline', abbreviation='tal',\n- short_desc=N_(\"custom format for the console tab pages line\"),\n- type='string', scope={'global'},\n- modelineexpr=true,\n- redraw={'tabline'},\n- varname='p_tal',\n- defaults={if_true=\"\"},\n- cb='did_set_tabline'\n- },\n- {\n- full_name='tabpagemax', abbreviation='tpm',\n- short_desc=N_(\"maximum number of tab pages for |-p| and \\\"tab all\\\"\"),\n- type='number', scope={'global'},\n- varname='p_tpm',\n- defaults={if_true=50}\n- },\n- {\n- full_name='tabstop', abbreviation='ts',\n- short_desc=N_(\"number of spaces that in file uses\"),\n- type='number', scope={'buffer'},\n- redraw={'current_buffer'},\n- varname='p_ts',\n- defaults={if_true=8},\n- cb='did_set_shiftwidth_tabstop'\n- },\n- {\n- full_name='tagbsearch', abbreviation='tbs',\n- short_desc=N_(\"use binary searching in tags files\"),\n- type='bool', scope={'global'},\n- varname='p_tbs',\n- defaults={if_true=true}\n- },\n- {\n- full_name='tagcase', abbreviation='tc',\n- short_desc=N_(\"how to handle case when searching in tags files\"),\n- type='string', scope={'global', 'buffer'},\n- varname='p_tc',\n- defaults={if_true=\"followic\"},\n- cb='did_set_tagcase'\n- },\n- {\n- full_name='taglength', abbreviation='tl',\n- short_desc=N_(\"number of significant characters for a tag\"),\n- type='number', scope={'global'},\n- varname='p_tl',\n- defaults={if_true=0}\n- },\n- {\n- full_name='tagrelative', abbreviation='tr',\n- short_desc=N_(\"file names in tag file are relative\"),\n- type='bool', scope={'global'},\n- varname='p_tr',\n- defaults={if_true=true}\n- },\n- {\n- full_name='tags', abbreviation='tag',\n- short_desc=N_(\"list of file names used by the tag command\"),\n- type='string', list='onecomma', scope={'global', 'buffer'},\n- deny_duplicates=true,\n- expand=true,\n- varname='p_tags',\n- defaults={if_true=\"./tags;,tags\"}\n- },\n- {\n- full_name='tagstack', abbreviation='tgst',\n- short_desc=N_(\"push tags onto the tag stack\"),\n- type='bool', scope={'global'},\n- varname='p_tgst',\n- defaults={if_true=true}\n- },\n- {\n- full_name='termbidi', abbreviation='tbidi',\n- short_desc=N_(\"terminal takes care of bi-directionality\"),\n- type='bool', scope={'global'},\n- varname='p_tbidi',\n- defaults={if_true=false}\n- },\n- {\n- full_name='termencoding', abbreviation='tenc',\n- short_desc=N_(\"Terminal encoding\"),\n- type='string', scope={'global'},\n- defaults={if_true=\"\"}\n- },\n- {\n- full_name='termguicolors', abbreviation='tgc',\n- short_desc=N_(\"Terminal true color support\"),\n- type='bool', scope={'global'},\n- redraw={'ui_option'},\n- varname='p_tgc',\n- defaults={if_true=false}\n- },\n- {\n- full_name='termpastefilter', abbreviation='tpf',\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- varname='p_tpf',\n- defaults={if_true=\"BS,HT,ESC,DEL\"},\n- cb='did_set_termpastefilter'\n- },\n- {\n- full_name='terse',\n- short_desc=N_(\"No description\"),\n- type='bool', scope={'global'},\n- varname='p_force_off',\n- defaults={if_true=false}\n- },\n- {\n- full_name='textwidth', abbreviation='tw',\n- short_desc=N_(\"maximum width of text that is being inserted\"),\n- type='number', scope={'buffer'},\n- redraw={'current_buffer'},\n- varname='p_tw',\n- defaults={if_true=0},\n- cb='did_set_textwidth'\n- },\n- {\n- full_name='thesaurus', abbreviation='tsr',\n- short_desc=N_(\"list of thesaurus files for keyword completion\"),\n- type='string', list='onecomma', scope={'global', 'buffer'},\n- deny_duplicates=true,\n- normal_dname_chars=true,\n- expand=true,\n- varname='p_tsr',\n- defaults={if_true=\"\"}\n- },\n- {\n- full_name='thesaurusfunc', abbreviation='tsrfu',\n- short_desc=N_(\"function used for thesaurus completion\"),\n- type='string', scope={'global', 'buffer'},\n- secure=true,\n- alloced=true,\n- func=true,\n- varname='p_tsrfu',\n- defaults={if_true=\"\"},\n- cb='did_set_thesaurusfunc'\n- },\n- {\n- full_name='tildeop', abbreviation='top',\n- short_desc=N_(\"tilde command \\\"~\\\" behaves like an operator\"),\n- type='bool', scope={'global'},\n- varname='p_to',\n- defaults={if_true=false}\n- },\n- {\n- full_name='timeout', abbreviation='to',\n- short_desc=N_(\"time out on mappings and key codes\"),\n- type='bool', scope={'global'},\n- varname='p_timeout',\n- defaults={if_true=true}\n- },\n- {\n- full_name='timeoutlen', abbreviation='tm',\n- short_desc=N_(\"time out time in milliseconds\"),\n- type='number', scope={'global'},\n- varname='p_tm',\n- defaults={if_true=1000}\n- },\n- {\n- full_name='title',\n- short_desc=N_(\"Vim set the title of the window\"),\n- type='bool', scope={'global'},\n- varname='p_title',\n- defaults={if_true=false},\n- cb='did_set_title_icon'\n- },\n- {\n- full_name='titlelen',\n- short_desc=N_(\"of 'columns' used for window title\"),\n- type='number', scope={'global'},\n- varname='p_titlelen',\n- defaults={if_true=85},\n- cb='did_set_titlelen'\n- },\n- {\n- full_name='titleold',\n- short_desc=N_(\"title, restored when exiting\"),\n- type='string', scope={'global'},\n- secure=true,\n- no_mkrc=true,\n- varname='p_titleold',\n- defaults={if_true=\"\"}\n- },\n- {\n- full_name='titlestring',\n- short_desc=N_(\"to use for the Vim window title\"),\n- type='string', scope={'global'},\n- modelineexpr=true,\n- varname='p_titlestring',\n- defaults={if_true=\"\"},\n- cb='did_set_titlestring'\n- },\n- {\n- full_name='ttimeout',\n- short_desc=N_(\"out on mappings\"),\n- type='bool', scope={'global'},\n- redraw={'ui_option'},\n- varname='p_ttimeout',\n- defaults={if_true=true}\n- },\n- {\n- full_name='ttimeoutlen', abbreviation='ttm',\n- short_desc=N_(\"time out time for key codes in milliseconds\"),\n- type='number', scope={'global'},\n- redraw={'ui_option'},\n- varname='p_ttm',\n- defaults={if_true=50}\n- },\n- {\n- full_name='ttyfast', abbreviation='tf',\n- short_desc=N_(\"No description\"),\n- type='bool', scope={'global'},\n- no_mkrc=true,\n- varname='p_force_on',\n- defaults={if_true=true}\n- },\n- {\n- full_name='undodir', abbreviation='udir',\n- short_desc=N_(\"where to store undo files\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- secure=true,\n- expand='nodefault',\n- varname='p_udir',\n- defaults={if_true=''}\n- },\n- {\n- full_name='undofile', abbreviation='udf',\n- short_desc=N_(\"save undo information in a file\"),\n- type='bool', scope={'buffer'},\n- varname='p_udf',\n- defaults={if_true=false},\n- cb='did_set_undofile'\n- },\n- {\n- full_name='undolevels', abbreviation='ul',\n- short_desc=N_(\"maximum number of changes that can be undone\"),\n- type='number', scope={'global', 'buffer'},\n- varname='p_ul',\n- defaults={if_true=1000},\n- cb='did_set_undolevels'\n- },\n- {\n- full_name='undoreload', abbreviation='ur',\n- short_desc=N_(\"max nr of lines to save for undo on a buffer reload\"),\n- type='number', scope={'global'},\n- varname='p_ur',\n- defaults={if_true=10000}\n- },\n- {\n- full_name='updatecount', abbreviation='uc',\n- short_desc=N_(\"after this many characters flush swap file\"),\n- type='number', scope={'global'},\n- varname='p_uc',\n- defaults={if_true=200},\n- cb='did_set_updatecount'\n- },\n- {\n- full_name='updatetime', abbreviation='ut',\n- short_desc=N_(\"after this many milliseconds flush swap file\"),\n- type='number', scope={'global'},\n- varname='p_ut',\n- defaults={if_true=4000}\n- },\n- {\n- full_name='varsofttabstop', abbreviation='vsts',\n- short_desc=N_(\"list of numbers of spaces that uses while editing\"),\n- type='string', list='comma', scope={'buffer'},\n- varname='p_vsts',\n- defaults={if_true=\"\"},\n- cb='did_set_varsofttabstop'\n- },\n- {\n- full_name='vartabstop', abbreviation='vts',\n- short_desc=N_(\"list of numbers of spaces that in file uses\"),\n- type='string', list='comma', scope={'buffer'},\n- varname='p_vts',\n- redraw={'current_buffer'},\n- defaults={if_true=\"\"},\n- cb='did_set_vartabstop'\n- },\n- {\n- full_name='verbose', abbreviation='vbs',\n- short_desc=N_(\"give informative messages\"),\n- type='number', scope={'global'},\n- varname='p_verbose', redraw={'ui_option'},\n- defaults={if_true=0}\n- },\n- {\n- full_name='verbosefile', abbreviation='vfile',\n- short_desc=N_(\"file to write messages in\"),\n- type='string', scope={'global'},\n- secure=true,\n- expand=true,\n- varname='p_vfile',\n- defaults={if_true=\"\"},\n- cb='did_set_verbosefile'\n- },\n- {\n- full_name='viewdir', abbreviation='vdir',\n- short_desc=N_(\"directory where to store files with :mkview\"),\n- type='string', scope={'global'},\n- secure=true,\n- expand='nodefault',\n- varname='p_vdir',\n- defaults={if_true=''}\n- },\n- {\n- full_name='viewoptions', abbreviation='vop',\n- short_desc=N_(\"specifies what to save for :mkview\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- varname='p_vop',\n- defaults={if_true=\"folds,cursor,curdir\"},\n- cb='did_set_viewoptions'\n- },\n- {\n- -- Alias for \"shada\".\n- full_name='viminfo', abbreviation='vi',\n- short_desc=N_(\"Alias for shada\"),\n- type='string', scope={'global'}, nodefault=true,\n- },\n- {\n- -- Alias for \"shadafile\".\n- full_name='viminfofile', abbreviation='vif',\n- short_desc=N_(\"Alias for shadafile instead\"),\n- type='string', scope={'global'}, nodefault=true,\n- },\n- {\n- full_name='virtualedit', abbreviation='ve',\n- short_desc=N_(\"when to use virtual editing\"),\n- type='string', list='onecomma', scope={'global', 'window'},\n- deny_duplicates=true,\n- redraw={'curswant'},\n- varname='p_ve',\n- defaults={if_true=\"\"},\n- cb='did_set_virtualedit'\n- },\n- {\n- full_name='visualbell', abbreviation='vb',\n- short_desc=N_(\"use visual bell instead of beeping\"),\n- type='bool', scope={'global'},\n- varname='p_vb',\n- defaults={if_true=false}\n- },\n- {\n- full_name='warn',\n- short_desc=N_(\"for shell command when buffer was changed\"),\n- type='bool', scope={'global'},\n- varname='p_warn',\n- defaults={if_true=true}\n- },\n- {\n- full_name='whichwrap', abbreviation='ww',\n- short_desc=N_(\"allow specified keys to cross line boundaries\"),\n- type='string', list='flagscomma', scope={'global'},\n- varname='p_ww',\n- defaults={if_true=\"b,s\"},\n- cb='did_set_whichwrap'\n- },\n- {\n- full_name='wildchar', abbreviation='wc',\n- short_desc=N_(\"command-line character for wildcard expansion\"),\n- type='number', scope={'global'},\n- varname='p_wc',\n- defaults={if_true=imacros('TAB')}\n- },\n- {\n- full_name='wildcharm', abbreviation='wcm',\n- short_desc=N_(\"like 'wildchar' but also works when mapped\"),\n- type='number', scope={'global'},\n- varname='p_wcm',\n- defaults={if_true=0}\n- },\n- {\n- full_name='wildignore', abbreviation='wig',\n- short_desc=N_(\"files matching these patterns are not completed\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- varname='p_wig',\n- defaults={if_true=\"\"}\n- },\n- {\n- full_name='wildignorecase', abbreviation='wic',\n- short_desc=N_(\"ignore case when completing file names\"),\n- type='bool', scope={'global'},\n- varname='p_wic',\n- defaults={if_true=false}\n- },\n- {\n- full_name='wildmenu', abbreviation='wmnu',\n- short_desc=N_(\"use menu for command line completion\"),\n- type='bool', scope={'global'},\n- varname='p_wmnu',\n- defaults={if_true=true}\n- },\n- {\n- full_name='wildmode', abbreviation='wim',\n- short_desc=N_(\"mode for 'wildchar' command-line expansion\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=false,\n- varname='p_wim',\n- defaults={if_true=\"full\"},\n- cb='did_set_wildmode'\n- },\n- {\n- full_name='wildoptions', abbreviation='wop',\n- short_desc=N_(\"specifies how command line completion is done\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- varname='p_wop',\n- defaults={if_true='pum,tagfile'},\n- cb='did_set_wildoptions'\n- },\n- {\n- full_name='winaltkeys', abbreviation='wak',\n- short_desc=N_(\"when the windows system handles ALT keys\"),\n- type='string', scope={'global'},\n- varname='p_wak',\n- defaults={if_true=\"menu\"},\n- cb='did_set_winaltkeys'\n- },\n- {\n- full_name='winbar', abbreviation='wbr',\n- short_desc=N_(\"custom format for the window bar\"),\n- type='string', scope={'global', 'window'},\n- alloced=true,\n- modelineexpr=true,\n- redraw={'statuslines'},\n- varname='p_wbr',\n- defaults={if_true=\"\"},\n- cb='did_set_winbar'\n- },\n- {\n- full_name='winblend', abbreviation='winbl',\n- short_desc=N_(\"Controls transparency level for floating windows\"),\n- type='number', scope={'window'},\n- redraw={'current_window'},\n- defaults={if_true=0},\n- cb='did_set_winblend'\n- },\n- {\n- full_name='winhighlight', abbreviation='winhl',\n- short_desc=N_(\"Setup window-local highlights\");\n- type='string', list='onecomma', scope={'window'},\n- deny_duplicates=true,\n- alloced=true,\n- redraw={'current_window'},\n- defaults={if_true=\"\"},\n- cb='did_set_winhl'\n- },\n- {\n- full_name='window', abbreviation='wi',\n- short_desc=N_(\"nr of lines to scroll for CTRL-F and CTRL-B\"),\n- type='number', scope={'global'},\n- varname='p_window',\n- defaults={if_true=0},\n- cb='did_set_window'\n- },\n- {\n- full_name='winheight', abbreviation='wh',\n- short_desc=N_(\"minimum number of lines for the current window\"),\n- type='number', scope={'global'},\n- varname='p_wh',\n- defaults={if_true=1},\n- cb='did_set_winheight'\n- },\n- {\n- full_name='winfixheight', abbreviation='wfh',\n- short_desc=N_(\"keep window height when opening/closing windows\"),\n- type='bool', scope={'window'},\n- redraw={'statuslines'},\n- defaults={if_true=false}\n- },\n- {\n- full_name='winfixwidth', abbreviation='wfw',\n- short_desc=N_(\"keep window width when opening/closing windows\"),\n- type='bool', scope={'window'},\n- redraw={'statuslines'},\n- defaults={if_true=false}\n- },\n- {\n- full_name='winminheight', abbreviation='wmh',\n- short_desc=N_(\"minimum number of lines for any window\"),\n- type='number', scope={'global'},\n- varname='p_wmh',\n- defaults={if_true=1},\n- cb='did_set_winminheight'\n- },\n- {\n- full_name='winminwidth', abbreviation='wmw',\n- short_desc=N_(\"minimal number of columns for any window\"),\n- type='number', scope={'global'},\n- varname='p_wmw',\n- defaults={if_true=1},\n- cb='did_set_winminwidth'\n- },\n- {\n- full_name='winwidth', abbreviation='wiw',\n- short_desc=N_(\"minimal number of columns for current window\"),\n- type='number', scope={'global'},\n- varname='p_wiw',\n- defaults={if_true=20},\n- cb='did_set_winwidth'\n- },\n- {\n- full_name='wrap',\n- short_desc=N_(\"lines wrap and continue on the next line\"),\n- type='bool', scope={'window'},\n- redraw={'current_window'},\n- defaults={if_true=true},\n- cb='did_set_wrap'\n- },\n- {\n- full_name='wrapmargin', abbreviation='wm',\n- short_desc=N_(\"chars from the right where wrapping starts\"),\n- type='number', scope={'buffer'},\n- varname='p_wm',\n- defaults={if_true=0}\n- },\n- {\n- full_name='wrapscan', abbreviation='ws',\n- short_desc=N_(\"searches wrap around the end of the file\"),\n- type='bool', scope={'global'},\n- varname='p_ws',\n- defaults={if_true=true}\n- },\n- {\n- full_name='write',\n- short_desc=N_(\"to a file is allowed\"),\n- type='bool', scope={'global'},\n- varname='p_write',\n- defaults={if_true=true}\n- },\n- {\n- full_name='writeany', abbreviation='wa',\n- short_desc=N_(\"write to file with no need for \\\"!\\\" override\"),\n- type='bool', scope={'global'},\n- varname='p_wa',\n- defaults={if_true=false}\n- },\n- {\n- full_name='writebackup', abbreviation='wb',\n- short_desc=N_(\"make a backup before overwriting a file\"),\n- type='bool', scope={'global'},\n- varname='p_wb',\n- defaults={if_true=true}\n- },\n- {\n- full_name='writedelay', abbreviation='wd',\n- short_desc=N_(\"delay this many msec for each char (for debug)\"),\n- type='number', scope={'global'},\n- varname='p_wd',\n- defaults={if_true=0}\n- },\n- }\n+ desc = [=[\n+ Which directory to use for the file browser:\n+ last\t\tUse same directory as with last file browser, where a\n+ \t\tfile was opened or saved.\n+ buffer\tUse the directory of the related buffer.\n+ current\tUse the current directory.\n+ {path}\tUse the specified directory\n+ ]=],\n+ enable_if = false,\n+ full_name = 'browsedir',\n+ scope = { 'global' },\n+ short_desc = N_('which directory to start browsing in'),\n+ type = 'string',\n+ },\n+ {\n+ abbreviation = 'bh',\n+ alloced = true,\n+ cb = 'did_set_bufhidden',\n+ defaults = { if_true = '' },\n+ desc = [=[\n+ This option specifies what happens when a buffer is no longer\n+ displayed in a window:\n+ \tfollow the global 'hidden' option\n+ hide\t\thide the buffer (don't unload it), even if 'hidden' is\n+ \t\tnot set\n+ unload\tunload the buffer, even if 'hidden' is set; the\n+ \t\t|:hide| command will also unload the buffer\n+ delete\tdelete the buffer from the buffer list, even if\n+ \t\t'hidden' is set; the |:hide| command will also delete\n+ \t\tthe buffer, making it behave like |:bdelete|\n+ wipe\t\twipe the buffer from the buffer list, even if\n+ \t\t'hidden' is set; the |:hide| command will also wipe\n+ \t\tout the buffer, making it behave like |:bwipeout|\n+\n+ CAREFUL: when \"unload\", \"delete\" or \"wipe\" is used changes in a buffer\n+ are lost without a warning. Also, these values may break autocommands\n+ that switch between buffers temporarily.\n+ This option is used together with 'buftype' and 'swapfile' to specify\n+ special kinds of buffers. See |special-buffers|.\n+ ]=],\n+ full_name = 'bufhidden',\n+ noglob = true,\n+ scope = { 'buffer' },\n+ short_desc = N_('what to do when buffer is no longer in window'),\n+ type = 'string',\n+ varname = 'p_bh',\n+ },\n+ {\n+ abbreviation = 'bl',\n+ cb = 'did_set_buflisted',\n+ defaults = { if_true = true },\n+ desc = [=[\n+ When this option is set, the buffer shows up in the buffer list. If\n+ it is reset it is not used for \":bnext\", \"ls\", the Buffers menu, etc.\n+ This option is reset by Vim for buffers that are only used to remember\n+ a file name or marks. Vim sets it when starting to edit a buffer.\n+ But not when moving to a buffer with \":buffer\".\n+ ]=],\n+ full_name = 'buflisted',\n+ noglob = true,\n+ scope = { 'buffer' },\n+ short_desc = N_('whether the buffer shows up in the buffer list'),\n+ tags = { 'E85' },\n+ type = 'bool',\n+ varname = 'p_bl',\n+ },\n+ {\n+ abbreviation = 'bt',\n+ alloced = true,\n+ cb = 'did_set_buftype',\n+ defaults = { if_true = '' },\n+ desc = [=[\n+ The value of this option specifies the type of a buffer:\n+ \tnormal buffer\n+ acwrite\tbuffer will always be written with |BufWriteCmd|s\n+ help\t\thelp buffer (do not set this manually)\n+ nofile\tbuffer is not related to a file, will not be written\n+ nowrite\tbuffer will not be written\n+ quickfix\tlist of errors |:cwindow| or locations |:lwindow|\n+ terminal\t|terminal-emulator| buffer\n+ prompt\tbuffer where only the last line can be edited, meant\n+ \t\tto be used by a plugin, see |prompt-buffer|\n+\n+ This option is used together with 'bufhidden' and 'swapfile' to\n+ specify special kinds of buffers. See |special-buffers|.\n+ Also see |win_gettype()|, which returns the type of the window.\n+\n+ Be careful with changing this option, it can have many side effects!\n+ One such effect is that Vim will not check the timestamp of the file,\n+ if the file is changed by another program this will not be noticed.\n+\n+ A \"quickfix\" buffer is only used for the error list and the location\n+ list. This value is set by the |:cwindow| and |:lwindow| commands and\n+ you are not supposed to change it.\n+\n+ \"nofile\" and \"nowrite\" buffers are similar:\n+ both:\t\tThe buffer is not to be written to disk, \":w\" doesn't\n+ \t\twork (\":w filename\" does work though).\n+ both:\t\tThe buffer is never considered to be |'modified'|.\n+ \t\tThere is no warning when the changes will be lost, for\n+ \t\texample when you quit Vim.\n+ both:\t\tA swap file is only created when using too much memory\n+ \t\t(when 'swapfile' has been reset there is never a swap\n+ \t\tfile).\n+ nofile only:\tThe buffer name is fixed, it is not handled like a\n+ \t\tfile name. It is not modified in response to a |:cd|\n+ \t\tcommand.\n+ both:\t\tWhen using \":e bufname\" and already editing \"bufname\"\n+ \t\tthe buffer is made empty and autocommands are\n+ \t\ttriggered as usual for |:edit|.\n+ \t\t\t\t\t\t*E676*\n+ \"acwrite\" implies that the buffer name is not related to a file, like\n+ \"nofile\", but it will be written. Thus, in contrast to \"nofile\" and\n+ \"nowrite\", \":w\" does work and a modified buffer can't be abandoned\n+ without saving. For writing there must be matching |BufWriteCmd|,\n+ |FileWriteCmd| or |FileAppendCmd| autocommands.\n+ ]=],\n+ full_name = 'buftype',\n+ noglob = true,\n+ scope = { 'buffer' },\n+ tags = { 'E382' },\n+ short_desc = N_('special type of buffer'),\n+ type = 'string',\n+ varname = 'p_bt',\n+ },\n+ {\n+ abbreviation = 'cmp',\n+ cb = 'did_set_casemap',\n+ defaults = { if_true = 'internal,keepascii' },\n+ deny_duplicates = true,\n+ desc = [=[\n+ Specifies details about changing the case of letters. It may contain\n+ these words, separated by a comma:\n+ internal\tUse internal case mapping functions, the current\n+ \t\tlocale does not change the case mapping. When\n+ \t\t\"internal\" is omitted, the towupper() and towlower()\n+ \t\tsystem library functions are used when available.\n+ keepascii\tFor the ASCII characters (0x00 to 0x7f) use the US\n+ \t\tcase mapping, the current locale is not effective.\n+ \t\tThis probably only matters for Turkish.\n+ ]=],\n+ full_name = 'casemap',\n+ list = 'onecomma',\n+ scope = { 'global' },\n+ short_desc = N_('specifies how case of letters is changed'),\n+ type = 'string',\n+ varname = 'p_cmp',\n+ },\n+ {\n+ abbreviation = 'cdh',\n+ defaults = { if_true = false },\n+ desc = [=[\n+ When on, |:cd|, |:tcd| and |:lcd| without an argument changes the\n+ current working directory to the |$HOME| directory like in Unix.\n+ When off, those commands just print the current directory name.\n+ On Unix this option has no effect.\n+ ]=],\n+ full_name = 'cdhome',\n+ scope = { 'global' },\n+ secure = true,\n+ short_desc = N_(':cd without argument goes to the home directory'),\n+ type = 'bool',\n+ varname = 'p_cdh',\n+ },\n+ {\n+ abbreviation = 'cd',\n+ defaults = {\n+ if_true = ',,',\n+ doc = 'equivalent to $CDPATH or \",,\"',\n+ },\n+ deny_duplicates = true,\n+ desc = [=[\n+ This is a list of directories which will be searched when using the\n+ |:cd|, |:tcd| and |:lcd| commands, provided that the directory being\n+ searched for has a relative path, not an absolute part starting with\n+ \"/\", \"./\" or \"../\", the 'cdpath' option is not used then.\n+ The 'cdpath' option's value has the same form and semantics as\n+ |'path'|. Also see |file-searching|.\n+ The default value is taken from $CDPATH, with a \",\" prepended to look\n+ in the current directory first.\n+ If the default value taken from $CDPATH is not what you want, include\n+ a modified version of the following command in your vimrc file to\n+ override it: >\n+ :let &cdpath = ',' .. substitute(substitute($CDPATH, '[, ]', '\\\\\\0', 'g'), ':', ',', 'g')\n+ <\tThis option cannot be set from a |modeline| or in the |sandbox|, for\n+ security reasons.\n+ (parts of 'cdpath' can be passed to the shell to expand file names).\n+ ]=],\n+ expand = true,\n+ full_name = 'cdpath',\n+ list = 'comma',\n+ scope = { 'global' },\n+ secure = true,\n+ short_desc = N_('list of directories searched with \":cd\"'),\n+ tags = { 'E344', 'E346' },\n+ type = 'string',\n+ varname = 'p_cdpath',\n+ },\n+ {\n+ cb = 'did_set_cedit',\n+ defaults = {\n+ if_true = macros('CTRL_F_STR'),\n+ doc = 'CTRL-F',\n+ },\n+ desc = [=[\n+ The key used in Command-line Mode to open the command-line window.\n+ Only non-printable keys are allowed.\n+ The key can be specified as a single character, but it is difficult to\n+ type. The preferred way is to use the <> notation. Examples: >\n+ \t:exe \"set cedit=\\\\\"\n+ \t:exe \"set cedit=\\\\\"\n+ <\t|Nvi| also has this option, but it only uses the first character.\n+ See |cmdwin|.\n+ ]=],\n+ full_name = 'cedit',\n+ scope = { 'global' },\n+ short_desc = N_('used to open the command-line window'),\n+ type = 'string',\n+ varname = 'p_cedit',\n+ },\n+ {\n+ defaults = { if_true = 0 },\n+ desc = [=[\n+ |channel| connected to the buffer, or 0 if no channel is connected.\n+ In a |:terminal| buffer this is the terminal channel.\n+ Read-only.\n+ ]=],\n+ full_name = 'channel',\n+ no_mkrc = true,\n+ nodefault = true,\n+ scope = { 'buffer' },\n+ short_desc = N_('Channel connected to the buffer'),\n+ type = 'number',\n+ varname = 'p_channel',\n+ },\n+ {\n+ abbreviation = 'ccv',\n+ cb = 'did_set_optexpr',\n+ defaults = { if_true = '' },\n+ desc = [=[\n+ An expression that is used for character encoding conversion. It is\n+ evaluated when a file that is to be read or has been written has a\n+ different encoding from what is desired.\n+ 'charconvert' is not used when the internal iconv() function is\n+ supported and is able to do the conversion. Using iconv() is\n+ preferred, because it is much faster.\n+ 'charconvert' is not used when reading stdin |--|, because there is no\n+ file to convert from. You will have to save the text in a file first.\n+ The expression must return zero, false or an empty string for success,\n+ non-zero or true for failure.\n+ See |encoding-names| for possible encoding names.\n+ Additionally, names given in 'fileencodings' and 'fileencoding' are\n+ used.\n+ Conversion between \"latin1\", \"unicode\", \"ucs-2\", \"ucs-4\" and \"utf-8\"\n+ is done internally by Vim, 'charconvert' is not used for this.\n+ Also used for Unicode conversion.\n+ Example: >\n+ \tset charconvert=CharConvert()\n+ \tfun CharConvert()\n+ \t system(\"recode \"\n+ \t\t\\ .. v:charconvert_from .. \"..\" .. v:charconvert_to\n+ \t\t\\ .. \" <\" .. v:fname_in .. \" >\" .. v:fname_out)\n+ \t return v:shell_error\n+ \tendfun\n+ <\tThe related Vim variables are:\n+ \tv:charconvert_from\tname of the current encoding\n+ \tv:charconvert_to\tname of the desired encoding\n+ \tv:fname_in\t\tname of the input file\n+ \tv:fname_out\t\tname of the output file\n+ Note that v:fname_in and v:fname_out will never be the same.\n+ This option cannot be set from a |modeline| or in the |sandbox|, for\n+ security reasons.\n+ ]=],\n+ full_name = 'charconvert',\n+ scope = { 'global' },\n+ secure = true,\n+ short_desc = N_('expression for character encoding conversion'),\n+ type = 'string',\n+ tags = { 'E202', 'E214', 'E513' },\n+ varname = 'p_ccv',\n+ },\n+ {\n+ abbreviation = 'cin',\n+ defaults = { if_true = false },\n+ desc = [=[\n+ Enables automatic C program indenting. See 'cinkeys' to set the keys\n+ that trigger reindenting in insert mode and 'cinoptions' to set your\n+ preferred indent style.\n+ If 'indentexpr' is not empty, it overrules 'cindent'.\n+ If 'lisp' is not on and both 'indentexpr' and 'equalprg' are empty,\n+ the \"=\" operator indents using this algorithm rather than calling an\n+ external program.\n+ See |C-indenting|.\n+ When you don't like the way 'cindent' works, try the 'smartindent'\n+ option or 'indentexpr'.\n+ ]=],\n+ full_name = 'cindent',\n+ scope = { 'buffer' },\n+ short_desc = N_('do C program indenting'),\n+ type = 'bool',\n+ varname = 'p_cin',\n+ },\n+ {\n+ abbreviation = 'cink',\n+ alloced = true,\n+ defaults = { if_true = '0{,0},0),0],:,0#,!^F,o,O,e' },\n+ deny_duplicates = true,\n+ desc = [=[\n+ A list of keys that, when typed in Insert mode, cause reindenting of\n+ the current line. Only used if 'cindent' is on and 'indentexpr' is\n+ empty.\n+ For the format of this option see |cinkeys-format|.\n+ See |C-indenting|.\n+ ]=],\n+ full_name = 'cinkeys',\n+ list = 'onecomma',\n+ scope = { 'buffer' },\n+ short_desc = N_(\"keys that trigger indent when 'cindent' is set\"),\n+ type = 'string',\n+ varname = 'p_cink',\n+ },\n+ {\n+ abbreviation = 'cino',\n+ alloced = true,\n+ cb = 'did_set_cinoptions',\n+ defaults = { if_true = '' },\n+ deny_duplicates = true,\n+ desc = [=[\n+ The 'cinoptions' affect the way 'cindent' reindents lines in a C\n+ program. See |cinoptions-values| for the values of this option, and\n+ |C-indenting| for info on C indenting in general.\n+ ]=],\n+ full_name = 'cinoptions',\n+ list = 'onecomma',\n+ scope = { 'buffer' },\n+ short_desc = N_(\"how to do indenting when 'cindent' is set\"),\n+ type = 'string',\n+ varname = 'p_cino',\n+ },\n+ {\n+ abbreviation = 'cinw',\n+ alloced = true,\n+ defaults = { if_true = 'if,else,while,do,for,switch' },\n+ deny_duplicates = true,\n+ desc = [=[\n+ These keywords start an extra indent in the next line when\n+ 'smartindent' or 'cindent' is set. For 'cindent' this is only done at\n+ an appropriate place (inside {}).\n+ Note that 'ignorecase' isn't used for 'cinwords'. If case doesn't\n+ matter, include the keyword both the uppercase and lowercase:\n+ \"if,If,IF\".\n+ ]=],\n+ full_name = 'cinwords',\n+ list = 'onecomma',\n+ scope = { 'buffer' },\n+ short_desc = N_(\"words where 'si' and 'cin' add an indent\"),\n+ type = 'string',\n+ varname = 'p_cinw',\n+ },\n+ {\n+ abbreviation = 'cinsd',\n+ alloced = true,\n+ defaults = { if_true = 'public,protected,private' },\n+ deny_duplicates = true,\n+ desc = [=[\n+ Keywords that are interpreted as a C++ scope declaration by |cino-g|.\n+ Useful e.g. for working with the Qt framework that defines additional\n+ scope declarations \"signals\", \"public slots\" and \"private slots\": >\n+ \tset cinscopedecls+=signals,public\\ slots,private\\ slots\n+ <\n+ ]=],\n+ full_name = 'cinscopedecls',\n+ list = 'onecomma',\n+ scope = { 'buffer' },\n+ short_desc = N_(\"words that are recognized by 'cino-g'\"),\n+ type = 'string',\n+ varname = 'p_cinsd',\n+ },\n+ {\n+ abbreviation = 'cb',\n+ cb = 'did_set_clipboard',\n+ defaults = { if_true = '' },\n+ desc = [=[\n+ This option is a list of comma-separated names.\n+ These names are recognized:\n+\n+ \t\t\t\t\t*clipboard-unnamed*\n+ unnamed\t\tWhen included, Vim will use the clipboard register \"*\"\n+ \t\tfor all yank, delete, change and put operations which\n+ \t\twould normally go to the unnamed register. When a\n+ \t\tregister is explicitly specified, it will always be\n+ \t\tused regardless of whether \"unnamed\" is in 'clipboard'\n+ \t\tor not. The clipboard register can always be\n+ \t\texplicitly accessed using the \"* notation. Also see\n+ \t\t|clipboard|.\n+\n+ \t\t\t\t\t*clipboard-unnamedplus*\n+ unnamedplus\tA variant of the \"unnamed\" flag which uses the\n+ \t\tclipboard register \"+\" (|quoteplus|) instead of\n+ \t\tregister \"*\" for all yank, delete, change and put\n+ \t\toperations which would normally go to the unnamed\n+ \t\tregister. When \"unnamed\" is also included to the\n+ \t\toption, yank and delete operations (but not put)\n+ \t\twill additionally copy the text into register\n+ \t\t\"*\". See |clipboard|.\n+ ]=],\n+ deny_duplicates = true,\n+ full_name = 'clipboard',\n+ list = 'onecomma',\n+ scope = { 'global' },\n+ short_desc = N_('use the clipboard as the unnamed register'),\n+ type = 'string',\n+ varname = 'p_cb',\n+ },\n+ {\n+ abbreviation = 'ch',\n+ cb = 'did_set_cmdheight',\n+ defaults = { if_true = 1 },\n+ desc = [=[\n+ Number of screen lines to use for the command-line. Helps avoiding\n+ |hit-enter| prompts.\n+ The value of this option is stored with the tab page, so that each tab\n+ page can have a different value.\n+\n+ When 'cmdheight' is zero, there is no command-line unless it is being\n+ used. The command-line will cover the last line of the screen when\n+ shown.\n+\n+ WARNING: `cmdheight=0` is considered experimental. Expect some\n+ unwanted behaviour. Some 'shortmess' flags and similar\n+ mechanism might fail to take effect, causing unwanted hit-enter\n+ prompts. Some informative messages, both from Nvim itself and\n+ plugins, will not be displayed.\n+ ]=],\n+ full_name = 'cmdheight',\n+ redraw = { 'all_windows' },\n+ scope = { 'global' },\n+ short_desc = N_('number of lines to use for the command-line'),\n+ type = 'number',\n+ varname = 'p_ch',\n+ },\n+ {\n+ abbreviation = 'cwh',\n+ defaults = { if_true = 7 },\n+ desc = [=[\n+ Number of screen lines to use for the command-line window. |cmdwin|\n+ ]=],\n+ full_name = 'cmdwinheight',\n+ scope = { 'global' },\n+ short_desc = N_('height of the command-line window'),\n+ type = 'number',\n+ varname = 'p_cwh',\n+ },\n+ {\n+ abbreviation = 'cc',\n+ cb = 'did_set_colorcolumn',\n+ defaults = { if_true = '' },\n+ deny_duplicates = true,\n+ desc = [=[\n+ 'colorcolumn' is a comma-separated list of screen columns that are\n+ highlighted with ColorColumn |hl-ColorColumn|. Useful to align\n+ text. Will make screen redrawing slower.\n+ The screen column can be an absolute number, or a number preceded with\n+ '+' or '-', which is added to or subtracted from 'textwidth'. >\n+\n+ \t:set cc=+1\t \" highlight column after 'textwidth'\n+ \t:set cc=+1,+2,+3 \" highlight three columns after 'textwidth'\n+ \t:hi ColorColumn ctermbg=lightgrey guibg=lightgrey\n+ <\n+ When 'textwidth' is zero then the items with '-' and '+' are not used.\n+ A maximum of 256 columns are highlighted.\n+ ]=],\n+ full_name = 'colorcolumn',\n+ list = 'onecomma',\n+ redraw = { 'current_window' },\n+ scope = { 'window' },\n+ short_desc = N_('columns to highlight'),\n+ type = 'string',\n+ },\n+ {\n+ abbreviation = 'co',\n+ defaults = {\n+ if_true = macros('DFLT_COLS'),\n+ doc = '80 or terminal width',\n+ },\n+ desc = [=[\n+ Number of columns of the screen. Normally this is set by the terminal\n+ initialization and does not have to be set by hand.\n+ When Vim is running in the GUI or in a resizable window, setting this\n+ option will cause the window size to be changed. When you only want\n+ to use the size for the GUI, put the command in your |ginit.vim| file.\n+ When you set this option and Vim is unable to change the physical\n+ number of columns of the display, the display may be messed up. For\n+ the GUI it is always possible and Vim limits the number of columns to\n+ what fits on the screen. You can use this command to get the widest\n+ window possible: >\n+ \t:set columns=9999\n+ <\tMinimum value is 12, maximum value is 10000.\n+ ]=],\n+ full_name = 'columns',\n+ no_mkrc = true,\n+ scope = { 'global' },\n+ short_desc = N_('number of columns in the display'),\n+ tags = { 'E594' },\n+ type = 'number',\n+ varname = 'p_columns',\n+ },\n+ {\n+ abbreviation = 'com',\n+ alloced = true,\n+ cb = 'did_set_comments',\n+ defaults = { if_true = 's1:/*,mb:*,ex:*/,://,b:#,:%,:XCOMM,n:>,fb:-' },\n+ deny_duplicates = true,\n+ desc = [=[\n+ A comma-separated list of strings that can start a comment line. See\n+ |format-comments|. See |option-backslash| about using backslashes to\n+ insert a space.\n+ ]=],\n+ full_name = 'comments',\n+ list = 'onecomma',\n+ redraw = { 'curswant' },\n+ scope = { 'buffer' },\n+ short_desc = N_('patterns that can start a comment line'),\n+ tags = { 'E524', 'E525' },\n+ type = 'string',\n+ varname = 'p_com',\n+ },\n+ {\n+ abbreviation = 'cms',\n+ alloced = true,\n+ cb = 'did_set_commentstring',\n+ defaults = { if_true = '' },\n+ desc = [=[\n+ A template for a comment. The \"%s\" in the value is replaced with the\n+ comment text. For example, C uses \"/*%s*/\". Currently only used to\n+ add markers for folding, see |fold-marker|.\n+ ]=],\n+ full_name = 'commentstring',\n+ redraw = { 'curswant' },\n+ scope = { 'buffer' },\n+ short_desc = N_('template for comments; used for fold marker'),\n+ tags = { 'E537' },\n+ type = 'string',\n+ varname = 'p_cms',\n+ },\n+ {\n+ abbreviation = 'cp',\n+ defaults = { if_true = false },\n+ full_name = 'compatible',\n+ scope = { 'global' },\n+ short_desc = N_('No description'),\n+ type = 'bool',\n+ varname = 'p_force_off',\n+ },\n+ {\n+ abbreviation = 'cpt',\n+ alloced = true,\n+ cb = 'did_set_complete',\n+ defaults = { if_true = '.,w,b,u,t' },\n+ deny_duplicates = true,\n+ desc = [=[\n+ This option specifies how keyword completion |ins-completion| works\n+ when CTRL-P or CTRL-N are used. It is also used for whole-line\n+ completion |i_CTRL-X_CTRL-L|. It indicates the type of completion\n+ and the places to scan. It is a comma-separated list of flags:\n+ .\tscan the current buffer ('wrapscan' is ignored)\n+ w\tscan buffers from other windows\n+ b\tscan other loaded buffers that are in the buffer list\n+ u\tscan the unloaded buffers that are in the buffer list\n+ U\tscan the buffers that are not in the buffer list\n+ k\tscan the files given with the 'dictionary' option\n+ kspell use the currently active spell checking |spell|\n+ k{dict}\tscan the file {dict}. Several \"k\" flags can be given,\n+ \tpatterns are valid too. For example: >\n+ \t\t:set cpt=k/usr/dict/*,k~/spanish\n+ <\ts\tscan the files given with the 'thesaurus' option\n+ s{tsr}\tscan the file {tsr}. Several \"s\" flags can be given, patterns\n+ \tare valid too.\n+ i\tscan current and included files\n+ d\tscan current and included files for defined name or macro\n+ \t|i_CTRL-X_CTRL-D|\n+ ]\ttag completion\n+ t\tsame as \"]\"\n+\n+ Unloaded buffers are not loaded, thus their autocmds |:autocmd| are\n+ not executed, this may lead to unexpected completions from some files\n+ (gzipped files for example). Unloaded buffers are not scanned for\n+ whole-line completion.\n+\n+ As you can see, CTRL-N and CTRL-P can be used to do any 'iskeyword'-\n+ based expansion (e.g., dictionary |i_CTRL-X_CTRL-K|, included patterns\n+ |i_CTRL-X_CTRL-I|, tags |i_CTRL-X_CTRL-]| and normal expansions).\n+ ]=],\n+ full_name = 'complete',\n+ list = 'onecomma',\n+ scope = { 'buffer' },\n+ short_desc = N_('specify how Insert mode completion works'),\n+ tags = { 'E535' },\n+ type = 'string',\n+ varname = 'p_cpt',\n+ },\n+ {\n+ abbreviation = 'cocu',\n+ alloced = true,\n+ cb = 'did_set_concealcursor',\n+ defaults = { if_true = '' },\n+ desc = [=[\n+ Sets the modes in which text in the cursor line can also be concealed.\n+ When the current mode is listed then concealing happens just like in\n+ other lines.\n+ n\t\tNormal mode\n+ v\t\tVisual mode\n+ i\t\tInsert mode\n+ c\t\tCommand line editing, for 'incsearch'\n+\n+ 'v' applies to all lines in the Visual area, not only the cursor.\n+ A useful value is \"nc\". This is used in help files. So long as you\n+ are moving around text is concealed, but when starting to insert text\n+ or selecting a Visual area the concealed text is displayed, so that\n+ you can see what you are doing.\n+ Keep in mind that the cursor position is not always where it's\n+ displayed. E.g., when moving vertically it may change column.\n+ ]=],\n+ full_name = 'concealcursor',\n+ redraw = { 'current_window' },\n+ scope = { 'window' },\n+ short_desc = N_('whether concealable text is hidden in cursor line'),\n+ type = 'string',\n+ },\n+ {\n+ abbreviation = 'cole',\n+ defaults = { if_true = 0 },\n+ desc = [=[\n+ Determine how text with the \"conceal\" syntax attribute |:syn-conceal|\n+ is shown:\n+\n+ Value\t\tEffect ~\n+ 0\t\tText is shown normally\n+ 1\t\tEach block of concealed text is replaced with one\n+ \t\tcharacter. If the syntax item does not have a custom\n+ \t\treplacement character defined (see |:syn-cchar|) the\n+ \t\tcharacter defined in 'listchars' is used.\n+ \t\tIt is highlighted with the \"Conceal\" highlight group.\n+ 2\t\tConcealed text is completely hidden unless it has a\n+ \t\tcustom replacement character defined (see\n+ \t\t|:syn-cchar|).\n+ 3\t\tConcealed text is completely hidden.\n+\n+ Note: in the cursor line concealed text is not hidden, so that you can\n+ edit and copy the text. This can be changed with the 'concealcursor'\n+ option.\n+ ]=],\n+ full_name = 'conceallevel',\n+ redraw = { 'current_window' },\n+ scope = { 'window' },\n+ short_desc = N_('whether concealable text is shown or hidden'),\n+ type = 'number',\n+ },\n+ {\n+ abbreviation = 'cfu',\n+ alloced = true,\n+ cb = 'did_set_completefunc',\n+ defaults = { if_true = '' },\n+ desc = [=[\n+ This option specifies a function to be used for Insert mode completion\n+ with CTRL-X CTRL-U. |i_CTRL-X_CTRL-U|\n+ See |complete-functions| for an explanation of how the function is\n+ invoked and what it should return. The value can be the name of a\n+ function, a |lambda| or a |Funcref|. See |option-value-function| for\n+ more information.\n+ This option cannot be set from a |modeline| or in the |sandbox|, for\n+ security reasons.\n+ ]=],\n+ full_name = 'completefunc',\n+ func = true,\n+ scope = { 'buffer' },\n+ secure = true,\n+ short_desc = N_('function to be used for Insert mode completion'),\n+ type = 'string',\n+ varname = 'p_cfu',\n+ },\n+ {\n+ abbreviation = 'cot',\n+ cb = 'did_set_completeopt',\n+ defaults = { if_true = 'menu,preview' },\n+ deny_duplicates = true,\n+ desc = [=[\n+ A comma-separated list of options for Insert mode completion\n+ |ins-completion|. The supported values are:\n+\n+ menu\t Use a popup menu to show the possible completions. The\n+ \t menu is only shown when there is more than one match and\n+ \t sufficient colors are available. |ins-completion-menu|\n+\n+ menuone Use the popup menu also when there is only one match.\n+ \t Useful when there is additional information about the\n+ \t match, e.g., what file it comes from.\n+\n+ longest Only insert the longest common text of the matches. If\n+ \t the menu is displayed you can use CTRL-L to add more\n+ \t characters. Whether case is ignored depends on the kind\n+ \t of completion. For buffer text the 'ignorecase' option is\n+ \t used.\n+\n+ preview Show extra information about the currently selected\n+ \t completion in the preview window. Only works in\n+ \t combination with \"menu\" or \"menuone\".\n+\n+ noinsert Do not insert any text for a match until the user selects\n+ \t a match from the menu. Only works in combination with\n+ \t \"menu\" or \"menuone\". No effect if \"longest\" is present.\n+\n+ noselect Do not select a match in the menu, force the user to\n+ \t select one from the menu. Only works in combination with\n+ \t \"menu\" or \"menuone\".\n+ ]=],\n+ full_name = 'completeopt',\n+ list = 'onecomma',\n+ scope = { 'global' },\n+ short_desc = N_('options for Insert mode completion'),\n+ type = 'string',\n+ varname = 'p_cot',\n+ },\n+ {\n+ abbreviation = 'csl',\n+ cb = 'did_set_completeslash',\n+ defaults = { if_true = '' },\n+ desc = [=[\n+ \t\tonly for MS-Windows\n+ When this option is set it overrules 'shellslash' for completion:\n+ - When this option is set to \"slash\", a forward slash is used for path\n+ completion in insert mode. This is useful when editing HTML tag, or\n+ Makefile with 'noshellslash' on MS-Windows.\n+ - When this option is set to \"backslash\", backslash is used. This is\n+ useful when editing a batch file with 'shellslash' set on MS-Windows.\n+ - When this option is empty, same character is used as for\n+ 'shellslash'.\n+ For Insert mode completion the buffer-local value is used. For\n+ command line completion the global value is used.\n+ ]=],\n+ enable_if = 'BACKSLASH_IN_FILENAME',\n+ full_name = 'completeslash',\n+ scope = { 'buffer' },\n+ type = 'string',\n+ varname = 'p_csl',\n+ },\n+ {\n+ abbreviation = 'cf',\n+ defaults = { if_true = false },\n+ desc = [=[\n+ When 'confirm' is on, certain operations that would normally\n+ fail because of unsaved changes to a buffer, e.g. \":q\" and \":e\",\n+ instead raise a dialog asking if you wish to save the current\n+ file(s). You can still use a ! to unconditionally |abandon| a buffer.\n+ If 'confirm' is off you can still activate confirmation for one\n+ command only (this is most useful in mappings) with the |:confirm|\n+ command.\n+ Also see the |confirm()| function and the 'v' flag in 'guioptions'.\n+ ]=],\n+ full_name = 'confirm',\n+ scope = { 'global' },\n+ short_desc = N_('ask what to do about unsaved/read-only files'),\n+ type = 'bool',\n+ varname = 'p_confirm',\n+ },\n+ {\n+ abbreviation = 'ci',\n+ defaults = { if_true = false },\n+ desc = [=[\n+ Copy the structure of the existing lines indent when autoindenting a\n+ new line. Normally the new indent is reconstructed by a series of\n+ tabs followed by spaces as required (unless |'expandtab'| is enabled,\n+ in which case only spaces are used). Enabling this option makes the\n+ new line copy whatever characters were used for indenting on the\n+ existing line. 'expandtab' has no effect on these characters, a Tab\n+ remains a Tab. If the new indent is greater than on the existing\n+ line, the remaining space is filled in the normal manner.\n+ See 'preserveindent'.\n+ ]=],\n+ full_name = 'copyindent',\n+ scope = { 'buffer' },\n+ short_desc = N_(\"make 'autoindent' use existing indent structure\"),\n+ type = 'bool',\n+ varname = 'p_ci',\n+ },\n+ {\n+ abbreviation = 'cpo',\n+ cb = 'did_set_cpoptions',\n+ defaults = { if_true = macros('CPO_VIM') },\n+ desc = [=[\n+ A sequence of single character flags. When a character is present\n+ this indicates Vi-compatible behavior. This is used for things where\n+ not being Vi-compatible is mostly or sometimes preferred.\n+ 'cpoptions' stands for \"compatible-options\".\n+ Commas can be added for readability.\n+ To avoid problems with flags that are added in the future, use the\n+ \"+=\" and \"-=\" feature of \":set\" |add-option-flags|.\n+\n+ contains\tbehavior\t~\n+ \t\t\t\t\t\t\t*cpo-a*\n+ \ta\tWhen included, a \":read\" command with a file name\n+ \t\targument will set the alternate file name for the\n+ \t\tcurrent window.\n+ \t\t\t\t\t\t\t*cpo-A*\n+ \tA\tWhen included, a \":write\" command with a file name\n+ \t\targument will set the alternate file name for the\n+ \t\tcurrent window.\n+ \t\t\t\t\t\t\t*cpo-b*\n+ \tb\t\"\\|\" in a \":map\" command is recognized as the end of\n+ \t\tthe map command. The '\\' is included in the mapping,\n+ \t\tthe text after the '|' is interpreted as the next\n+ \t\tcommand. Use a CTRL-V instead of a backslash to\n+ \t\tinclude the '|' in the mapping. Applies to all\n+ \t\tmapping, abbreviation, menu and autocmd commands.\n+ \t\tSee also |map_bar|.\n+ \t\t\t\t\t\t\t*cpo-B*\n+ \tB\tA backslash has no special meaning in mappings,\n+ \t\tabbreviations, user commands and the \"to\" part of the\n+ \t\tmenu commands. Remove this flag to be able to use a\n+ \t\tbackslash like a CTRL-V. For example, the command\n+ \t\t\":map X \\\\\" results in X being mapped to:\n+ \t\t\t'B' included:\t\"\\^[\"\t (^[ is a real )\n+ \t\t\t'B' excluded:\t\"\" (5 characters)\n+ \t\t\t\t\t\t\t*cpo-c*\n+ \tc\tSearching continues at the end of any match at the\n+ \t\tcursor position, but not further than the start of the\n+ \t\tnext line. When not present searching continues\n+ \t\tone character from the cursor position. With 'c'\n+ \t\t\"abababababab\" only gets three matches when repeating\n+ \t\t\"/abab\", without 'c' there are five matches.\n+ \t\t\t\t\t\t\t*cpo-C*\n+ \tC\tDo not concatenate sourced lines that start with a\n+ \t\tbackslash. See |line-continuation|.\n+ \t\t\t\t\t\t\t*cpo-d*\n+ \td\tUsing \"./\" in the 'tags' option doesn't mean to use\n+ \t\tthe tags file relative to the current file, but the\n+ \t\ttags file in the current directory.\n+ \t\t\t\t\t\t\t*cpo-D*\n+ \tD\tCan't use CTRL-K to enter a digraph after Normal mode\n+ \t\tcommands with a character argument, like |r|, |f| and\n+ \t\t|t|.\n+ \t\t\t\t\t\t\t*cpo-e*\n+ \te\tWhen executing a register with \":@r\", always add a\n+ \t\t to the last line, also when the register is not\n+ \t\tlinewise. If this flag is not present, the register\n+ \t\tis not linewise and the last line does not end in a\n+ \t\t, then the last line is put on the command-line\n+ \t\tand can be edited before hitting .\n+ \t\t\t\t\t\t\t*cpo-E*\n+ \tE\tIt is an error when using \"y\", \"d\", \"c\", \"g~\", \"gu\" or\n+ \t\t\"gU\" on an Empty region. The operators only work when\n+ \t\tat least one character is to be operated on. Example:\n+ \t\tThis makes \"y0\" fail in the first column.\n+ \t\t\t\t\t\t\t*cpo-f*\n+ \tf\tWhen included, a \":read\" command with a file name\n+ \t\targument will set the file name for the current buffer,\n+ \t\tif the current buffer doesn't have a file name yet.\n+ \t\t\t\t\t\t\t*cpo-F*\n+ \tF\tWhen included, a \":write\" command with a file name\n+ \t\targument will set the file name for the current\n+ \t\tbuffer, if the current buffer doesn't have a file name\n+ \t\tyet. Also see |cpo-P|.\n+ \t\t\t\t\t\t\t*cpo-i*\n+ \ti\tWhen included, interrupting the reading of a file will\n+ \t\tleave it modified.\n+ \t\t\t\t\t\t\t*cpo-I*\n+ \tI\tWhen moving the cursor up or down just after inserting\n+ \t\tindent for 'autoindent', do not delete the indent.\n+ \t\t\t\t\t\t\t*cpo-J*\n+ \tJ\tA |sentence| has to be followed by two spaces after\n+ \t\tthe '.', '!' or '?'. A is not recognized as\n+ \t\twhite space.\n+ \t\t\t\t\t\t\t*cpo-K*\n+ \tK\tDon't wait for a key code to complete when it is\n+ \t\thalfway through a mapping. This breaks mapping\n+ \t\t when only part of the second has been\n+ \t\tread. It enables cancelling the mapping by typing\n+ \t\t.\n+ \t\t\t\t\t\t\t*cpo-l*\n+ \tl\tBackslash in a [] range in a search pattern is taken\n+ \t\tliterally, only \"\\]\", \"\\^\", \"\\-\" and \"\\\\\" are special.\n+ \t\tSee |/[]|\n+ \t\t 'l' included: \"/[ \\t]\" finds , '\\' and 't'\n+ \t\t 'l' excluded: \"/[ \\t]\" finds and \n+ \t\t\t\t\t\t\t*cpo-L*\n+ \tL\tWhen the 'list' option is set, 'wrapmargin',\n+ \t\t'textwidth', 'softtabstop' and Virtual Replace mode\n+ \t\t(see |gR|) count a as two characters, instead of\n+ \t\tthe normal behavior of a .\n+ \t\t\t\t\t\t\t*cpo-m*\n+ \tm\tWhen included, a showmatch will always wait half a\n+ \t\tsecond. When not included, a showmatch will wait half\n+ \t\ta second or until a character is typed. |'showmatch'|\n+ \t\t\t\t\t\t\t*cpo-M*\n+ \tM\tWhen excluded, \"%\" matching will take backslashes into\n+ \t\taccount. Thus in \"( \\( )\" and \"\\( ( \\)\" the outer\n+ \t\tparenthesis match. When included \"%\" ignores\n+ \t\tbackslashes, which is Vi compatible.\n+ \t\t\t\t\t\t\t*cpo-n*\n+ \tn\tWhen included, the column used for 'number' and\n+ \t\t'relativenumber' will also be used for text of wrapped\n+ \t\tlines.\n+ \t\t\t\t\t\t\t*cpo-o*\n+ \to\tLine offset to search command is not remembered for\n+ \t\tnext search.\n+ \t\t\t\t\t\t\t*cpo-O*\n+ \tO\tDon't complain if a file is being overwritten, even\n+ \t\twhen it didn't exist when editing it. This is a\n+ \t\tprotection against a file unexpectedly created by\n+ \t\tsomeone else. Vi didn't complain about this.\n+ \t\t\t\t\t\t\t*cpo-p*\n+ \tp\tVi compatible Lisp indenting. When not present, a\n+ \t\tslightly better algorithm is used.\n+ \t\t\t\t\t\t\t*cpo-P*\n+ \tP\tWhen included, a \":write\" command that appends to a\n+ \t\tfile will set the file name for the current buffer, if\n+ \t\tthe current buffer doesn't have a file name yet and\n+ \t\tthe 'F' flag is also included |cpo-F|.\n+ \t\t\t\t\t\t\t*cpo-q*\n+ \tq\tWhen joining multiple lines leave the cursor at the\n+ \t\tposition where it would be when joining two lines.\n+ \t\t\t\t\t\t\t*cpo-r*\n+ \tr\tRedo (\".\" command) uses \"/\" to repeat a search\n+ \t\tcommand, instead of the actually used search string.\n+ \t\t\t\t\t\t\t*cpo-R*\n+ \tR\tRemove marks from filtered lines. Without this flag\n+ \t\tmarks are kept like |:keepmarks| was used.\n+ \t\t\t\t\t\t\t*cpo-s*\n+ \ts\tSet buffer options when entering the buffer for the\n+ \t\tfirst time. This is like it is in Vim version 3.0.\n+ \t\tAnd it is the default. If not present the options are\n+ \t\tset when the buffer is created.\n+ \t\t\t\t\t\t\t*cpo-S*\n+ \tS\tSet buffer options always when entering a buffer\n+ \t\t(except 'readonly', 'fileformat', 'filetype' and\n+ \t\t'syntax'). This is the (most) Vi compatible setting.\n+ \t\tThe options are set to the values in the current\n+ \t\tbuffer. When you change an option and go to another\n+ \t\tbuffer, the value is copied. Effectively makes the\n+ \t\tbuffer options global to all buffers.\n+\n+ \t\t's' 'S' copy buffer options\n+ \t\tno no when buffer created\n+ \t\tyes no when buffer first entered (default)\n+ \t\t X yes each time when buffer entered (vi comp.)\n+ \t\t\t\t\t\t\t*cpo-t*\n+ \tt\tSearch pattern for the tag command is remembered for\n+ \t\t\"n\" command. Otherwise Vim only puts the pattern in\n+ \t\tthe history for search pattern, but doesn't change the\n+ \t\tlast used search pattern.\n+ \t\t\t\t\t\t\t*cpo-u*\n+ \tu\tUndo is Vi compatible. See |undo-two-ways|.\n+ \t\t\t\t\t\t\t*cpo-v*\n+ \tv\tBackspaced characters remain visible on the screen in\n+ \t\tInsert mode. Without this flag the characters are\n+ \t\terased from the screen right away. With this flag the\n+ \t\tscreen newly typed text overwrites backspaced\n+ \t\tcharacters.\n+ \t\t\t\t\t\t\t*cpo-W*\n+ \tW\tDon't overwrite a readonly file. When omitted, \":w!\"\n+ \t\toverwrites a readonly file, if possible.\n+ \t\t\t\t\t\t\t*cpo-x*\n+ \tx\t on the command-line executes the command-line.\n+ \t\tThe default in Vim is to abandon the command-line,\n+ \t\tbecause normally aborts a command. |c_|\n+ \t\t\t\t\t\t\t*cpo-X*\n+ \tX\tWhen using a count with \"R\" the replaced text is\n+ \t\tdeleted only once. Also when repeating \"R\" with \".\"\n+ \t\tand a count.\n+ \t\t\t\t\t\t\t*cpo-y*\n+ \ty\tA yank command can be redone with \".\". Think twice if\n+ \t\tyou really want to use this, it may break some\n+ \t\tplugins, since most people expect \".\" to only repeat a\n+ \t\tchange.\n+ \t\t\t\t\t\t\t*cpo-Z*\n+ \tZ\tWhen using \"w!\" while the 'readonly' option is set,\n+ \t\tdon't reset 'readonly'.\n+ \t\t\t\t\t\t\t*cpo-!*\n+ \t!\tWhen redoing a filter command, use the last used\n+ \t\texternal command, whatever it was. Otherwise the last\n+ \t\tused -filter- command is used.\n+ \t\t\t\t\t\t\t*cpo-$*\n+ \t$\tWhen making a change to one line, don't redisplay the\n+ \t\tline, but put a '$' at the end of the changed text.\n+ \t\tThe changed text will be overwritten when you type the\n+ \t\tnew text. The line is redisplayed if you type any\n+ \t\tcommand that moves the cursor from the insertion\n+ \t\tpoint.\n+ \t\t\t\t\t\t\t*cpo-%*\n+ \t%\tVi-compatible matching is done for the \"%\" command.\n+ \t\tDoes not recognize \"#if\", \"#endif\", etc.\n+ \t\tDoes not recognize \"/*\" and \"*/\".\n+ \t\tParens inside single and double quotes are also\n+ \t\tcounted, causing a string that contains a paren to\n+ \t\tdisturb the matching. For example, in a line like\n+ \t\t\"if (strcmp(\"foo(\", s))\" the first paren does not\n+ \t\tmatch the last one. When this flag is not included,\n+ \t\tparens inside single and double quotes are treated\n+ \t\tspecially. When matching a paren outside of quotes,\n+ \t\teverything inside quotes is ignored. When matching a\n+ \t\tparen inside quotes, it will find the matching one (if\n+ \t\tthere is one). This works very well for C programs.\n+ \t\tThis flag is also used for other features, such as\n+ \t\tC-indenting.\n+ \t\t\t\t\t\t\t*cpo-+*\n+ \t+\tWhen included, a \":write file\" command will reset the\n+ \t\t'modified' flag of the buffer, even though the buffer\n+ \t\titself may still be different from its file.\n+ \t\t\t\t\t\t\t*cpo->*\n+ \t>\tWhen appending to a register, put a line break before\n+ \t\tthe appended text.\n+ \t\t\t\t\t\t\t*cpo-;*\n+ \t;\tWhen using |,| or |;| to repeat the last |t| search\n+ \t\tand the cursor is right in front of the searched\n+ \t\tcharacter, the cursor won't move. When not included,\n+ \t\tthe cursor would skip over it and jump to the\n+ \t\tfollowing occurrence.\n+ \t\t\t\t\t\t\t*cpo-_*\n+ \t_\tWhen using |cw| on a word, do not include the\n+ \t\twhitespace following the word in the motion.\n+ ]=],\n+ full_name = 'cpoptions',\n+ list = 'flags',\n+ redraw = { 'all_windows' },\n+ scope = { 'global' },\n+ short_desc = N_('flags for Vi-compatible behavior'),\n+ tags = { 'cpo' },\n+ type = 'string',\n+ varname = 'p_cpo',\n+ },\n+ {\n+ abbreviation = 'crb',\n+ defaults = { if_true = false },\n+ desc = [=[\n+ When this option is set, as the cursor in the current\n+ window moves other cursorbound windows (windows that also have\n+ this option set) move their cursors to the corresponding line and\n+ column. This option is useful for viewing the\n+ differences between two versions of a file (see 'diff'); in diff mode,\n+ inserted and deleted lines (though not characters within a line) are\n+ taken into account.\n+ ]=],\n+ full_name = 'cursorbind',\n+ pv_name = 'p_crbind',\n+ scope = { 'window' },\n+ short_desc = N_('move cursor in window as it moves in other windows'),\n+ type = 'bool',\n+ },\n+ {\n+ abbreviation = 'cuc',\n+ defaults = { if_true = false },\n+ desc = [=[\n+ Highlight the screen column of the cursor with CursorColumn\n+ |hl-CursorColumn|. Useful to align text. Will make screen redrawing\n+ slower.\n+ If you only want the highlighting in the current window you can use\n+ these autocommands: >\n+ \tau WinLeave * set nocursorline nocursorcolumn\n+ \tau WinEnter * set cursorline cursorcolumn\n+ <\n+ ]=],\n+ full_name = 'cursorcolumn',\n+ redraw = { 'current_window_only' },\n+ scope = { 'window' },\n+ short_desc = N_('highlight the screen column of the cursor'),\n+ type = 'bool',\n+ },\n+ {\n+ abbreviation = 'cul',\n+ defaults = { if_true = false },\n+ desc = [=[\n+ Highlight the text line of the cursor with CursorLine |hl-CursorLine|.\n+ Useful to easily spot the cursor. Will make screen redrawing slower.\n+ When Visual mode is active the highlighting isn't used to make it\n+ easier to see the selected text.\n+ ]=],\n+ full_name = 'cursorline',\n+ redraw = { 'current_window_only' },\n+ scope = { 'window' },\n+ short_desc = N_('highlight the screen line of the cursor'),\n+ type = 'bool',\n+ },\n+ {\n+ abbreviation = 'culopt',\n+ cb = 'did_set_cursorlineopt',\n+ defaults = { if_true = 'both' },\n+ deny_duplicates = true,\n+ desc = [=[\n+ Comma-separated list of settings for how 'cursorline' is displayed.\n+ Valid values:\n+ \"line\"\t\tHighlight the text line of the cursor with\n+ \t\tCursorLine |hl-CursorLine|.\n+ \"screenline\"\tHighlight only the screen line of the cursor with\n+ \t\tCursorLine |hl-CursorLine|.\n+ \"number\"\tHighlight the line number of the cursor with\n+ \t\tCursorLineNr |hl-CursorLineNr|.\n+\n+ Special value:\n+ \"both\"\t\tAlias for the values \"line,number\".\n+\n+ \"line\" and \"screenline\" cannot be used together.\n+ ]=],\n+ full_name = 'cursorlineopt',\n+ list = 'onecomma',\n+ redraw = { 'current_window_only' },\n+ scope = { 'window' },\n+ short_desc = N_(\"settings for 'cursorline'\"),\n+ type = 'string',\n+ },\n+ {\n+ cb = 'did_set_debug',\n+ defaults = { if_true = '' },\n+ desc = [=[\n+ These values can be used:\n+ msg\tError messages that would otherwise be omitted will be given\n+ \tanyway.\n+ throw\tError messages that would otherwise be omitted will be given\n+ \tanyway and also throw an exception and set |v:errmsg|.\n+ beep\tA message will be given when otherwise only a beep would be\n+ \tproduced.\n+ The values can be combined, separated by a comma.\n+ \"msg\" and \"throw\" are useful for debugging 'foldexpr', 'formatexpr' or\n+ 'indentexpr'.\n+ ]=],\n+ full_name = 'debug',\n+ scope = { 'global' },\n+ short_desc = N_('to \"msg\" to see all error messages'),\n+ type = 'string',\n+ varname = 'p_debug',\n+ },\n+ {\n+ abbreviation = 'def',\n+ alloced = true,\n+ defaults = { if_true = '' },\n+ desc = [=[\n+ Pattern to be used to find a macro definition. It is a search\n+ pattern, just like for the \"/\" command. This option is used for the\n+ commands like \"[i\" and \"[d\" |include-search|. The 'isident' option is\n+ used to recognize the defined name after the match: >\n+ \t{match with 'define'}{non-ID chars}{defined name}{non-ID char}\n+ <\tSee |option-backslash| about inserting backslashes to include a space\n+ or backslash.\n+ For C++ this value would be useful, to include const type declarations: >\n+ \t^\\(#\\s*define\\|[a-z]*\\s*const\\s*[a-z]*\\)\n+ <\tYou can also use \"\\ze\" just before the name and continue the pattern\n+ to check what is following. E.g. for Javascript, if a function is\n+ defined with `func_name = function(args)`: >\n+ \t^\\s*\\ze\\i\\+\\s*=\\s*function(\n+ <\tIf the function is defined with `func_name : function() {...`: >\n+ ^\\s*\\ze\\i\\+\\s*[:]\\s*(*function\\s*(\n+ <\tWhen using the \":set\" command, you need to double the backslashes!\n+ To avoid that use `:let` with a single quote string: >\n+ \tlet &l:define = '^\\s*\\ze\\k\\+\\s*=\\s*function('\n+ <\n+ ]=],\n+ full_name = 'define',\n+ redraw = { 'curswant' },\n+ scope = { 'global', 'buffer' },\n+ short_desc = N_('pattern to be used to find a macro definition'),\n+ type = 'string',\n+ varname = 'p_def',\n+ },\n+ {\n+ abbreviation = 'deco',\n+ defaults = { if_true = false },\n+ desc = [=[\n+ If editing Unicode and this option is set, backspace and Normal mode\n+ \"x\" delete each combining character on its own. When it is off (the\n+ default) the character along with its combining characters are\n+ deleted.\n+ Note: When 'delcombine' is set \"xx\" may work differently from \"2x\"!\n+\n+ This is useful for Arabic, Hebrew and many other languages where one\n+ may have combining characters overtop of base characters, and want\n+ to remove only the combining ones.\n+ ]=],\n+ full_name = 'delcombine',\n+ scope = { 'global' },\n+ short_desc = N_('delete combining characters on their own'),\n+ type = 'bool',\n+ varname = 'p_deco',\n+ },\n+ {\n+ abbreviation = 'dict',\n+ defaults = { if_true = '' },\n+ deny_duplicates = true,\n+ desc = [=[\n+ List of file names, separated by commas, that are used to lookup words\n+ for keyword completion commands |i_CTRL-X_CTRL-K|. Each file should\n+ contain a list of words. This can be one word per line, or several\n+ words per line, separated by non-keyword characters (white space is\n+ preferred). Maximum line length is 510 bytes.\n+\n+ When this option is empty or an entry \"spell\" is present, and spell\n+ checking is enabled, words in the word lists for the currently active\n+ 'spelllang' are used. See |spell|.\n+\n+ To include a comma in a file name precede it with a backslash. Spaces\n+ after a comma are ignored, otherwise spaces are included in the file\n+ name. See |option-backslash| about using backslashes.\n+ This has nothing to do with the |Dictionary| variable type.\n+ Where to find a list of words?\n+ - BSD/macOS include the \"/usr/share/dict/words\" file.\n+ - Try \"apt install spell\" to get the \"/usr/share/dict/words\" file on\n+ apt-managed systems (Debian/Ubuntu).\n+ The use of |:set+=| and |:set-=| is preferred when adding or removing\n+ directories from the list. This avoids problems when a future version\n+ uses another default.\n+ Backticks cannot be used in this option for security reasons.\n+ ]=],\n+ expand = true,\n+ full_name = 'dictionary',\n+ list = 'onecomma',\n+ normal_dname_chars = true,\n+ scope = { 'global', 'buffer' },\n+ short_desc = N_('list of file names used for keyword completion'),\n+ type = 'string',\n+ varname = 'p_dict',\n+ },\n+ {\n+ cb = 'did_set_diff',\n+ defaults = { if_true = false },\n+ desc = [=[\n+ Join the current window in the group of windows that shows differences\n+ between files. See |diff-mode|.\n+ ]=],\n+ full_name = 'diff',\n+ noglob = true,\n+ redraw = { 'current_window' },\n+ scope = { 'window' },\n+ short_desc = N_('diff mode for the current window'),\n+ type = 'bool',\n+ },\n+ {\n+ abbreviation = 'dex',\n+ cb = 'did_set_optexpr',\n+ defaults = { if_true = '' },\n+ desc = [=[\n+ Expression which is evaluated to obtain a diff file (either ed-style\n+ or unified-style) from two versions of a file. See |diff-diffexpr|.\n+ This option cannot be set from a |modeline| or in the |sandbox|, for\n+ security reasons.\n+ ]=],\n+ full_name = 'diffexpr',\n+ redraw = { 'curswant' },\n+ scope = { 'global' },\n+ secure = true,\n+ short_desc = N_('expression used to obtain a diff file'),\n+ type = 'string',\n+ varname = 'p_dex',\n+ },\n+ {\n+ abbreviation = 'dip',\n+ alloced = true,\n+ cb = 'did_set_diffopt',\n+ defaults = { if_true = 'internal,filler,closeoff' },\n+ deny_duplicates = true,\n+ desc = [=[\n+ Option settings for diff mode. It can consist of the following items.\n+ All are optional. Items must be separated by a comma.\n+\n+ \tfiller\t\tShow filler lines, to keep the text\n+ \t\t\tsynchronized with a window that has inserted\n+ \t\t\tlines at the same position. Mostly useful\n+ \t\t\twhen windows are side-by-side and 'scrollbind'\n+ \t\t\tis set.\n+\n+ \tcontext:{n}\tUse a context of {n} lines between a change\n+ \t\t\tand a fold that contains unchanged lines.\n+ \t\t\tWhen omitted a context of six lines is used.\n+ \t\t\tWhen using zero the context is actually one,\n+ \t\t\tsince folds require a line in between, also\n+ \t\t\tfor a deleted line.\n+ \t\t\tSee |fold-diff|.\n+\n+ \tiblank\t\tIgnore changes where lines are all blank. Adds\n+ \t\t\tthe \"-B\" flag to the \"diff\" command if\n+ \t\t\t'diffexpr' is empty. Check the documentation\n+ \t\t\tof the \"diff\" command for what this does\n+ \t\t\texactly.\n+ \t\t\tNOTE: the diff windows will get out of sync,\n+ \t\t\tbecause no differences between blank lines are\n+ \t\t\ttaken into account.\n+\n+ \ticase\t\tIgnore changes in case of text. \"a\" and \"A\"\n+ \t\t\tare considered the same. Adds the \"-i\" flag\n+ \t\t\tto the \"diff\" command if 'diffexpr' is empty.\n+\n+ \tiwhite\t\tIgnore changes in amount of white space. Adds\n+ \t\t\tthe \"-b\" flag to the \"diff\" command if\n+ \t\t\t'diffexpr' is empty. Check the documentation\n+ \t\t\tof the \"diff\" command for what this does\n+ \t\t\texactly. It should ignore adding trailing\n+ \t\t\twhite space, but not leading white space.\n+\n+ \tiwhiteall\tIgnore all white space changes. Adds\n+ \t\t\tthe \"-w\" flag to the \"diff\" command if\n+ \t\t\t'diffexpr' is empty. Check the documentation\n+ \t\t\tof the \"diff\" command for what this does\n+ \t\t\texactly.\n+\n+ \tiwhiteeol\tIgnore white space changes at end of line.\n+ \t\t\tAdds the \"-Z\" flag to the \"diff\" command if\n+ \t\t\t'diffexpr' is empty. Check the documentation\n+ \t\t\tof the \"diff\" command for what this does\n+ \t\t\texactly.\n+\n+ \thorizontal\tStart diff mode with horizontal splits (unless\n+ \t\t\texplicitly specified otherwise).\n+\n+ \tvertical\tStart diff mode with vertical splits (unless\n+ \t\t\texplicitly specified otherwise).\n+\n+ \tcloseoff\tWhen a window is closed where 'diff' is set\n+ \t\t\tand there is only one window remaining in the\n+ \t\t\tsame tab page with 'diff' set, execute\n+ \t\t\t`:diffoff` in that window. This undoes a\n+ \t\t\t`:diffsplit` command.\n+\n+ \thiddenoff\tDo not use diff mode for a buffer when it\n+ \t\t\tbecomes hidden.\n+\n+ \tfoldcolumn:{n}\tSet the 'foldcolumn' option to {n} when\n+ \t\t\tstarting diff mode. Without this 2 is used.\n+\n+ \tfollowwrap\tFollow the 'wrap' option and leave as it is.\n+\n+ \tinternal\tUse the internal diff library. This is\n+ \t\t\tignored when 'diffexpr' is set. *E960*\n+ \t\t\tWhen running out of memory when writing a\n+ \t\t\tbuffer this item will be ignored for diffs\n+ \t\t\tinvolving that buffer. Set the 'verbose'\n+ \t\t\toption to see when this happens.\n+\n+ \tindent-heuristic\n+ \t\t\tUse the indent heuristic for the internal\n+ \t\t\tdiff library.\n+\n+ \tlinematch:{n} Enable a second stage diff on each generated\n+ \t\t\thunk in order to align lines. When the total\n+ \t\t\tnumber of lines in a hunk exceeds {n}, the\n+ \t\t\tsecond stage diff will not be performed as\n+ \t\t\tvery large hunks can cause noticeable lag. A\n+ \t\t\trecommended setting is \"linematch:60\", as this\n+ \t\t\twill enable alignment for a 2 buffer diff with\n+ \t\t\thunks of up to 30 lines each, or a 3 buffer\n+ \t\t\tdiff with hunks of up to 20 lines each.\n+\n+ \talgorithm:{text} Use the specified diff algorithm with the\n+ \t\t\tinternal diff engine. Currently supported\n+ \t\t\talgorithms are:\n+ \t\t\tmyers the default algorithm\n+ \t\t\tminimal spend extra time to generate the\n+ \t\t\t\t smallest possible diff\n+ \t\t\tpatience patience diff algorithm\n+ \t\t\thistogram histogram diff algorithm\n+\n+ Examples: >\n+ \t:set diffopt=internal,filler,context:4\n+ \t:set diffopt=\n+ \t:set diffopt=internal,filler,foldcolumn:3\n+ \t:set diffopt-=internal \" do NOT use the internal diff parser\n+ <\n+ ]=],\n+ full_name = 'diffopt',\n+ list = 'onecomma',\n+ redraw = { 'current_window' },\n+ scope = { 'global' },\n+ short_desc = N_('options for using diff mode'),\n+ type = 'string',\n+ varname = 'p_dip',\n+ },\n+ {\n+ abbreviation = 'dg',\n+ defaults = { if_true = false },\n+ desc = [=[\n+ Enable the entering of digraphs in Insert mode with {char1} \n+ {char2}. See |digraphs|.\n+ ]=],\n+ full_name = 'digraph',\n+ scope = { 'global' },\n+ short_desc = N_('enable the entering of digraphs in Insert mode'),\n+ type = 'bool',\n+ varname = 'p_dg',\n+ },\n+ {\n+ abbreviation = 'dir',\n+ defaults = { if_true = '' },\n+ deny_duplicates = true,\n+ desc = [=[\n+ List of directory names for the swap file, separated with commas.\n+\n+ Possible items:\n+ - The swap file will be created in the first directory where this is\n+ possible. If it is not possible in any directory, but last\n+ directory listed in the option does not exist, it is created.\n+ - Empty means that no swap file will be used (recovery is\n+ impossible!) and no |E303| error will be given.\n+ - A directory \".\" means to put the swap file in the same directory as\n+ the edited file. On Unix, a dot is prepended to the file name, so\n+ it doesn't show in a directory listing. On MS-Windows the \"hidden\"\n+ attribute is set and a dot prepended if possible.\n+ - A directory starting with \"./\" (or \".\\\" for MS-Windows) means to put\n+ the swap file relative to where the edited file is. The leading \".\"\n+ is replaced with the path name of the edited file.\n+ - For Unix and Win32, if a directory ends in two path separators \"//\",\n+ the swap file name will be built from the complete path to the file\n+ with all path separators replaced by percent '%' signs (including\n+ the colon following the drive letter on Win32). This will ensure\n+ file name uniqueness in the preserve directory.\n+ On Win32, it is also possible to end with \"\\\\\". However, When a\n+ separating comma is following, you must use \"//\", since \"\\\\\" will\n+ include the comma in the file name. Therefore it is recommended to\n+ use '//', instead of '\\\\'.\n+ - Spaces after the comma are ignored, other spaces are considered part\n+ of the directory name. To have a space at the start of a directory\n+ name, precede it with a backslash.\n+ - To include a comma in a directory name precede it with a backslash.\n+ - A directory name may end in an ':' or '/'.\n+ - Environment variables are expanded |:set_env|.\n+ - Careful with '\\' characters, type one before a space, type two to\n+ get one in the option (see |option-backslash|), for example: >\n+ :set dir=c:\\\\tmp,\\ dir\\\\,with\\\\,commas,\\\\\\ dir\\ with\\ spaces\n+ <\n+ Editing the same file twice will result in a warning. Using \"/tmp\" on\n+ is discouraged: if the system crashes you lose the swap file. And\n+ others on the computer may be able to see the files.\n+ Use |:set+=| and |:set-=| when adding or removing directories from the\n+ list, this avoids problems if the Nvim default is changed.\n+\n+ This option cannot be set from a |modeline| or in the |sandbox|, for\n+ security reasons.\n+ ]=],\n+ expand = 'nodefault',\n+ full_name = 'directory',\n+ list = 'onecomma',\n+ scope = { 'global' },\n+ secure = true,\n+ short_desc = N_('list of directory names for the swap file'),\n+ type = 'string',\n+ varname = 'p_dir',\n+ },\n+ {\n+ abbreviation = 'dy',\n+ cb = 'did_set_display',\n+ defaults = { if_true = 'lastline' },\n+ deny_duplicates = true,\n+ desc = [=[\n+ Change the way text is displayed. This is a comma-separated list of\n+ flags:\n+ lastline\tWhen included, as much as possible of the last line\n+ \t\tin a window will be displayed. \"@@@\" is put in the\n+ \t\tlast columns of the last screen line to indicate the\n+ \t\trest of the line is not displayed.\n+ truncate\tLike \"lastline\", but \"@@@\" is displayed in the first\n+ \t\tcolumn of the last screen line. Overrules \"lastline\".\n+ uhex\t\tShow unprintable characters hexadecimal as \n+ \t\tinstead of using ^C and ~C.\n+ msgsep\t\tObsolete flag. Allowed but takes no effect. |msgsep|\n+\n+ When neither \"lastline\" nor \"truncate\" is included, a last line that\n+ doesn't fit is replaced with \"@\" lines.\n+\n+ The \"@\" character can be changed by setting the \"lastline\" item in\n+ 'fillchars'. The character is highlighted with |hl-NonText|.\n+ ]=],\n+ full_name = 'display',\n+ list = 'onecomma',\n+ redraw = { 'all_windows' },\n+ scope = { 'global' },\n+ short_desc = N_('list of flags for how to display text'),\n+ type = 'string',\n+ varname = 'p_dy',\n+ },\n+ {\n+ abbreviation = 'ead',\n+ cb = 'did_set_eadirection',\n+ defaults = { if_true = 'both' },\n+ desc = [=[\n+ Tells when the 'equalalways' option applies:\n+ \tver\tvertically, width of windows is not affected\n+ \thor\thorizontally, height of windows is not affected\n+ \tboth\twidth and height of windows is affected\n+ ]=],\n+ full_name = 'eadirection',\n+ scope = { 'global' },\n+ short_desc = N_(\"in which direction 'equalalways' works\"),\n+ type = 'string',\n+ varname = 'p_ead',\n+ },\n+ {\n+ abbreviation = 'ed',\n+ defaults = { if_true = false },\n+ full_name = 'edcompatible',\n+ scope = { 'global' },\n+ short_desc = N_('No description'),\n+ type = 'bool',\n+ varname = 'p_force_off',\n+ },\n+ {\n+ abbreviation = 'emo',\n+ cb = 'did_set_ambiwidth',\n+ defaults = { if_true = true },\n+ desc = [=[\n+ When on all Unicode emoji characters are considered to be full width.\n+ This excludes \"text emoji\" characters, which are normally displayed as\n+ single width. Unfortunately there is no good specification for this\n+ and it has been determined on trial-and-error basis. Use the\n+ |setcellwidths()| function to change the behavior.\n+ ]=],\n+ full_name = 'emoji',\n+ redraw = { 'all_windows', 'ui_option' },\n+ scope = { 'global' },\n+ short_desc = N_('No description'),\n+ type = 'bool',\n+ varname = 'p_emoji',\n+ },\n+ {\n+ abbreviation = 'enc',\n+ cb = 'did_set_encoding',\n+ defaults = { if_true = macros('ENC_DFLT') },\n+ deny_in_modelines = true,\n+ desc = [=[\n+ String-encoding used internally and for |RPC| communication.\n+ Always UTF-8.\n+\n+ See 'fileencoding' to control file-content encoding.\n+ ]=],\n+ full_name = 'encoding',\n+ scope = { 'global' },\n+ short_desc = N_('encoding used internally'),\n+ type = 'string',\n+ varname = 'p_enc',\n+ },\n+ {\n+ abbreviation = 'eof',\n+ cb = 'did_set_eof_eol_fixeol_bomb',\n+ defaults = { if_true = false },\n+ desc = [=[\n+ Indicates that a CTRL-Z character was found at the end of the file\n+ when reading it. Normally only happens when 'fileformat' is \"dos\".\n+ When writing a file and this option is off and the 'binary' option\n+ is on, or 'fixeol' option is off, no CTRL-Z will be written at the\n+ end of the file.\n+ See |eol-and-eof| for example settings.\n+ ]=],\n+ full_name = 'endoffile',\n+ no_mkrc = true,\n+ redraw = { 'statuslines' },\n+ scope = { 'buffer' },\n+ short_desc = N_('write CTRL-Z for last line in file'),\n+ type = 'bool',\n+ varname = 'p_eof',\n+ },\n+ {\n+ abbreviation = 'eol',\n+ cb = 'did_set_eof_eol_fixeol_bomb',\n+ defaults = { if_true = true },\n+ desc = [=[\n+ When writing a file and this option is off and the 'binary' option\n+ is on, or 'fixeol' option is off, no will be written for the\n+ last line in the file. This option is automatically set or reset when\n+ starting to edit a new file, depending on whether file has an \n+ for the last line in the file. Normally you don't have to set or\n+ reset this option.\n+ When 'binary' is off and 'fixeol' is on the value is not used when\n+ writing the file. When 'binary' is on or 'fixeol' is off it is used\n+ to remember the presence of a for the last line in the file, so\n+ that when you write the file the situation from the original file can\n+ be kept. But you can change it if you want to.\n+ See |eol-and-eof| for example settings.\n+ ]=],\n+ full_name = 'endofline',\n+ no_mkrc = true,\n+ redraw = { 'statuslines' },\n+ scope = { 'buffer' },\n+ short_desc = N_('write for last line in file'),\n+ type = 'bool',\n+ varname = 'p_eol',\n+ },\n+ {\n+ abbreviation = 'ea',\n+ cb = 'did_set_equalalways',\n+ defaults = { if_true = true },\n+ desc = [=[\n+ When on, all the windows are automatically made the same size after\n+ splitting or closing a window. This also happens the moment the\n+ option is switched on. When off, splitting a window will reduce the\n+ size of the current window and leave the other windows the same. When\n+ closing a window the extra lines are given to the window next to it\n+ (depending on 'splitbelow' and 'splitright').\n+ When mixing vertically and horizontally split windows, a minimal size\n+ is computed and some windows may be larger if there is room. The\n+ 'eadirection' option tells in which direction the size is affected.\n+ Changing the height and width of a window can be avoided by setting\n+ 'winfixheight' and 'winfixwidth', respectively.\n+ If a window size is specified when creating a new window sizes are\n+ currently not equalized (it's complicated, but may be implemented in\n+ the future).\n+ ]=],\n+ full_name = 'equalalways',\n+ scope = { 'global' },\n+ short_desc = N_('windows are automatically made the same size'),\n+ type = 'bool',\n+ varname = 'p_ea',\n+ },\n+ {\n+ abbreviation = 'ep',\n+ defaults = { if_true = '' },\n+ desc = [=[\n+ External program to use for \"=\" command. When this option is empty\n+ the internal formatting functions are used; either 'lisp', 'cindent'\n+ or 'indentexpr'.\n+ Environment variables are expanded |:set_env|. See |option-backslash|\n+ about including spaces and backslashes.\n+ This option cannot be set from a |modeline| or in the |sandbox|, for\n+ security reasons.\n+ ]=],\n+ expand = true,\n+ full_name = 'equalprg',\n+ scope = { 'global', 'buffer' },\n+ secure = true,\n+ short_desc = N_('external program to use for \"=\" command'),\n+ type = 'string',\n+ varname = 'p_ep',\n+ },\n+ {\n+ abbreviation = 'eb',\n+ defaults = { if_true = false },\n+ desc = [=[\n+ Ring the bell (beep or screen flash) for error messages. This only\n+ makes a difference for error messages, the bell will be used always\n+ for a lot of errors without a message (e.g., hitting in Normal\n+ mode). See 'visualbell' to make the bell behave like a screen flash\n+ or do nothing. See 'belloff' to finetune when to ring the bell.\n+ ]=],\n+ full_name = 'errorbells',\n+ scope = { 'global' },\n+ short_desc = N_('ring the bell for error messages'),\n+ type = 'bool',\n+ varname = 'p_eb',\n+ },\n+ {\n+ abbreviation = 'ef',\n+ defaults = { if_true = macros('DFLT_ERRORFILE') },\n+ desc = [=[\n+ Name of the errorfile for the QuickFix mode (see |:cf|).\n+ When the \"-q\" command-line argument is used, 'errorfile' is set to the\n+ following argument. See |-q|.\n+ NOT used for the \":make\" command. See 'makeef' for that.\n+ Environment variables are expanded |:set_env|.\n+ See |option-backslash| about including spaces and backslashes.\n+ This option cannot be set from a |modeline| or in the |sandbox|, for\n+ security reasons.\n+ ]=],\n+ expand = true,\n+ full_name = 'errorfile',\n+ scope = { 'global' },\n+ secure = true,\n+ short_desc = N_('name of the errorfile for the QuickFix mode'),\n+ type = 'string',\n+ varname = 'p_ef',\n+ },\n+ {\n+ abbreviation = 'efm',\n+ defaults = {\n+ if_true = macros('DFLT_EFM'),\n+ doc = 'is very long',\n+ },\n+ deny_duplicates = true,\n+ desc = [=[\n+ Scanf-like description of the format for the lines in the error file\n+ (see |errorformat|).\n+ ]=],\n+ full_name = 'errorformat',\n+ list = 'onecomma',\n+ scope = { 'global', 'buffer' },\n+ short_desc = N_('description of the lines in the error file'),\n+ type = 'string',\n+ varname = 'p_efm',\n+ },\n+ {\n+ abbreviation = 'ei',\n+ cb = 'did_set_eventignore',\n+ defaults = { if_true = '' },\n+ deny_duplicates = true,\n+ desc = [=[\n+ A list of autocommand event names, which are to be ignored.\n+ When set to \"all\" or when \"all\" is one of the items, all autocommand\n+ events are ignored, autocommands will not be executed.\n+ Otherwise this is a comma-separated list of event names. Example: >\n+ :set ei=WinEnter,WinLeave\n+ <\n+ ]=],\n+ full_name = 'eventignore',\n+ list = 'onecomma',\n+ scope = { 'global' },\n+ short_desc = N_('autocommand events that are ignored'),\n+ type = 'string',\n+ varname = 'p_ei',\n+ },\n+ {\n+ abbreviation = 'et',\n+ defaults = { if_true = false },\n+ desc = [=[\n+ In Insert mode: Use the appropriate number of spaces to insert a\n+ . Spaces are used in indents with the '>' and '<' commands and\n+ when 'autoindent' is on. To insert a real tab when 'expandtab' is\n+ on, use CTRL-V. See also |:retab| and |ins-expandtab|.\n+ ]=],\n+ full_name = 'expandtab',\n+ scope = { 'buffer' },\n+ short_desc = N_('use spaces when is inserted'),\n+ type = 'bool',\n+ varname = 'p_et',\n+ },\n+ {\n+ abbreviation = 'ex',\n+ defaults = { if_true = false },\n+ desc = [=[\n+ Automatically execute .nvim.lua, .nvimrc, and .exrc files in the\n+ current directory, if the file is in the |trust| list. Use |:trust| to\n+ manage trusted files. See also |vim.secure.read()|.\n+\n+ Compare 'exrc' to |editorconfig|:\n+ - 'exrc' can execute any code; editorconfig only specifies settings.\n+ - 'exrc' is Nvim-specific; editorconfig works in other editors.\n+\n+ This option cannot be set from a |modeline| or in the |sandbox|, for\n+ security reasons.\n+ ]=],\n+ full_name = 'exrc',\n+ scope = { 'global' },\n+ secure = true,\n+ short_desc = N_('read .nvimrc and .exrc in the current directory'),\n+ type = 'bool',\n+ varname = 'p_exrc',\n+ },\n+ {\n+ abbreviation = 'fenc',\n+ alloced = true,\n+ cb = 'did_set_encoding',\n+ defaults = { if_true = '' },\n+ desc = [=[\n+ File-content encoding for the current buffer. Conversion is done with\n+ iconv() or as specified with 'charconvert'.\n+\n+ When 'fileencoding' is not UTF-8, conversion will be done when\n+ writing the file. For reading see below.\n+ When 'fileencoding' is empty, the file will be saved with UTF-8\n+ encoding (no conversion when reading or writing a file).\n+\n+ WARNING: Conversion to a non-Unicode encoding can cause loss of\n+ information!\n+\n+ See |encoding-names| for the possible values. Additionally, values may be\n+ specified that can be handled by the converter, see\n+ |mbyte-conversion|.\n+\n+ When reading a file 'fileencoding' will be set from 'fileencodings'.\n+ To read a file in a certain encoding it won't work by setting\n+ 'fileencoding', use the |++enc| argument. One exception: when\n+ 'fileencodings' is empty the value of 'fileencoding' is used.\n+ For a new file the global value of 'fileencoding' is used.\n+\n+ Prepending \"8bit-\" and \"2byte-\" has no meaning here, they are ignored.\n+ When the option is set, the value is converted to lowercase. Thus\n+ you can set it with uppercase values too. '_' characters are\n+ replaced with '-'. If a name is recognized from the list at\n+ |encoding-names|, it is replaced by the standard name. For example\n+ \"ISO8859-2\" becomes \"iso-8859-2\".\n+\n+ When this option is set, after starting to edit a file, the 'modified'\n+ option is set, because the file would be different when written.\n+\n+ Keep in mind that changing 'fenc' from a modeline happens\n+ AFTER the text has been read, thus it applies to when the file will be\n+ written. If you do set 'fenc' in a modeline, you might want to set\n+ 'nomodified' to avoid not being able to \":q\".\n+\n+ This option cannot be changed when 'modifiable' is off.\n+ ]=],\n+ full_name = 'fileencoding',\n+ no_mkrc = true,\n+ redraw = { 'statuslines', 'current_buffer' },\n+ scope = { 'buffer' },\n+ short_desc = N_('file encoding for multi-byte text'),\n+ tags = { 'E213' },\n+ type = 'string',\n+ varname = 'p_fenc',\n+ },\n+ {\n+ abbreviation = 'fencs',\n+ defaults = { if_true = 'ucs-bom,utf-8,default,latin1' },\n+ deny_duplicates = true,\n+ desc = [=[\n+ This is a list of character encodings considered when starting to edit\n+ an existing file. When a file is read, Vim tries to use the first\n+ mentioned character encoding. If an error is detected, the next one\n+ in the list is tried. When an encoding is found that works,\n+ 'fileencoding' is set to it. If all fail, 'fileencoding' is set to\n+ an empty string, which means that UTF-8 is used.\n+ \tWARNING: Conversion can cause loss of information! You can use\n+ \tthe |++bad| argument to specify what is done with characters\n+ \tthat can't be converted.\n+ For an empty file or a file with only ASCII characters most encodings\n+ will work and the first entry of 'fileencodings' will be used (except\n+ \"ucs-bom\", which requires the BOM to be present). If you prefer\n+ another encoding use an BufReadPost autocommand event to test if your\n+ preferred encoding is to be used. Example: >\n+ \tau BufReadPost * if search('\\S', 'w') == 0 |\n+ \t\t\\ set fenc=iso-2022-jp | endif\n+ <\tThis sets 'fileencoding' to \"iso-2022-jp\" if the file does not contain\n+ non-blank characters.\n+ When the |++enc| argument is used then the value of 'fileencodings' is\n+ not used.\n+ Note that 'fileencodings' is not used for a new file, the global value\n+ of 'fileencoding' is used instead. You can set it with: >\n+ \t:setglobal fenc=iso-8859-2\n+ <\tThis means that a non-existing file may get a different encoding than\n+ an empty file.\n+ The special value \"ucs-bom\" can be used to check for a Unicode BOM\n+ (Byte Order Mark) at the start of the file. It must not be preceded\n+ by \"utf-8\" or another Unicode encoding for this to work properly.\n+ An entry for an 8-bit encoding (e.g., \"latin1\") should be the last,\n+ because Vim cannot detect an error, thus the encoding is always\n+ accepted.\n+ The special value \"default\" can be used for the encoding from the\n+ environment. It is useful when your environment uses a non-latin1\n+ encoding, such as Russian.\n+ When a file contains an illegal UTF-8 byte sequence it won't be\n+ recognized as \"utf-8\". You can use the |8g8| command to find the\n+ illegal byte sequence.\n+ WRONG VALUES:\t\t\tWHAT'S WRONG:\n+ \tlatin1,utf-8\t\t\"latin1\" will always be used\n+ \tutf-8,ucs-bom,latin1\tBOM won't be recognized in an utf-8\n+ \t\t\t\tfile\n+ \tcp1250,latin1\t\t\"cp1250\" will always be used\n+ If 'fileencodings' is empty, 'fileencoding' is not modified.\n+ See 'fileencoding' for the possible values.\n+ Setting this option does not have an effect until the next time a file\n+ is read.\n+ ]=],\n+ full_name = 'fileencodings',\n+ list = 'onecomma',\n+ scope = { 'global' },\n+ short_desc = N_('automatically detected character encodings'),\n+ type = 'string',\n+ varname = 'p_fencs',\n+ },\n+ {\n+ abbreviation = 'ff',\n+ alloced = true,\n+ cb = 'did_set_fileformat',\n+ defaults = {\n+ if_true = macros('DFLT_FF'),\n+ doc = 'Windows: \"dos\", Unix: \"unix\"',\n+ },\n+ desc = [=[\n+ This gives the of the current buffer, which is used for\n+ reading/writing the buffer from/to a file:\n+ dos\t \n+ unix \n+ mac\t \n+ When \"dos\" is used, CTRL-Z at the end of a file is ignored.\n+ See |file-formats| and |file-read|.\n+ For the character encoding of the file see 'fileencoding'.\n+ When 'binary' is set, the value of 'fileformat' is ignored, file I/O\n+ works like it was set to \"unix\".\n+ This option is set automatically when starting to edit a file and\n+ 'fileformats' is not empty and 'binary' is off.\n+ When this option is set, after starting to edit a file, the 'modified'\n+ option is set, because the file would be different when written.\n+ This option cannot be changed when 'modifiable' is off.\n+ ]=],\n+ full_name = 'fileformat',\n+ no_mkrc = true,\n+ redraw = { 'curswant', 'statuslines' },\n+ scope = { 'buffer' },\n+ short_desc = N_('file format used for file I/O'),\n+ type = 'string',\n+ varname = 'p_ff',\n+ },\n+ {\n+ abbreviation = 'ffs',\n+ cb = 'did_set_fileformats',\n+ defaults = {\n+ if_true = macros('DFLT_FFS_VIM'),\n+ doc = 'Windows: \"dos,unix\", Unix: \"unix,dos\"',\n+ },\n+ deny_duplicates = true,\n+ desc = [=[\n+ This gives the end-of-line () formats that will be tried when\n+ starting to edit a new buffer and when reading a file into an existing\n+ buffer:\n+ - When empty, the format defined with 'fileformat' will be used\n+ always. It is not set automatically.\n+ - When set to one name, that format will be used whenever a new buffer\n+ is opened. 'fileformat' is set accordingly for that buffer. The\n+ 'fileformats' name will be used when a file is read into an existing\n+ buffer, no matter what 'fileformat' for that buffer is set to.\n+ - When more than one name is present, separated by commas, automatic\n+ detection will be done when reading a file. When starting to\n+ edit a file, a check is done for the :\n+ 1. If all lines end in , and 'fileformats' includes \"dos\",\n+ 'fileformat' is set to \"dos\".\n+ 2. If a is found and 'fileformats' includes \"unix\", 'fileformat'\n+ is set to \"unix\". Note that when a is found without a\n+ preceding , \"unix\" is preferred over \"dos\".\n+ 3. If 'fileformat' has not yet been set, and if a is found, and\n+ if 'fileformats' includes \"mac\", 'fileformat' is set to \"mac\".\n+ This means that \"mac\" is only chosen when:\n+ \"unix\" is not present or no is found in the file, and\n+ \"dos\" is not present or no is found in the file.\n+ Except: if \"unix\" was chosen, but there is a before\n+ the first , and there appear to be more s than s in\n+ the first few lines, \"mac\" is used.\n+ 4. If 'fileformat' is still not set, the first name from\n+ 'fileformats' is used.\n+ When reading a file into an existing buffer, the same is done, but\n+ this happens like 'fileformat' has been set appropriately for that\n+ file only, the option is not changed.\n+ When 'binary' is set, the value of 'fileformats' is not used.\n+\n+ When Vim starts up with an empty buffer the first item is used. You\n+ can overrule this by setting 'fileformat' in your .vimrc.\n+\n+ For systems with a Dos-like (), when reading files that\n+ are \":source\"ed and for vimrc files, automatic detection may be\n+ done:\n+ - When 'fileformats' is empty, there is no automatic detection. Dos\n+ format will be used.\n+ - When 'fileformats' is set to one or more names, automatic detection\n+ is done. This is based on the first in the file: If there is a\n+ in front of it, Dos format is used, otherwise Unix format is\n+ used.\n+ Also see |file-formats|.\n+ ]=],\n+ full_name = 'fileformats',\n+ list = 'onecomma',\n+ scope = { 'global' },\n+ short_desc = N_(\"automatically detected values for 'fileformat'\"),\n+ type = 'string',\n+ varname = 'p_ffs',\n+ },\n+ {\n+ abbreviation = 'fic',\n+ defaults = {\n+ condition = 'CASE_INSENSITIVE_FILENAME',\n+ if_false = false,\n+ if_true = true,\n+ doc = [[on for systems where case in file\n+ names is normally ignored]],\n+ },\n+ desc = [=[\n+ When set case is ignored when using file names and directories.\n+ See 'wildignorecase' for only ignoring case when doing completion.\n+ ]=],\n+ full_name = 'fileignorecase',\n+ scope = { 'global' },\n+ short_desc = N_('ignore case when using file names'),\n+ type = 'bool',\n+ varname = 'p_fic',\n+ },\n+ {\n+ abbreviation = 'ft',\n+ alloced = true,\n+ cb = 'did_set_filetype_or_syntax',\n+ defaults = { if_true = '' },\n+ desc = [=[\n+ When this option is set, the FileType autocommand event is triggered.\n+ All autocommands that match with the value of this option will be\n+ executed. Thus the value of 'filetype' is used in place of the file\n+ name.\n+ Otherwise this option does not always reflect the current file type.\n+ This option is normally set when the file type is detected. To enable\n+ this use the \":filetype on\" command. |:filetype|\n+ Setting this option to a different value is most useful in a modeline,\n+ for a file for which the file type is not automatically recognized.\n+ Example, for in an IDL file: >\n+ \t/* vim: set filetype=idl : */\n+ <\t|FileType| |filetypes|\n+ When a dot appears in the value then this separates two filetype\n+ names. Example: >\n+ \t/* vim: set filetype=c.doxygen : */\n+ <\tThis will use the \"c\" filetype first, then the \"doxygen\" filetype.\n+ This works both for filetype plugins and for syntax files. More than\n+ one dot may appear.\n+ This option is not copied to another buffer, independent of the 's' or\n+ 'S' flag in 'cpoptions'.\n+ Only normal file name characters can be used, `/\\*?[|<>` are illegal.\n+ ]=],\n+ expand = true,\n+ full_name = 'filetype',\n+ noglob = true,\n+ normal_fname_chars = true,\n+ scope = { 'buffer' },\n+ short_desc = N_('type of file, used for autocommands'),\n+ type = 'string',\n+ varname = 'p_ft',\n+ },\n+ {\n+ abbreviation = 'fcs',\n+ alloced = true,\n+ cb = 'did_set_chars_option',\n+ defaults = { if_true = '' },\n+ deny_duplicates = true,\n+ desc = [=[\n+ Characters to fill the statuslines, vertical separators and special\n+ lines in the window.\n+ It is a comma-separated list of items. Each item has a name, a colon\n+ and the value of that item:\n+\n+ item\t\tdefault\t\tUsed for ~\n+ stl\t\t' ' or '^'\tstatusline of the current window\n+ stlnc\t\t' ' or '='\tstatusline of the non-current windows\n+ wbr\t\t' '\t\twindow bar\n+ horiz\t\t'─' or '-'\thorizontal separators |:split|\n+ horizup\t'┴' or '-'\tupwards facing horizontal separator\n+ horizdown\t'┬' or '-'\tdownwards facing horizontal separator\n+ vert\t\t'│' or '|'\tvertical separators |:vsplit|\n+ vertleft\t'┤' or '|'\tleft facing vertical separator\n+ vertright\t'├' or '|'\tright facing vertical separator\n+ verthoriz\t'┼' or '+'\toverlapping vertical and horizontal\n+ \t\t\t\tseparator\n+ fold\t\t'·' or '-'\tfilling 'foldtext'\n+ foldopen\t'-'\t\tmark the beginning of a fold\n+ foldclose\t'+'\t\tshow a closed fold\n+ foldsep\t'│' or '|' open fold middle marker\n+ diff\t\t'-'\t\tdeleted lines of the 'diff' option\n+ msgsep\t' '\t\tmessage separator 'display'\n+ eob\t\t'~'\t\tempty lines at the end of a buffer\n+ lastline\t'@'\t\t'display' contains lastline/truncate\n+\n+ Any one that is omitted will fall back to the default. For \"stl\" and\n+ \"stlnc\" the space will be used when there is highlighting, '^' or '='\n+ otherwise.\n+\n+ Note that \"horiz\", \"horizup\", \"horizdown\", \"vertleft\", \"vertright\" and\n+ \"verthoriz\" are only used when 'laststatus' is 3, since only vertical\n+ window separators are used otherwise.\n+\n+ If 'ambiwidth' is \"double\" then \"horiz\", \"horizup\", \"horizdown\",\n+ \"vert\", \"vertleft\", \"vertright\", \"verthoriz\", \"foldsep\" and \"fold\"\n+ default to single-byte alternatives.\n+\n+ Example: >\n+ :set fillchars=stl:^,stlnc:=,vert:│,fold:·,diff:-\n+ <\tThis is similar to the default, except that these characters will also\n+ be used when there is highlighting.\n+\n+ For the \"stl\", \"stlnc\", \"foldopen\", \"foldclose\" and \"foldsep\" items\n+ single-byte and multibyte characters are supported. But double-width\n+ characters are not supported.\n+\n+ The highlighting used for these items:\n+ item\t\thighlight group ~\n+ stl\t\tStatusLine\t\t|hl-StatusLine|\n+ stlnc\t\tStatusLineNC\t\t|hl-StatusLineNC|\n+ wbr\t\tWinBar\t\t\t|hl-WinBar| or |hl-WinBarNC|\n+ horiz\t\tWinSeparator\t\t|hl-WinSeparator|\n+ horizup\tWinSeparator\t\t|hl-WinSeparator|\n+ horizdown\tWinSeparator\t\t|hl-WinSeparator|\n+ vert\t\tWinSeparator\t\t|hl-WinSeparator|\n+ vertleft\tWinSeparator\t\t|hl-WinSeparator|\n+ vertright\tWinSeparator\t\t|hl-WinSeparator|\n+ verthoriz\tWinSeparator\t\t|hl-WinSeparator|\n+ fold\t\tFolded\t\t\t|hl-Folded|\n+ diff\t\tDiffDelete\t\t|hl-DiffDelete|\n+ eob\t\tEndOfBuffer\t\t|hl-EndOfBuffer|\n+ lastline\tNonText\t\t\t|hl-NonText|\n+ ]=],\n+ full_name = 'fillchars',\n+ list = 'onecomma',\n+ redraw = { 'current_window' },\n+ scope = { 'global', 'window' },\n+ short_desc = N_('characters to use for displaying special items'),\n+ type = 'string',\n+ varname = 'p_fcs',\n+ },\n+ {\n+ abbreviation = 'fixeol',\n+ cb = 'did_set_eof_eol_fixeol_bomb',\n+ defaults = { if_true = true },\n+ desc = [=[\n+ When writing a file and this option is on, at the end of file\n+ will be restored if missing. Turn this option off if you want to\n+ preserve the situation from the original file.\n+ When the 'binary' option is set the value of this option doesn't\n+ matter.\n+ See the 'endofline' option.\n+ See |eol-and-eof| for example settings.\n+ ]=],\n+ full_name = 'fixendofline',\n+ redraw = { 'statuslines' },\n+ scope = { 'buffer' },\n+ short_desc = N_('make sure last line in file has '),\n+ type = 'bool',\n+ varname = 'p_fixeol',\n+ },\n+ {\n+ abbreviation = 'fcl',\n+ cb = 'did_set_foldclose',\n+ defaults = { if_true = '' },\n+ deny_duplicates = true,\n+ desc = [=[\n+ When set to \"all\", a fold is closed when the cursor isn't in it and\n+ its level is higher than 'foldlevel'. Useful if you want folds to\n+ automatically close when moving out of them.\n+ ]=],\n+ full_name = 'foldclose',\n+ list = 'onecomma',\n+ redraw = { 'current_window' },\n+ scope = { 'global' },\n+ short_desc = N_('close a fold when the cursor leaves it'),\n+ type = 'string',\n+ varname = 'p_fcl',\n+ },\n+ {\n+ abbreviation = 'fdc',\n+ alloced = true,\n+ cb = 'did_set_foldcolumn',\n+ defaults = { if_true = '0' },\n+ desc = [=[\n+ When and how to draw the foldcolumn. Valid values are:\n+ \"auto\": resize to the minimum amount of folds to display.\n+ \"auto:[1-9]\": resize to accommodate multiple folds up to the\n+ \t\t selected level\n+ 0: to disable foldcolumn\n+ \"[1-9]\": to display a fixed number of columns\n+ See |folding|.\n+ ]=],\n+ full_name = 'foldcolumn',\n+ redraw = { 'current_window' },\n+ scope = { 'window' },\n+ short_desc = N_('width of the column used to indicate folds'),\n+ type = 'string',\n+ },\n+ {\n+ abbreviation = 'fen',\n+ defaults = { if_true = true },\n+ desc = [=[\n+ When off, all folds are open. This option can be used to quickly\n+ switch between showing all text unfolded and viewing the text with\n+ folds (including manually opened or closed folds). It can be toggled\n+ with the |zi| command. The 'foldcolumn' will remain blank when\n+ 'foldenable' is off.\n+ This option is set by commands that create a new fold or close a fold.\n+ See |folding|.\n+ ]=],\n+ full_name = 'foldenable',\n+ redraw = { 'current_window' },\n+ scope = { 'window' },\n+ short_desc = N_('set to display all folds open'),\n+ type = 'bool',\n+ },\n+ {\n+ abbreviation = 'fde',\n+ alloced = true,\n+ cb = 'did_set_foldexpr',\n+ defaults = { if_true = '0' },\n+ desc = [=[\n+ The expression used for when 'foldmethod' is \"expr\". It is evaluated\n+ for each line to obtain its fold level. The context is set to the\n+ script where 'foldexpr' was set, script-local items can be accessed.\n+ See |fold-expr| for the usage.\n+\n+ The expression will be evaluated in the |sandbox| if set from a\n+ modeline, see |sandbox-option|.\n+ This option can't be set from a |modeline| when the 'diff' option is\n+ on or the 'modelineexpr' option is off.\n+\n+ It is not allowed to change text or jump to another window while\n+ evaluating 'foldexpr' |textlock|.\n+ ]=],\n+ full_name = 'foldexpr',\n+ modelineexpr = true,\n+ redraw = { 'current_window' },\n+ scope = { 'window' },\n+ short_desc = N_('expression used when \\'foldmethod\\' is \"expr\"'),\n+ type = 'string',\n+ },\n+ {\n+ abbreviation = 'fdi',\n+ alloced = true,\n+ cb = 'did_set_foldignore',\n+ defaults = { if_true = '#' },\n+ desc = [=[\n+ Used only when 'foldmethod' is \"indent\". Lines starting with\n+ characters in 'foldignore' will get their fold level from surrounding\n+ lines. White space is skipped before checking for this character.\n+ The default \"#\" works well for C programs. See |fold-indent|.\n+ ]=],\n+ full_name = 'foldignore',\n+ redraw = { 'current_window' },\n+ scope = { 'window' },\n+ short_desc = N_('ignore lines when \\'foldmethod\\' is \"indent\"'),\n+ type = 'string',\n+ },\n+ {\n+ abbreviation = 'fdl',\n+ cb = 'did_set_foldlevel',\n+ defaults = { if_true = 0 },\n+ desc = [=[\n+ Sets the fold level: Folds with a higher level will be closed.\n+ Setting this option to zero will close all folds. Higher numbers will\n+ close fewer folds.\n+ This option is set by commands like |zm|, |zM| and |zR|.\n+ See |fold-foldlevel|.\n+ ]=],\n+ full_name = 'foldlevel',\n+ redraw = { 'current_window' },\n+ scope = { 'window' },\n+ short_desc = N_('close folds with a level higher than this'),\n+ type = 'number',\n+ },\n+ {\n+ abbreviation = 'fdls',\n+ defaults = { if_true = -1 },\n+ desc = [=[\n+ Sets 'foldlevel' when starting to edit another buffer in a window.\n+ Useful to always start editing with all folds closed (value zero),\n+ some folds closed (one) or no folds closed (99).\n+ This is done before reading any modeline, thus a setting in a modeline\n+ overrules this option. Starting to edit a file for |diff-mode| also\n+ ignores this option and closes all folds.\n+ It is also done before BufReadPre autocommands, to allow an autocmd to\n+ overrule the 'foldlevel' value for specific files.\n+ When the value is negative, it is not used.\n+ ]=],\n+ full_name = 'foldlevelstart',\n+ redraw = { 'curswant' },\n+ scope = { 'global' },\n+ short_desc = N_(\"'foldlevel' when starting to edit a file\"),\n+ type = 'number',\n+ varname = 'p_fdls',\n+ },\n+ {\n+ abbreviation = 'fmr',\n+ alloced = true,\n+ cb = 'did_set_foldmarker',\n+ defaults = { if_true = '{{{,}}}' },\n+ deny_duplicates = true,\n+ desc = [=[\n+ The start and end marker used when 'foldmethod' is \"marker\". There\n+ must be one comma, which separates the start and end marker. The\n+ marker is a literal string (a regular expression would be too slow).\n+ See |fold-marker|.\n+ ]=],\n+ full_name = 'foldmarker',\n+ list = 'onecomma',\n+ redraw = { 'current_window' },\n+ scope = { 'window' },\n+ short_desc = N_('markers used when \\'foldmethod\\' is \"marker\"'),\n+ type = 'string',\n+ },\n+ {\n+ abbreviation = 'fdm',\n+ alloced = true,\n+ cb = 'did_set_foldmethod',\n+ defaults = { if_true = 'manual' },\n+ desc = [=[\n+ The kind of folding used for the current window. Possible values:\n+ |fold-manual|\tmanual\t Folds are created manually.\n+ |fold-indent|\tindent\t Lines with equal indent form a fold.\n+ |fold-expr|\texpr\t 'foldexpr' gives the fold level of a line.\n+ |fold-marker|\tmarker\t Markers are used to specify folds.\n+ |fold-syntax|\tsyntax\t Syntax highlighting items specify folds.\n+ |fold-diff|\tdiff\t Fold text that is not changed.\n+ ]=],\n+ full_name = 'foldmethod',\n+ redraw = { 'current_window' },\n+ scope = { 'window' },\n+ short_desc = N_('folding type'),\n+ type = 'string',\n+ },\n+ {\n+ abbreviation = 'fml',\n+ cb = 'did_set_foldminlines',\n+ defaults = { if_true = 1 },\n+ desc = [=[\n+ Sets the number of screen lines above which a fold can be displayed\n+ closed. Also for manually closed folds. With the default value of\n+ one a fold can only be closed if it takes up two or more screen lines.\n+ Set to zero to be able to close folds of just one screen line.\n+ Note that this only has an effect on what is displayed. After using\n+ \"zc\" to close a fold, which is displayed open because it's smaller\n+ than 'foldminlines', a following \"zc\" may close a containing fold.\n+ ]=],\n+ full_name = 'foldminlines',\n+ redraw = { 'current_window' },\n+ scope = { 'window' },\n+ short_desc = N_('minimum number of lines for a fold to be closed'),\n+ type = 'number',\n+ },\n+ {\n+ abbreviation = 'fdn',\n+ cb = 'did_set_foldnestmax',\n+ defaults = { if_true = 20 },\n+ desc = [=[\n+ Sets the maximum nesting of folds for the \"indent\" and \"syntax\"\n+ methods. This avoids that too many folds will be created. Using more\n+ than 20 doesn't work, because the internal limit is 20.\n+ ]=],\n+ full_name = 'foldnestmax',\n+ redraw = { 'current_window' },\n+ scope = { 'window' },\n+ short_desc = N_('maximum fold depth'),\n+ type = 'number',\n+ },\n+ {\n+ abbreviation = 'fdo',\n+ cb = 'did_set_foldopen',\n+ defaults = { if_true = 'block,hor,mark,percent,quickfix,search,tag,undo' },\n+ deny_duplicates = true,\n+ desc = [=[\n+ Specifies for which type of commands folds will be opened, if the\n+ command moves the cursor into a closed fold. It is a comma-separated\n+ list of items.\n+ NOTE: When the command is part of a mapping this option is not used.\n+ Add the |zv| command to the mapping to get the same effect.\n+ (rationale: the mapping may want to control opening folds itself)\n+\n+ \titem\t\tcommands ~\n+ \tall\t\tany\n+ \tblock\t\t(, {, [[, [{, etc.\n+ \thor\t\thorizontal movements: \"l\", \"w\", \"fx\", etc.\n+ \tinsert\t\tany command in Insert mode\n+ \tjump\t\tfar jumps: \"G\", \"gg\", etc.\n+ \tmark\t\tjumping to a mark: \"'m\", CTRL-O, etc.\n+ \tpercent\t\t\"%\"\n+ \tquickfix\t\":cn\", \":crew\", \":make\", etc.\n+ \tsearch\t\tsearch for a pattern: \"/\", \"n\", \"*\", \"gd\", etc.\n+ \t\t\t(not for a search pattern in a \":\" command)\n+ \t\t\tAlso for |[s| and |]s|.\n+ \ttag\t\tjumping to a tag: \":ta\", CTRL-T, etc.\n+ \tundo\t\tundo or redo: \"u\" and CTRL-R\n+ When a movement command is used for an operator (e.g., \"dl\" or \"y%\")\n+ this option is not used. This means the operator will include the\n+ whole closed fold.\n+ Note that vertical movements are not here, because it would make it\n+ very difficult to move onto a closed fold.\n+ In insert mode the folds containing the cursor will always be open\n+ when text is inserted.\n+ To close folds you can re-apply 'foldlevel' with the |zx| command or\n+ set the 'foldclose' option to \"all\".\n+ ]=],\n+ full_name = 'foldopen',\n+ list = 'onecomma',\n+ redraw = { 'curswant' },\n+ scope = { 'global' },\n+ short_desc = N_('for which commands a fold will be opened'),\n+ type = 'string',\n+ varname = 'p_fdo',\n+ },\n+ {\n+ abbreviation = 'fdt',\n+ alloced = true,\n+ cb = 'did_set_optexpr',\n+ defaults = { if_true = 'foldtext()' },\n+ desc = [=[\n+ An expression which is used to specify the text displayed for a closed\n+ fold. The context is set to the script where 'foldexpr' was set,\n+ script-local items can be accessed. See |fold-foldtext| for the\n+ usage.\n+\n+ The expression will be evaluated in the |sandbox| if set from a\n+ modeline, see |sandbox-option|.\n+ This option cannot be set in a modeline when 'modelineexpr' is off.\n+\n+ It is not allowed to change text or jump to another window while\n+ evaluating 'foldtext' |textlock|.\n+ ]=],\n+ full_name = 'foldtext',\n+ modelineexpr = true,\n+ redraw = { 'current_window' },\n+ scope = { 'window' },\n+ short_desc = N_('expression used to display for a closed fold'),\n+ type = 'string',\n+ },\n+ {\n+ abbreviation = 'fex',\n+ alloced = true,\n+ cb = 'did_set_optexpr',\n+ defaults = { if_true = '' },\n+ desc = [=[\n+ Expression which is evaluated to format a range of lines for the |gq|\n+ operator or automatic formatting (see 'formatoptions'). When this\n+ option is empty 'formatprg' is used.\n+\n+ The |v:lnum| variable holds the first line to be formatted.\n+ The |v:count| variable holds the number of lines to be formatted.\n+ The |v:char| variable holds the character that is going to be\n+ \t inserted if the expression is being evaluated due to\n+ \t automatic formatting. This can be empty. Don't insert\n+ \t it yet!\n+\n+ Example: >\n+ \t:set formatexpr=mylang#Format()\n+ <\tThis will invoke the mylang#Format() function in the\n+ autoload/mylang.vim file in 'runtimepath'. |autoload|\n+\n+ The expression is also evaluated when 'textwidth' is set and adding\n+ text beyond that limit. This happens under the same conditions as\n+ when internal formatting is used. Make sure the cursor is kept in the\n+ same spot relative to the text then! The |mode()| function will\n+ return \"i\" or \"R\" in this situation.\n+\n+ When the expression evaluates to non-zero Vim will fall back to using\n+ the internal format mechanism.\n+\n+ If the expression starts with s: or ||, then it is replaced with\n+ the script ID (|local-function|). Example: >\n+ \tset formatexpr=s:MyFormatExpr()\n+ \tset formatexpr=SomeFormatExpr()\n+ <\tOtherwise, the expression is evaluated in the context of the script\n+ where the option was set, thus script-local items are available.\n+\n+ The expression will be evaluated in the |sandbox| when set from a\n+ modeline, see |sandbox-option|. That stops the option from working,\n+ since changing the buffer text is not allowed.\n+ This option cannot be set in a modeline when 'modelineexpr' is off.\n+ NOTE: This option is set to \"\" when 'compatible' is set.\n+ ]=],\n+ full_name = 'formatexpr',\n+ modelineexpr = true,\n+ scope = { 'buffer' },\n+ short_desc = N_('expression used with \"gq\" command'),\n+ type = 'string',\n+ varname = 'p_fex',\n+ },\n+ {\n+ abbreviation = 'fo',\n+ alloced = true,\n+ cb = 'did_set_formatoptions',\n+ defaults = { if_true = macros('DFLT_FO_VIM') },\n+ desc = [=[\n+ This is a sequence of letters which describes how automatic\n+ formatting is to be done. See |fo-table|. Commas can be inserted for\n+ readability.\n+ To avoid problems with flags that are added in the future, use the\n+ \"+=\" and \"-=\" feature of \":set\" |add-option-flags|.\n+ ]=],\n+ full_name = 'formatoptions',\n+ list = 'flags',\n+ scope = { 'buffer' },\n+ short_desc = N_('how automatic formatting is to be done'),\n+ type = 'string',\n+ varname = 'p_fo',\n+ },\n+ {\n+ abbreviation = 'flp',\n+ alloced = true,\n+ defaults = { if_true = '^\\\\s*\\\\d\\\\+[\\\\]:.)}\\\\t ]\\\\s*' },\n+ desc = [=[\n+ A pattern that is used to recognize a list header. This is used for\n+ the \"n\" flag in 'formatoptions'.\n+ The pattern must match exactly the text that will be the indent for\n+ the line below it. You can use |/\\ze| to mark the end of the match\n+ while still checking more characters. There must be a character\n+ following the pattern, when it matches the whole line it is handled\n+ like there is no match.\n+ The default recognizes a number, followed by an optional punctuation\n+ character and white space.\n+ ]=],\n+ full_name = 'formatlistpat',\n+ scope = { 'buffer' },\n+ short_desc = N_('pattern used to recognize a list header'),\n+ type = 'string',\n+ varname = 'p_flp',\n+ },\n+ {\n+ abbreviation = 'fp',\n+ defaults = { if_true = '' },\n+ desc = [=[\n+ The name of an external program that will be used to format the lines\n+ selected with the |gq| operator. The program must take the input on\n+ stdin and produce the output on stdout. The Unix program \"fmt\" is\n+ such a program.\n+ If the 'formatexpr' option is not empty it will be used instead.\n+ Otherwise, if 'formatprg' option is an empty string, the internal\n+ format function will be used |C-indenting|.\n+ Environment variables are expanded |:set_env|. See |option-backslash|\n+ about including spaces and backslashes.\n+ This option cannot be set from a |modeline| or in the |sandbox|, for\n+ security reasons.\n+ ]=],\n+ expand = true,\n+ full_name = 'formatprg',\n+ scope = { 'global', 'buffer' },\n+ secure = true,\n+ short_desc = N_('name of external program used with \"gq\" command'),\n+ type = 'string',\n+ varname = 'p_fp',\n+ },\n+ {\n+ abbreviation = 'fs',\n+ defaults = { if_true = false },\n+ desc = [=[\n+ When on, the OS function fsync() will be called after saving a file\n+ (|:write|, |writefile()|, …), |swap-file|, |undo-persistence| and |shada-file|.\n+ This flushes the file to disk, ensuring that it is safely written.\n+ Slow on some systems: writing buffers, quitting Nvim, and other\n+ operations may sometimes take a few seconds.\n+\n+ Files are ALWAYS flushed ('fsync' is ignored) when:\n+ - |CursorHold| event is triggered\n+ - |:preserve| is called\n+ - system signals low battery life\n+ - Nvim exits abnormally\n+\n+ This option cannot be set from a |modeline| or in the |sandbox|, for\n+ security reasons.\n+ ]=],\n+ full_name = 'fsync',\n+ scope = { 'global' },\n+ secure = true,\n+ short_desc = N_('whether to invoke fsync() after file write'),\n+ type = 'bool',\n+ varname = 'p_fs',\n+ },\n+ {\n+ abbreviation = 'gd',\n+ defaults = { if_true = false },\n+ desc = [=[\n+ When on, the \":substitute\" flag 'g' is default on. This means that\n+ all matches in a line are substituted instead of one. When a 'g' flag\n+ is given to a \":substitute\" command, this will toggle the substitution\n+ of all or one match. See |complex-change|.\n+\n+ \tcommand\t\t'gdefault' on\t'gdefault' off\t~\n+ \t:s///\t\t subst. all\t subst. one\n+ \t:s///g\t\t subst. one\t subst. all\n+ \t:s///gg\t\t subst. all\t subst. one\n+\n+ DEPRECATED: Setting this option may break plugins that are not aware\n+ of this option. Also, many users get confused that adding the /g flag\n+ has the opposite effect of that it normally does.\n+ ]=],\n+ full_name = 'gdefault',\n+ scope = { 'global' },\n+ short_desc = N_('the \":substitute\" flag \\'g\\' is default on'),\n+ type = 'bool',\n+ varname = 'p_gd',\n+ },\n+ {\n+ abbreviation = 'gfm',\n+ defaults = { if_true = macros('DFLT_GREPFORMAT') },\n+ deny_duplicates = true,\n+ desc = [=[\n+ Format to recognize for the \":grep\" command output.\n+ This is a scanf-like string that uses the same format as the\n+ 'errorformat' option: see |errorformat|.\n+ ]=],\n+ full_name = 'grepformat',\n+ list = 'onecomma',\n+ scope = { 'global' },\n+ short_desc = N_(\"format of 'grepprg' output\"),\n+ type = 'string',\n+ varname = 'p_gefm',\n+ },\n+ {\n+ abbreviation = 'gp',\n+ defaults = {\n+ condition = 'MSWIN',\n+ if_false = 'grep -n $* /dev/null',\n+ if_true = 'findstr /n $* nul',\n+ doc = [[\"grep -n \",\n+ Unix: \"grep -n $* /dev/null\"]],\n+ },\n+ desc = [=[\n+ Program to use for the |:grep| command. This option may contain '%'\n+ and '#' characters, which are expanded like when used in a command-\n+ line. The placeholder \"$*\" is allowed to specify where the arguments\n+ will be included. Environment variables are expanded |:set_env|. See\n+ |option-backslash| about including spaces and backslashes.\n+ When your \"grep\" accepts the \"-H\" argument, use this to make \":grep\"\n+ also work well with a single file: >\n+ \t:set grepprg=grep\\ -nH\n+ <\tSpecial value: When 'grepprg' is set to \"internal\" the |:grep| command\n+ works like |:vimgrep|, |:lgrep| like |:lvimgrep|, |:grepadd| like\n+ |:vimgrepadd| and |:lgrepadd| like |:lvimgrepadd|.\n+ See also the section |:make_makeprg|, since most of the comments there\n+ apply equally to 'grepprg'.\n+ This option cannot be set from a |modeline| or in the |sandbox|, for\n+ security reasons.\n+ ]=],\n+ expand = true,\n+ full_name = 'grepprg',\n+ scope = { 'global', 'buffer' },\n+ secure = true,\n+ short_desc = N_('program to use for \":grep\"'),\n+ type = 'string',\n+ varname = 'p_gp',\n+ },\n+ {\n+ abbreviation = 'gcr',\n+ cb = 'did_set_guicursor',\n+ defaults = { if_true = 'n-v-c-sm:block,i-ci-ve:ver25,r-cr-o:hor20' },\n+ deny_duplicates = true,\n+ desc = [=[\n+ Configures the cursor style for each mode. Works in the GUI and many\n+ terminals. See |tui-cursor-shape|.\n+\n+ To disable cursor-styling, reset the option: >\n+ \t:set guicursor=\n+\n+ <\tTo enable mode shapes, \"Cursor\" highlight, and blinking: >\n+ \t:set guicursor=n-v-c:block,i-ci-ve:ver25,r-cr:hor20,o:hor50\n+ \t \\,a:blinkwait700-blinkoff400-blinkon250-Cursor/lCursor\n+ \t \\,sm:block-blinkwait175-blinkoff150-blinkon175\n+\n+ <\tThe option is a comma-separated list of parts. Each part consists of a\n+ mode-list and an argument-list:\n+ \tmode-list:argument-list,mode-list:argument-list,..\n+ The mode-list is a dash separated list of these modes:\n+ \tn\tNormal mode\n+ \tv\tVisual mode\n+ \tve\tVisual mode with 'selection' \"exclusive\" (same as 'v',\n+ \t\tif not specified)\n+ \to\tOperator-pending mode\n+ \ti\tInsert mode\n+ \tr\tReplace mode\n+ \tc\tCommand-line Normal (append) mode\n+ \tci\tCommand-line Insert mode\n+ \tcr\tCommand-line Replace mode\n+ \tsm\tshowmatch in Insert mode\n+ \ta\tall modes\n+ The argument-list is a dash separated list of these arguments:\n+ \thor{N}\thorizontal bar, {N} percent of the character height\n+ \tver{N}\tvertical bar, {N} percent of the character width\n+ \tblock\tblock cursor, fills the whole character\n+ \t\t- Only one of the above three should be present.\n+ \t\t- Default is \"block\" for each mode.\n+ \tblinkwait{N}\t\t\t\t*cursor-blinking*\n+ \tblinkon{N}\n+ \tblinkoff{N}\n+ \t\tblink times for cursor: blinkwait is the delay before\n+ \t\tthe cursor starts blinking, blinkon is the time that\n+ \t\tthe cursor is shown and blinkoff is the time that the\n+ \t\tcursor is not shown. Times are in msec. When one of\n+ \t\tthe numbers is zero, there is no blinking. E.g.: >\n+ \t\t\t:set guicursor=n:blinkon0\n+ <\t\t\t- Default is \"blinkon0\" for each mode.\n+ \t{group-name}\n+ \t\tHighlight group that decides the color and font of the\n+ \t\tcursor.\n+ \t\tIn the |TUI|:\n+ \t\t- |inverse|/reverse and no group-name are interpreted\n+ \t\t as \"host-terminal default cursor colors\" which\n+ \t\t typically means \"inverted bg and fg colors\".\n+ \t\t- |ctermfg| and |guifg| are ignored.\n+ \t{group-name}/{group-name}\n+ \t\tTwo highlight group names, the first is used when\n+ \t\tno language mappings are used, the other when they\n+ \t\tare. |language-mapping|\n+\n+ Examples of parts:\n+ n-c-v:block-nCursor\tIn Normal, Command-line and Visual mode, use a\n+ \t\t\tblock cursor with colors from the \"nCursor\"\n+ \t\t\thighlight group\n+ n-v-c-sm:block,i-ci-ve:ver25-Cursor,r-cr-o:hor20\n+ \t\t\tIn Normal et al. modes, use a block cursor\n+ \t\t\twith the default colors defined by the host\n+ \t\t\tterminal. In Insert-likes modes, use\n+ \t\t\ta vertical bar cursor with colors from\n+ \t\t\t\"Cursor\" highlight group. In Replace-likes\n+ \t\t\tmodes, use a underline cursor with\n+ \t\t\tdefault colors.\n+ i-ci:ver30-iCursor-blinkwait300-blinkon200-blinkoff150\n+ \t\t\tIn Insert and Command-line Insert mode, use a\n+ \t\t\t30% vertical bar cursor with colors from the\n+ \t\t\t\"iCursor\" highlight group. Blink a bit\n+ \t\t\tfaster.\n+\n+ The 'a' mode is different. It will set the given argument-list for\n+ all modes. It does not reset anything to defaults. This can be used\n+ to do a common setting for all modes. For example, to switch off\n+ blinking: \"a:blinkon0\"\n+\n+ Examples of cursor highlighting: >\n+ :highlight Cursor gui=reverse guifg=NONE guibg=NONE\n+ :highlight Cursor gui=NONE guifg=bg guibg=fg\n+ <\n+ ]=],\n+ full_name = 'guicursor',\n+ list = 'onecomma',\n+ scope = { 'global' },\n+ short_desc = N_('GUI: settings for cursor shape and blinking'),\n+ tags = { 'E545', 'E546', 'E548', 'E549' },\n+ type = 'string',\n+ varname = 'p_guicursor',\n+ },\n+ {\n+ abbreviation = 'gfn',\n+ defaults = { if_true = '' },\n+ desc = [=[\n+ This is a list of fonts which will be used for the GUI version of Vim.\n+ In its simplest form the value is just one font name. When\n+ the font cannot be found you will get an error message. To try other\n+ font names a list can be specified, font names separated with commas.\n+ The first valid font is used.\n+\n+ Spaces after a comma are ignored. To include a comma in a font name\n+ precede it with a backslash. Setting an option requires an extra\n+ backslash before a space and a backslash. See also\n+ |option-backslash|. For example: >\n+ :set guifont=Screen15,\\ 7x13,font\\\\,with\\\\,commas\n+ <\twill make Vim try to use the font \"Screen15\" first, and if it fails it\n+ will try to use \"7x13\" and then \"font,with,commas\" instead.\n+\n+ If none of the fonts can be loaded, Vim will keep the current setting.\n+ If an empty font list is given, Vim will try using other resource\n+ settings (for X, it will use the Vim.font resource), and finally it\n+ will try some builtin default which should always be there (\"7x13\" in\n+ the case of X). The font names given should be \"normal\" fonts. Vim\n+ will try to find the related bold and italic fonts.\n+\n+ For Win32 and Mac OS: >\n+ :set guifont=*\n+ <\twill bring up a font requester, where you can pick the font you want.\n+\n+ The font name depends on the GUI used.\n+\n+ For Mac OSX you can use something like this: >\n+ :set guifont=Monaco:h10\n+ <\t\t\t\t\t\t\t\t*E236*\n+ Note that the fonts must be mono-spaced (all characters have the same\n+ width).\n+\n+ To preview a font on X11, you might be able to use the \"xfontsel\"\n+ program. The \"xlsfonts\" program gives a list of all available fonts.\n+\n+ For the Win32 GUI\t\t\t\t\t*E244* *E245*\n+ - takes these options in the font name:\n+ \thXX - height is XX (points, can be floating-point)\n+ \twXX - width is XX (points, can be floating-point)\n+ \tb - bold\n+ \ti - italic\n+ \tu - underline\n+ \ts - strikeout\n+ \tcXX - character set XX. Valid charsets are: ANSI, ARABIC,\n+ \t BALTIC, CHINESEBIG5, DEFAULT, EASTEUROPE, GB2312, GREEK,\n+ \t HANGEUL, HEBREW, JOHAB, MAC, OEM, RUSSIAN, SHIFTJIS,\n+ \t SYMBOL, THAI, TURKISH, VIETNAMESE ANSI and BALTIC.\n+ \t Normally you would use \"cDEFAULT\".\n+\n+ Use a ':' to separate the options.\n+ - A '_' can be used in the place of a space, so you don't need to use\n+ backslashes to escape the spaces.\n+ - Examples: >\n+ :set guifont=courier_new:h12:w5:b:cRUSSIAN\n+ :set guifont=Andale_Mono:h7.5:w4.5\n+ <\n+ ]=],\n+ deny_duplicates = true,\n+ full_name = 'guifont',\n+ list = 'onecomma',\n+ redraw = { 'ui_option' },\n+ scope = { 'global' },\n+ short_desc = N_('GUI: Name(s) of font(s) to be used'),\n+ tags = { 'E235', 'E596' },\n+ type = 'string',\n+ varname = 'p_guifont',\n+ },\n+ {\n+ abbreviation = 'gfw',\n+ defaults = { if_true = '' },\n+ deny_duplicates = true,\n+ desc = [=[\n+ Comma-separated list of fonts to be used for double-width characters.\n+ The first font that can be loaded is used.\n+ Note: The size of these fonts must be exactly twice as wide as the one\n+ specified with 'guifont' and the same height.\n+\n+ When 'guifont' has a valid font and 'guifontwide' is empty Vim will\n+ attempt to set 'guifontwide' to a matching double-width font.\n+ ]=],\n+ full_name = 'guifontwide',\n+ list = 'onecomma',\n+ redraw = { 'ui_option' },\n+ scope = { 'global' },\n+ short_desc = N_('list of font names for double-wide characters'),\n+ tags = { 'E231', 'E533', 'E534' },\n+ type = 'string',\n+ varname = 'p_guifontwide',\n+ },\n+ {\n+ abbreviation = 'go',\n+ defaults = {\n+ if_true = '',\n+ doc = '\"egmrLT\" (MS-Windows)',\n+ },\n+ desc = [=[\n+ This option only has an effect in the GUI version of Vim. It is a\n+ sequence of letters which describes what components and options of the\n+ GUI should be used.\n+ To avoid problems with flags that are added in the future, use the\n+ \"+=\" and \"-=\" feature of \":set\" |add-option-flags|.\n+\n+ Valid letters are as follows:\n+ \t\t\t\t\t\t*guioptions_a* *'go-a'*\n+ 'a'\tAutoselect: If present, then whenever VISUAL mode is started,\n+ \tor the Visual area extended, Vim tries to become the owner of\n+ \tthe windowing system's global selection. This means that the\n+ \tVisually highlighted text is available for pasting into other\n+ \tapplications as well as into Vim itself. When the Visual mode\n+ \tends, possibly due to an operation on the text, or when an\n+ \tapplication wants to paste the selection, the highlighted text\n+ \tis automatically yanked into the \"* selection register.\n+ \tThus the selection is still available for pasting into other\n+ \tapplications after the VISUAL mode has ended.\n+ \t If not present, then Vim won't become the owner of the\n+ \twindowing system's global selection unless explicitly told to\n+ \tby a yank or delete operation for the \"* register.\n+ \tThe same applies to the modeless selection.\n+ \t\t\t\t\t\t\t*'go-P'*\n+ 'P'\tLike autoselect but using the \"+ register instead of the \"*\n+ \tregister.\n+ \t\t\t\t\t\t\t*'go-A'*\n+ 'A'\tAutoselect for the modeless selection. Like 'a', but only\n+ \tapplies to the modeless selection.\n+\n+ \t 'guioptions' autoselect Visual autoselect modeless ~\n+ \t\t \"\"\t\t -\t\t\t -\n+ \t\t \"a\"\t\tyes\t\t\tyes\n+ \t\t \"A\"\t\t -\t\t\tyes\n+ \t\t \"aA\"\t\tyes\t\t\tyes\n+\n+ \t\t\t\t\t\t\t*'go-c'*\n+ 'c'\tUse console dialogs instead of popup dialogs for simple\n+ \tchoices.\n+ \t\t\t\t\t\t\t*'go-d'*\n+ 'd'\tUse dark theme variant if available.\n+ \t\t\t\t\t\t\t*'go-e'*\n+ 'e'\tAdd tab pages when indicated with 'showtabline'.\n+ \t'guitablabel' can be used to change the text in the labels.\n+ \tWhen 'e' is missing a non-GUI tab pages line may be used.\n+ \tThe GUI tabs are only supported on some systems, currently\n+ \tMac OS/X and MS-Windows.\n+ \t\t\t\t\t\t\t*'go-i'*\n+ 'i'\tUse a Vim icon.\n+ \t\t\t\t\t\t\t*'go-m'*\n+ 'm'\tMenu bar is present.\n+ \t\t\t\t\t\t\t*'go-M'*\n+ 'M'\tThe system menu \"$VIMRUNTIME/menu.vim\" is not sourced. Note\n+ \tthat this flag must be added in the vimrc file, before\n+ \tswitching on syntax or filetype recognition (when the |gvimrc|\n+ \tfile is sourced the system menu has already been loaded; the\n+ \t`:syntax on` and `:filetype on` commands load the menu too).\n+ \t\t\t\t\t\t\t*'go-g'*\n+ 'g'\tGrey menu items: Make menu items that are not active grey. If\n+ \t'g' is not included inactive menu items are not shown at all.\n+ \t\t\t\t\t\t\t*'go-T'*\n+ 'T'\tInclude Toolbar. Currently only in Win32 GUI.\n+ \t\t\t\t\t\t\t*'go-r'*\n+ 'r'\tRight-hand scrollbar is always present.\n+ \t\t\t\t\t\t\t*'go-R'*\n+ 'R'\tRight-hand scrollbar is present when there is a vertically\n+ \tsplit window.\n+ \t\t\t\t\t\t\t*'go-l'*\n+ 'l'\tLeft-hand scrollbar is always present.\n+ \t\t\t\t\t\t\t*'go-L'*\n+ 'L'\tLeft-hand scrollbar is present when there is a vertically\n+ \tsplit window.\n+ \t\t\t\t\t\t\t*'go-b'*\n+ 'b'\tBottom (horizontal) scrollbar is present. Its size depends on\n+ \tthe longest visible line, or on the cursor line if the 'h'\n+ \tflag is included. |gui-horiz-scroll|\n+ \t\t\t\t\t\t\t*'go-h'*\n+ 'h'\tLimit horizontal scrollbar size to the length of the cursor\n+ \tline. Reduces computations. |gui-horiz-scroll|\n+\n+ And yes, you may even have scrollbars on the left AND the right if\n+ you really want to :-). See |gui-scrollbars| for more information.\n+\n+ \t\t\t\t\t\t\t*'go-v'*\n+ 'v'\tUse a vertical button layout for dialogs. When not included,\n+ \ta horizontal layout is preferred, but when it doesn't fit a\n+ \tvertical layout is used anyway. Not supported in GTK 3.\n+ \t\t\t\t\t\t\t*'go-p'*\n+ 'p'\tUse Pointer callbacks for X11 GUI. This is required for some\n+ \twindow managers. If the cursor is not blinking or hollow at\n+ \tthe right moment, try adding this flag. This must be done\n+ \tbefore starting the GUI. Set it in your |gvimrc|. Adding or\n+ \tremoving it after the GUI has started has no effect.\n+ \t\t\t\t\t\t\t*'go-k'*\n+ 'k'\tKeep the GUI window size when adding/removing a scrollbar, or\n+ \ttoolbar, tabline, etc. Instead, the behavior is similar to\n+ \twhen the window is maximized and will adjust 'lines' and\n+ \t'columns' to fit to the window. Without the 'k' flag Vim will\n+ \ttry to keep 'lines' and 'columns' the same when adding and\n+ \tremoving GUI components.\n+ ]=],\n+ enable_if = false,\n+ full_name = 'guioptions',\n+ list = 'flags',\n+ scope = { 'global' },\n+ short_desc = N_('GUI: Which components and options are used'),\n+ type = 'string',\n+ },\n+ {\n+ abbreviation = 'gtl',\n+ desc = [=[\n+ When non-empty describes the text to use in a label of the GUI tab\n+ pages line. When empty and when the result is empty Vim will use a\n+ default label. See |setting-guitablabel| for more info.\n+\n+ The format of this option is like that of 'statusline'.\n+ 'guitabtooltip' is used for the tooltip, see below.\n+ The expression will be evaluated in the |sandbox| when set from a\n+ modeline, see |sandbox-option|.\n+ This option cannot be set in a modeline when 'modelineexpr' is off.\n+\n+ Only used when the GUI tab pages line is displayed. 'e' must be\n+ present in 'guioptions'. For the non-GUI tab pages line 'tabline' is\n+ used.\n+ ]=],\n+ enable_if = false,\n+ full_name = 'guitablabel',\n+ modelineexpr = true,\n+ redraw = { 'current_window' },\n+ scope = { 'global' },\n+ short_desc = N_('GUI: custom label for a tab page'),\n+ type = 'string',\n+ },\n+ {\n+ abbreviation = 'gtt',\n+ desc = [=[\n+ When non-empty describes the text to use in a tooltip for the GUI tab\n+ pages line. When empty Vim will use a default tooltip.\n+ This option is otherwise just like 'guitablabel' above.\n+ You can include a line break. Simplest method is to use |:let|: >\n+ \t:let &guitabtooltip = \"line one\\nline two\"\n+ <\n+ ]=],\n+ enable_if = false,\n+ full_name = 'guitabtooltip',\n+ redraw = { 'current_window' },\n+ scope = { 'global' },\n+ short_desc = N_('GUI: custom tooltip for a tab page'),\n+ type = 'string',\n+ },\n+ {\n+ abbreviation = 'hf',\n+ cb = 'did_set_helpfile',\n+ defaults = {\n+ if_true = macros('DFLT_HELPFILE'),\n+ doc = [[(MS-Windows) \"$VIMRUNTIME\\doc\\help.txt\"\n+ (others) \"$VIMRUNTIME/doc/help.txt\")\n+ ]],\n+ },\n+ desc = [=[\n+ Name of the main help file. All distributed help files should be\n+ placed together in one directory. Additionally, all \"doc\" directories\n+ in 'runtimepath' will be used.\n+ Environment variables are expanded |:set_env|. For example:\n+ \"$VIMRUNTIME/doc/help.txt\". If $VIMRUNTIME is not set, $VIM is also\n+ tried. Also see |$VIMRUNTIME| and |option-backslash| about including\n+ spaces and backslashes.\n+ This option cannot be set from a |modeline| or in the |sandbox|, for\n+ security reasons.\n+ ]=],\n+ expand = true,\n+ full_name = 'helpfile',\n+ scope = { 'global' },\n+ secure = true,\n+ short_desc = N_('full path name of the main help file'),\n+ type = 'string',\n+ varname = 'p_hf',\n+ },\n+ {\n+ abbreviation = 'hh',\n+ cb = 'did_set_helpheight',\n+ defaults = { if_true = 20 },\n+ desc = [=[\n+ Minimal initial height of the help window when it is opened with the\n+ \":help\" command. The initial height of the help window is half of the\n+ current window, or (when the 'ea' option is on) the same as other\n+ windows. When the height is less than 'helpheight', the height is\n+ set to 'helpheight'. Set to zero to disable.\n+ ]=],\n+ full_name = 'helpheight',\n+ scope = { 'global' },\n+ short_desc = N_('minimum height of a new help window'),\n+ type = 'number',\n+ varname = 'p_hh',\n+ },\n+ {\n+ abbreviation = 'hlg',\n+ cb = 'did_set_helplang',\n+ defaults = {\n+ if_true = '',\n+ doc = 'messages language or empty',\n+ },\n+ deny_duplicates = true,\n+ desc = [=[\n+ Comma-separated list of languages. Vim will use the first language\n+ for which the desired help can be found. The English help will always\n+ be used as a last resort. You can add \"en\" to prefer English over\n+ another language, but that will only find tags that exist in that\n+ language and not in the English help.\n+ Example: >\n+ \t:set helplang=de,it\n+ <\tThis will first search German, then Italian and finally English help\n+ files.\n+ When using |CTRL-]| and \":help!\" in a non-English help file Vim will\n+ try to find the tag in the current language before using this option.\n+ See |help-translated|.\n+ ]=],\n+ full_name = 'helplang',\n+ list = 'onecomma',\n+ scope = { 'global' },\n+ short_desc = N_('preferred help languages'),\n+ type = 'string',\n+ varname = 'p_hlg',\n+ },\n+ {\n+ abbreviation = 'hid',\n+ defaults = { if_true = true },\n+ desc = [=[\n+ When off a buffer is unloaded (including loss of undo information)\n+ when it is |abandon|ed. When on a buffer becomes hidden when it is\n+ |abandon|ed. A buffer displayed in another window does not become\n+ hidden, of course.\n+\n+ Commands that move through the buffer list sometimes hide a buffer\n+ although the 'hidden' option is off when these three are true:\n+ - the buffer is modified\n+ - 'autowrite' is off or writing is not possible\n+ - the '!' flag was used\n+ Also see |windows|.\n+\n+ To hide a specific buffer use the 'bufhidden' option.\n+ 'hidden' is set for one command with \":hide {command}\" |:hide|.\n+ ]=],\n+ full_name = 'hidden',\n+ scope = { 'global' },\n+ short_desc = N_(\"don't unload buffer when it is |abandon|ed\"),\n+ type = 'bool',\n+ varname = 'p_hid',\n+ },\n+ {\n+ abbreviation = 'hl',\n+ cb = 'did_set_highlight',\n+ defaults = { if_true = macros('HIGHLIGHT_INIT') },\n+ deny_duplicates = true,\n+ full_name = 'highlight',\n+ list = 'onecomma',\n+ scope = { 'global' },\n+ short_desc = N_('sets highlighting mode for various occasions'),\n+ type = 'string',\n+ varname = 'p_hl',\n+ },\n+ {\n+ abbreviation = 'hi',\n+ defaults = { if_true = 10000 },\n+ desc = [=[\n+ A history of \":\" commands, and a history of previous search patterns\n+ is remembered. This option decides how many entries may be stored in\n+ each of these histories (see |cmdline-editing|).\n+ The maximum value is 10000.\n+ ]=],\n+ full_name = 'history',\n+ scope = { 'global' },\n+ short_desc = N_('number of command-lines that are remembered'),\n+ type = 'number',\n+ varname = 'p_hi',\n+ },\n+ {\n+ abbreviation = 'hk',\n+ defaults = { if_true = false },\n+ full_name = 'hkmap',\n+ scope = { 'global' },\n+ short_desc = N_('No descripti", + "html_url": "https://github.com/neovim/neovim/pull/24528#discussion_r1284345865", + "id": 1284345865, + "in_reply_to_id": 1284344262, + "line": null, + "node_id": "PRRC_kwDOAPphoM5MjZAJ", + "original_commit_id": "8735c361b3f2657c5ac340f75c31cdaf12cd6e59", + "original_line": 7660, + "original_position": 10719, + "original_start_line": null, + "path": "src/nvim/options.lua", + "position": null, + "pull_request_review_id": 1562750793, + "pull_request_url": "https://api.github.com/repos/neovim/neovim/pulls/24528", + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/pulls/comments/1284345865/reactions" + }, + "side": "RIGHT", + "start_line": null, + "start_side": null, + "subject_type": "line", + "updated_at": "2023-08-04T12:10:57Z", + "url": "https://api.github.com/repos/neovim/neovim/pulls/comments/1284345865", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/35768171?v=4", + "events_url": "https://api.github.com/users/zeertzjq/events{/privacy}", + "followers_url": "https://api.github.com/users/zeertzjq/followers", + "following_url": "https://api.github.com/users/zeertzjq/following{/other_user}", + "gists_url": "https://api.github.com/users/zeertzjq/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/zeertzjq", + "id": 35768171, + "login": "zeertzjq", + "node_id": "MDQ6VXNlcjM1NzY4MTcx", + "organizations_url": "https://api.github.com/users/zeertzjq/orgs", + "received_events_url": "https://api.github.com/users/zeertzjq/received_events", + "repos_url": "https://api.github.com/users/zeertzjq/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/zeertzjq/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/zeertzjq/subscriptions", + "type": "User", + "url": "https://api.github.com/users/zeertzjq" + } + }, + { + "_links": { + "html": { + "href": "https://github.com/neovim/neovim/pull/24528#discussion_r1284409308" + }, + "pull_request": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/24528" + }, + "self": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/comments/1284409308" + } + }, + "author_association": "MEMBER", + "body": "What was the suggestion?", + "commit_id": "fe5eadf4a3c0dd57c5a9936c4982187e3f9d082c", + "created_at": "2023-08-04T13:14:18Z", + "diff_hunk": "@@ -1,3079 +1,10001 @@\n--- {\n--- {\n--- full_name='aleph', abbreviation='al',\n--- short_desc=\"ASCII code of the letter Aleph (Hebrew)\",\n--- varname='p_aleph', pv_name=nil,\n--- type='number', list=nil, scope={'global'},\n--- deny_duplicates=nil,\n--- enable_if=nil,\n--- defaults={condition=nil, if_true=224, if_false=nil},\n--- secure=nil, gettext=nil, noglob=nil, normal_fname_chars=nil,\n--- pri_mkrc=nil, deny_in_modelines=nil, normal_dname_chars=nil,\n--- modelineexpr=nil,\n--- func=nil,\n--- expand=nil, nodefault=nil, no_mkrc=nil,\n--- alloced=nil,\n--- save_pv_indir=nil,\n--- redraw={'curswant'},\n--- }\n--- }\n--- types: bool, number, string\n--- lists: (nil), comma, onecomma, flags, flagscomma\n--- scopes: global, buffer, window\n--- redraw options: statuslines, tabline, current_window, current_window_only,\n--- current_buffer, all_windows, curswant\n--- defaults: {condition=#if condition, if_true=default, if_false=default}\n--- #if condition:\n--- string: #ifdef string\n--- !string: #ifndef string\n--- {string, string}: #if defined(string) && defined(string)\n--- {!string, !string}: #if !defined(string) && !defined(string)\n-local cstr = function(s)\n+--- @class vim.option_meta\n+--- @field full_name string\n+--- @field desc? string\n+--- @field abbreviation? string\n+--- @field short_desc? string|fun(): string\n+--- @field varname? string\n+--- @field pv_name? string\n+--- @field type 'bool'|'number'|'string'\n+--- @field list? 'comma'|'onecomma'|'flags'|'flagscomma'\n+--- @field scope vim.option_scope[]\n+--- @field deny_duplicates? boolean\n+--- @field enable_if? string|false\n+--- @field defaults? vim.option_defaults\n+--- @field secure? true\n+--- @field noglob? true\n+--- @field normal_fname_chars? true\n+--- @field pri_mkrc? true\n+--- @field deny_in_modelines? true\n+--- @field normal_dname_chars? true\n+--- @field modelineexpr? true\n+--- @field func? true\n+--- @field expand? string|true\n+--- @field nodefault? true\n+--- @field no_mkrc? true\n+--- @field alloced? true\n+--- @field redraw? vim.option_redraw[]\n+--- @field cb? string\n+--- @field tags? string[]\n+\n+--- @class vim.option_defaults\n+--- @field condition? string\n+--- string: #ifdef string\n+--- !string: #ifndef string\n+--- @field if_true integer|boolean|string|fun(): string\n+--- @field if_false? integer|boolean|string\n+--- @field doc? string Default to show in options.txt\n+--- @field meta? integer|boolean|string Default to use in Lua meta files\n+\n+--- @alias vim.option_scope 'global'|'buffer'|'window'\n+\n+--- @alias vim.option_redraw\n+--- |'statuslines'\n+--- |'tabline'\n+--- |'current_window'\n+--- |'current_window_only'\n+--- |'current_buffer'\n+--- |'all_windows'\n+--- |'curswant'\n+--- |'ui_option'\n+\n+--- @param s string\n+--- @return string\n+local function cstr(s)\n return '\"' .. s:gsub('[\"\\\\]', '\\\\%0'):gsub('\\t', '\\\\t') .. '\"'\n end\n-local macros=function(s)\n+\n+--- @param s string\n+--- @return fun(): string\n+local function macros(s)\n return function()\n return s\n end\n end\n-local imacros=function(s)\n+\n+--- @param s string\n+--- @return fun(): string\n+local function imacros(s)\n return function()\n return '(intptr_t)' .. s\n end\n end\n-local N_=function(s) -- luacheck: ignore 211 (currently unused)\n+\n+--- @param s string\n+--- @return fun(): string\n+local function N_(s) -- luacheck: ignore 211 (currently unused)\n return function()\n return 'N_(' .. cstr(s) .. ')'\n end\n end\n--- used for 'cinkeys' and 'indentkeys'\n-local indentkeys_default = '0{,0},0),0],:,0#,!^F,o,O,e';\n+\n return {\n- cstr=cstr,\n- options={\n- {\n- full_name='aleph', abbreviation='al',\n- short_desc=N_(\"ASCII code of the letter Aleph (Hebrew)\"),\n- type='number', scope={'global'},\n- defaults={if_true=224}\n- },\n- {\n- full_name='arabic', abbreviation='arab',\n- short_desc=N_(\"Arabic as a default second language\"),\n- type='bool', scope={'window'},\n- redraw={'curswant'},\n- defaults={if_true=false},\n- cb='did_set_arabic'\n- },\n- {\n- full_name='arabicshape', abbreviation='arshape',\n- short_desc=N_(\"do shaping for Arabic characters\"),\n- type='bool', scope={'global'},\n- redraw={'all_windows', 'ui_option'},\n+ cstr = cstr,\n+ --- @type vim.option_meta[]\n+ options = {\n+ {\n+ abbreviation = 'al',\n+ defaults = { if_true = 224 },\n+ full_name = 'aleph',\n+ scope = { 'global' },\n+ short_desc = N_('ASCII code of the letter Aleph (Hebrew)'),\n+ type = 'number',\n+ },\n+ {\n+ abbreviation = 'arab',\n+ cb = 'did_set_arabic',\n+ defaults = { if_true = false },\n+ desc = [=[\n+ This option can be set to start editing Arabic text.\n+ Setting this option will:\n+ - Set the 'rightleft' option, unless 'termbidi' is set.\n+ - Set the 'arabicshape' option, unless 'termbidi' is set.\n+ - Set the 'keymap' option to \"arabic\"; in Insert mode CTRL-^ toggles\n+ between typing English and Arabic key mapping.\n+ - Set the 'delcombine' option\n \n- varname='p_arshape',\n- defaults={if_true=true}\n- },\n- {\n- full_name='allowrevins', abbreviation='ari',\n- short_desc=N_(\"allow CTRL-_ in Insert and Command-line mode\"),\n- type='bool', scope={'global'},\n- varname='p_ari',\n- defaults={if_true=false}\n- },\n- {\n- full_name='ambiwidth', abbreviation='ambw',\n- short_desc=N_(\"what to do with Unicode chars of ambiguous width\"),\n- type='string', scope={'global'},\n- redraw={'all_windows', 'ui_option'},\n- varname='p_ambw',\n- defaults={if_true=\"single\"},\n- cb='did_set_ambiwidth'\n- },\n- {\n- full_name='autochdir', abbreviation='acd',\n- short_desc=N_(\"change directory to the file in the current window\"),\n- type='bool', scope={'global'},\n- varname='p_acd',\n- defaults={if_true=false},\n- cb='did_set_autochdir'\n- },\n- {\n- full_name='autoindent', abbreviation='ai',\n- short_desc=N_(\"take indent for new line from previous line\"),\n- type='bool', scope={'buffer'},\n- varname='p_ai',\n- defaults={if_true=true}\n- },\n- {\n- full_name='autoread', abbreviation='ar',\n- short_desc=N_(\"autom. read file when changed outside of Vim\"),\n- type='bool', scope={'global', 'buffer'},\n- varname='p_ar',\n- defaults={if_true=true}\n- },\n- {\n- full_name='autowrite', abbreviation='aw',\n- short_desc=N_(\"automatically write file if changed\"),\n- type='bool', scope={'global'},\n- varname='p_aw',\n- defaults={if_true=false}\n- },\n- {\n- full_name='autowriteall', abbreviation='awa',\n- short_desc=N_(\"as 'autowrite', but works with more commands\"),\n- type='bool', scope={'global'},\n- varname='p_awa',\n- defaults={if_true=false}\n- },\n- {\n- full_name='background', abbreviation='bg',\n- short_desc=N_(\"\\\"dark\\\" or \\\"light\\\", used for highlight colors\"),\n- type='string', scope={'global'},\n- varname='p_bg',\n- defaults={if_true=\"dark\"},\n- cb='did_set_background'\n- },\n- {\n- full_name='backspace', abbreviation='bs',\n- short_desc=N_(\"how backspace works at start of line\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- varname='p_bs',\n- defaults={if_true=\"indent,eol,start\"},\n- cb='did_set_backspace'\n- },\n- {\n- full_name='backup', abbreviation='bk',\n- short_desc=N_(\"keep backup file after overwriting a file\"),\n- type='bool', scope={'global'},\n- varname='p_bk',\n- defaults={if_true=false}\n- },\n- {\n- full_name='backupcopy', abbreviation='bkc',\n- short_desc=N_(\"make backup as a copy, don't rename the file\"),\n- type='string', list='onecomma', scope={'global', 'buffer'},\n- deny_duplicates=true,\n- varname='p_bkc',\n- defaults={\n- condition='UNIX',\n- if_true=\"auto\",\n- if_false=\"auto\"\n+ Resetting this option will:\n+ - Reset the 'rightleft' option.\n+ - Disable the use of 'keymap' (without changing its value).\n+ Note that 'arabicshape' and 'delcombine' are not reset (it is a global\n+ option).\n+ Also see |arabic.txt|.\n+ ]=],\n+ full_name = 'arabic',\n+ redraw = { 'curswant' },\n+ scope = { 'window' },\n+ short_desc = N_('Arabic as a default second language'),\n+ type = 'bool',\n+ },\n+ {\n+ abbreviation = 'arshape',\n+ defaults = { if_true = true },\n+ desc = [=[\n+ When on and 'termbidi' is off, the required visual character\n+ corrections that need to take place for displaying the Arabic language\n+ take effect. Shaping, in essence, gets enabled; the term is a broad\n+ one which encompasses:\n+ a) the changing/morphing of characters based on their location\n+ within a word (initial, medial, final and stand-alone).\n+ b) the enabling of the ability to compose characters\n+ c) the enabling of the required combining of some characters\n+ When disabled the display shows each character's true stand-alone\n+ form.\n+ Arabic is a complex language which requires other settings, for\n+ further details see |arabic.txt|.\n+ ]=],\n+ full_name = 'arabicshape',\n+ redraw = { 'all_windows', 'ui_option' },\n+ scope = { 'global' },\n+ short_desc = N_('do shaping for Arabic characters'),\n+ type = 'bool',\n+ varname = 'p_arshape',\n+ },\n+ {\n+ abbreviation = 'ari',\n+ defaults = { if_true = false },\n+ desc = [=[\n+ Allow CTRL-_ in Insert and Command-line mode. This is default off, to\n+ avoid that users that accidentally type CTRL-_ instead of SHIFT-_ get\n+ into reverse Insert mode, and don't know how to get out. See\n+ 'revins'.\n+ ]=],\n+ full_name = 'allowrevins',\n+ scope = { 'global' },\n+ short_desc = N_('allow CTRL-_ in Insert and Command-line mode'),\n+ type = 'bool',\n+ varname = 'p_ari',\n+ },\n+ {\n+ abbreviation = 'ambw',\n+ cb = 'did_set_ambiwidth',\n+ defaults = { if_true = 'single' },\n+ desc = [=[\n+ Tells Vim what to do with characters with East Asian Width Class\n+ Ambiguous (such as Euro, Registered Sign, Copyright Sign, Greek\n+ letters, Cyrillic letters).\n+\n+ There are currently two possible values:\n+ \"single\":\tUse the same width as characters in US-ASCII. This is\n+ \t\texpected by most users.\n+ \"double\":\tUse twice the width of ASCII characters.\n+ \t\t\t\t\t\t*E834* *E835*\n+ The value \"double\" cannot be used if 'listchars' or 'fillchars'\n+ contains a character that would be double width. These errors may\n+ also be given when calling setcellwidths().\n+\n+ The values are overruled for characters specified with\n+ |setcellwidths()|.\n+\n+ There are a number of CJK fonts for which the width of glyphs for\n+ those characters are solely based on how many octets they take in\n+ legacy/traditional CJK encodings. In those encodings, Euro,\n+ Registered sign, Greek/Cyrillic letters are represented by two octets,\n+ therefore those fonts have \"wide\" glyphs for them. This is also\n+ true of some line drawing characters used to make tables in text\n+ file. Therefore, when a CJK font is used for GUI Vim or\n+ Vim is running inside a terminal (emulators) that uses a CJK font\n+ (or Vim is run inside an xterm invoked with \"-cjkwidth\" option.),\n+ this option should be set to \"double\" to match the width perceived\n+ by Vim with the width of glyphs in the font. Perhaps it also has\n+ to be set to \"double\" under CJK MS-Windows when the system locale is\n+ set to one of CJK locales. See Unicode Standard Annex #11\n+ (https://www.unicode.org/reports/tr11).\n+ ]=],\n+ full_name = 'ambiwidth',\n+ redraw = { 'all_windows', 'ui_option' },\n+ scope = { 'global' },\n+ short_desc = N_('what to do with Unicode chars of ambiguous width'),\n+ type = 'string',\n+ varname = 'p_ambw',\n+ },\n+ {\n+ abbreviation = 'acd',\n+ cb = 'did_set_autochdir',\n+ defaults = { if_true = false },\n+ desc = [=[\n+ When on, Vim will change the current working directory whenever you\n+ open a file, switch buffers, delete a buffer or open/close a window.\n+ It will change to the directory containing the file which was opened\n+ or selected. When a buffer has no name it also has no directory, thus\n+ the current directory won't change when navigating to it.\n+ Note: When this option is on some plugins may not work.\n+ ]=],\n+ full_name = 'autochdir',\n+ scope = { 'global' },\n+ short_desc = N_('change directory to the file in the current window'),\n+ type = 'bool',\n+ varname = 'p_acd',\n+ },\n+ {\n+ abbreviation = 'ai',\n+ defaults = { if_true = true },\n+ desc = [=[\n+ Copy indent from current line when starting a new line (typing \n+ in Insert mode or when using the \"o\" or \"O\" command). If you do not\n+ type anything on the new line except or CTRL-D and then type\n+ , CTRL-O or , the indent is deleted again. Moving the cursor\n+ to another line has the same effect, unless the 'I' flag is included\n+ in 'cpoptions'.\n+ When autoindent is on, formatting (with the \"gq\" command or when you\n+ reach 'textwidth' in Insert mode) uses the indentation of the first\n+ line.\n+ When 'smartindent' or 'cindent' is on the indent is changed in\n+ a different way.\n+ ]=],\n+ full_name = 'autoindent',\n+ scope = { 'buffer' },\n+ short_desc = N_('take indent for new line from previous line'),\n+ type = 'bool',\n+ varname = 'p_ai',\n+ },\n+ {\n+ abbreviation = 'ar',\n+ defaults = { if_true = true },\n+ desc = [=[\n+ When a file has been detected to have been changed outside of Vim and\n+ it has not been changed inside of Vim, automatically read it again.\n+ When the file has been deleted this is not done, so you have the text\n+ from before it was deleted. When it appears again then it is read.\n+ |timestamp|\n+ If this option has a local value, use this command to switch back to\n+ using the global value: >\n+ \t:set autoread<\n+ <\n+ ]=],\n+ full_name = 'autoread',\n+ scope = { 'global', 'buffer' },\n+ short_desc = N_('autom. read file when changed outside of Vim'),\n+ type = 'bool',\n+ varname = 'p_ar',\n+ },\n+ {\n+ abbreviation = 'aw',\n+ defaults = { if_true = false },\n+ desc = [=[\n+ Write the contents of the file, if it has been modified, on each\n+ `:next`, `:rewind`, `:last`, `:first`, `:previous`, `:stop`,\n+ `:suspend`, `:tag`, `:!`, `:make`, CTRL-] and CTRL-^ command; and when\n+ a `:buffer`, CTRL-O, CTRL-I, '{A-Z0-9}, or `{A-Z0-9} command takes one\n+ to another file.\n+ A buffer is not written if it becomes hidden, e.g. when 'bufhidden' is\n+ set to \"hide\" and `:next` is used.\n+ Note that for some commands the 'autowrite' option is not used, see\n+ 'autowriteall' for that.\n+ Some buffers will not be written, specifically when 'buftype' is\n+ \"nowrite\", \"nofile\", \"terminal\" or \"prompt\".\n+ USE WITH CARE: If you make temporary changes to a buffer that you\n+ don't want to be saved this option may cause it to be saved anyway.\n+ Renaming the buffer with \":file {name}\" may help avoid this.\n+ ]=],\n+ full_name = 'autowrite',\n+ scope = { 'global' },\n+ short_desc = N_('automatically write file if changed'),\n+ type = 'bool',\n+ varname = 'p_aw',\n+ },\n+ {\n+ abbreviation = 'awa',\n+ defaults = { if_true = false },\n+ desc = [=[\n+ Like 'autowrite', but also used for commands \":edit\", \":enew\", \":quit\",\n+ \":qall\", \":exit\", \":xit\", \":recover\" and closing the Vim window.\n+ Setting this option also implies that Vim behaves like 'autowrite' has\n+ been set.\n+ ]=],\n+ full_name = 'autowriteall',\n+ scope = { 'global' },\n+ short_desc = N_(\"as 'autowrite', but works with more commands\"),\n+ type = 'bool',\n+ varname = 'p_awa',\n+ },\n+ {\n+ abbreviation = 'bg',\n+ cb = 'did_set_background',\n+ defaults = { if_true = 'dark' },\n+ desc = [=[\n+ When set to \"dark\" or \"light\", adjusts the default color groups for\n+ that background type. The |TUI| or other UI sets this on startup\n+ (triggering |OptionSet|) if it can detect the background color.\n+\n+ This option does NOT change the background color, it tells Nvim what\n+ the \"inherited\" (terminal/GUI) background looks like.\n+ See |:hi-normal| if you want to set the background color explicitly.\n+ \t\t\t\t\t*g:colors_name*\n+ When a color scheme is loaded (the \"g:colors_name\" variable is set)\n+ setting 'background' will cause the color scheme to be reloaded. If\n+ the color scheme adjusts to the value of 'background' this will work.\n+ However, if the color scheme sets 'background' itself the effect may\n+ be undone. First delete the \"g:colors_name\" variable when needed.\n+\n+ Normally this option would be set in the vimrc file. Possibly\n+ depending on the terminal name. Example: >\n+ \t:if $TERM ==# \"xterm\"\n+ \t: set background=dark\n+ \t:endif\n+ <\tWhen this option is set, the default settings for the highlight groups\n+ will change. To use other settings, place \":highlight\" commands AFTER\n+ the setting of the 'background' option.\n+ This option is also used in the \"$VIMRUNTIME/syntax/syntax.vim\" file\n+ to select the colors for syntax highlighting. After changing this\n+ option, you must load syntax.vim again to see the result. This can be\n+ done with \":syntax on\".\n+ ]=],\n+ full_name = 'background',\n+ scope = { 'global' },\n+ short_desc = N_('\"dark\" or \"light\", used for highlight colors'),\n+ type = 'string',\n+ varname = 'p_bg',\n+ },\n+ {\n+ abbreviation = 'bs',\n+ cb = 'did_set_backspace',\n+ defaults = { if_true = 'indent,eol,start' },\n+ deny_duplicates = true,\n+ desc = [=[\n+ Influences the working of , , CTRL-W and CTRL-U in Insert\n+ mode. This is a list of items, separated by commas. Each item allows\n+ a way to backspace over something:\n+ value\teffect\t~\n+ indent\tallow backspacing over autoindent\n+ eol\tallow backspacing over line breaks (join lines)\n+ start\tallow backspacing over the start of insert; CTRL-W and CTRL-U\n+ \tstop once at the start of insert.\n+ nostop\tlike start, except CTRL-W and CTRL-U do not stop at the start of\n+ \tinsert.\n+\n+ When the value is empty, Vi compatible backspacing is used, none of\n+ the ways mentioned for the items above are possible.\n+ ]=],\n+ full_name = 'backspace',\n+ list = 'onecomma',\n+ scope = { 'global' },\n+ short_desc = N_('how backspace works at start of line'),\n+ type = 'string',\n+ varname = 'p_bs',\n+ },\n+ {\n+ abbreviation = 'bk',\n+ defaults = { if_true = false },\n+ desc = [=[\n+ Make a backup before overwriting a file. Leave it around after the\n+ file has been successfully written. If you do not want to keep the\n+ backup file, but you do want a backup while the file is being\n+ written, reset this option and set the 'writebackup' option (this is\n+ the default). If you do not want a backup file at all reset both\n+ options (use this if your file system is almost full). See the\n+ |backup-table| for more explanations.\n+ When the 'backupskip' pattern matches, a backup is not made anyway.\n+ When 'patchmode' is set, the backup may be renamed to become the\n+ oldest version of a file.\n+ ]=],\n+ full_name = 'backup',\n+ scope = { 'global' },\n+ short_desc = N_('keep backup file after overwriting a file'),\n+ type = 'bool',\n+ varname = 'p_bk',\n+ },\n+ {\n+ abbreviation = 'bkc',\n+ cb = 'did_set_backupcopy',\n+ defaults = { condition = 'UNIX', if_false = 'auto', if_true = 'auto' },\n+ deny_duplicates = true,\n+ desc = [=[\n+ When writing a file and a backup is made, this option tells how it's\n+ done. This is a comma-separated list of words.\n+\n+ The main values are:\n+ \"yes\"\tmake a copy of the file and overwrite the original one\n+ \"no\"\trename the file and write a new one\n+ \"auto\"\tone of the previous, what works best\n+\n+ Extra values that can be combined with the ones above are:\n+ \"breaksymlink\"\talways break symlinks when writing\n+ \"breakhardlink\"\talways break hardlinks when writing\n+\n+ Making a copy and overwriting the original file:\n+ - Takes extra time to copy the file.\n+ + When the file has special attributes, is a (hard/symbolic) link or\n+ has a resource fork, all this is preserved.\n+ - When the file is a link the backup will have the name of the link,\n+ not of the real file.\n+\n+ Renaming the file and writing a new one:\n+ + It's fast.\n+ - Sometimes not all attributes of the file can be copied to the new\n+ file.\n+ - When the file is a link the new file will not be a link.\n+\n+ The \"auto\" value is the middle way: When Vim sees that renaming the\n+ file is possible without side effects (the attributes can be passed on\n+ and the file is not a link) that is used. When problems are expected,\n+ a copy will be made.\n+\n+ The \"breaksymlink\" and \"breakhardlink\" values can be used in\n+ combination with any of \"yes\", \"no\" and \"auto\". When included, they\n+ force Vim to always break either symbolic or hard links by doing\n+ exactly what the \"no\" option does, renaming the original file to\n+ become the backup and writing a new file in its place. This can be\n+ useful for example in source trees where all the files are symbolic or\n+ hard links and any changes should stay in the local source tree, not\n+ be propagated back to the original source.\n+ \t\t\t\t\t\t*crontab*\n+ One situation where \"no\" and \"auto\" will cause problems: A program\n+ that opens a file, invokes Vim to edit that file, and then tests if\n+ the open file was changed (through the file descriptor) will check the\n+ backup file instead of the newly created file. \"crontab -e\" is an\n+ example.\n+\n+ When a copy is made, the original file is truncated and then filled\n+ with the new text. This means that protection bits, owner and\n+ symbolic links of the original file are unmodified. The backup file,\n+ however, is a new file, owned by the user who edited the file. The\n+ group of the backup is set to the group of the original file. If this\n+ fails, the protection bits for the group are made the same as for\n+ others.\n+\n+ When the file is renamed, this is the other way around: The backup has\n+ the same attributes of the original file, and the newly written file\n+ is owned by the current user. When the file was a (hard/symbolic)\n+ link, the new file will not! That's why the \"auto\" value doesn't\n+ rename when the file is a link. The owner and group of the newly\n+ written file will be set to the same ones as the original file, but\n+ the system may refuse to do this. In that case the \"auto\" value will\n+ again not rename the file.\n+ ]=],\n+ full_name = 'backupcopy',\n+ list = 'onecomma',\n+ scope = { 'global', 'buffer' },\n+ short_desc = N_(\"make backup as a copy, don't rename the file\"),\n+ type = 'string',\n+ varname = 'p_bkc',\n+ },\n+ {\n+ abbreviation = 'bdir',\n+ defaults = { if_true = '' },\n+ deny_duplicates = true,\n+ desc = [=[\n+ List of directories for the backup file, separated with commas.\n+ - The backup file will be created in the first directory in the list\n+ where this is possible. If none of the directories exist Nvim will\n+ attempt to create the last directory in the list.\n+ - Empty means that no backup file will be created ('patchmode' is\n+ impossible!). Writing may fail because of this.\n+ - A directory \".\" means to put the backup file in the same directory\n+ as the edited file.\n+ - A directory starting with \"./\" (or \".\\\" for MS-Windows) means to put\n+ the backup file relative to where the edited file is. The leading\n+ \".\" is replaced with the path name of the edited file.\n+ (\".\" inside a directory name has no special meaning).\n+ - Spaces after the comma are ignored, other spaces are considered part\n+ of the directory name. To have a space at the start of a directory\n+ name, precede it with a backslash.\n+ - To include a comma in a directory name precede it with a backslash.\n+ - A directory name may end in an '/'.\n+ - For Unix and Win32, if a directory ends in two path separators \"//\",\n+ the swap file name will be built from the complete path to the file\n+ with all path separators changed to percent '%' signs. This will\n+ ensure file name uniqueness in the backup directory.\n+ On Win32, it is also possible to end with \"\\\\\". However, When a\n+ separating comma is following, you must use \"//\", since \"\\\\\" will\n+ include the comma in the file name. Therefore it is recommended to\n+ use '//', instead of '\\\\'.\n+ - Environment variables are expanded |:set_env|.\n+ - Careful with '\\' characters, type one before a space, type two to\n+ get one in the option (see |option-backslash|), for example: >\n+ :set bdir=c:\\\\tmp,\\ dir\\\\,with\\\\,commas,\\\\\\ dir\\ with\\ spaces\n+ <\n+ See also 'backup' and 'writebackup' options.\n+ If you want to hide your backup files on Unix, consider this value: >\n+ \t:set backupdir=./.backup,~/.backup,.,/tmp\n+ <\tYou must create a \".backup\" directory in each directory and in your\n+ home directory for this to work properly.\n+ The use of |:set+=| and |:set-=| is preferred when adding or removing\n+ directories from the list. This avoids problems when a future version\n+ uses another default.\n+ This option cannot be set from a |modeline| or in the |sandbox|, for\n+ security reasons.\n+ ]=],\n+ expand = 'nodefault',\n+ full_name = 'backupdir',\n+ list = 'onecomma',\n+ scope = { 'global' },\n+ secure = true,\n+ short_desc = N_('list of directories for the backup file'),\n+ type = 'string',\n+ varname = 'p_bdir',\n+ },\n+ {\n+ abbreviation = 'bex',\n+ cb = 'did_set_backupext_or_patchmode',\n+ defaults = { if_true = '~' },\n+ desc = [=[\n+ String which is appended to a file name to make the name of the\n+ backup file. The default is quite unusual, because this avoids\n+ accidentally overwriting existing files with a backup file. You might\n+ prefer using \".bak\", but make sure that you don't have files with\n+ \".bak\" that you want to keep.\n+ Only normal file name characters can be used; `/\\*?[|<>` are illegal.\n+\n+ If you like to keep a lot of backups, you could use a BufWritePre\n+ autocommand to change 'backupext' just before writing the file to\n+ include a timestamp. >\n+ \t:au BufWritePre * let &bex = '-' .. strftime(\"%Y%b%d%X\") .. '~'\n+ <\tUse 'backupdir' to put the backup in a different directory.\n+ ]=],\n+ full_name = 'backupext',\n+ normal_fname_chars = true,\n+ scope = { 'global' },\n+ short_desc = N_('extension used for the backup file'),\n+ tags = { 'E589' },\n+ type = 'string',\n+ varname = 'p_bex',\n+ },\n+ {\n+ abbreviation = 'bsk',\n+ defaults = {\n+ if_true = '',\n+ doc = [[\"$TMPDIR/*,$TMP/*,$TEMP/*\"\n+ Unix: \"/tmp/*,$TMPDIR/*,$TMP/*,$TEMP/*\"\n+ Mac: \"/private/tmp/*,$TMPDIR/*,$TMP/*,$TEMP/*\")]],\n+ meta = '/tmp/*',\n },\n- cb='did_set_backupcopy'\n- },\n- {\n- full_name='backupdir', abbreviation='bdir',\n- short_desc=N_(\"list of directories for the backup file\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- secure=true,\n- expand='nodefault',\n- varname='p_bdir',\n- defaults={if_true=''}\n- },\n- {\n- full_name='backupext', abbreviation='bex',\n- short_desc=N_(\"extension used for the backup file\"),\n- type='string', scope={'global'},\n- normal_fname_chars=true,\n- varname='p_bex',\n- defaults={if_true=\"~\"},\n- cb='did_set_backupext_or_patchmode'\n- },\n- {\n- full_name='backupskip', abbreviation='bsk',\n- short_desc=N_(\"no backup for files that match these patterns\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- varname='p_bsk',\n- defaults={if_true=\"\"}\n- },\n- {\n- full_name='belloff', abbreviation='bo',\n- short_desc=N_(\"do not ring the bell for these reasons\"),\n- type='string', list='comma', scope={'global'},\n- deny_duplicates=true,\n- varname='p_bo',\n- defaults={if_true=\"all\"},\n- cb='did_set_belloff'\n- },\n- {\n- full_name='binary', abbreviation='bin',\n- short_desc=N_(\"read/write/edit file in binary mode\"),\n- type='bool', scope={'buffer'},\n- redraw={'statuslines'},\n- varname='p_bin',\n- defaults={if_true=false},\n- cb='did_set_binary'\n- },\n- {\n- full_name='bomb',\n- short_desc=N_(\"a Byte Order Mark to the file\"),\n- type='bool', scope={'buffer'},\n- no_mkrc=true,\n- redraw={'statuslines'},\n- varname='p_bomb',\n- defaults={if_true=false},\n- cb='did_set_eof_eol_fixeol_bomb'\n- },\n- {\n- full_name='breakat', abbreviation='brk',\n- short_desc=N_(\"characters that may cause a line break\"),\n- type='string', list='flags', scope={'global'},\n- redraw={'all_windows'},\n- varname='p_breakat',\n- defaults={if_true=\" \\t!@*-+;:,./?\"},\n- cb='did_set_breakat'\n- },\n- {\n- full_name='breakindent', abbreviation='bri',\n- short_desc=N_(\"wrapped line repeats indent\"),\n- type='bool', scope={'window'},\n- redraw={'current_window'},\n- defaults={if_true=false}\n- },\n- {\n- full_name='breakindentopt', abbreviation='briopt',\n- short_desc=N_(\"settings for 'breakindent'\"),\n- type='string', list='onecomma', scope={'window'},\n- deny_duplicates=true,\n- alloced=true,\n- redraw={'current_buffer'},\n- defaults={if_true=\"\"},\n- cb='did_set_breakindentopt'\n- },\n- {\n- full_name='browsedir', abbreviation='bsdir',\n- short_desc=N_(\"which directory to start browsing in\"),\n- type='string', scope={'global'},\n- enable_if=false,\n- },\n- {\n- full_name='bufhidden', abbreviation='bh',\n- short_desc=N_(\"what to do when buffer is no longer in window\"),\n- type='string', scope={'buffer'},\n- noglob=true,\n- alloced=true,\n- varname='p_bh',\n- defaults={if_true=\"\"},\n- cb='did_set_bufhidden'\n- },\n- {\n- full_name='buflisted', abbreviation='bl',\n- short_desc=N_(\"whether the buffer shows up in the buffer list\"),\n- type='bool', scope={'buffer'},\n- noglob=true,\n- varname='p_bl',\n- defaults={if_true=1},\n- cb='did_set_buflisted'\n- },\n- {\n- full_name='buftype', abbreviation='bt',\n- short_desc=N_(\"special type of buffer\"),\n- type='string', scope={'buffer'},\n- noglob=true,\n- alloced=true,\n- varname='p_bt',\n- defaults={if_true=\"\"},\n- cb='did_set_buftype'\n- },\n- {\n- full_name='casemap', abbreviation='cmp',\n- short_desc=N_(\"specifies how case of letters is changed\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- varname='p_cmp',\n- defaults={if_true=\"internal,keepascii\"},\n- cb='did_set_casemap'\n- },\n- {\n- full_name='cdhome', abbreviation='cdh',\n- short_desc=N_(\":cd without argument goes to the home directory\"),\n- type='bool', scope={'global'},\n- secure=true,\n- varname='p_cdh',\n- defaults={if_true=false}\n- },\n- {\n- full_name='cdpath', abbreviation='cd',\n- short_desc=N_(\"list of directories searched with \\\":cd\\\"\"),\n- type='string', list='comma', scope={'global'},\n- deny_duplicates=true,\n- expand=true,\n- secure=true,\n- varname='p_cdpath',\n- defaults={if_true=\",,\"}\n- },\n- {\n- full_name='cedit',\n- short_desc=N_(\"used to open the command-line window\"),\n- type='string', scope={'global'},\n- varname='p_cedit',\n- defaults={if_true=macros('CTRL_F_STR')},\n- cb='did_set_cedit'\n- },\n- {\n- full_name='channel',\n- short_desc=N_(\"Channel connected to the buffer\"),\n- type='number', scope={'buffer'},\n- no_mkrc=true,\n- nodefault=true,\n- varname='p_channel',\n- defaults={if_true=0}\n- },\n- {\n- full_name='charconvert', abbreviation='ccv',\n- short_desc=N_(\"expression for character encoding conversion\"),\n- type='string', scope={'global'},\n- secure=true,\n- varname='p_ccv',\n- defaults={if_true=\"\"},\n- cb='did_set_optexpr'\n- },\n- {\n- full_name='cindent', abbreviation='cin',\n- short_desc=N_(\"do C program indenting\"),\n- type='bool', scope={'buffer'},\n- varname='p_cin',\n- defaults={if_true=false}\n- },\n- {\n- full_name='cinkeys', abbreviation='cink',\n- short_desc=N_(\"keys that trigger indent when 'cindent' is set\"),\n- type='string', list='onecomma', scope={'buffer'},\n- deny_duplicates=true,\n- alloced=true,\n- varname='p_cink',\n- defaults={if_true=indentkeys_default}\n- },\n- {\n- full_name='cinoptions', abbreviation='cino',\n- short_desc=N_(\"how to do indenting when 'cindent' is set\"),\n- type='string', list='onecomma', scope={'buffer'},\n- deny_duplicates=true,\n- alloced=true,\n- varname='p_cino',\n- defaults={if_true=\"\"},\n- cb='did_set_cinoptions'\n- },\n- {\n- full_name='cinwords', abbreviation='cinw',\n- short_desc=N_(\"words where 'si' and 'cin' add an indent\"),\n- type='string', list='onecomma', scope={'buffer'},\n- deny_duplicates=true,\n- alloced=true,\n- varname='p_cinw',\n- defaults={if_true=\"if,else,while,do,for,switch\"}\n- },\n- {\n- full_name='cinscopedecls', abbreviation='cinsd',\n- short_desc=N_(\"words that are recognized by 'cino-g'\"),\n- type='string', list='onecomma', scope={'buffer'},\n- deny_duplicates=true,\n- alloced=true,\n- varname='p_cinsd',\n- defaults={if_true=\"public,protected,private\"}\n- },\n- {\n- full_name='clipboard', abbreviation='cb',\n- short_desc=N_(\"use the clipboard as the unnamed register\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- varname='p_cb',\n- defaults={if_true=\"\"},\n- cb='did_set_clipboard'\n- },\n- {\n- full_name='cmdheight', abbreviation='ch',\n- short_desc=N_(\"number of lines to use for the command-line\"),\n- type='number', scope={'global'},\n- redraw={'all_windows'},\n- varname='p_ch',\n- defaults={if_true=1},\n- cb='did_set_cmdheight'\n- },\n- {\n- full_name='cmdwinheight', abbreviation='cwh',\n- short_desc=N_(\"height of the command-line window\"),\n- type='number', scope={'global'},\n- varname='p_cwh',\n- defaults={if_true=7}\n- },\n- {\n- full_name='colorcolumn', abbreviation='cc',\n- short_desc=N_(\"columns to highlight\"),\n- type='string', list='onecomma', scope={'window'},\n- deny_duplicates=true,\n- redraw={'current_window'},\n- defaults={if_true=\"\"},\n- cb='did_set_colorcolumn'\n- },\n- {\n- full_name='columns', abbreviation='co',\n- short_desc=N_(\"number of columns in the display\"),\n- type='number', scope={'global'},\n- no_mkrc=true,\n- varname='p_columns',\n- defaults={if_true=macros('DFLT_COLS')}\n- },\n- {\n- full_name='comments', abbreviation='com',\n- short_desc=N_(\"patterns that can start a comment line\"),\n- type='string', list='onecomma', scope={'buffer'},\n- deny_duplicates=true,\n- alloced=true,\n- redraw={'curswant'},\n- varname='p_com',\n- defaults={if_true=\"s1:/*,mb:*,ex:*/,://,b:#,:%,:XCOMM,n:>,fb:-\"},\n- cb='did_set_comments'\n- },\n- {\n- full_name='commentstring', abbreviation='cms',\n- short_desc=N_(\"template for comments; used for fold marker\"),\n- type='string', scope={'buffer'},\n- alloced=true,\n- redraw={'curswant'},\n- varname='p_cms',\n- defaults={if_true=\"\"},\n- cb='did_set_commentstring'\n- },\n- {\n- full_name='compatible', abbreviation='cp',\n- short_desc=N_(\"No description\"),\n- type='bool', scope={'global'},\n- varname='p_force_off',\n- -- pri_mkrc isn't needed here, optval_default()\n- -- always returns TRUE for 'compatible'\n- defaults={if_true=false}\n- },\n- {\n- full_name='complete', abbreviation='cpt',\n- short_desc=N_(\"specify how Insert mode completion works\"),\n- type='string', list='onecomma', scope={'buffer'},\n- deny_duplicates=true,\n- alloced=true,\n- varname='p_cpt',\n- defaults={if_true=\".,w,b,u,t\"},\n- cb='did_set_complete'\n- },\n- {\n- full_name='concealcursor', abbreviation='cocu',\n- short_desc=N_(\"whether concealable text is hidden in cursor line\"),\n- type='string', scope={'window'},\n- alloced=true,\n- redraw={'current_window'},\n- defaults={if_true=\"\"},\n- cb='did_set_concealcursor'\n- },\n- {\n- full_name='conceallevel', abbreviation='cole',\n- short_desc=N_(\"whether concealable text is shown or hidden\"),\n- type='number', scope={'window'},\n- redraw={'current_window'},\n- defaults={if_true=0}\n- },\n- {\n- full_name='completefunc', abbreviation='cfu',\n- short_desc=N_(\"function to be used for Insert mode completion\"),\n- type='string', scope={'buffer'},\n- secure=true,\n- alloced=true,\n- func=true,\n- varname='p_cfu',\n- defaults={if_true=\"\"},\n- cb='did_set_completefunc'\n- },\n- {\n- full_name='completeopt', abbreviation='cot',\n- short_desc=N_(\"options for Insert mode completion\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- varname='p_cot',\n- defaults={if_true=\"menu,preview\"},\n- cb='did_set_completeopt'\n- },\n- {\n- full_name='completeslash', abbreviation='csl',\n- type='string', scope={'buffer'},\n- varname='p_csl',\n- enable_if='BACKSLASH_IN_FILENAME',\n- defaults={if_true=\"\"},\n- cb='did_set_completeslash'\n- },\n- {\n- full_name='confirm', abbreviation='cf',\n- short_desc=N_(\"ask what to do about unsaved/read-only files\"),\n- type='bool', scope={'global'},\n- varname='p_confirm',\n- defaults={if_true=false}\n- },\n- {\n- full_name='copyindent', abbreviation='ci',\n- short_desc=N_(\"make 'autoindent' use existing indent structure\"),\n- type='bool', scope={'buffer'},\n- varname='p_ci',\n- defaults={if_true=false}\n- },\n- {\n- full_name='cpoptions', abbreviation='cpo',\n- short_desc=N_(\"flags for Vi-compatible behavior\"),\n- type='string', list='flags', scope={'global'},\n- redraw={'all_windows'},\n- varname='p_cpo',\n- defaults={if_true=macros('CPO_VIM')},\n- cb='did_set_cpoptions'\n- },\n- {\n- full_name='cursorbind', abbreviation='crb',\n- short_desc=N_(\"move cursor in window as it moves in other windows\"),\n- type='bool', scope={'window'},\n- pv_name='p_crbind',\n- defaults={if_true=false}\n- },\n- {\n- full_name='cursorcolumn', abbreviation='cuc',\n- short_desc=N_(\"highlight the screen column of the cursor\"),\n- type='bool', scope={'window'},\n- redraw={'current_window_only'},\n- defaults={if_true=false}\n- },\n- {\n- full_name='cursorline', abbreviation='cul',\n- short_desc=N_(\"highlight the screen line of the cursor\"),\n- type='bool', scope={'window'},\n- redraw={'current_window_only'},\n- defaults={if_true=false}\n- },\n- {\n- full_name='cursorlineopt', abbreviation='culopt',\n- short_desc=N_(\"settings for 'cursorline'\"),\n- type='string', list='onecomma', scope={'window'},\n- deny_duplicates=true,\n- redraw={'current_window_only'},\n- defaults={if_true=\"both\"},\n- cb='did_set_cursorlineopt'\n- },\n- {\n- full_name='debug',\n- short_desc=N_(\"to \\\"msg\\\" to see all error messages\"),\n- type='string', scope={'global'},\n- varname='p_debug',\n- defaults={if_true=\"\"},\n- cb='did_set_debug'\n- },\n- {\n- full_name='define', abbreviation='def',\n- short_desc=N_(\"pattern to be used to find a macro definition\"),\n- type='string', scope={'global', 'buffer'},\n- alloced=true,\n- redraw={'curswant'},\n- varname='p_def',\n- defaults={if_true=\"\"}\n- },\n- {\n- full_name='delcombine', abbreviation='deco',\n- short_desc=N_(\"delete combining characters on their own\"),\n- type='bool', scope={'global'},\n- varname='p_deco',\n- defaults={if_true=false}\n- },\n- {\n- full_name='dictionary', abbreviation='dict',\n- short_desc=N_(\"list of file names used for keyword completion\"),\n- type='string', list='onecomma', scope={'global', 'buffer'},\n- deny_duplicates=true,\n- normal_dname_chars=true,\n- expand=true,\n- varname='p_dict',\n- defaults={if_true=\"\"}\n- },\n- {\n- full_name='diff',\n- short_desc=N_(\"diff mode for the current window\"),\n- type='bool', scope={'window'},\n- noglob=true,\n- redraw={'current_window'},\n- defaults={if_true=false},\n- cb='did_set_diff'\n- },\n- {\n- full_name='diffexpr', abbreviation='dex',\n- short_desc=N_(\"expression used to obtain a diff file\"),\n- type='string', scope={'global'},\n- secure=true,\n- redraw={'curswant'},\n- varname='p_dex',\n- defaults={if_true=\"\"},\n- cb='did_set_optexpr'\n- },\n- {\n- full_name='diffopt', abbreviation='dip',\n- short_desc=N_(\"options for using diff mode\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- alloced=true,\n- redraw={'current_window'},\n- varname='p_dip',\n- defaults={if_true=\"internal,filler,closeoff\"},\n- cb='did_set_diffopt'\n- },\n- {\n- full_name='digraph', abbreviation='dg',\n- short_desc=N_(\"enable the entering of digraphs in Insert mode\"),\n- type='bool', scope={'global'},\n- varname='p_dg',\n- defaults={if_true=false}\n- },\n- {\n- full_name='directory', abbreviation='dir',\n- short_desc=N_(\"list of directory names for the swap file\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- secure=true,\n- expand='nodefault',\n- varname='p_dir',\n- defaults={if_true=''}\n- },\n- {\n- full_name='display', abbreviation='dy',\n- short_desc=N_(\"list of flags for how to display text\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- redraw={'all_windows'},\n- varname='p_dy',\n- defaults={if_true=\"lastline\"},\n- cb='did_set_display'\n- },\n- {\n- full_name='eadirection', abbreviation='ead',\n- short_desc=N_(\"in which direction 'equalalways' works\"),\n- type='string', scope={'global'},\n- varname='p_ead',\n- defaults={if_true=\"both\"},\n- cb='did_set_eadirection'\n- },\n- {\n- full_name='edcompatible', abbreviation='ed',\n- short_desc=N_(\"No description\"),\n- type='bool', scope={'global'},\n- varname='p_force_off',\n- defaults={if_true=false}\n- },\n- {\n- full_name='emoji', abbreviation='emo',\n- short_desc=N_(\"No description\"),\n- type='bool', scope={'global'},\n- redraw={'all_windows', 'ui_option'},\n- varname='p_emoji',\n- defaults={if_true=true},\n- cb='did_set_ambiwidth'\n- },\n- {\n- full_name='encoding', abbreviation='enc',\n- short_desc=N_(\"encoding used internally\"),\n- type='string', scope={'global'},\n- deny_in_modelines=true,\n- varname='p_enc',\n- defaults={if_true=macros('ENC_DFLT')},\n- cb='did_set_encoding'\n- },\n- {\n- full_name='endoffile', abbreviation='eof',\n- short_desc=N_(\"write CTRL-Z for last line in file\"),\n- type='bool', scope={'buffer'},\n- no_mkrc=true,\n- redraw={'statuslines'},\n- varname='p_eof',\n- defaults={if_true=false},\n- cb='did_set_eof_eol_fixeol_bomb'\n- },\n- {\n- full_name='endofline', abbreviation='eol',\n- short_desc=N_(\"write for last line in file\"),\n- type='bool', scope={'buffer'},\n- no_mkrc=true,\n- redraw={'statuslines'},\n- varname='p_eol',\n- defaults={if_true=true},\n- cb='did_set_eof_eol_fixeol_bomb'\n- },\n- {\n- full_name='equalalways', abbreviation='ea',\n- short_desc=N_(\"windows are automatically made the same size\"),\n- type='bool', scope={'global'},\n- varname='p_ea',\n- defaults={if_true=true},\n- cb='did_set_equalalways'\n- },\n- {\n- full_name='equalprg', abbreviation='ep',\n- short_desc=N_(\"external program to use for \\\"=\\\" command\"),\n- type='string', scope={'global', 'buffer'},\n- secure=true,\n- expand=true,\n- varname='p_ep',\n- defaults={if_true=\"\"}\n- },\n- {\n- full_name='errorbells', abbreviation='eb',\n- short_desc=N_(\"ring the bell for error messages\"),\n- type='bool', scope={'global'},\n- varname='p_eb',\n- defaults={if_true=false}\n- },\n- {\n- full_name='errorfile', abbreviation='ef',\n- short_desc=N_(\"name of the errorfile for the QuickFix mode\"),\n- type='string', scope={'global'},\n- secure=true,\n- expand=true,\n- varname='p_ef',\n- defaults={if_true=macros('DFLT_ERRORFILE')}\n- },\n- {\n- full_name='errorformat', abbreviation='efm',\n- short_desc=N_(\"description of the lines in the error file\"),\n- type='string', list='onecomma', scope={'global', 'buffer'},\n- deny_duplicates=true,\n- varname='p_efm',\n- defaults={if_true=macros('DFLT_EFM')}\n- },\n- {\n- full_name='eventignore', abbreviation='ei',\n- short_desc=N_(\"autocommand events that are ignored\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- varname='p_ei',\n- defaults={if_true=\"\"},\n- cb='did_set_eventignore'\n- },\n- {\n- full_name='expandtab', abbreviation='et',\n- short_desc=N_(\"use spaces when is inserted\"),\n- type='bool', scope={'buffer'},\n- varname='p_et',\n- defaults={if_true=false}\n- },\n- {\n- full_name='exrc', abbreviation='ex',\n- short_desc=N_(\"read .nvimrc and .exrc in the current directory\"),\n- type='bool', scope={'global'},\n- secure=true,\n- varname='p_exrc',\n- defaults={if_true=false}\n- },\n- {\n- full_name='fileencoding', abbreviation='fenc',\n- short_desc=N_(\"file encoding for multi-byte text\"),\n- type='string', scope={'buffer'},\n- no_mkrc=true,\n- alloced=true,\n- redraw={'statuslines', 'current_buffer'},\n- varname='p_fenc',\n- defaults={if_true=\"\"},\n- cb='did_set_encoding'\n- },\n- {\n- full_name='fileencodings', abbreviation='fencs',\n- short_desc=N_(\"automatically detected character encodings\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- varname='p_fencs',\n- defaults={if_true=\"ucs-bom,utf-8,default,latin1\"}\n- },\n- {\n- full_name='fileformat', abbreviation='ff',\n- short_desc=N_(\"file format used for file I/O\"),\n- type='string', scope={'buffer'},\n- no_mkrc=true,\n- alloced=true,\n- redraw={'curswant', 'statuslines'},\n- varname='p_ff',\n- defaults={if_true=macros('DFLT_FF')},\n- cb='did_set_fileformat'\n- },\n- {\n- full_name='fileformats', abbreviation='ffs',\n- short_desc=N_(\"automatically detected values for 'fileformat'\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- varname='p_ffs',\n- defaults={if_true=macros('DFLT_FFS_VIM')},\n- cb='did_set_fileformats'\n- },\n- {\n- full_name='fileignorecase', abbreviation='fic',\n- short_desc=N_(\"ignore case when using file names\"),\n- type='bool', scope={'global'},\n- varname='p_fic',\n- defaults={\n- condition='CASE_INSENSITIVE_FILENAME',\n- if_true=true,\n- if_false=false,\n- }\n- },\n- {\n- full_name='filetype', abbreviation='ft',\n- short_desc=N_(\"type of file, used for autocommands\"),\n- type='string', scope={'buffer'},\n- noglob=true,\n- normal_fname_chars=true,\n- alloced=true,\n- expand=true,\n- varname='p_ft',\n- defaults={if_true=\"\"},\n- cb='did_set_filetype_or_syntax'\n- },\n- {\n- full_name='fillchars', abbreviation='fcs',\n- short_desc=N_(\"characters to use for displaying special items\"),\n- type='string', list='onecomma', scope={'global', 'window'},\n- deny_duplicates=true,\n- alloced=true,\n- redraw={'current_window'},\n- varname='p_fcs',\n- defaults={if_true=''},\n- cb='did_set_chars_option'\n- },\n- {\n- full_name='fixendofline', abbreviation='fixeol',\n- short_desc=N_(\"make sure last line in file has \"),\n- type='bool', scope={'buffer'},\n- redraw={'statuslines'},\n- varname='p_fixeol',\n- defaults={if_true=true},\n- cb='did_set_eof_eol_fixeol_bomb'\n- },\n- {\n- full_name='foldclose', abbreviation='fcl',\n- short_desc=N_(\"close a fold when the cursor leaves it\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- redraw={'current_window'},\n- varname='p_fcl',\n- defaults={if_true=\"\"},\n- cb='did_set_foldclose'\n- },\n- {\n- full_name='foldcolumn', abbreviation='fdc',\n- short_desc=N_(\"width of the column used to indicate folds\"),\n- type='string', scope={'window'},\n- alloced=true,\n- redraw={'current_window'},\n- defaults={if_true=\"0\"},\n- cb='did_set_foldcolumn'\n- },\n- {\n- full_name='foldenable', abbreviation='fen',\n- short_desc=N_(\"set to display all folds open\"),\n- type='bool', scope={'window'},\n- redraw={'current_window'},\n- defaults={if_true=true}\n- },\n- {\n- full_name='foldexpr', abbreviation='fde',\n- short_desc=N_(\"expression used when 'foldmethod' is \\\"expr\\\"\"),\n- type='string', scope={'window'},\n- modelineexpr=true,\n- alloced=true,\n- redraw={'current_window'},\n- defaults={if_true=\"0\"},\n- cb='did_set_foldexpr'\n- },\n- {\n- full_name='foldignore', abbreviation='fdi',\n- short_desc=N_(\"ignore lines when 'foldmethod' is \\\"indent\\\"\"),\n- type='string', scope={'window'},\n- alloced=true,\n- redraw={'current_window'},\n- defaults={if_true=\"#\"},\n- cb='did_set_foldignore'\n- },\n- {\n- full_name='foldlevel', abbreviation='fdl',\n- short_desc=N_(\"close folds with a level higher than this\"),\n- type='number', scope={'window'},\n- redraw={'current_window'},\n- defaults={if_true=0},\n- cb='did_set_foldlevel'\n- },\n- {\n- full_name='foldlevelstart', abbreviation='fdls',\n- short_desc=N_(\"'foldlevel' when starting to edit a file\"),\n- type='number', scope={'global'},\n- redraw={'curswant'},\n- varname='p_fdls',\n- defaults={if_true=-1}\n- },\n- {\n- full_name='foldmarker', abbreviation='fmr',\n- short_desc=N_(\"markers used when 'foldmethod' is \\\"marker\\\"\"),\n- type='string', list='onecomma', scope={'window'},\n- deny_duplicates=true,\n- alloced=true,\n- redraw={'current_window'},\n- defaults={if_true=\"{{{,}}}\"},\n- cb='did_set_foldmarker'\n- },\n- {\n- full_name='foldmethod', abbreviation='fdm',\n- short_desc=N_(\"folding type\"),\n- type='string', scope={'window'},\n- alloced=true,\n- redraw={'current_window'},\n- defaults={if_true=\"manual\"},\n- cb='did_set_foldmethod'\n- },\n- {\n- full_name='foldminlines', abbreviation='fml',\n- short_desc=N_(\"minimum number of lines for a fold to be closed\"),\n- type='number', scope={'window'},\n- redraw={'current_window'},\n- defaults={if_true=1},\n- cb='did_set_foldminlines'\n- },\n- {\n- full_name='foldnestmax', abbreviation='fdn',\n- short_desc=N_(\"maximum fold depth\"),\n- type='number', scope={'window'},\n- redraw={'current_window'},\n- defaults={if_true=20},\n- cb='did_set_foldnestmax'\n- },\n- {\n- full_name='foldopen', abbreviation='fdo',\n- short_desc=N_(\"for which commands a fold will be opened\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- redraw={'curswant'},\n- varname='p_fdo',\n- defaults={if_true=\"block,hor,mark,percent,quickfix,search,tag,undo\"},\n- cb='did_set_foldopen'\n- },\n- {\n- full_name='foldtext', abbreviation='fdt',\n- short_desc=N_(\"expression used to display for a closed fold\"),\n- type='string', scope={'window'},\n- modelineexpr=true,\n- alloced=true,\n- redraw={'current_window'},\n- defaults={if_true=\"foldtext()\"},\n- cb='did_set_optexpr'\n- },\n- {\n- full_name='formatexpr', abbreviation='fex',\n- short_desc=N_(\"expression used with \\\"gq\\\" command\"),\n- type='string', scope={'buffer'},\n- modelineexpr=true,\n- alloced=true,\n- varname='p_fex',\n- defaults={if_true=\"\"},\n- cb='did_set_optexpr'\n- },\n- {\n- full_name='formatoptions', abbreviation='fo',\n- short_desc=N_(\"how automatic formatting is to be done\"),\n- type='string', list='flags', scope={'buffer'},\n- alloced=true,\n- varname='p_fo',\n- defaults={if_true=macros('DFLT_FO_VIM')},\n- cb='did_set_formatoptions'\n- },\n- {\n- full_name='formatlistpat', abbreviation='flp',\n- short_desc=N_(\"pattern used to recognize a list header\"),\n- type='string', scope={'buffer'},\n- alloced=true,\n- varname='p_flp',\n- defaults={if_true=\"^\\\\s*\\\\d\\\\+[\\\\]:.)}\\\\t ]\\\\s*\"}\n- },\n- {\n- full_name='formatprg', abbreviation='fp',\n- short_desc=N_(\"name of external program used with \\\"gq\\\" command\"),\n- type='string', scope={'global', 'buffer'},\n- secure=true,\n- expand=true,\n- varname='p_fp',\n- defaults={if_true=\"\"}\n- },\n- {\n- full_name='fsync', abbreviation='fs',\n- short_desc=N_(\"whether to invoke fsync() after file write\"),\n- type='bool', scope={'global'},\n- secure=true,\n- varname='p_fs',\n- defaults={if_true=false}\n- },\n- {\n- full_name='gdefault', abbreviation='gd',\n- short_desc=N_(\"the \\\":substitute\\\" flag 'g' is default on\"),\n- type='bool', scope={'global'},\n- varname='p_gd',\n- defaults={if_true=false}\n- },\n- {\n- full_name='grepformat', abbreviation='gfm',\n- short_desc=N_(\"format of 'grepprg' output\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- varname='p_gefm',\n- defaults={if_true=macros('DFLT_GREPFORMAT')}\n- },\n- {\n- full_name='grepprg', abbreviation='gp',\n- short_desc=N_(\"program to use for \\\":grep\\\"\"),\n- type='string', scope={'global', 'buffer'},\n- secure=true,\n- expand=true,\n- varname='p_gp',\n- defaults={\n- condition='MSWIN',\n- -- Add an extra file name so that grep will always\n- -- insert a file name in the match line. */\n- if_true=\"findstr /n $* nul\",\n- if_false=\"grep -n $* /dev/null\"\n- }\n- },\n- {\n- full_name='guicursor', abbreviation='gcr',\n- short_desc=N_(\"GUI: settings for cursor shape and blinking\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- varname='p_guicursor',\n- defaults={if_true=\"n-v-c-sm:block,i-ci-ve:ver25,r-cr-o:hor20\"},\n- cb='did_set_guicursor'\n- },\n- {\n- full_name='guifont', abbreviation='gfn',\n- short_desc=N_(\"GUI: Name(s) of font(s) to be used\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- varname='p_guifont',\n- redraw={'ui_option'},\n- defaults={if_true=\"\"}\n- },\n- {\n- full_name='guifontwide', abbreviation='gfw',\n- short_desc=N_(\"list of font names for double-wide characters\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- redraw={'ui_option'},\n- varname='p_guifontwide',\n- defaults={if_true=\"\"}\n- },\n- {\n- full_name='guioptions', abbreviation='go',\n- short_desc=N_(\"GUI: Which components and options are used\"),\n- type='string', list='flags', scope={'global'},\n- enable_if=false,\n- },\n- {\n- full_name='guitablabel', abbreviation='gtl',\n- short_desc=N_(\"GUI: custom label for a tab page\"),\n- type='string', scope={'global'},\n- modelineexpr=true,\n- redraw={'current_window'},\n- enable_if=false,\n- },\n- {\n- full_name='guitabtooltip', abbreviation='gtt',\n- short_desc=N_(\"GUI: custom tooltip for a tab page\"),\n- type='string', scope={'global'},\n- redraw={'current_window'},\n- enable_if=false,\n- },\n- {\n- full_name='helpfile', abbreviation='hf',\n- short_desc=N_(\"full path name of the main help file\"),\n- type='string', scope={'global'},\n- secure=true,\n- expand=true,\n- varname='p_hf',\n- defaults={if_true=macros('DFLT_HELPFILE')},\n- cb='did_set_helpfile'\n- },\n- {\n- full_name='helpheight', abbreviation='hh',\n- short_desc=N_(\"minimum height of a new help window\"),\n- type='number', scope={'global'},\n- varname='p_hh',\n- defaults={if_true=20},\n- cb='did_set_helpheight'\n- },\n- {\n- full_name='helplang', abbreviation='hlg',\n- short_desc=N_(\"preferred help languages\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- varname='p_hlg',\n- defaults={if_true=\"\"},\n- cb='did_set_helplang'\n- },\n- {\n- full_name='hidden', abbreviation='hid',\n- short_desc=N_(\"don't unload buffer when it is |abandon|ed\"),\n- type='bool', scope={'global'},\n- varname='p_hid',\n- defaults={if_true=true}\n- },\n- {\n- full_name='highlight', abbreviation='hl',\n- short_desc=N_(\"sets highlighting mode for various occasions\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- varname='p_hl',\n- defaults={if_true=macros('HIGHLIGHT_INIT')},\n- cb='did_set_highlight'\n- },\n- {\n- full_name='history', abbreviation='hi',\n- short_desc=N_(\"number of command-lines that are remembered\"),\n- type='number', scope={'global'},\n- varname='p_hi',\n- defaults={if_true=10000}\n- },\n- {\n- full_name='hkmap', abbreviation='hk',\n- short_desc=N_(\"No description\"),\n- type='bool', scope={'global'},\n- varname='p_force_off',\n- defaults={if_true=false}\n- },\n- {\n- full_name='hkmapp', abbreviation='hkp',\n- short_desc=N_(\"No description\"),\n- type='bool', scope={'global'},\n- varname='p_force_off',\n- defaults={if_true=false}\n- },\n- {\n- full_name='hlsearch', abbreviation='hls',\n- short_desc=N_(\"highlight matches with last search pattern\"),\n- type='bool', scope={'global'},\n- redraw={'all_windows'},\n- varname='p_hls',\n- defaults={if_true=true},\n- cb='did_set_hlsearch'\n- },\n- {\n- full_name='icon',\n- short_desc=N_(\"Vim set the text of the window icon\"),\n- type='bool', scope={'global'},\n- varname='p_icon',\n- defaults={if_true=false},\n- cb='did_set_title_icon'\n- },\n- {\n- full_name='iconstring',\n- short_desc=N_(\"to use for the Vim icon text\"),\n- type='string', scope={'global'},\n- modelineexpr=true,\n- varname='p_iconstring',\n- defaults={if_true=\"\"},\n- cb='did_set_iconstring'\n- },\n- {\n- full_name='ignorecase', abbreviation='ic',\n- short_desc=N_(\"ignore case in search patterns\"),\n- type='bool', scope={'global'},\n- varname='p_ic',\n- defaults={if_true=false},\n- cb='did_set_ignorecase'\n- },\n- {\n- full_name='imcmdline', abbreviation='imc',\n- short_desc=N_(\"use IM when starting to edit a command line\"),\n- type='bool', scope={'global'},\n- enable_if=false,\n- defaults={if_true=false}\n- },\n- {\n- full_name='imdisable', abbreviation='imd',\n- short_desc=N_(\"do not use the IM in any mode\"),\n- type='bool', scope={'global'},\n- enable_if=false,\n- defaults={if_true=false}\n- },\n- {\n- full_name='iminsert', abbreviation='imi',\n- short_desc=N_(\"use :lmap or IM in Insert mode\"),\n- type='number', scope={'buffer'},\n- varname='p_iminsert', pv_name='p_imi',\n- defaults={if_true=macros('B_IMODE_NONE')},\n- cb='did_set_iminsert'\n- },\n- {\n- full_name='imsearch', abbreviation='ims',\n- short_desc=N_(\"use :lmap or IM when typing a search pattern\"),\n- type='number', scope={'buffer'},\n- varname='p_imsearch', pv_name='p_ims',\n- defaults={\n- if_true=macros('B_IMODE_USE_INSERT'),\n- }\n- },\n- {\n- full_name='inccommand', abbreviation='icm',\n- short_desc=N_(\"Live preview of substitution\"),\n- type='string', scope={'global'},\n- varname='p_icm',\n- defaults={if_true=\"nosplit\"},\n- cb='did_set_inccommand'\n- },\n- {\n- full_name='include', abbreviation='inc',\n- short_desc=N_(\"pattern to be used to find an include file\"),\n- type='string', scope={'global', 'buffer'},\n- alloced=true,\n- varname='p_inc',\n- defaults={if_true=\"\"}\n- },\n- {\n- full_name='includeexpr', abbreviation='inex',\n- short_desc=N_(\"expression used to process an include line\"),\n- type='string', scope={'buffer'},\n- modelineexpr=true,\n- alloced=true,\n- varname='p_inex',\n- defaults={if_true=\"\"},\n- cb='did_set_optexpr'\n- },\n- {\n- full_name='incsearch', abbreviation='is',\n- short_desc=N_(\"highlight match while typing search pattern\"),\n- type='bool', scope={'global'},\n- varname='p_is',\n- defaults={if_true=true}\n- },\n- {\n- full_name='indentexpr', abbreviation='inde',\n- short_desc=N_(\"expression used to obtain the indent of a line\"),\n- type='string', scope={'buffer'},\n- modelineexpr=true,\n- alloced=true,\n- varname='p_inde',\n- defaults={if_true=\"\"},\n- cb='did_set_optexpr'\n- },\n- {\n- full_name='indentkeys', abbreviation='indk',\n- short_desc=N_(\"keys that trigger indenting with 'indentexpr'\"),\n- type='string', list='onecomma', scope={'buffer'},\n- deny_duplicates=true,\n- alloced=true,\n- varname='p_indk',\n- defaults={if_true=indentkeys_default}\n- },\n- {\n- full_name='infercase', abbreviation='inf',\n- short_desc=N_(\"adjust case of match for keyword completion\"),\n- type='bool', scope={'buffer'},\n- varname='p_inf',\n- defaults={if_true=false}\n- },\n- {\n- full_name='insertmode', abbreviation='im',\n- short_desc=N_(\"No description\"),\n- type='bool', scope={'global'},\n- varname='p_force_off',\n- defaults={if_true=false}\n- },\n- {\n- full_name='isfname', abbreviation='isf',\n- short_desc=N_(\"characters included in file names and pathnames\"),\n- type='string', list='comma', scope={'global'},\n- deny_duplicates=true,\n- varname='p_isf',\n- defaults={\n- condition='BACKSLASH_IN_FILENAME',\n- -- Excluded are: & and ^ are special in cmd.exe\n- -- ( and ) are used in text separating fnames */\n- if_true=\"@,48-57,/,\\\\,.,-,_,+,,,#,$,%,{,},[,],:,@-@,!,~,=\",\n- if_false=\"@,48-57,/,.,-,_,+,,,#,$,%,~,=\"\n+ deny_duplicates = true,\n+ desc = [=[\n+ A list of file patterns. When one of the patterns matches with the\n+ name of the file which is written, no backup file is created. Both\n+ the specified file name and the full path name of the file are used.\n+ The pattern is used like with |:autocmd|, see |autocmd-pattern|.\n+ Watch out for special characters, see |option-backslash|.\n+ When $TMPDIR, $TMP or $TEMP is not defined, it is not used for the\n+ default value. \"/tmp/*\" is only used for Unix.\n+\n+ WARNING: Not having a backup file means that when Vim fails to write\n+ your buffer correctly and then, for whatever reason, Vim exits, you\n+ lose both the original file and what you were writing. Only disable\n+ backups if you don't care about losing the file.\n+\n+ Note that environment variables are not expanded. If you want to use\n+ $HOME you must expand it explicitly, e.g.: >\n+ \t:let &backupskip = escape(expand('$HOME'), '\\') .. '/tmp/*'\n+\n+ <\tNote that the default also makes sure that \"crontab -e\" works (when a\n+ backup would be made by renaming the original file crontab won't see\n+ the newly created file). Also see 'backupcopy' and |crontab|.\n+ ]=],\n+ full_name = 'backupskip',\n+ list = 'onecomma',\n+ scope = { 'global' },\n+ short_desc = N_('no backup for files that match these patterns'),\n+ type = 'string',\n+ varname = 'p_bsk',\n+ },\n+ {\n+ abbreviation = 'bo',\n+ cb = 'did_set_belloff',\n+ defaults = { if_true = 'all' },\n+ deny_duplicates = true,\n+ desc = [=[\n+ Specifies for which events the bell will not be rung. It is a comma-\n+ separated list of items. For each item that is present, the bell\n+ will be silenced. This is most useful to specify specific events in\n+ insert mode to be silenced.\n+\n+ item\t meaning when present\t~\n+ all\t All events.\n+ backspace When hitting or and deleting results in an\n+ \t error.\n+ cursor\t Fail to move around using the cursor keys or\n+ \t / in |Insert-mode|.\n+ complete Error occurred when using |i_CTRL-X_CTRL-K| or\n+ \t |i_CTRL-X_CTRL-T|.\n+ copy\t Cannot copy char from insert mode using |i_CTRL-Y| or\n+ \t |i_CTRL-E|.\n+ ctrlg\t Unknown Char after in Insert mode.\n+ error\t Other Error occurred (e.g. try to join last line)\n+ \t (mostly used in |Normal-mode| or |Cmdline-mode|).\n+ esc\t hitting in |Normal-mode|.\n+ hangul\t Ignored.\n+ lang\t Calling the beep module for Lua/Mzscheme/TCL.\n+ mess\t No output available for |g<|.\n+ showmatch Error occurred for 'showmatch' function.\n+ operator Empty region error |cpo-E|.\n+ register Unknown register after in |Insert-mode|.\n+ shell\t Bell from shell output |:!|.\n+ spell\t Error happened on spell suggest.\n+ wildmode More matches in |cmdline-completion| available\n+ \t (depends on the 'wildmode' setting).\n+\n+ This is most useful to fine tune when in Insert mode the bell should\n+ be rung. For Normal mode and Ex commands, the bell is often rung to\n+ indicate that an error occurred. It can be silenced by adding the\n+ \"error\" keyword.\n+ ]=],\n+ full_name = 'belloff',\n+ list = 'comma',\n+ scope = { 'global' },\n+ short_desc = N_('do not ring the bell for these reasons'),\n+ type = 'string',\n+ varname = 'p_bo',\n+ },\n+ {\n+ abbreviation = 'bin',\n+ cb = 'did_set_binary',\n+ defaults = { if_true = false },\n+ desc = [=[\n+ This option should be set before editing a binary file. You can also\n+ use the |-b| Vim argument. When this option is switched on a few\n+ options will be changed (also when it already was on):\n+ \t'textwidth' will be set to 0\n+ \t'wrapmargin' will be set to 0\n+ \t'modeline' will be off\n+ \t'expandtab' will be off\n+ Also, 'fileformat' and 'fileformats' options will not be used, the\n+ file is read and written like 'fileformat' was \"unix\" (a single \n+ separates lines).\n+ The 'fileencoding' and 'fileencodings' options will not be used, the\n+ file is read without conversion.\n+ NOTE: When you start editing a(nother) file while the 'bin' option is\n+ on, settings from autocommands may change the settings again (e.g.,\n+ 'textwidth'), causing trouble when editing. You might want to set\n+ 'bin' again when the file has been loaded.\n+ The previous values of these options are remembered and restored when\n+ 'bin' is switched from on to off. Each buffer has its own set of\n+ saved option values.\n+ To edit a file with 'binary' set you can use the |++bin| argument.\n+ This avoids you have to do \":set bin\", which would have effect for all\n+ files you edit.\n+ When writing a file the for the last line is only written if\n+ there was one in the original file (normally Vim appends an to\n+ the last line if there is none; this would make the file longer). See\n+ the 'endofline' option.\n+ ]=],\n+ full_name = 'binary',\n+ redraw = { 'statuslines' },\n+ scope = { 'buffer' },\n+ short_desc = N_('read/write/edit file in binary mode'),\n+ type = 'bool',\n+ varname = 'p_bin',\n+ },\n+ {\n+ cb = 'did_set_eof_eol_fixeol_bomb',\n+ defaults = { if_true = false },\n+ desc = [=[\n+ When writing a file and the following conditions are met, a BOM (Byte\n+ Order Mark) is prepended to the file:\n+ - this option is on\n+ - the 'binary' option is off\n+ - 'fileencoding' is \"utf-8\", \"ucs-2\", \"ucs-4\" or one of the little/big\n+ endian variants.\n+ Some applications use the BOM to recognize the encoding of the file.\n+ Often used for UCS-2 files on MS-Windows. For other applications it\n+ causes trouble, for example: \"cat file1 file2\" makes the BOM of file2\n+ appear halfway through the resulting file. Gcc doesn't accept a BOM.\n+ When Vim reads a file and 'fileencodings' starts with \"ucs-bom\", a\n+ check for the presence of the BOM is done and 'bomb' set accordingly.\n+ Unless 'binary' is set, it is removed from the first line, so that you\n+ don't see it when editing. When you don't change the options, the BOM\n+ will be restored when writing the file.\n+ ]=],\n+ full_name = 'bomb',\n+ no_mkrc = true,\n+ redraw = { 'statuslines' },\n+ scope = { 'buffer' },\n+ short_desc = N_('a Byte Order Mark to the file'),\n+ type = 'bool',\n+ varname = 'p_bomb',\n+ },\n+ {\n+ abbreviation = 'brk',\n+ cb = 'did_set_breakat',\n+ defaults = {\n+ if_true = ' \\t!@*-+;:,./?',\n+ doc = '\" ^I!@*-+;:,./?\"',\n },\n- cb='did_set_isopt'\n- },\n- {\n- full_name='isident', abbreviation='isi',\n- short_desc=N_(\"characters included in identifiers\"),\n- type='string', list='comma', scope={'global'},\n- deny_duplicates=true,\n- varname='p_isi',\n- defaults={\n- condition='MSWIN',\n- if_true=\"@,48-57,_,128-167,224-235\",\n- if_false=\"@,48-57,_,192-255\"\n+ desc = [=[\n+ This option lets you choose which characters might cause a line\n+ break if 'linebreak' is on. Only works for ASCII characters.\n+ ]=],\n+ full_name = 'breakat',\n+ list = 'flags',\n+ redraw = { 'all_windows' },\n+ scope = { 'global' },\n+ short_desc = N_('characters that may cause a line break'),\n+ type = 'string',\n+ varname = 'p_breakat',\n+ },\n+ {\n+ abbreviation = 'bri',\n+ defaults = { if_true = false },\n+ desc = [=[\n+ Every wrapped line will continue visually indented (same amount of\n+ space as the beginning of that line), thus preserving horizontal blocks\n+ of text.\n+ ]=],\n+ full_name = 'breakindent',\n+ redraw = { 'current_window' },\n+ scope = { 'window' },\n+ short_desc = N_('wrapped line repeats indent'),\n+ type = 'bool',\n+ },\n+ {\n+ abbreviation = 'briopt',\n+ alloced = true,\n+ cb = 'did_set_breakindentopt',\n+ defaults = { if_true = '' },\n+ deny_duplicates = true,\n+ desc = [=[\n+ Settings for 'breakindent'. It can consist of the following optional\n+ items and must be separated by a comma:\n+ \tmin:{n}\t Minimum text width that will be kept after\n+ \t\t applying 'breakindent', even if the resulting\n+ \t\t text should normally be narrower. This prevents\n+ \t\t text indented almost to the right window border\n+ \t\t occupying lot of vertical space when broken.\n+ \t\t (default: 20)\n+ \tshift:{n} After applying 'breakindent', the wrapped line's\n+ \t\t beginning will be shifted by the given number of\n+ \t\t characters. It permits dynamic French paragraph\n+ \t\t indentation (negative) or emphasizing the line\n+ \t\t continuation (positive).\n+ \t\t (default: 0)\n+ \tsbr\t Display the 'showbreak' value before applying the\n+ \t\t additional indent.\n+ \t\t (default: off)\n+ \tlist:{n} Adds an additional indent for lines that match a\n+ \t\t numbered or bulleted list (using the\n+ \t\t 'formatlistpat' setting).\n+ \tlist:-1\t Uses the length of a match with 'formatlistpat'\n+ \t\t for indentation.\n+ \t\t (default: 0)\n+ \tcolumn:{n} Indent at column {n}. Will overrule the other\n+ \t\t sub-options. Note: an additional indent may be\n+ \t\t added for the 'showbreak' setting.\n+ \t\t (default: off)\n+ ]=],\n+ full_name = 'breakindentopt',\n+ list = 'onecomma',\n+ redraw = { 'current_buffer' },\n+ scope = { 'window' },\n+ short_desc = N_(\"settings for 'breakindent'\"),\n+ type = 'string',\n+ },\n+ {\n+ abbreviation = 'bsdir',\n+ defaults = {\n+ if_true = '',\n+ doc = '\"last\"',\n },\n- cb='did_set_isopt'\n- },\n- {\n- full_name='iskeyword', abbreviation='isk',\n- short_desc=N_(\"characters included in keywords\"),\n- type='string', list='comma', scope={'buffer'},\n- deny_duplicates=true,\n- alloced=true,\n- varname='p_isk',\n- defaults={if_true=\"@,48-57,_,192-255\"},\n- cb='did_set_isopt'\n- },\n- {\n- full_name='isprint', abbreviation='isp',\n- short_desc=N_(\"printable characters\"),\n- type='string', list='comma', scope={'global'},\n- deny_duplicates=true,\n- redraw={'all_windows'},\n- varname='p_isp',\n- defaults={if_true=\"@,161-255\"},\n- cb='did_set_isopt'\n- },\n- {\n- full_name='joinspaces', abbreviation='js',\n- short_desc=N_(\"two spaces after a period with a join command\"),\n- type='bool', scope={'global'},\n- varname='p_js',\n- defaults={if_true=false}\n- },\n- {\n- full_name='jumpoptions', abbreviation='jop',\n- short_desc=N_(\"Controls the behavior of the jumplist\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- varname='p_jop',\n- defaults={if_true=''},\n- cb='did_set_jumpoptions'\n- },\n- {\n- full_name='keymap', abbreviation='kmp',\n- short_desc=N_(\"name of a keyboard mapping\"),\n- type='string', scope={'buffer'},\n- normal_fname_chars=true,\n- pri_mkrc=true,\n- alloced=true,\n- redraw={'statuslines', 'current_buffer'},\n- varname='p_keymap', pv_name='p_kmap',\n- defaults={if_true=\"\"},\n- cb='did_set_keymap'\n- },\n- {\n- full_name='keymodel', abbreviation='km',\n- short_desc=N_(\"enable starting/stopping selection with keys\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- varname='p_km',\n- defaults={if_true=\"\"},\n- cb='did_set_keymodel'\n- },\n- {\n- full_name='keywordprg', abbreviation='kp',\n- short_desc=N_(\"program to use for the \\\"K\\\" command\"),\n- type='string', scope={'global', 'buffer'},\n- secure=true,\n- expand=true,\n- varname='p_kp',\n- defaults={\n- if_true=\":Man\",\n- }\n- },\n- {\n- full_name='langmap', abbreviation='lmap',\n- short_desc=N_(\"alphabetic characters for other language mode\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- secure=true,\n- varname='p_langmap',\n- defaults={if_true=\"\"},\n- cb='did_set_langmap'\n- },\n- {\n- full_name='langmenu', abbreviation='lm',\n- short_desc=N_(\"language to be used for the menus\"),\n- type='string', scope={'global'},\n- normal_fname_chars=true,\n- varname='p_lm',\n- defaults={if_true=\"\"}\n- },\n- {\n- full_name='langnoremap', abbreviation='lnr',\n- short_desc=N_(\"do not apply 'langmap' to mapped characters\"),\n- type='bool', scope={'global'},\n- varname='p_lnr',\n- defaults={if_true=true},\n- cb='did_set_langnoremap'\n- },\n- {\n- full_name='langremap', abbreviation='lrm',\n- short_desc=N_('No description'),\n- type='bool', scope={'global'},\n- varname='p_lrm',\n- defaults={if_true=false},\n- cb='did_set_langremap'\n- },\n- {\n- full_name='laststatus', abbreviation='ls',\n- short_desc=N_(\"tells when last window has status lines\"),\n- type='number', scope={'global'},\n- redraw={'all_windows'},\n- varname='p_ls',\n- defaults={if_true=2},\n- cb='did_set_laststatus'\n- },\n- {\n- full_name='lazyredraw', abbreviation='lz',\n- short_desc=N_(\"don't redraw while executing macros\"),\n- type='bool', scope={'global'},\n- varname='p_lz',\n- defaults={if_true=false}\n- },\n- {\n- full_name='linebreak', abbreviation='lbr',\n- short_desc=N_(\"wrap long lines at a blank\"),\n- type='bool', scope={'window'},\n- redraw={'current_window'},\n- defaults={if_true=false}\n- },\n- {\n- full_name='lines',\n- short_desc=N_(\"of lines in the display\"),\n- type='number', scope={'global'},\n- no_mkrc=true,\n- varname='p_lines',\n- defaults={if_true=macros('DFLT_ROWS')}\n- },\n- {\n- full_name='linespace', abbreviation='lsp',\n- short_desc=N_(\"number of pixel lines to use between characters\"),\n- type='number', scope={'global'},\n- redraw={'ui_option'},\n- varname='p_linespace',\n- defaults={if_true=0}\n- },\n- {\n- full_name='lisp',\n- short_desc=N_(\"indenting for Lisp\"),\n- type='bool', scope={'buffer'},\n- varname='p_lisp',\n- defaults={if_true=false},\n- cb='did_set_lisp'\n- },\n- {\n- full_name='lispoptions', abbreviation='lop',\n- short_desc=N_(\"options for lisp indenting\"),\n- type='string', list='onecomma', scope={'buffer'},\n- deny_duplicates=true,\n- varname='p_lop', pv_name='p_lop',\n- defaults={if_true=''},\n- cb='did_set_lispoptions'\n- },\n- {\n- full_name='lispwords', abbreviation='lw',\n- short_desc=N_(\"words that change how lisp indenting works\"),\n- type='string', list='onecomma', scope={'global', 'buffer'},\n- deny_duplicates=true,\n- varname='p_lispwords', pv_name='p_lw',\n- defaults={if_true=macros('LISPWORD_VALUE')}\n- },\n- {\n- full_name='list',\n- short_desc=N_(\" and \"),\n- type='bool', scope={'window'},\n- redraw={'current_window'},\n- defaults={if_true=false}\n- },\n- {\n- full_name='listchars', abbreviation='lcs',\n- short_desc=N_(\"characters for displaying in list mode\"),\n- type='string', list='onecomma', scope={'global', 'window'},\n- deny_duplicates=true,\n- alloced=true,\n- redraw={'current_window'},\n- varname='p_lcs',\n- defaults={if_true=\"tab:> ,trail:-,nbsp:+\"},\n- cb='did_set_chars_option'\n- },\n- {\n- full_name='loadplugins', abbreviation='lpl',\n- short_desc=N_(\"load plugin scripts when starting up\"),\n- type='bool', scope={'global'},\n- varname='p_lpl',\n- defaults={if_true=true}\n- },\n- {\n- full_name='magic',\n- short_desc=N_(\"special characters in search patterns\"),\n- type='bool', scope={'global'},\n- varname='p_magic',\n- defaults={if_true=true}\n- },\n- {\n- full_name='makeef', abbreviation='mef',\n- short_desc=N_(\"name of the errorfile for \\\":make\\\"\"),\n- type='string', scope={'global'},\n- secure=true,\n- expand=true,\n- varname='p_mef',\n- defaults={if_true=\"\"}\n- },\n- {\n- full_name='makeencoding', abbreviation='menc',\n- short_desc=N_(\"Converts the output of external commands\"),\n- type='string', scope={'global', 'buffer'},\n- varname='p_menc',\n- defaults={if_true=\"\"},\n- cb='did_set_encoding'\n- },\n- {\n- full_name='makeprg', abbreviation='mp',\n- short_desc=N_(\"program to use for the \\\":make\\\" command\"),\n- type='string', scope={'global', 'buffer'},\n- secure=true,\n- expand=true,\n- varname='p_mp',\n- defaults={if_true=\"make\"}\n- },\n- {\n- full_name='matchpairs', abbreviation='mps',\n- short_desc=N_(\"pairs of characters that \\\"%\\\" can match\"),\n- type='string', list='onecomma', scope={'buffer'},\n- deny_duplicates=true,\n- alloced=true,\n- varname='p_mps',\n- defaults={if_true=\"(:),{:},[:]\"},\n- cb='did_set_matchpairs'\n- },\n- {\n- full_name='matchtime', abbreviation='mat',\n- short_desc=N_(\"tenths of a second to show matching paren\"),\n- type='number', scope={'global'},\n- varname='p_mat',\n- defaults={if_true=5}\n- },\n- {\n- full_name='maxcombine', abbreviation='mco',\n- short_desc=N_(\"maximum nr of combining characters displayed\"),\n- type='number', scope={'global'},\n- varname='p_mco',\n- defaults={if_true=6}\n- },\n- {\n- full_name='maxfuncdepth', abbreviation='mfd',\n- short_desc=N_(\"maximum recursive depth for user functions\"),\n- type='number', scope={'global'},\n- varname='p_mfd',\n- defaults={if_true=100}\n- },\n- {\n- full_name='maxmapdepth', abbreviation='mmd',\n- short_desc=N_(\"maximum recursive depth for mapping\"),\n- type='number', scope={'global'},\n- varname='p_mmd',\n- defaults={if_true=1000}\n- },\n- {\n- full_name='maxmempattern', abbreviation='mmp',\n- short_desc=N_(\"maximum memory (in Kbyte) used for pattern search\"),\n- type='number', scope={'global'},\n- varname='p_mmp',\n- defaults={if_true=1000}\n- },\n- {\n- full_name='menuitems', abbreviation='mis',\n- short_desc=N_(\"maximum number of items in a menu\"),\n- type='number', scope={'global'},\n- varname='p_mis',\n- defaults={if_true=25}\n- },\n- {\n- full_name='mkspellmem', abbreviation='msm',\n- short_desc=N_(\"memory used before |:mkspell| compresses the tree\"),\n- type='string', scope={'global'},\n- secure=true,\n- expand=true,\n- varname='p_msm',\n- defaults={if_true=\"460000,2000,500\"},\n- cb='did_set_mkspellmem'\n- },\n- {\n- full_name='modeline', abbreviation='ml',\n- short_desc=N_(\"recognize modelines at start or end of file\"),\n- type='bool', scope={'buffer'},\n- varname='p_ml',\n- defaults={if_true=true}\n- },\n- {\n- full_name='modelineexpr', abbreviation='mle',\n- short_desc=N_(\"allow some options to be set in modeline\"),\n- type='bool', scope={'global'},\n- secure=true,\n- varname='p_mle',\n- defaults={if_true=false}\n- },\n- {\n- full_name='modelines', abbreviation='mls',\n- short_desc=N_(\"number of lines checked for modelines\"),\n- type='number', scope={'global'},\n- varname='p_mls',\n- defaults={if_true=5}\n- },\n- {\n- full_name='modifiable', abbreviation='ma',\n- short_desc=N_(\"changes to the text are not possible\"),\n- type='bool', scope={'buffer'},\n- noglob=true,\n- varname='p_ma',\n- defaults={if_true=true},\n- cb='did_set_modifiable'\n- },\n- {\n- full_name='modified', abbreviation='mod',\n- short_desc=N_(\"buffer has been modified\"),\n- type='bool', scope={'buffer'},\n- no_mkrc=true,\n- redraw={'statuslines'},\n- varname='p_mod',\n- defaults={if_true=false},\n- cb='did_set_modified'\n- },\n- {\n- full_name='more',\n- short_desc=N_(\"listings when the whole screen is filled\"),\n- type='bool', scope={'global'},\n- varname='p_more',\n- defaults={if_true=true}\n- },\n- {\n- full_name='mouse',\n- short_desc=N_(\"the use of mouse clicks\"),\n- type='string', list='flags', scope={'global'},\n- varname='p_mouse',\n- defaults={if_true=\"nvi\"},\n- cb='did_set_mouse'\n- },\n- {\n- full_name='mousefocus', abbreviation='mousef',\n- short_desc=N_(\"keyboard focus follows the mouse\"),\n- type='bool', scope={'global'},\n- redraw={'ui_option'},\n- varname='p_mousef',\n- defaults={if_true=false}\n- },\n- {\n- full_name='mousehide', abbreviation='mh',\n- short_desc=N_(\"hide mouse pointer while typing\"),\n- type='bool', scope={'global'},\n- enable_if=false,\n- defaults={if_true=true}\n- },\n- {\n- full_name='mousemodel', abbreviation='mousem',\n- short_desc=N_(\"changes meaning of mouse buttons\"),\n- type='string', scope={'global'},\n- varname='p_mousem',\n- defaults={if_true=\"popup_setpos\"},\n- cb='did_set_mousemodel'\n- },\n- {\n- full_name='mousemoveevent', abbreviation='mousemev',\n- short_desc=N_(\"deliver mouse move events to input queue\"),\n- type='bool', scope={'global'},\n- redraw={'ui_option'},\n- varname='p_mousemev',\n- defaults={if_true=false}\n- },\n- {\n- full_name='mousescroll',\n- short_desc=N_(\"amount to scroll by when scrolling with a mouse\"),\n- type='string', list='comma', scope={'global'},\n- vi_def=true,\n- varname='p_mousescroll',\n- defaults={if_true=\"ver:3,hor:6\"},\n- cb='did_set_mousescroll'\n- },\n- {\n- full_name='mouseshape', abbreviation='mouses',\n- short_desc=N_(\"shape of the mouse pointer in different modes\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- enable_if=false,\n- },\n- {\n- full_name='mousetime', abbreviation='mouset',\n- short_desc=N_(\"max time between mouse double-click\"),\n- type='number', scope={'global'},\n- varname='p_mouset',\n- defaults={if_true=500}\n- },\n- {\n- full_name='nrformats', abbreviation='nf',\n- short_desc=N_(\"number formats recognized for CTRL-A command\"),\n- type='string', list='onecomma', scope={'buffer'},\n- deny_duplicates=true,\n- alloced=true,\n- varname='p_nf',\n- defaults={if_true=\"bin,hex\"},\n- cb='did_set_nrformats'\n- },\n- {\n- full_name='number', abbreviation='nu',\n- short_desc=N_(\"print the line number in front of each line\"),\n- type='bool', scope={'window'},\n- redraw={'current_window'},\n- defaults={if_true=false},\n- cb='did_set_number_relativenumber'\n- },\n- {\n- full_name='numberwidth', abbreviation='nuw',\n- short_desc=N_(\"number of columns used for the line number\"),\n- type='number', scope={'window'},\n- redraw={'current_window'},\n- defaults={if_true=4},\n- cb='did_set_numberwidth'\n- },\n- {\n- full_name='omnifunc', abbreviation='ofu',\n- short_desc=N_(\"function for filetype-specific completion\"),\n- type='string', scope={'buffer'},\n- secure=true,\n- alloced=true,\n- func=true,\n- varname='p_ofu',\n- defaults={if_true=\"\"},\n- cb='did_set_omnifunc'\n- },\n- {\n- full_name='opendevice', abbreviation='odev',\n- short_desc=N_(\"allow reading/writing devices on MS-Windows\"),\n- type='bool', scope={'global'},\n- enable_if=false,\n- defaults={if_true=false}\n- },\n- {\n- full_name='operatorfunc', abbreviation='opfunc',\n- short_desc=N_(\"function to be called for |g@| operator\"),\n- type='string', scope={'global'},\n- secure=true,\n- func=true,\n- varname='p_opfunc',\n- defaults={if_true=\"\"},\n- cb='did_set_operatorfunc'\n- },\n- {\n- full_name='packpath', abbreviation='pp',\n- short_desc=N_(\"list of directories used for packages\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- secure=true,\n- expand=true,\n- varname='p_pp',\n- defaults={if_true=''},\n- cb='did_set_runtimepackpath'\n- },\n- {\n- full_name='paragraphs', abbreviation='para',\n- short_desc=N_(\"nroff macros that separate paragraphs\"),\n- type='string', scope={'global'},\n- varname='p_para',\n- defaults={if_true=\"IPLPPPQPP TPHPLIPpLpItpplpipbp\"}\n- },\n- {\n- full_name='paste',\n- short_desc=N_(\"pasting text\"),\n- type='bool', scope={'global'},\n- pri_mkrc=true,\n- varname='p_paste',\n- defaults={if_true=false},\n- cb='did_set_paste'\n- },\n- {\n- full_name='pastetoggle', abbreviation='pt',\n- short_desc=N_(\"No description\"),\n- type='string', scope={'global'},\n- defaults={if_true=\"\"}\n- },\n- {\n- full_name='patchexpr', abbreviation='pex',\n- short_desc=N_(\"expression used to patch a file\"),\n- type='string', scope={'global'},\n- secure=true,\n- varname='p_pex',\n- defaults={if_true=\"\"},\n- cb='did_set_optexpr'\n- },\n- {\n- full_name='patchmode', abbreviation='pm',\n- short_desc=N_(\"keep the oldest version of a file\"),\n- type='string', scope={'global'},\n- normal_fname_chars=true,\n- varname='p_pm',\n- defaults={if_true=\"\"},\n- cb='did_set_backupext_or_patchmode'\n- },\n- {\n- full_name='path', abbreviation='pa',\n- short_desc=N_(\"list of directories searched with \\\"gf\\\" et.al.\"),\n- type='string', list='comma', scope={'global', 'buffer'},\n- deny_duplicates=true,\n- expand=true,\n- varname='p_path',\n- defaults={if_true=\".,,\"}\n- },\n- {\n- full_name='preserveindent', abbreviation='pi',\n- short_desc=N_(\"preserve the indent structure when reindenting\"),\n- type='bool', scope={'buffer'},\n- varname='p_pi',\n- defaults={if_true=false}\n- },\n- {\n- full_name='previewheight', abbreviation='pvh',\n- short_desc=N_(\"height of the preview window\"),\n- type='number', scope={'global'},\n- varname='p_pvh',\n- defaults={if_true=12}\n- },\n- {\n- full_name='previewwindow', abbreviation='pvw',\n- short_desc=N_(\"identifies the preview window\"),\n- type='bool', scope={'window'},\n- noglob=true,\n- redraw={'statuslines'},\n- defaults={if_true=false},\n- cb='did_set_previewwindow'\n- },\n- {\n- full_name='prompt',\n- short_desc=N_(\"enable prompt in Ex mode\"),\n- type='bool', scope={'global'},\n- varname='p_force_on',\n- defaults={if_true=true}\n- },\n- {\n- full_name='pumblend', abbreviation='pb',\n- short_desc=N_(\"Controls transparency level of popup menu\"),\n- type='number', scope={'global'},\n- redraw={'ui_option'},\n- varname='p_pb',\n- defaults={if_true=0},\n- cb='did_set_pumblend'\n- },\n- {\n- full_name='pumheight', abbreviation='ph',\n- short_desc=N_(\"maximum height of the popup menu\"),\n- type='number', scope={'global'},\n- varname='p_ph',\n- defaults={if_true=0}\n- },\n- {\n- full_name='pumwidth', abbreviation='pw',\n- short_desc=N_(\"minimum width of the popup menu\"),\n- type='number', scope={'global'},\n- varname='p_pw',\n- defaults={if_true=15}\n- },\n- {\n- full_name='pyxversion', abbreviation='pyx',\n- short_desc=N_(\"selects default python version to use\"),\n- type='number', scope={'global'},\n- secure=true,\n- varname='p_pyx',\n- defaults={if_true=3}\n- },\n- {\n- full_name='quickfixtextfunc', abbreviation='qftf',\n- short_desc=N_(\"customize the quickfix window\"),\n- type='string', scope={'global'},\n- secure=true,\n- func=true,\n- varname='p_qftf',\n- defaults={if_true=\"\"},\n- cb='did_set_quickfixtextfunc'\n- },\n- {\n- full_name='quoteescape', abbreviation='qe',\n- short_desc=N_(\"escape characters used in a string\"),\n- type='string', scope={'buffer'},\n- alloced=true,\n- varname='p_qe',\n- defaults={if_true=\"\\\\\"}\n- },\n- {\n- full_name='readonly', abbreviation='ro',\n- short_desc=N_(\"disallow writing the buffer\"),\n- type='bool', scope={'buffer'},\n- noglob=true,\n- redraw={'statuslines'},\n- varname='p_ro',\n- defaults={if_true=false},\n- cb='did_set_readonly'\n- },\n- {\n- full_name='redrawdebug', abbreviation='rdb',\n- short_desc=N_(\"Changes the way redrawing works (debug)\"),\n- type='string', list='onecomma', scope={'global'},\n- varname='p_rdb',\n- defaults={if_true=''},\n- cb='did_set_redrawdebug'\n- },\n- {\n- full_name='redrawtime', abbreviation='rdt',\n- short_desc=N_(\"timeout for 'hlsearch' and |:match| highlighting\"),\n- type='number', scope={'global'},\n- varname='p_rdt',\n- defaults={if_true=2000}\n- },\n- {\n- full_name='regexpengine', abbreviation='re',\n- short_desc=N_(\"default regexp engine to use\"),\n- type='number', scope={'global'},\n- varname='p_re',\n- defaults={if_true=0}\n- },\n- {\n- full_name='relativenumber', abbreviation='rnu',\n- short_desc=N_(\"show relative line number in front of each line\"),\n- type='bool', scope={'window'},\n- redraw={'current_window'},\n- defaults={if_true=false},\n- cb='did_set_number_relativenumber'\n- },\n- {\n- full_name='remap',\n- short_desc=N_(\"No description\"),\n- type='bool', scope={'global'},\n- varname='p_force_on',\n- defaults={if_true=true}\n- },\n- {\n- full_name='report',\n- short_desc=N_(\"for reporting nr. of lines changed\"),\n- type='number', scope={'global'},\n- varname='p_report',\n- defaults={if_true=2}\n- },\n- {\n- full_name='revins', abbreviation='ri',\n- short_desc=N_(\"inserting characters will work backwards\"),\n- type='bool', scope={'global'},\n- varname='p_ri',\n- defaults={if_true=false}\n- },\n- {\n- full_name='rightleft', abbreviation='rl',\n- short_desc=N_(\"window is right-to-left oriented\"),\n- type='bool', scope={'window'},\n- redraw={'current_window'},\n- defaults={if_true=false}\n- },\n- {\n- full_name='rightleftcmd', abbreviation='rlc',\n- short_desc=N_(\"commands for which editing works right-to-left\"),\n- type='string', scope={'window'},\n- alloced=true,\n- redraw={'current_window'},\n- defaults={if_true=\"search\"},\n- cb='did_set_rightleftcmd'\n- },\n- {\n- full_name='ruler', abbreviation='ru',\n- short_desc=N_(\"show cursor line and column in the status line\"),\n- type='bool', scope={'global'},\n- redraw={'statuslines'},\n- varname='p_ru',\n- defaults={if_true=true}\n- },\n- {\n- full_name='rulerformat', abbreviation='ruf',\n- short_desc=N_(\"custom format for the ruler\"),\n- type='string', scope={'global'},\n- alloced=true,\n- modelineexpr=true,\n- redraw={'statuslines'},\n- varname='p_ruf',\n- defaults={if_true=\"\"},\n- cb='did_set_rulerformat'\n- },\n- {\n- full_name='runtimepath', abbreviation='rtp',\n- short_desc=N_(\"list of directories used for runtime files\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- secure=true,\n- expand='nodefault',\n- varname='p_rtp',\n- defaults={if_true=''},\n- cb='did_set_runtimepackpath'\n- },\n- {\n- full_name='scroll', abbreviation='scr',\n- short_desc=N_(\"lines to scroll with CTRL-U and CTRL-D\"),\n- type='number', scope={'window'},\n- no_mkrc=true,\n- pv_name='p_scroll',\n- defaults={if_true=0}\n- },\n- {\n- full_name='smoothscroll', abbreviation='sms',\n- short_desc=N_(\"scroll by screen lines when 'wrap' is set\"),\n- type='bool', scope={'window'},\n- pv_name='p_sms',\n- redraw={'current_window'},\n- defaults={if_true=0},\n- cb='did_set_smoothscroll'\n- },\n- {\n- full_name='scrollback', abbreviation='scbk',\n- short_desc=N_(\"lines to scroll with CTRL-U and CTRL-D\"),\n- type='number', scope={'buffer'},\n- varname='p_scbk',\n- redraw={'current_buffer'},\n- defaults={if_true=-1},\n- cb='did_set_scrollback'\n- },\n- {\n- full_name='scrollbind', abbreviation='scb',\n- short_desc=N_(\"scroll in window as other windows scroll\"),\n- type='bool', scope={'window'},\n- pv_name='p_scbind',\n- defaults={if_true=false},\n- cb='did_set_scrollbind'\n- },\n- {\n- full_name='scrolljump', abbreviation='sj',\n- short_desc=N_(\"minimum number of lines to scroll\"),\n- type='number', scope={'global'},\n- varname='p_sj',\n- defaults={if_true=1}\n- },\n- {\n- full_name='scrolloff', abbreviation='so',\n- short_desc=N_(\"minimum nr. of lines above and below cursor\"),\n- type='number', scope={'global', 'window'},\n- varname='p_so',\n- defaults={if_true=0}\n- },\n- {\n- full_name='scrollopt', abbreviation='sbo',\n- short_desc=N_(\"how 'scrollbind' should behave\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- varname='p_sbo',\n- defaults={if_true=\"ver,jump\"},\n- cb='did_set_scrollopt'\n- },\n- {\n- full_name='sections', abbreviation='sect',\n- short_desc=N_(\"nroff macros that separate sections\"),\n- type='string', scope={'global'},\n- varname='p_sections',\n- defaults={if_true=\"SHNHH HUnhsh\"}\n- },\n- {\n- full_name='secure',\n- short_desc=N_(\"No description\"),\n- type='bool', scope={'global'},\n- secure=true,\n- varname='p_secure',\n- defaults={if_true=false}\n- },\n- {\n- full_name='selection', abbreviation='sel',\n- short_desc=N_(\"what type of selection to use\"),\n- type='string', scope={'global'},\n- varname='p_sel',\n- defaults={if_true=\"inclusive\"},\n- cb='did_set_selection'\n- },\n- {\n- full_name='selectmode', abbreviation='slm',\n- short_desc=N_(\"when to use Select mode instead of Visual mode\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- varname='p_slm',\n- defaults={if_true=\"\"},\n- cb='did_set_selectmode'\n- },\n- {\n- full_name='sessionoptions', abbreviation='ssop',\n- short_desc=N_(\"options for |:mksession|\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- varname='p_ssop',\n- defaults={if_true=\"blank,buffers,curdir,folds,help,tabpages,winsize,terminal\"},\n- cb='did_set_sessionoptions',\n- },\n- {\n- full_name='shada', abbreviation='sd',\n- short_desc=N_(\"use .shada file upon startup and exiting\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- secure=true,\n- varname='p_shada',\n- defaults={if_true=\"!,'100,<50,s10,h\"}\n- },\n- {\n- full_name='shadafile', abbreviation='sdf',\n- short_desc=N_(\"overrides the filename used for shada\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- secure=true,\n- expand=true,\n- varname='p_shadafile',\n- defaults={if_true=\"\"}\n- },\n- {\n- full_name='shell', abbreviation='sh',\n- short_desc=N_(\"name of shell to use for external commands\"),\n- type='string', scope={'global'},\n- secure=true,\n- expand=true,\n- varname='p_sh',\n- defaults={\n- condition='MSWIN',\n- if_true=\"cmd.exe\",\n- if_false=\"sh\"\n- }\n- },\n- {\n- full_name='shellcmdflag', abbreviation='shcf',\n- short_desc=N_(\"flag to shell to execute one command\"),\n- type='string', scope={'global'},\n- secure=true,\n- varname='p_shcf',\n- defaults={\n- condition='MSWIN',\n- if_true=\"/s /c\",\n- if_false=\"-c\"\n- }\n- },\n- {\n- full_name='shellpipe', abbreviation='sp',\n- short_desc=N_(\"string to put output of \\\":make\\\" in error file\"),\n- type='string', scope={'global'},\n- secure=true,\n- varname='p_sp',\n- defaults={\n- condition='MSWIN',\n- if_true=\"2>&1| tee\",\n- if_false=\"| tee\",\n- }\n- },\n- {\n- full_name='shellquote', abbreviation='shq',\n- short_desc=N_(\"quote character(s) for around shell command\"),\n- type='string', scope={'global'},\n- secure=true,\n- varname='p_shq',\n- defaults={if_true=\"\"}\n- },\n- {\n- full_name='shellredir', abbreviation='srr',\n- short_desc=N_(\"string to put output of filter in a temp file\"),\n- type='string', scope={'global'},\n- secure=true,\n- varname='p_srr',\n- defaults={\n- condition='MSWIN',\n- if_true=\">%s 2>&1\",\n- if_false=\">\"\n- }\n- },\n- {\n- full_name='shellslash', abbreviation='ssl',\n- short_desc=N_(\"use forward slash for shell file names\"),\n- type='bool', scope={'global'},\n- varname='p_ssl',\n- enable_if='BACKSLASH_IN_FILENAME',\n- defaults={if_true=false},\n- cb='did_set_shellslash'\n- },\n- {\n- full_name='shelltemp', abbreviation='stmp',\n- short_desc=N_(\"whether to use a temp file for shell commands\"),\n- type='bool', scope={'global'},\n- varname='p_stmp',\n- defaults={if_true=true}\n- },\n- {\n- full_name='shellxquote', abbreviation='sxq',\n- short_desc=N_(\"like 'shellquote', but include redirection\"),\n- type='string', scope={'global'},\n- secure=true,\n- varname='p_sxq',\n- defaults={\n- condition='MSWIN',\n- if_true=\"\\\"\",\n- if_false=\"\",\n- }\n- },\n- {\n- full_name='shellxescape', abbreviation='sxe',\n- short_desc=N_(\"characters to escape when 'shellxquote' is (\"),\n- type='string', scope={'global'},\n- secure=true,\n- varname='p_sxe',\n- defaults={if_true=\"\"}\n- },\n- {\n- full_name='shiftround', abbreviation='sr',\n- short_desc=N_(\"round indent to multiple of shiftwidth\"),\n- type='bool', scope={'global'},\n- varname='p_sr',\n- defaults={if_true=false}\n- },\n- {\n- full_name='shiftwidth', abbreviation='sw',\n- short_desc=N_(\"number of spaces to use for (auto)indent step\"),\n- type='number', scope={'buffer'},\n- varname='p_sw',\n- defaults={if_true=8},\n- cb='did_set_shiftwidth_tabstop'\n- },\n- {\n- full_name='shortmess', abbreviation='shm',\n- short_desc=N_(\"list of flags, reduce length of messages\"),\n- type='string', list='flags', scope={'global'},\n- varname='p_shm',\n- defaults={if_true=\"filnxtToOCF\"},\n- cb='did_set_shortmess'\n- },\n- {\n- full_name='showbreak', abbreviation='sbr',\n- short_desc=N_(\"string to use at the start of wrapped lines\"),\n- type='string', scope={'global', 'window'},\n- redraw={'all_windows'},\n- varname='p_sbr',\n- defaults={if_true=\"\"},\n- cb='did_set_showbreak'\n- },\n- {\n- full_name='showcmd', abbreviation='sc',\n- short_desc=N_(\"show (partial) command in status line\"),\n- type='bool', scope={'global'},\n- varname='p_sc',\n- defaults={if_true=true}\n- },\n- {\n- full_name='showcmdloc', abbreviation='sloc',\n- short_desc=N_(\"change location of partial command\"),\n- type='string', scope={'global'},\n- varname='p_sloc',\n- defaults={if_true=\"last\"},\n- cb='did_set_showcmdloc'\n- },\n- {\n- full_name='showfulltag', abbreviation='sft',\n- short_desc=N_(\"show full tag pattern when completing tag\"),\n- type='bool', scope={'global'},\n- varname='p_sft',\n- defaults={if_true=false}\n- },\n- {\n- full_name='showmatch', abbreviation='sm',\n- short_desc=N_(\"briefly jump to matching bracket if insert one\"),\n- type='bool', scope={'global'},\n- varname='p_sm',\n- defaults={if_true=false}\n- },\n- {\n- full_name='showmode', abbreviation='smd',\n- short_desc=N_(\"message on status line to show current mode\"),\n- type='bool', scope={'global'},\n- varname='p_smd',\n- defaults={if_true=true}\n- },\n- {\n- full_name='showtabline', abbreviation='stal',\n- short_desc=N_(\"tells when the tab pages line is displayed\"),\n- type='number', scope={'global'},\n- redraw={'all_windows', 'ui_option'},\n- varname='p_stal',\n- defaults={if_true=1},\n- cb='did_set_showtabline'\n- },\n- {\n- full_name='sidescroll', abbreviation='ss',\n- short_desc=N_(\"minimum number of columns to scroll horizontal\"),\n- type='number', scope={'global'},\n- varname='p_ss',\n- defaults={if_true=1}\n- },\n- {\n- full_name='sidescrolloff', abbreviation='siso',\n- short_desc=N_(\"min. nr. of columns to left and right of cursor\"),\n- type='number', scope={'global', 'window'},\n- varname='p_siso',\n- defaults={if_true=0}\n- },\n- {\n- full_name='signcolumn', abbreviation='scl',\n- short_desc=N_(\"when to display the sign column\"),\n- type='string', scope={'window'},\n- alloced=true,\n- redraw={'current_window'},\n- defaults={if_true=\"auto\"},\n- cb='did_set_signcolumn'\n- },\n- {\n- full_name='smartcase', abbreviation='scs',\n- short_desc=N_(\"no ignore case when pattern has uppercase\"),\n- type='bool', scope={'global'},\n- varname='p_scs',\n- defaults={if_true=false}\n- },\n- {\n- full_name='smartindent', abbreviation='si',\n- short_desc=N_(\"smart autoindenting for C programs\"),\n- type='bool', scope={'buffer'},\n- varname='p_si',\n- defaults={if_true=false}\n- },\n- {\n- full_name='smarttab', abbreviation='sta',\n- short_desc=N_(\"use 'shiftwidth' when inserting \"),\n- type='bool', scope={'global'},\n- varname='p_sta',\n- defaults={if_true=true}\n- },\n- {\n- full_name='softtabstop', abbreviation='sts',\n- short_desc=N_(\"number of spaces that uses while editing\"),\n- type='number', scope={'buffer'},\n- varname='p_sts',\n- defaults={if_true=0}\n- },\n- {\n- full_name='spell',\n- short_desc=N_(\"spell checking\"),\n- type='bool', scope={'window'},\n- redraw={'current_window'},\n- defaults={if_true=false},\n- cb='did_set_spell'\n- },\n- {\n- full_name='spellcapcheck', abbreviation='spc',\n- short_desc=N_(\"pattern to locate end of a sentence\"),\n- type='string', scope={'buffer'},\n- alloced=true,\n- redraw={'current_buffer'},\n- varname='p_spc',\n- defaults={if_true=\"[.?!]\\\\_[\\\\])'\\\"\t ]\\\\+\"},\n- cb='did_set_spellcapcheck'\n- },\n- {\n- full_name='spellfile', abbreviation='spf',\n- short_desc=N_(\"files where |zg| and |zw| store words\"),\n- type='string', list='onecomma', scope={'buffer'},\n- deny_duplicates=true,\n- secure=true,\n- alloced=true,\n- expand=true,\n- varname='p_spf',\n- defaults={if_true=\"\"},\n- cb='did_set_spellfile'\n- },\n- {\n- full_name='spelllang', abbreviation='spl',\n- short_desc=N_(\"language(s) to do spell checking for\"),\n- type='string', list='onecomma', scope={'buffer'},\n- deny_duplicates=true,\n- alloced=true,\n- expand=true,\n- redraw={'current_buffer'},\n- varname='p_spl',\n- defaults={if_true=\"en\"},\n- cb='did_set_spelllang'\n- },\n- {\n- full_name='spellsuggest', abbreviation='sps',\n- short_desc=N_(\"method(s) used to suggest spelling corrections\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- secure=true,\n- expand=true,\n- varname='p_sps',\n- defaults={if_true=\"best\"},\n- cb='did_set_spellsuggest'\n- },\n- {\n- full_name='spelloptions', abbreviation='spo',\n- type='string', list='onecomma', scope={'buffer'},\n- deny_duplicates=true,\n- secure=true,\n- expand=true,\n- varname='p_spo',\n- redraw={'current_buffer'},\n- defaults={if_true=\"\"},\n- cb='did_set_spelloptions'\n- },\n- {\n- full_name='splitbelow', abbreviation='sb',\n- short_desc=N_(\"new window from split is below the current one\"),\n- type='bool', scope={'global'},\n- varname='p_sb',\n- defaults={if_true=false}\n- },\n- {\n- full_name='splitkeep', abbreviation='spk',\n- short_desc=N_(\"determines scroll behavior for split windows\"),\n- type='string', scope={'global'},\n- varname='p_spk',\n- defaults={if_true='cursor'},\n- cb='did_set_splitkeep'\n- },\n- {\n- full_name='splitright', abbreviation='spr',\n- short_desc=N_(\"new window is put right of the current one\"),\n- type='bool', scope={'global'},\n- varname='p_spr',\n- defaults={if_true=false}\n- },\n- {\n- full_name='startofline', abbreviation='sol',\n- short_desc=N_(\"commands move cursor to first non-blank in line\"),\n- type='bool', scope={'global'},\n- vim=false,\n- varname='p_sol',\n- defaults={if_true=false}\n- },\n- {\n- full_name='statuscolumn', abbreviation='stc',\n- short_desc=N_(\"custom format for the status column\"),\n- type='string', scope={'window'},\n- redraw={'current_window'},\n- secure=true,\n- alloced=true,\n- defaults={if_true=\"\"},\n- cb='did_set_statuscolumn'\n- },\n- {\n- full_name='statusline', abbreviation='stl',\n- short_desc=N_(\"custom format for the status line\"),\n- type='string', scope={'global', 'window'},\n- alloced=true,\n- modelineexpr=true,\n- redraw={'statuslines'},\n- varname='p_stl',\n- defaults={if_true=\"\"},\n- cb='did_set_statusline'\n- },\n- {\n- full_name='suffixes', abbreviation='su',\n- short_desc=N_(\"suffixes that are ignored with multiple match\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- varname='p_su',\n- defaults={if_true=\".bak,~,.o,.h,.info,.swp,.obj\"}\n- },\n- {\n- full_name='suffixesadd', abbreviation='sua',\n- short_desc=N_(\"suffixes added when searching for a file\"),\n- type='string', list='onecomma', scope={'buffer'},\n- deny_duplicates=true,\n- alloced=true,\n- varname='p_sua',\n- defaults={if_true=\"\"}\n- },\n- {\n- full_name='swapfile', abbreviation='swf',\n- short_desc=N_(\"whether to use a swapfile for a buffer\"),\n- type='bool', scope={'buffer'},\n- redraw={'statuslines'},\n- varname='p_swf',\n- defaults={if_true=true},\n- cb='did_set_swapfile'\n- },\n- {\n- full_name='switchbuf', abbreviation='swb',\n- short_desc=N_(\"sets behavior when switching to another buffer\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- varname='p_swb',\n- defaults={if_true=\"uselast\"},\n- cb='did_set_switchbuf'\n- },\n- {\n- full_name='synmaxcol', abbreviation='smc',\n- short_desc=N_(\"maximum column to find syntax items\"),\n- type='number', scope={'buffer'},\n- redraw={'current_buffer'},\n- varname='p_smc',\n- defaults={if_true=3000}\n- },\n- {\n- full_name='syntax', abbreviation='syn',\n- short_desc=N_(\"syntax to be loaded for current buffer\"),\n- type='string', scope={'buffer'},\n- noglob=true,\n- normal_fname_chars=true,\n- alloced=true,\n- varname='p_syn',\n- defaults={if_true=\"\"},\n- cb='did_set_filetype_or_syntax'\n- },\n- {\n- full_name='tagfunc', abbreviation='tfu',\n- short_desc=N_(\"function used to perform tag searches\"),\n- type='string', scope={'buffer'},\n- secure=true,\n- func=true,\n- varname='p_tfu',\n- defaults={if_true=\"\"},\n- cb='did_set_tagfunc'\n- },\n- {\n- full_name='tabline', abbreviation='tal',\n- short_desc=N_(\"custom format for the console tab pages line\"),\n- type='string', scope={'global'},\n- modelineexpr=true,\n- redraw={'tabline'},\n- varname='p_tal',\n- defaults={if_true=\"\"},\n- cb='did_set_tabline'\n- },\n- {\n- full_name='tabpagemax', abbreviation='tpm',\n- short_desc=N_(\"maximum number of tab pages for |-p| and \\\"tab all\\\"\"),\n- type='number', scope={'global'},\n- varname='p_tpm',\n- defaults={if_true=50}\n- },\n- {\n- full_name='tabstop', abbreviation='ts',\n- short_desc=N_(\"number of spaces that in file uses\"),\n- type='number', scope={'buffer'},\n- redraw={'current_buffer'},\n- varname='p_ts',\n- defaults={if_true=8},\n- cb='did_set_shiftwidth_tabstop'\n- },\n- {\n- full_name='tagbsearch', abbreviation='tbs',\n- short_desc=N_(\"use binary searching in tags files\"),\n- type='bool', scope={'global'},\n- varname='p_tbs',\n- defaults={if_true=true}\n- },\n- {\n- full_name='tagcase', abbreviation='tc',\n- short_desc=N_(\"how to handle case when searching in tags files\"),\n- type='string', scope={'global', 'buffer'},\n- varname='p_tc',\n- defaults={if_true=\"followic\"},\n- cb='did_set_tagcase'\n- },\n- {\n- full_name='taglength', abbreviation='tl',\n- short_desc=N_(\"number of significant characters for a tag\"),\n- type='number', scope={'global'},\n- varname='p_tl',\n- defaults={if_true=0}\n- },\n- {\n- full_name='tagrelative', abbreviation='tr',\n- short_desc=N_(\"file names in tag file are relative\"),\n- type='bool', scope={'global'},\n- varname='p_tr',\n- defaults={if_true=true}\n- },\n- {\n- full_name='tags', abbreviation='tag',\n- short_desc=N_(\"list of file names used by the tag command\"),\n- type='string', list='onecomma', scope={'global', 'buffer'},\n- deny_duplicates=true,\n- expand=true,\n- varname='p_tags',\n- defaults={if_true=\"./tags;,tags\"}\n- },\n- {\n- full_name='tagstack', abbreviation='tgst',\n- short_desc=N_(\"push tags onto the tag stack\"),\n- type='bool', scope={'global'},\n- varname='p_tgst',\n- defaults={if_true=true}\n- },\n- {\n- full_name='termbidi', abbreviation='tbidi',\n- short_desc=N_(\"terminal takes care of bi-directionality\"),\n- type='bool', scope={'global'},\n- varname='p_tbidi',\n- defaults={if_true=false}\n- },\n- {\n- full_name='termencoding', abbreviation='tenc',\n- short_desc=N_(\"Terminal encoding\"),\n- type='string', scope={'global'},\n- defaults={if_true=\"\"}\n- },\n- {\n- full_name='termguicolors', abbreviation='tgc',\n- short_desc=N_(\"Terminal true color support\"),\n- type='bool', scope={'global'},\n- redraw={'ui_option'},\n- varname='p_tgc',\n- defaults={if_true=false}\n- },\n- {\n- full_name='termpastefilter', abbreviation='tpf',\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- varname='p_tpf',\n- defaults={if_true=\"BS,HT,ESC,DEL\"},\n- cb='did_set_termpastefilter'\n- },\n- {\n- full_name='terse',\n- short_desc=N_(\"No description\"),\n- type='bool', scope={'global'},\n- varname='p_force_off',\n- defaults={if_true=false}\n- },\n- {\n- full_name='textwidth', abbreviation='tw',\n- short_desc=N_(\"maximum width of text that is being inserted\"),\n- type='number', scope={'buffer'},\n- redraw={'current_buffer'},\n- varname='p_tw',\n- defaults={if_true=0},\n- cb='did_set_textwidth'\n- },\n- {\n- full_name='thesaurus', abbreviation='tsr',\n- short_desc=N_(\"list of thesaurus files for keyword completion\"),\n- type='string', list='onecomma', scope={'global', 'buffer'},\n- deny_duplicates=true,\n- normal_dname_chars=true,\n- expand=true,\n- varname='p_tsr',\n- defaults={if_true=\"\"}\n- },\n- {\n- full_name='thesaurusfunc', abbreviation='tsrfu',\n- short_desc=N_(\"function used for thesaurus completion\"),\n- type='string', scope={'global', 'buffer'},\n- secure=true,\n- alloced=true,\n- func=true,\n- varname='p_tsrfu',\n- defaults={if_true=\"\"},\n- cb='did_set_thesaurusfunc'\n- },\n- {\n- full_name='tildeop', abbreviation='top',\n- short_desc=N_(\"tilde command \\\"~\\\" behaves like an operator\"),\n- type='bool', scope={'global'},\n- varname='p_to',\n- defaults={if_true=false}\n- },\n- {\n- full_name='timeout', abbreviation='to',\n- short_desc=N_(\"time out on mappings and key codes\"),\n- type='bool', scope={'global'},\n- varname='p_timeout',\n- defaults={if_true=true}\n- },\n- {\n- full_name='timeoutlen', abbreviation='tm',\n- short_desc=N_(\"time out time in milliseconds\"),\n- type='number', scope={'global'},\n- varname='p_tm',\n- defaults={if_true=1000}\n- },\n- {\n- full_name='title',\n- short_desc=N_(\"Vim set the title of the window\"),\n- type='bool', scope={'global'},\n- varname='p_title',\n- defaults={if_true=false},\n- cb='did_set_title_icon'\n- },\n- {\n- full_name='titlelen',\n- short_desc=N_(\"of 'columns' used for window title\"),\n- type='number', scope={'global'},\n- varname='p_titlelen',\n- defaults={if_true=85},\n- cb='did_set_titlelen'\n- },\n- {\n- full_name='titleold',\n- short_desc=N_(\"title, restored when exiting\"),\n- type='string', scope={'global'},\n- secure=true,\n- no_mkrc=true,\n- varname='p_titleold',\n- defaults={if_true=\"\"}\n- },\n- {\n- full_name='titlestring',\n- short_desc=N_(\"to use for the Vim window title\"),\n- type='string', scope={'global'},\n- modelineexpr=true,\n- varname='p_titlestring',\n- defaults={if_true=\"\"},\n- cb='did_set_titlestring'\n- },\n- {\n- full_name='ttimeout',\n- short_desc=N_(\"out on mappings\"),\n- type='bool', scope={'global'},\n- redraw={'ui_option'},\n- varname='p_ttimeout',\n- defaults={if_true=true}\n- },\n- {\n- full_name='ttimeoutlen', abbreviation='ttm',\n- short_desc=N_(\"time out time for key codes in milliseconds\"),\n- type='number', scope={'global'},\n- redraw={'ui_option'},\n- varname='p_ttm',\n- defaults={if_true=50}\n- },\n- {\n- full_name='ttyfast', abbreviation='tf',\n- short_desc=N_(\"No description\"),\n- type='bool', scope={'global'},\n- no_mkrc=true,\n- varname='p_force_on',\n- defaults={if_true=true}\n- },\n- {\n- full_name='undodir', abbreviation='udir',\n- short_desc=N_(\"where to store undo files\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- secure=true,\n- expand='nodefault',\n- varname='p_udir',\n- defaults={if_true=''}\n- },\n- {\n- full_name='undofile', abbreviation='udf',\n- short_desc=N_(\"save undo information in a file\"),\n- type='bool', scope={'buffer'},\n- varname='p_udf',\n- defaults={if_true=false},\n- cb='did_set_undofile'\n- },\n- {\n- full_name='undolevels', abbreviation='ul',\n- short_desc=N_(\"maximum number of changes that can be undone\"),\n- type='number', scope={'global', 'buffer'},\n- varname='p_ul',\n- defaults={if_true=1000},\n- cb='did_set_undolevels'\n- },\n- {\n- full_name='undoreload', abbreviation='ur',\n- short_desc=N_(\"max nr of lines to save for undo on a buffer reload\"),\n- type='number', scope={'global'},\n- varname='p_ur',\n- defaults={if_true=10000}\n- },\n- {\n- full_name='updatecount', abbreviation='uc',\n- short_desc=N_(\"after this many characters flush swap file\"),\n- type='number', scope={'global'},\n- varname='p_uc',\n- defaults={if_true=200},\n- cb='did_set_updatecount'\n- },\n- {\n- full_name='updatetime', abbreviation='ut',\n- short_desc=N_(\"after this many milliseconds flush swap file\"),\n- type='number', scope={'global'},\n- varname='p_ut',\n- defaults={if_true=4000}\n- },\n- {\n- full_name='varsofttabstop', abbreviation='vsts',\n- short_desc=N_(\"list of numbers of spaces that uses while editing\"),\n- type='string', list='comma', scope={'buffer'},\n- varname='p_vsts',\n- defaults={if_true=\"\"},\n- cb='did_set_varsofttabstop'\n- },\n- {\n- full_name='vartabstop', abbreviation='vts',\n- short_desc=N_(\"list of numbers of spaces that in file uses\"),\n- type='string', list='comma', scope={'buffer'},\n- varname='p_vts',\n- redraw={'current_buffer'},\n- defaults={if_true=\"\"},\n- cb='did_set_vartabstop'\n- },\n- {\n- full_name='verbose', abbreviation='vbs',\n- short_desc=N_(\"give informative messages\"),\n- type='number', scope={'global'},\n- varname='p_verbose', redraw={'ui_option'},\n- defaults={if_true=0}\n- },\n- {\n- full_name='verbosefile', abbreviation='vfile',\n- short_desc=N_(\"file to write messages in\"),\n- type='string', scope={'global'},\n- secure=true,\n- expand=true,\n- varname='p_vfile',\n- defaults={if_true=\"\"},\n- cb='did_set_verbosefile'\n- },\n- {\n- full_name='viewdir', abbreviation='vdir',\n- short_desc=N_(\"directory where to store files with :mkview\"),\n- type='string', scope={'global'},\n- secure=true,\n- expand='nodefault',\n- varname='p_vdir',\n- defaults={if_true=''}\n- },\n- {\n- full_name='viewoptions', abbreviation='vop',\n- short_desc=N_(\"specifies what to save for :mkview\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- varname='p_vop',\n- defaults={if_true=\"folds,cursor,curdir\"},\n- cb='did_set_viewoptions'\n- },\n- {\n- -- Alias for \"shada\".\n- full_name='viminfo', abbreviation='vi',\n- short_desc=N_(\"Alias for shada\"),\n- type='string', scope={'global'}, nodefault=true,\n- },\n- {\n- -- Alias for \"shadafile\".\n- full_name='viminfofile', abbreviation='vif',\n- short_desc=N_(\"Alias for shadafile instead\"),\n- type='string', scope={'global'}, nodefault=true,\n- },\n- {\n- full_name='virtualedit', abbreviation='ve',\n- short_desc=N_(\"when to use virtual editing\"),\n- type='string', list='onecomma', scope={'global', 'window'},\n- deny_duplicates=true,\n- redraw={'curswant'},\n- varname='p_ve',\n- defaults={if_true=\"\"},\n- cb='did_set_virtualedit'\n- },\n- {\n- full_name='visualbell', abbreviation='vb',\n- short_desc=N_(\"use visual bell instead of beeping\"),\n- type='bool', scope={'global'},\n- varname='p_vb',\n- defaults={if_true=false}\n- },\n- {\n- full_name='warn',\n- short_desc=N_(\"for shell command when buffer was changed\"),\n- type='bool', scope={'global'},\n- varname='p_warn',\n- defaults={if_true=true}\n- },\n- {\n- full_name='whichwrap', abbreviation='ww',\n- short_desc=N_(\"allow specified keys to cross line boundaries\"),\n- type='string', list='flagscomma', scope={'global'},\n- varname='p_ww',\n- defaults={if_true=\"b,s\"},\n- cb='did_set_whichwrap'\n- },\n- {\n- full_name='wildchar', abbreviation='wc',\n- short_desc=N_(\"command-line character for wildcard expansion\"),\n- type='number', scope={'global'},\n- varname='p_wc',\n- defaults={if_true=imacros('TAB')}\n- },\n- {\n- full_name='wildcharm', abbreviation='wcm',\n- short_desc=N_(\"like 'wildchar' but also works when mapped\"),\n- type='number', scope={'global'},\n- varname='p_wcm',\n- defaults={if_true=0}\n- },\n- {\n- full_name='wildignore', abbreviation='wig',\n- short_desc=N_(\"files matching these patterns are not completed\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- varname='p_wig',\n- defaults={if_true=\"\"}\n- },\n- {\n- full_name='wildignorecase', abbreviation='wic',\n- short_desc=N_(\"ignore case when completing file names\"),\n- type='bool', scope={'global'},\n- varname='p_wic',\n- defaults={if_true=false}\n- },\n- {\n- full_name='wildmenu', abbreviation='wmnu',\n- short_desc=N_(\"use menu for command line completion\"),\n- type='bool', scope={'global'},\n- varname='p_wmnu',\n- defaults={if_true=true}\n- },\n- {\n- full_name='wildmode', abbreviation='wim',\n- short_desc=N_(\"mode for 'wildchar' command-line expansion\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=false,\n- varname='p_wim',\n- defaults={if_true=\"full\"},\n- cb='did_set_wildmode'\n- },\n- {\n- full_name='wildoptions', abbreviation='wop',\n- short_desc=N_(\"specifies how command line completion is done\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- varname='p_wop',\n- defaults={if_true='pum,tagfile'},\n- cb='did_set_wildoptions'\n- },\n- {\n- full_name='winaltkeys', abbreviation='wak',\n- short_desc=N_(\"when the windows system handles ALT keys\"),\n- type='string', scope={'global'},\n- varname='p_wak',\n- defaults={if_true=\"menu\"},\n- cb='did_set_winaltkeys'\n- },\n- {\n- full_name='winbar', abbreviation='wbr',\n- short_desc=N_(\"custom format for the window bar\"),\n- type='string', scope={'global', 'window'},\n- alloced=true,\n- modelineexpr=true,\n- redraw={'statuslines'},\n- varname='p_wbr',\n- defaults={if_true=\"\"},\n- cb='did_set_winbar'\n- },\n- {\n- full_name='winblend', abbreviation='winbl',\n- short_desc=N_(\"Controls transparency level for floating windows\"),\n- type='number', scope={'window'},\n- redraw={'current_window'},\n- defaults={if_true=0},\n- cb='did_set_winblend'\n- },\n- {\n- full_name='winhighlight', abbreviation='winhl',\n- short_desc=N_(\"Setup window-local highlights\");\n- type='string', list='onecomma', scope={'window'},\n- deny_duplicates=true,\n- alloced=true,\n- redraw={'current_window'},\n- defaults={if_true=\"\"},\n- cb='did_set_winhl'\n- },\n- {\n- full_name='window', abbreviation='wi',\n- short_desc=N_(\"nr of lines to scroll for CTRL-F and CTRL-B\"),\n- type='number', scope={'global'},\n- varname='p_window',\n- defaults={if_true=0},\n- cb='did_set_window'\n- },\n- {\n- full_name='winheight', abbreviation='wh',\n- short_desc=N_(\"minimum number of lines for the current window\"),\n- type='number', scope={'global'},\n- varname='p_wh',\n- defaults={if_true=1},\n- cb='did_set_winheight'\n- },\n- {\n- full_name='winfixheight', abbreviation='wfh',\n- short_desc=N_(\"keep window height when opening/closing windows\"),\n- type='bool', scope={'window'},\n- redraw={'statuslines'},\n- defaults={if_true=false}\n- },\n- {\n- full_name='winfixwidth', abbreviation='wfw',\n- short_desc=N_(\"keep window width when opening/closing windows\"),\n- type='bool', scope={'window'},\n- redraw={'statuslines'},\n- defaults={if_true=false}\n- },\n- {\n- full_name='winminheight', abbreviation='wmh',\n- short_desc=N_(\"minimum number of lines for any window\"),\n- type='number', scope={'global'},\n- varname='p_wmh',\n- defaults={if_true=1},\n- cb='did_set_winminheight'\n- },\n- {\n- full_name='winminwidth', abbreviation='wmw',\n- short_desc=N_(\"minimal number of columns for any window\"),\n- type='number', scope={'global'},\n- varname='p_wmw',\n- defaults={if_true=1},\n- cb='did_set_winminwidth'\n- },\n- {\n- full_name='winwidth', abbreviation='wiw',\n- short_desc=N_(\"minimal number of columns for current window\"),\n- type='number', scope={'global'},\n- varname='p_wiw',\n- defaults={if_true=20},\n- cb='did_set_winwidth'\n- },\n- {\n- full_name='wrap',\n- short_desc=N_(\"lines wrap and continue on the next line\"),\n- type='bool', scope={'window'},\n- redraw={'current_window'},\n- defaults={if_true=true},\n- cb='did_set_wrap'\n- },\n- {\n- full_name='wrapmargin', abbreviation='wm',\n- short_desc=N_(\"chars from the right where wrapping starts\"),\n- type='number', scope={'buffer'},\n- varname='p_wm',\n- defaults={if_true=0}\n- },\n- {\n- full_name='wrapscan', abbreviation='ws',\n- short_desc=N_(\"searches wrap around the end of the file\"),\n- type='bool', scope={'global'},\n- varname='p_ws',\n- defaults={if_true=true}\n- },\n- {\n- full_name='write',\n- short_desc=N_(\"to a file is allowed\"),\n- type='bool', scope={'global'},\n- varname='p_write',\n- defaults={if_true=true}\n- },\n- {\n- full_name='writeany', abbreviation='wa',\n- short_desc=N_(\"write to file with no need for \\\"!\\\" override\"),\n- type='bool', scope={'global'},\n- varname='p_wa',\n- defaults={if_true=false}\n- },\n- {\n- full_name='writebackup', abbreviation='wb',\n- short_desc=N_(\"make a backup before overwriting a file\"),\n- type='bool', scope={'global'},\n- varname='p_wb',\n- defaults={if_true=true}\n- },\n- {\n- full_name='writedelay', abbreviation='wd',\n- short_desc=N_(\"delay this many msec for each char (for debug)\"),\n- type='number', scope={'global'},\n- varname='p_wd',\n- defaults={if_true=0}\n- },\n- }\n+ desc = [=[\n+ Which directory to use for the file browser:\n+ last\t\tUse same directory as with last file browser, where a\n+ \t\tfile was opened or saved.\n+ buffer\tUse the directory of the related buffer.\n+ current\tUse the current directory.\n+ {path}\tUse the specified directory\n+ ]=],\n+ enable_if = false,\n+ full_name = 'browsedir',\n+ scope = { 'global' },\n+ short_desc = N_('which directory to start browsing in'),\n+ type = 'string',\n+ },\n+ {\n+ abbreviation = 'bh',\n+ alloced = true,\n+ cb = 'did_set_bufhidden',\n+ defaults = { if_true = '' },\n+ desc = [=[\n+ This option specifies what happens when a buffer is no longer\n+ displayed in a window:\n+ \tfollow the global 'hidden' option\n+ hide\t\thide the buffer (don't unload it), even if 'hidden' is\n+ \t\tnot set\n+ unload\tunload the buffer, even if 'hidden' is set; the\n+ \t\t|:hide| command will also unload the buffer\n+ delete\tdelete the buffer from the buffer list, even if\n+ \t\t'hidden' is set; the |:hide| command will also delete\n+ \t\tthe buffer, making it behave like |:bdelete|\n+ wipe\t\twipe the buffer from the buffer list, even if\n+ \t\t'hidden' is set; the |:hide| command will also wipe\n+ \t\tout the buffer, making it behave like |:bwipeout|\n+\n+ CAREFUL: when \"unload\", \"delete\" or \"wipe\" is used changes in a buffer\n+ are lost without a warning. Also, these values may break autocommands\n+ that switch between buffers temporarily.\n+ This option is used together with 'buftype' and 'swapfile' to specify\n+ special kinds of buffers. See |special-buffers|.\n+ ]=],\n+ full_name = 'bufhidden',\n+ noglob = true,\n+ scope = { 'buffer' },\n+ short_desc = N_('what to do when buffer is no longer in window'),\n+ type = 'string',\n+ varname = 'p_bh',\n+ },\n+ {\n+ abbreviation = 'bl',\n+ cb = 'did_set_buflisted',\n+ defaults = { if_true = true },\n+ desc = [=[\n+ When this option is set, the buffer shows up in the buffer list. If\n+ it is reset it is not used for \":bnext\", \"ls\", the Buffers menu, etc.\n+ This option is reset by Vim for buffers that are only used to remember\n+ a file name or marks. Vim sets it when starting to edit a buffer.\n+ But not when moving to a buffer with \":buffer\".\n+ ]=],\n+ full_name = 'buflisted',\n+ noglob = true,\n+ scope = { 'buffer' },\n+ short_desc = N_('whether the buffer shows up in the buffer list'),\n+ tags = { 'E85' },\n+ type = 'bool',\n+ varname = 'p_bl',\n+ },\n+ {\n+ abbreviation = 'bt',\n+ alloced = true,\n+ cb = 'did_set_buftype',\n+ defaults = { if_true = '' },\n+ desc = [=[\n+ The value of this option specifies the type of a buffer:\n+ \tnormal buffer\n+ acwrite\tbuffer will always be written with |BufWriteCmd|s\n+ help\t\thelp buffer (do not set this manually)\n+ nofile\tbuffer is not related to a file, will not be written\n+ nowrite\tbuffer will not be written\n+ quickfix\tlist of errors |:cwindow| or locations |:lwindow|\n+ terminal\t|terminal-emulator| buffer\n+ prompt\tbuffer where only the last line can be edited, meant\n+ \t\tto be used by a plugin, see |prompt-buffer|\n+\n+ This option is used together with 'bufhidden' and 'swapfile' to\n+ specify special kinds of buffers. See |special-buffers|.\n+ Also see |win_gettype()|, which returns the type of the window.\n+\n+ Be careful with changing this option, it can have many side effects!\n+ One such effect is that Vim will not check the timestamp of the file,\n+ if the file is changed by another program this will not be noticed.\n+\n+ A \"quickfix\" buffer is only used for the error list and the location\n+ list. This value is set by the |:cwindow| and |:lwindow| commands and\n+ you are not supposed to change it.\n+\n+ \"nofile\" and \"nowrite\" buffers are similar:\n+ both:\t\tThe buffer is not to be written to disk, \":w\" doesn't\n+ \t\twork (\":w filename\" does work though).\n+ both:\t\tThe buffer is never considered to be |'modified'|.\n+ \t\tThere is no warning when the changes will be lost, for\n+ \t\texample when you quit Vim.\n+ both:\t\tA swap file is only created when using too much memory\n+ \t\t(when 'swapfile' has been reset there is never a swap\n+ \t\tfile).\n+ nofile only:\tThe buffer name is fixed, it is not handled like a\n+ \t\tfile name. It is not modified in response to a |:cd|\n+ \t\tcommand.\n+ both:\t\tWhen using \":e bufname\" and already editing \"bufname\"\n+ \t\tthe buffer is made empty and autocommands are\n+ \t\ttriggered as usual for |:edit|.\n+ \t\t\t\t\t\t*E676*\n+ \"acwrite\" implies that the buffer name is not related to a file, like\n+ \"nofile\", but it will be written. Thus, in contrast to \"nofile\" and\n+ \"nowrite\", \":w\" does work and a modified buffer can't be abandoned\n+ without saving. For writing there must be matching |BufWriteCmd|,\n+ |FileWriteCmd| or |FileAppendCmd| autocommands.\n+ ]=],\n+ full_name = 'buftype',\n+ noglob = true,\n+ scope = { 'buffer' },\n+ tags = { 'E382' },\n+ short_desc = N_('special type of buffer'),\n+ type = 'string',\n+ varname = 'p_bt',\n+ },\n+ {\n+ abbreviation = 'cmp',\n+ cb = 'did_set_casemap',\n+ defaults = { if_true = 'internal,keepascii' },\n+ deny_duplicates = true,\n+ desc = [=[\n+ Specifies details about changing the case of letters. It may contain\n+ these words, separated by a comma:\n+ internal\tUse internal case mapping functions, the current\n+ \t\tlocale does not change the case mapping. When\n+ \t\t\"internal\" is omitted, the towupper() and towlower()\n+ \t\tsystem library functions are used when available.\n+ keepascii\tFor the ASCII characters (0x00 to 0x7f) use the US\n+ \t\tcase mapping, the current locale is not effective.\n+ \t\tThis probably only matters for Turkish.\n+ ]=],\n+ full_name = 'casemap',\n+ list = 'onecomma',\n+ scope = { 'global' },\n+ short_desc = N_('specifies how case of letters is changed'),\n+ type = 'string',\n+ varname = 'p_cmp',\n+ },\n+ {\n+ abbreviation = 'cdh',\n+ defaults = { if_true = false },\n+ desc = [=[\n+ When on, |:cd|, |:tcd| and |:lcd| without an argument changes the\n+ current working directory to the |$HOME| directory like in Unix.\n+ When off, those commands just print the current directory name.\n+ On Unix this option has no effect.\n+ ]=],\n+ full_name = 'cdhome',\n+ scope = { 'global' },\n+ secure = true,\n+ short_desc = N_(':cd without argument goes to the home directory'),\n+ type = 'bool',\n+ varname = 'p_cdh',\n+ },\n+ {\n+ abbreviation = 'cd',\n+ defaults = {\n+ if_true = ',,',\n+ doc = 'equivalent to $CDPATH or \",,\"',\n+ },\n+ deny_duplicates = true,\n+ desc = [=[\n+ This is a list of directories which will be searched when using the\n+ |:cd|, |:tcd| and |:lcd| commands, provided that the directory being\n+ searched for has a relative path, not an absolute part starting with\n+ \"/\", \"./\" or \"../\", the 'cdpath' option is not used then.\n+ The 'cdpath' option's value has the same form and semantics as\n+ |'path'|. Also see |file-searching|.\n+ The default value is taken from $CDPATH, with a \",\" prepended to look\n+ in the current directory first.\n+ If the default value taken from $CDPATH is not what you want, include\n+ a modified version of the following command in your vimrc file to\n+ override it: >\n+ :let &cdpath = ',' .. substitute(substitute($CDPATH, '[, ]', '\\\\\\0', 'g'), ':', ',', 'g')\n+ <\tThis option cannot be set from a |modeline| or in the |sandbox|, for\n+ security reasons.\n+ (parts of 'cdpath' can be passed to the shell to expand file names).\n+ ]=],\n+ expand = true,\n+ full_name = 'cdpath',\n+ list = 'comma',\n+ scope = { 'global' },\n+ secure = true,\n+ short_desc = N_('list of directories searched with \":cd\"'),\n+ tags = { 'E344', 'E346' },\n+ type = 'string',\n+ varname = 'p_cdpath',\n+ },\n+ {\n+ cb = 'did_set_cedit',\n+ defaults = {\n+ if_true = macros('CTRL_F_STR'),\n+ doc = 'CTRL-F',\n+ },\n+ desc = [=[\n+ The key used in Command-line Mode to open the command-line window.\n+ Only non-printable keys are allowed.\n+ The key can be specified as a single character, but it is difficult to\n+ type. The preferred way is to use the <> notation. Examples: >\n+ \t:exe \"set cedit=\\\\\"\n+ \t:exe \"set cedit=\\\\\"\n+ <\t|Nvi| also has this option, but it only uses the first character.\n+ See |cmdwin|.\n+ ]=],\n+ full_name = 'cedit',\n+ scope = { 'global' },\n+ short_desc = N_('used to open the command-line window'),\n+ type = 'string',\n+ varname = 'p_cedit',\n+ },\n+ {\n+ defaults = { if_true = 0 },\n+ desc = [=[\n+ |channel| connected to the buffer, or 0 if no channel is connected.\n+ In a |:terminal| buffer this is the terminal channel.\n+ Read-only.\n+ ]=],\n+ full_name = 'channel',\n+ no_mkrc = true,\n+ nodefault = true,\n+ scope = { 'buffer' },\n+ short_desc = N_('Channel connected to the buffer'),\n+ type = 'number',\n+ varname = 'p_channel',\n+ },\n+ {\n+ abbreviation = 'ccv',\n+ cb = 'did_set_optexpr',\n+ defaults = { if_true = '' },\n+ desc = [=[\n+ An expression that is used for character encoding conversion. It is\n+ evaluated when a file that is to be read or has been written has a\n+ different encoding from what is desired.\n+ 'charconvert' is not used when the internal iconv() function is\n+ supported and is able to do the conversion. Using iconv() is\n+ preferred, because it is much faster.\n+ 'charconvert' is not used when reading stdin |--|, because there is no\n+ file to convert from. You will have to save the text in a file first.\n+ The expression must return zero, false or an empty string for success,\n+ non-zero or true for failure.\n+ See |encoding-names| for possible encoding names.\n+ Additionally, names given in 'fileencodings' and 'fileencoding' are\n+ used.\n+ Conversion between \"latin1\", \"unicode\", \"ucs-2\", \"ucs-4\" and \"utf-8\"\n+ is done internally by Vim, 'charconvert' is not used for this.\n+ Also used for Unicode conversion.\n+ Example: >\n+ \tset charconvert=CharConvert()\n+ \tfun CharConvert()\n+ \t system(\"recode \"\n+ \t\t\\ .. v:charconvert_from .. \"..\" .. v:charconvert_to\n+ \t\t\\ .. \" <\" .. v:fname_in .. \" >\" .. v:fname_out)\n+ \t return v:shell_error\n+ \tendfun\n+ <\tThe related Vim variables are:\n+ \tv:charconvert_from\tname of the current encoding\n+ \tv:charconvert_to\tname of the desired encoding\n+ \tv:fname_in\t\tname of the input file\n+ \tv:fname_out\t\tname of the output file\n+ Note that v:fname_in and v:fname_out will never be the same.\n+ This option cannot be set from a |modeline| or in the |sandbox|, for\n+ security reasons.\n+ ]=],\n+ full_name = 'charconvert',\n+ scope = { 'global' },\n+ secure = true,\n+ short_desc = N_('expression for character encoding conversion'),\n+ type = 'string',\n+ tags = { 'E202', 'E214', 'E513' },\n+ varname = 'p_ccv',\n+ },\n+ {\n+ abbreviation = 'cin',\n+ defaults = { if_true = false },\n+ desc = [=[\n+ Enables automatic C program indenting. See 'cinkeys' to set the keys\n+ that trigger reindenting in insert mode and 'cinoptions' to set your\n+ preferred indent style.\n+ If 'indentexpr' is not empty, it overrules 'cindent'.\n+ If 'lisp' is not on and both 'indentexpr' and 'equalprg' are empty,\n+ the \"=\" operator indents using this algorithm rather than calling an\n+ external program.\n+ See |C-indenting|.\n+ When you don't like the way 'cindent' works, try the 'smartindent'\n+ option or 'indentexpr'.\n+ ]=],\n+ full_name = 'cindent',\n+ scope = { 'buffer' },\n+ short_desc = N_('do C program indenting'),\n+ type = 'bool',\n+ varname = 'p_cin',\n+ },\n+ {\n+ abbreviation = 'cink',\n+ alloced = true,\n+ defaults = { if_true = '0{,0},0),0],:,0#,!^F,o,O,e' },\n+ deny_duplicates = true,\n+ desc = [=[\n+ A list of keys that, when typed in Insert mode, cause reindenting of\n+ the current line. Only used if 'cindent' is on and 'indentexpr' is\n+ empty.\n+ For the format of this option see |cinkeys-format|.\n+ See |C-indenting|.\n+ ]=],\n+ full_name = 'cinkeys',\n+ list = 'onecomma',\n+ scope = { 'buffer' },\n+ short_desc = N_(\"keys that trigger indent when 'cindent' is set\"),\n+ type = 'string',\n+ varname = 'p_cink',\n+ },\n+ {\n+ abbreviation = 'cino',\n+ alloced = true,\n+ cb = 'did_set_cinoptions',\n+ defaults = { if_true = '' },\n+ deny_duplicates = true,\n+ desc = [=[\n+ The 'cinoptions' affect the way 'cindent' reindents lines in a C\n+ program. See |cinoptions-values| for the values of this option, and\n+ |C-indenting| for info on C indenting in general.\n+ ]=],\n+ full_name = 'cinoptions',\n+ list = 'onecomma',\n+ scope = { 'buffer' },\n+ short_desc = N_(\"how to do indenting when 'cindent' is set\"),\n+ type = 'string',\n+ varname = 'p_cino',\n+ },\n+ {\n+ abbreviation = 'cinw',\n+ alloced = true,\n+ defaults = { if_true = 'if,else,while,do,for,switch' },\n+ deny_duplicates = true,\n+ desc = [=[\n+ These keywords start an extra indent in the next line when\n+ 'smartindent' or 'cindent' is set. For 'cindent' this is only done at\n+ an appropriate place (inside {}).\n+ Note that 'ignorecase' isn't used for 'cinwords'. If case doesn't\n+ matter, include the keyword both the uppercase and lowercase:\n+ \"if,If,IF\".\n+ ]=],\n+ full_name = 'cinwords',\n+ list = 'onecomma',\n+ scope = { 'buffer' },\n+ short_desc = N_(\"words where 'si' and 'cin' add an indent\"),\n+ type = 'string',\n+ varname = 'p_cinw',\n+ },\n+ {\n+ abbreviation = 'cinsd',\n+ alloced = true,\n+ defaults = { if_true = 'public,protected,private' },\n+ deny_duplicates = true,\n+ desc = [=[\n+ Keywords that are interpreted as a C++ scope declaration by |cino-g|.\n+ Useful e.g. for working with the Qt framework that defines additional\n+ scope declarations \"signals\", \"public slots\" and \"private slots\": >\n+ \tset cinscopedecls+=signals,public\\ slots,private\\ slots\n+ <\n+ ]=],\n+ full_name = 'cinscopedecls',\n+ list = 'onecomma',\n+ scope = { 'buffer' },\n+ short_desc = N_(\"words that are recognized by 'cino-g'\"),\n+ type = 'string',\n+ varname = 'p_cinsd',\n+ },\n+ {\n+ abbreviation = 'cb',\n+ cb = 'did_set_clipboard',\n+ defaults = { if_true = '' },\n+ desc = [=[\n+ This option is a list of comma-separated names.\n+ These names are recognized:\n+\n+ \t\t\t\t\t*clipboard-unnamed*\n+ unnamed\t\tWhen included, Vim will use the clipboard register \"*\"\n+ \t\tfor all yank, delete, change and put operations which\n+ \t\twould normally go to the unnamed register. When a\n+ \t\tregister is explicitly specified, it will always be\n+ \t\tused regardless of whether \"unnamed\" is in 'clipboard'\n+ \t\tor not. The clipboard register can always be\n+ \t\texplicitly accessed using the \"* notation. Also see\n+ \t\t|clipboard|.\n+\n+ \t\t\t\t\t*clipboard-unnamedplus*\n+ unnamedplus\tA variant of the \"unnamed\" flag which uses the\n+ \t\tclipboard register \"+\" (|quoteplus|) instead of\n+ \t\tregister \"*\" for all yank, delete, change and put\n+ \t\toperations which would normally go to the unnamed\n+ \t\tregister. When \"unnamed\" is also included to the\n+ \t\toption, yank and delete operations (but not put)\n+ \t\twill additionally copy the text into register\n+ \t\t\"*\". See |clipboard|.\n+ ]=],\n+ deny_duplicates = true,\n+ full_name = 'clipboard',\n+ list = 'onecomma',\n+ scope = { 'global' },\n+ short_desc = N_('use the clipboard as the unnamed register'),\n+ type = 'string',\n+ varname = 'p_cb',\n+ },\n+ {\n+ abbreviation = 'ch',\n+ cb = 'did_set_cmdheight',\n+ defaults = { if_true = 1 },\n+ desc = [=[\n+ Number of screen lines to use for the command-line. Helps avoiding\n+ |hit-enter| prompts.\n+ The value of this option is stored with the tab page, so that each tab\n+ page can have a different value.\n+\n+ When 'cmdheight' is zero, there is no command-line unless it is being\n+ used. The command-line will cover the last line of the screen when\n+ shown.\n+\n+ WARNING: `cmdheight=0` is considered experimental. Expect some\n+ unwanted behaviour. Some 'shortmess' flags and similar\n+ mechanism might fail to take effect, causing unwanted hit-enter\n+ prompts. Some informative messages, both from Nvim itself and\n+ plugins, will not be displayed.\n+ ]=],\n+ full_name = 'cmdheight',\n+ redraw = { 'all_windows' },\n+ scope = { 'global' },\n+ short_desc = N_('number of lines to use for the command-line'),\n+ type = 'number',\n+ varname = 'p_ch',\n+ },\n+ {\n+ abbreviation = 'cwh',\n+ defaults = { if_true = 7 },\n+ desc = [=[\n+ Number of screen lines to use for the command-line window. |cmdwin|\n+ ]=],\n+ full_name = 'cmdwinheight',\n+ scope = { 'global' },\n+ short_desc = N_('height of the command-line window'),\n+ type = 'number',\n+ varname = 'p_cwh',\n+ },\n+ {\n+ abbreviation = 'cc',\n+ cb = 'did_set_colorcolumn',\n+ defaults = { if_true = '' },\n+ deny_duplicates = true,\n+ desc = [=[\n+ 'colorcolumn' is a comma-separated list of screen columns that are\n+ highlighted with ColorColumn |hl-ColorColumn|. Useful to align\n+ text. Will make screen redrawing slower.\n+ The screen column can be an absolute number, or a number preceded with\n+ '+' or '-', which is added to or subtracted from 'textwidth'. >\n+\n+ \t:set cc=+1\t \" highlight column after 'textwidth'\n+ \t:set cc=+1,+2,+3 \" highlight three columns after 'textwidth'\n+ \t:hi ColorColumn ctermbg=lightgrey guibg=lightgrey\n+ <\n+ When 'textwidth' is zero then the items with '-' and '+' are not used.\n+ A maximum of 256 columns are highlighted.\n+ ]=],\n+ full_name = 'colorcolumn',\n+ list = 'onecomma',\n+ redraw = { 'current_window' },\n+ scope = { 'window' },\n+ short_desc = N_('columns to highlight'),\n+ type = 'string',\n+ },\n+ {\n+ abbreviation = 'co',\n+ defaults = {\n+ if_true = macros('DFLT_COLS'),\n+ doc = '80 or terminal width',\n+ },\n+ desc = [=[\n+ Number of columns of the screen. Normally this is set by the terminal\n+ initialization and does not have to be set by hand.\n+ When Vim is running in the GUI or in a resizable window, setting this\n+ option will cause the window size to be changed. When you only want\n+ to use the size for the GUI, put the command in your |ginit.vim| file.\n+ When you set this option and Vim is unable to change the physical\n+ number of columns of the display, the display may be messed up. For\n+ the GUI it is always possible and Vim limits the number of columns to\n+ what fits on the screen. You can use this command to get the widest\n+ window possible: >\n+ \t:set columns=9999\n+ <\tMinimum value is 12, maximum value is 10000.\n+ ]=],\n+ full_name = 'columns',\n+ no_mkrc = true,\n+ scope = { 'global' },\n+ short_desc = N_('number of columns in the display'),\n+ tags = { 'E594' },\n+ type = 'number',\n+ varname = 'p_columns',\n+ },\n+ {\n+ abbreviation = 'com',\n+ alloced = true,\n+ cb = 'did_set_comments',\n+ defaults = { if_true = 's1:/*,mb:*,ex:*/,://,b:#,:%,:XCOMM,n:>,fb:-' },\n+ deny_duplicates = true,\n+ desc = [=[\n+ A comma-separated list of strings that can start a comment line. See\n+ |format-comments|. See |option-backslash| about using backslashes to\n+ insert a space.\n+ ]=],\n+ full_name = 'comments',\n+ list = 'onecomma',\n+ redraw = { 'curswant' },\n+ scope = { 'buffer' },\n+ short_desc = N_('patterns that can start a comment line'),\n+ tags = { 'E524', 'E525' },\n+ type = 'string',\n+ varname = 'p_com',\n+ },\n+ {\n+ abbreviation = 'cms',\n+ alloced = true,\n+ cb = 'did_set_commentstring',\n+ defaults = { if_true = '' },\n+ desc = [=[\n+ A template for a comment. The \"%s\" in the value is replaced with the\n+ comment text. For example, C uses \"/*%s*/\". Currently only used to\n+ add markers for folding, see |fold-marker|.\n+ ]=],\n+ full_name = 'commentstring',\n+ redraw = { 'curswant' },\n+ scope = { 'buffer' },\n+ short_desc = N_('template for comments; used for fold marker'),\n+ tags = { 'E537' },\n+ type = 'string',\n+ varname = 'p_cms',\n+ },\n+ {\n+ abbreviation = 'cp',\n+ defaults = { if_true = false },\n+ full_name = 'compatible',\n+ scope = { 'global' },\n+ short_desc = N_('No description'),\n+ type = 'bool',\n+ varname = 'p_force_off',\n+ },\n+ {\n+ abbreviation = 'cpt',\n+ alloced = true,\n+ cb = 'did_set_complete',\n+ defaults = { if_true = '.,w,b,u,t' },\n+ deny_duplicates = true,\n+ desc = [=[\n+ This option specifies how keyword completion |ins-completion| works\n+ when CTRL-P or CTRL-N are used. It is also used for whole-line\n+ completion |i_CTRL-X_CTRL-L|. It indicates the type of completion\n+ and the places to scan. It is a comma-separated list of flags:\n+ .\tscan the current buffer ('wrapscan' is ignored)\n+ w\tscan buffers from other windows\n+ b\tscan other loaded buffers that are in the buffer list\n+ u\tscan the unloaded buffers that are in the buffer list\n+ U\tscan the buffers that are not in the buffer list\n+ k\tscan the files given with the 'dictionary' option\n+ kspell use the currently active spell checking |spell|\n+ k{dict}\tscan the file {dict}. Several \"k\" flags can be given,\n+ \tpatterns are valid too. For example: >\n+ \t\t:set cpt=k/usr/dict/*,k~/spanish\n+ <\ts\tscan the files given with the 'thesaurus' option\n+ s{tsr}\tscan the file {tsr}. Several \"s\" flags can be given, patterns\n+ \tare valid too.\n+ i\tscan current and included files\n+ d\tscan current and included files for defined name or macro\n+ \t|i_CTRL-X_CTRL-D|\n+ ]\ttag completion\n+ t\tsame as \"]\"\n+\n+ Unloaded buffers are not loaded, thus their autocmds |:autocmd| are\n+ not executed, this may lead to unexpected completions from some files\n+ (gzipped files for example). Unloaded buffers are not scanned for\n+ whole-line completion.\n+\n+ As you can see, CTRL-N and CTRL-P can be used to do any 'iskeyword'-\n+ based expansion (e.g., dictionary |i_CTRL-X_CTRL-K|, included patterns\n+ |i_CTRL-X_CTRL-I|, tags |i_CTRL-X_CTRL-]| and normal expansions).\n+ ]=],\n+ full_name = 'complete',\n+ list = 'onecomma',\n+ scope = { 'buffer' },\n+ short_desc = N_('specify how Insert mode completion works'),\n+ tags = { 'E535' },\n+ type = 'string',\n+ varname = 'p_cpt',\n+ },\n+ {\n+ abbreviation = 'cocu',\n+ alloced = true,\n+ cb = 'did_set_concealcursor',\n+ defaults = { if_true = '' },\n+ desc = [=[\n+ Sets the modes in which text in the cursor line can also be concealed.\n+ When the current mode is listed then concealing happens just like in\n+ other lines.\n+ n\t\tNormal mode\n+ v\t\tVisual mode\n+ i\t\tInsert mode\n+ c\t\tCommand line editing, for 'incsearch'\n+\n+ 'v' applies to all lines in the Visual area, not only the cursor.\n+ A useful value is \"nc\". This is used in help files. So long as you\n+ are moving around text is concealed, but when starting to insert text\n+ or selecting a Visual area the concealed text is displayed, so that\n+ you can see what you are doing.\n+ Keep in mind that the cursor position is not always where it's\n+ displayed. E.g., when moving vertically it may change column.\n+ ]=],\n+ full_name = 'concealcursor',\n+ redraw = { 'current_window' },\n+ scope = { 'window' },\n+ short_desc = N_('whether concealable text is hidden in cursor line'),\n+ type = 'string',\n+ },\n+ {\n+ abbreviation = 'cole',\n+ defaults = { if_true = 0 },\n+ desc = [=[\n+ Determine how text with the \"conceal\" syntax attribute |:syn-conceal|\n+ is shown:\n+\n+ Value\t\tEffect ~\n+ 0\t\tText is shown normally\n+ 1\t\tEach block of concealed text is replaced with one\n+ \t\tcharacter. If the syntax item does not have a custom\n+ \t\treplacement character defined (see |:syn-cchar|) the\n+ \t\tcharacter defined in 'listchars' is used.\n+ \t\tIt is highlighted with the \"Conceal\" highlight group.\n+ 2\t\tConcealed text is completely hidden unless it has a\n+ \t\tcustom replacement character defined (see\n+ \t\t|:syn-cchar|).\n+ 3\t\tConcealed text is completely hidden.\n+\n+ Note: in the cursor line concealed text is not hidden, so that you can\n+ edit and copy the text. This can be changed with the 'concealcursor'\n+ option.\n+ ]=],\n+ full_name = 'conceallevel',\n+ redraw = { 'current_window' },\n+ scope = { 'window' },\n+ short_desc = N_('whether concealable text is shown or hidden'),\n+ type = 'number',\n+ },\n+ {\n+ abbreviation = 'cfu',\n+ alloced = true,\n+ cb = 'did_set_completefunc',\n+ defaults = { if_true = '' },\n+ desc = [=[\n+ This option specifies a function to be used for Insert mode completion\n+ with CTRL-X CTRL-U. |i_CTRL-X_CTRL-U|\n+ See |complete-functions| for an explanation of how the function is\n+ invoked and what it should return. The value can be the name of a\n+ function, a |lambda| or a |Funcref|. See |option-value-function| for\n+ more information.\n+ This option cannot be set from a |modeline| or in the |sandbox|, for\n+ security reasons.\n+ ]=],\n+ full_name = 'completefunc',\n+ func = true,\n+ scope = { 'buffer' },\n+ secure = true,\n+ short_desc = N_('function to be used for Insert mode completion'),\n+ type = 'string',\n+ varname = 'p_cfu',\n+ },\n+ {\n+ abbreviation = 'cot',\n+ cb = 'did_set_completeopt',\n+ defaults = { if_true = 'menu,preview' },\n+ deny_duplicates = true,\n+ desc = [=[\n+ A comma-separated list of options for Insert mode completion\n+ |ins-completion|. The supported values are:\n+\n+ menu\t Use a popup menu to show the possible completions. The\n+ \t menu is only shown when there is more than one match and\n+ \t sufficient colors are available. |ins-completion-menu|\n+\n+ menuone Use the popup menu also when there is only one match.\n+ \t Useful when there is additional information about the\n+ \t match, e.g., what file it comes from.\n+\n+ longest Only insert the longest common text of the matches. If\n+ \t the menu is displayed you can use CTRL-L to add more\n+ \t characters. Whether case is ignored depends on the kind\n+ \t of completion. For buffer text the 'ignorecase' option is\n+ \t used.\n+\n+ preview Show extra information about the currently selected\n+ \t completion in the preview window. Only works in\n+ \t combination with \"menu\" or \"menuone\".\n+\n+ noinsert Do not insert any text for a match until the user selects\n+ \t a match from the menu. Only works in combination with\n+ \t \"menu\" or \"menuone\". No effect if \"longest\" is present.\n+\n+ noselect Do not select a match in the menu, force the user to\n+ \t select one from the menu. Only works in combination with\n+ \t \"menu\" or \"menuone\".\n+ ]=],\n+ full_name = 'completeopt',\n+ list = 'onecomma',\n+ scope = { 'global' },\n+ short_desc = N_('options for Insert mode completion'),\n+ type = 'string',\n+ varname = 'p_cot',\n+ },\n+ {\n+ abbreviation = 'csl',\n+ cb = 'did_set_completeslash',\n+ defaults = { if_true = '' },\n+ desc = [=[\n+ \t\tonly for MS-Windows\n+ When this option is set it overrules 'shellslash' for completion:\n+ - When this option is set to \"slash\", a forward slash is used for path\n+ completion in insert mode. This is useful when editing HTML tag, or\n+ Makefile with 'noshellslash' on MS-Windows.\n+ - When this option is set to \"backslash\", backslash is used. This is\n+ useful when editing a batch file with 'shellslash' set on MS-Windows.\n+ - When this option is empty, same character is used as for\n+ 'shellslash'.\n+ For Insert mode completion the buffer-local value is used. For\n+ command line completion the global value is used.\n+ ]=],\n+ enable_if = 'BACKSLASH_IN_FILENAME',\n+ full_name = 'completeslash',\n+ scope = { 'buffer' },\n+ type = 'string',\n+ varname = 'p_csl',\n+ },\n+ {\n+ abbreviation = 'cf',\n+ defaults = { if_true = false },\n+ desc = [=[\n+ When 'confirm' is on, certain operations that would normally\n+ fail because of unsaved changes to a buffer, e.g. \":q\" and \":e\",\n+ instead raise a dialog asking if you wish to save the current\n+ file(s). You can still use a ! to unconditionally |abandon| a buffer.\n+ If 'confirm' is off you can still activate confirmation for one\n+ command only (this is most useful in mappings) with the |:confirm|\n+ command.\n+ Also see the |confirm()| function and the 'v' flag in 'guioptions'.\n+ ]=],\n+ full_name = 'confirm',\n+ scope = { 'global' },\n+ short_desc = N_('ask what to do about unsaved/read-only files'),\n+ type = 'bool',\n+ varname = 'p_confirm',\n+ },\n+ {\n+ abbreviation = 'ci',\n+ defaults = { if_true = false },\n+ desc = [=[\n+ Copy the structure of the existing lines indent when autoindenting a\n+ new line. Normally the new indent is reconstructed by a series of\n+ tabs followed by spaces as required (unless |'expandtab'| is enabled,\n+ in which case only spaces are used). Enabling this option makes the\n+ new line copy whatever characters were used for indenting on the\n+ existing line. 'expandtab' has no effect on these characters, a Tab\n+ remains a Tab. If the new indent is greater than on the existing\n+ line, the remaining space is filled in the normal manner.\n+ See 'preserveindent'.\n+ ]=],\n+ full_name = 'copyindent',\n+ scope = { 'buffer' },\n+ short_desc = N_(\"make 'autoindent' use existing indent structure\"),\n+ type = 'bool',\n+ varname = 'p_ci',\n+ },\n+ {\n+ abbreviation = 'cpo',\n+ cb = 'did_set_cpoptions',\n+ defaults = { if_true = macros('CPO_VIM') },\n+ desc = [=[\n+ A sequence of single character flags. When a character is present\n+ this indicates Vi-compatible behavior. This is used for things where\n+ not being Vi-compatible is mostly or sometimes preferred.\n+ 'cpoptions' stands for \"compatible-options\".\n+ Commas can be added for readability.\n+ To avoid problems with flags that are added in the future, use the\n+ \"+=\" and \"-=\" feature of \":set\" |add-option-flags|.\n+\n+ contains\tbehavior\t~\n+ \t\t\t\t\t\t\t*cpo-a*\n+ \ta\tWhen included, a \":read\" command with a file name\n+ \t\targument will set the alternate file name for the\n+ \t\tcurrent window.\n+ \t\t\t\t\t\t\t*cpo-A*\n+ \tA\tWhen included, a \":write\" command with a file name\n+ \t\targument will set the alternate file name for the\n+ \t\tcurrent window.\n+ \t\t\t\t\t\t\t*cpo-b*\n+ \tb\t\"\\|\" in a \":map\" command is recognized as the end of\n+ \t\tthe map command. The '\\' is included in the mapping,\n+ \t\tthe text after the '|' is interpreted as the next\n+ \t\tcommand. Use a CTRL-V instead of a backslash to\n+ \t\tinclude the '|' in the mapping. Applies to all\n+ \t\tmapping, abbreviation, menu and autocmd commands.\n+ \t\tSee also |map_bar|.\n+ \t\t\t\t\t\t\t*cpo-B*\n+ \tB\tA backslash has no special meaning in mappings,\n+ \t\tabbreviations, user commands and the \"to\" part of the\n+ \t\tmenu commands. Remove this flag to be able to use a\n+ \t\tbackslash like a CTRL-V. For example, the command\n+ \t\t\":map X \\\\\" results in X being mapped to:\n+ \t\t\t'B' included:\t\"\\^[\"\t (^[ is a real )\n+ \t\t\t'B' excluded:\t\"\" (5 characters)\n+ \t\t\t\t\t\t\t*cpo-c*\n+ \tc\tSearching continues at the end of any match at the\n+ \t\tcursor position, but not further than the start of the\n+ \t\tnext line. When not present searching continues\n+ \t\tone character from the cursor position. With 'c'\n+ \t\t\"abababababab\" only gets three matches when repeating\n+ \t\t\"/abab\", without 'c' there are five matches.\n+ \t\t\t\t\t\t\t*cpo-C*\n+ \tC\tDo not concatenate sourced lines that start with a\n+ \t\tbackslash. See |line-continuation|.\n+ \t\t\t\t\t\t\t*cpo-d*\n+ \td\tUsing \"./\" in the 'tags' option doesn't mean to use\n+ \t\tthe tags file relative to the current file, but the\n+ \t\ttags file in the current directory.\n+ \t\t\t\t\t\t\t*cpo-D*\n+ \tD\tCan't use CTRL-K to enter a digraph after Normal mode\n+ \t\tcommands with a character argument, like |r|, |f| and\n+ \t\t|t|.\n+ \t\t\t\t\t\t\t*cpo-e*\n+ \te\tWhen executing a register with \":@r\", always add a\n+ \t\t to the last line, also when the register is not\n+ \t\tlinewise. If this flag is not present, the register\n+ \t\tis not linewise and the last line does not end in a\n+ \t\t, then the last line is put on the command-line\n+ \t\tand can be edited before hitting .\n+ \t\t\t\t\t\t\t*cpo-E*\n+ \tE\tIt is an error when using \"y\", \"d\", \"c\", \"g~\", \"gu\" or\n+ \t\t\"gU\" on an Empty region. The operators only work when\n+ \t\tat least one character is to be operated on. Example:\n+ \t\tThis makes \"y0\" fail in the first column.\n+ \t\t\t\t\t\t\t*cpo-f*\n+ \tf\tWhen included, a \":read\" command with a file name\n+ \t\targument will set the file name for the current buffer,\n+ \t\tif the current buffer doesn't have a file name yet.\n+ \t\t\t\t\t\t\t*cpo-F*\n+ \tF\tWhen included, a \":write\" command with a file name\n+ \t\targument will set the file name for the current\n+ \t\tbuffer, if the current buffer doesn't have a file name\n+ \t\tyet. Also see |cpo-P|.\n+ \t\t\t\t\t\t\t*cpo-i*\n+ \ti\tWhen included, interrupting the reading of a file will\n+ \t\tleave it modified.\n+ \t\t\t\t\t\t\t*cpo-I*\n+ \tI\tWhen moving the cursor up or down just after inserting\n+ \t\tindent for 'autoindent', do not delete the indent.\n+ \t\t\t\t\t\t\t*cpo-J*\n+ \tJ\tA |sentence| has to be followed by two spaces after\n+ \t\tthe '.', '!' or '?'. A is not recognized as\n+ \t\twhite space.\n+ \t\t\t\t\t\t\t*cpo-K*\n+ \tK\tDon't wait for a key code to complete when it is\n+ \t\thalfway through a mapping. This breaks mapping\n+ \t\t when only part of the second has been\n+ \t\tread. It enables cancelling the mapping by typing\n+ \t\t.\n+ \t\t\t\t\t\t\t*cpo-l*\n+ \tl\tBackslash in a [] range in a search pattern is taken\n+ \t\tliterally, only \"\\]\", \"\\^\", \"\\-\" and \"\\\\\" are special.\n+ \t\tSee |/[]|\n+ \t\t 'l' included: \"/[ \\t]\" finds , '\\' and 't'\n+ \t\t 'l' excluded: \"/[ \\t]\" finds and \n+ \t\t\t\t\t\t\t*cpo-L*\n+ \tL\tWhen the 'list' option is set, 'wrapmargin',\n+ \t\t'textwidth', 'softtabstop' and Virtual Replace mode\n+ \t\t(see |gR|) count a as two characters, instead of\n+ \t\tthe normal behavior of a .\n+ \t\t\t\t\t\t\t*cpo-m*\n+ \tm\tWhen included, a showmatch will always wait half a\n+ \t\tsecond. When not included, a showmatch will wait half\n+ \t\ta second or until a character is typed. |'showmatch'|\n+ \t\t\t\t\t\t\t*cpo-M*\n+ \tM\tWhen excluded, \"%\" matching will take backslashes into\n+ \t\taccount. Thus in \"( \\( )\" and \"\\( ( \\)\" the outer\n+ \t\tparenthesis match. When included \"%\" ignores\n+ \t\tbackslashes, which is Vi compatible.\n+ \t\t\t\t\t\t\t*cpo-n*\n+ \tn\tWhen included, the column used for 'number' and\n+ \t\t'relativenumber' will also be used for text of wrapped\n+ \t\tlines.\n+ \t\t\t\t\t\t\t*cpo-o*\n+ \to\tLine offset to search command is not remembered for\n+ \t\tnext search.\n+ \t\t\t\t\t\t\t*cpo-O*\n+ \tO\tDon't complain if a file is being overwritten, even\n+ \t\twhen it didn't exist when editing it. This is a\n+ \t\tprotection against a file unexpectedly created by\n+ \t\tsomeone else. Vi didn't complain about this.\n+ \t\t\t\t\t\t\t*cpo-p*\n+ \tp\tVi compatible Lisp indenting. When not present, a\n+ \t\tslightly better algorithm is used.\n+ \t\t\t\t\t\t\t*cpo-P*\n+ \tP\tWhen included, a \":write\" command that appends to a\n+ \t\tfile will set the file name for the current buffer, if\n+ \t\tthe current buffer doesn't have a file name yet and\n+ \t\tthe 'F' flag is also included |cpo-F|.\n+ \t\t\t\t\t\t\t*cpo-q*\n+ \tq\tWhen joining multiple lines leave the cursor at the\n+ \t\tposition where it would be when joining two lines.\n+ \t\t\t\t\t\t\t*cpo-r*\n+ \tr\tRedo (\".\" command) uses \"/\" to repeat a search\n+ \t\tcommand, instead of the actually used search string.\n+ \t\t\t\t\t\t\t*cpo-R*\n+ \tR\tRemove marks from filtered lines. Without this flag\n+ \t\tmarks are kept like |:keepmarks| was used.\n+ \t\t\t\t\t\t\t*cpo-s*\n+ \ts\tSet buffer options when entering the buffer for the\n+ \t\tfirst time. This is like it is in Vim version 3.0.\n+ \t\tAnd it is the default. If not present the options are\n+ \t\tset when the buffer is created.\n+ \t\t\t\t\t\t\t*cpo-S*\n+ \tS\tSet buffer options always when entering a buffer\n+ \t\t(except 'readonly', 'fileformat', 'filetype' and\n+ \t\t'syntax'). This is the (most) Vi compatible setting.\n+ \t\tThe options are set to the values in the current\n+ \t\tbuffer. When you change an option and go to another\n+ \t\tbuffer, the value is copied. Effectively makes the\n+ \t\tbuffer options global to all buffers.\n+\n+ \t\t's' 'S' copy buffer options\n+ \t\tno no when buffer created\n+ \t\tyes no when buffer first entered (default)\n+ \t\t X yes each time when buffer entered (vi comp.)\n+ \t\t\t\t\t\t\t*cpo-t*\n+ \tt\tSearch pattern for the tag command is remembered for\n+ \t\t\"n\" command. Otherwise Vim only puts the pattern in\n+ \t\tthe history for search pattern, but doesn't change the\n+ \t\tlast used search pattern.\n+ \t\t\t\t\t\t\t*cpo-u*\n+ \tu\tUndo is Vi compatible. See |undo-two-ways|.\n+ \t\t\t\t\t\t\t*cpo-v*\n+ \tv\tBackspaced characters remain visible on the screen in\n+ \t\tInsert mode. Without this flag the characters are\n+ \t\terased from the screen right away. With this flag the\n+ \t\tscreen newly typed text overwrites backspaced\n+ \t\tcharacters.\n+ \t\t\t\t\t\t\t*cpo-W*\n+ \tW\tDon't overwrite a readonly file. When omitted, \":w!\"\n+ \t\toverwrites a readonly file, if possible.\n+ \t\t\t\t\t\t\t*cpo-x*\n+ \tx\t on the command-line executes the command-line.\n+ \t\tThe default in Vim is to abandon the command-line,\n+ \t\tbecause normally aborts a command. |c_|\n+ \t\t\t\t\t\t\t*cpo-X*\n+ \tX\tWhen using a count with \"R\" the replaced text is\n+ \t\tdeleted only once. Also when repeating \"R\" with \".\"\n+ \t\tand a count.\n+ \t\t\t\t\t\t\t*cpo-y*\n+ \ty\tA yank command can be redone with \".\". Think twice if\n+ \t\tyou really want to use this, it may break some\n+ \t\tplugins, since most people expect \".\" to only repeat a\n+ \t\tchange.\n+ \t\t\t\t\t\t\t*cpo-Z*\n+ \tZ\tWhen using \"w!\" while the 'readonly' option is set,\n+ \t\tdon't reset 'readonly'.\n+ \t\t\t\t\t\t\t*cpo-!*\n+ \t!\tWhen redoing a filter command, use the last used\n+ \t\texternal command, whatever it was. Otherwise the last\n+ \t\tused -filter- command is used.\n+ \t\t\t\t\t\t\t*cpo-$*\n+ \t$\tWhen making a change to one line, don't redisplay the\n+ \t\tline, but put a '$' at the end of the changed text.\n+ \t\tThe changed text will be overwritten when you type the\n+ \t\tnew text. The line is redisplayed if you type any\n+ \t\tcommand that moves the cursor from the insertion\n+ \t\tpoint.\n+ \t\t\t\t\t\t\t*cpo-%*\n+ \t%\tVi-compatible matching is done for the \"%\" command.\n+ \t\tDoes not recognize \"#if\", \"#endif\", etc.\n+ \t\tDoes not recognize \"/*\" and \"*/\".\n+ \t\tParens inside single and double quotes are also\n+ \t\tcounted, causing a string that contains a paren to\n+ \t\tdisturb the matching. For example, in a line like\n+ \t\t\"if (strcmp(\"foo(\", s))\" the first paren does not\n+ \t\tmatch the last one. When this flag is not included,\n+ \t\tparens inside single and double quotes are treated\n+ \t\tspecially. When matching a paren outside of quotes,\n+ \t\teverything inside quotes is ignored. When matching a\n+ \t\tparen inside quotes, it will find the matching one (if\n+ \t\tthere is one). This works very well for C programs.\n+ \t\tThis flag is also used for other features, such as\n+ \t\tC-indenting.\n+ \t\t\t\t\t\t\t*cpo-+*\n+ \t+\tWhen included, a \":write file\" command will reset the\n+ \t\t'modified' flag of the buffer, even though the buffer\n+ \t\titself may still be different from its file.\n+ \t\t\t\t\t\t\t*cpo->*\n+ \t>\tWhen appending to a register, put a line break before\n+ \t\tthe appended text.\n+ \t\t\t\t\t\t\t*cpo-;*\n+ \t;\tWhen using |,| or |;| to repeat the last |t| search\n+ \t\tand the cursor is right in front of the searched\n+ \t\tcharacter, the cursor won't move. When not included,\n+ \t\tthe cursor would skip over it and jump to the\n+ \t\tfollowing occurrence.\n+ \t\t\t\t\t\t\t*cpo-_*\n+ \t_\tWhen using |cw| on a word, do not include the\n+ \t\twhitespace following the word in the motion.\n+ ]=],\n+ full_name = 'cpoptions',\n+ list = 'flags',\n+ redraw = { 'all_windows' },\n+ scope = { 'global' },\n+ short_desc = N_('flags for Vi-compatible behavior'),\n+ tags = { 'cpo' },\n+ type = 'string',\n+ varname = 'p_cpo',\n+ },\n+ {\n+ abbreviation = 'crb',\n+ defaults = { if_true = false },\n+ desc = [=[\n+ When this option is set, as the cursor in the current\n+ window moves other cursorbound windows (windows that also have\n+ this option set) move their cursors to the corresponding line and\n+ column. This option is useful for viewing the\n+ differences between two versions of a file (see 'diff'); in diff mode,\n+ inserted and deleted lines (though not characters within a line) are\n+ taken into account.\n+ ]=],\n+ full_name = 'cursorbind',\n+ pv_name = 'p_crbind',\n+ scope = { 'window' },\n+ short_desc = N_('move cursor in window as it moves in other windows'),\n+ type = 'bool',\n+ },\n+ {\n+ abbreviation = 'cuc',\n+ defaults = { if_true = false },\n+ desc = [=[\n+ Highlight the screen column of the cursor with CursorColumn\n+ |hl-CursorColumn|. Useful to align text. Will make screen redrawing\n+ slower.\n+ If you only want the highlighting in the current window you can use\n+ these autocommands: >\n+ \tau WinLeave * set nocursorline nocursorcolumn\n+ \tau WinEnter * set cursorline cursorcolumn\n+ <\n+ ]=],\n+ full_name = 'cursorcolumn',\n+ redraw = { 'current_window_only' },\n+ scope = { 'window' },\n+ short_desc = N_('highlight the screen column of the cursor'),\n+ type = 'bool',\n+ },\n+ {\n+ abbreviation = 'cul',\n+ defaults = { if_true = false },\n+ desc = [=[\n+ Highlight the text line of the cursor with CursorLine |hl-CursorLine|.\n+ Useful to easily spot the cursor. Will make screen redrawing slower.\n+ When Visual mode is active the highlighting isn't used to make it\n+ easier to see the selected text.\n+ ]=],\n+ full_name = 'cursorline',\n+ redraw = { 'current_window_only' },\n+ scope = { 'window' },\n+ short_desc = N_('highlight the screen line of the cursor'),\n+ type = 'bool',\n+ },\n+ {\n+ abbreviation = 'culopt',\n+ cb = 'did_set_cursorlineopt',\n+ defaults = { if_true = 'both' },\n+ deny_duplicates = true,\n+ desc = [=[\n+ Comma-separated list of settings for how 'cursorline' is displayed.\n+ Valid values:\n+ \"line\"\t\tHighlight the text line of the cursor with\n+ \t\tCursorLine |hl-CursorLine|.\n+ \"screenline\"\tHighlight only the screen line of the cursor with\n+ \t\tCursorLine |hl-CursorLine|.\n+ \"number\"\tHighlight the line number of the cursor with\n+ \t\tCursorLineNr |hl-CursorLineNr|.\n+\n+ Special value:\n+ \"both\"\t\tAlias for the values \"line,number\".\n+\n+ \"line\" and \"screenline\" cannot be used together.\n+ ]=],\n+ full_name = 'cursorlineopt',\n+ list = 'onecomma',\n+ redraw = { 'current_window_only' },\n+ scope = { 'window' },\n+ short_desc = N_(\"settings for 'cursorline'\"),\n+ type = 'string',\n+ },\n+ {\n+ cb = 'did_set_debug',\n+ defaults = { if_true = '' },\n+ desc = [=[\n+ These values can be used:\n+ msg\tError messages that would otherwise be omitted will be given\n+ \tanyway.\n+ throw\tError messages that would otherwise be omitted will be given\n+ \tanyway and also throw an exception and set |v:errmsg|.\n+ beep\tA message will be given when otherwise only a beep would be\n+ \tproduced.\n+ The values can be combined, separated by a comma.\n+ \"msg\" and \"throw\" are useful for debugging 'foldexpr', 'formatexpr' or\n+ 'indentexpr'.\n+ ]=],\n+ full_name = 'debug',\n+ scope = { 'global' },\n+ short_desc = N_('to \"msg\" to see all error messages'),\n+ type = 'string',\n+ varname = 'p_debug',\n+ },\n+ {\n+ abbreviation = 'def',\n+ alloced = true,\n+ defaults = { if_true = '' },\n+ desc = [=[\n+ Pattern to be used to find a macro definition. It is a search\n+ pattern, just like for the \"/\" command. This option is used for the\n+ commands like \"[i\" and \"[d\" |include-search|. The 'isident' option is\n+ used to recognize the defined name after the match: >\n+ \t{match with 'define'}{non-ID chars}{defined name}{non-ID char}\n+ <\tSee |option-backslash| about inserting backslashes to include a space\n+ or backslash.\n+ For C++ this value would be useful, to include const type declarations: >\n+ \t^\\(#\\s*define\\|[a-z]*\\s*const\\s*[a-z]*\\)\n+ <\tYou can also use \"\\ze\" just before the name and continue the pattern\n+ to check what is following. E.g. for Javascript, if a function is\n+ defined with `func_name = function(args)`: >\n+ \t^\\s*\\ze\\i\\+\\s*=\\s*function(\n+ <\tIf the function is defined with `func_name : function() {...`: >\n+ ^\\s*\\ze\\i\\+\\s*[:]\\s*(*function\\s*(\n+ <\tWhen using the \":set\" command, you need to double the backslashes!\n+ To avoid that use `:let` with a single quote string: >\n+ \tlet &l:define = '^\\s*\\ze\\k\\+\\s*=\\s*function('\n+ <\n+ ]=],\n+ full_name = 'define',\n+ redraw = { 'curswant' },\n+ scope = { 'global', 'buffer' },\n+ short_desc = N_('pattern to be used to find a macro definition'),\n+ type = 'string',\n+ varname = 'p_def',\n+ },\n+ {\n+ abbreviation = 'deco',\n+ defaults = { if_true = false },\n+ desc = [=[\n+ If editing Unicode and this option is set, backspace and Normal mode\n+ \"x\" delete each combining character on its own. When it is off (the\n+ default) the character along with its combining characters are\n+ deleted.\n+ Note: When 'delcombine' is set \"xx\" may work differently from \"2x\"!\n+\n+ This is useful for Arabic, Hebrew and many other languages where one\n+ may have combining characters overtop of base characters, and want\n+ to remove only the combining ones.\n+ ]=],\n+ full_name = 'delcombine',\n+ scope = { 'global' },\n+ short_desc = N_('delete combining characters on their own'),\n+ type = 'bool',\n+ varname = 'p_deco',\n+ },\n+ {\n+ abbreviation = 'dict',\n+ defaults = { if_true = '' },\n+ deny_duplicates = true,\n+ desc = [=[\n+ List of file names, separated by commas, that are used to lookup words\n+ for keyword completion commands |i_CTRL-X_CTRL-K|. Each file should\n+ contain a list of words. This can be one word per line, or several\n+ words per line, separated by non-keyword characters (white space is\n+ preferred). Maximum line length is 510 bytes.\n+\n+ When this option is empty or an entry \"spell\" is present, and spell\n+ checking is enabled, words in the word lists for the currently active\n+ 'spelllang' are used. See |spell|.\n+\n+ To include a comma in a file name precede it with a backslash. Spaces\n+ after a comma are ignored, otherwise spaces are included in the file\n+ name. See |option-backslash| about using backslashes.\n+ This has nothing to do with the |Dictionary| variable type.\n+ Where to find a list of words?\n+ - BSD/macOS include the \"/usr/share/dict/words\" file.\n+ - Try \"apt install spell\" to get the \"/usr/share/dict/words\" file on\n+ apt-managed systems (Debian/Ubuntu).\n+ The use of |:set+=| and |:set-=| is preferred when adding or removing\n+ directories from the list. This avoids problems when a future version\n+ uses another default.\n+ Backticks cannot be used in this option for security reasons.\n+ ]=],\n+ expand = true,\n+ full_name = 'dictionary',\n+ list = 'onecomma',\n+ normal_dname_chars = true,\n+ scope = { 'global', 'buffer' },\n+ short_desc = N_('list of file names used for keyword completion'),\n+ type = 'string',\n+ varname = 'p_dict',\n+ },\n+ {\n+ cb = 'did_set_diff',\n+ defaults = { if_true = false },\n+ desc = [=[\n+ Join the current window in the group of windows that shows differences\n+ between files. See |diff-mode|.\n+ ]=],\n+ full_name = 'diff',\n+ noglob = true,\n+ redraw = { 'current_window' },\n+ scope = { 'window' },\n+ short_desc = N_('diff mode for the current window'),\n+ type = 'bool',\n+ },\n+ {\n+ abbreviation = 'dex',\n+ cb = 'did_set_optexpr',\n+ defaults = { if_true = '' },\n+ desc = [=[\n+ Expression which is evaluated to obtain a diff file (either ed-style\n+ or unified-style) from two versions of a file. See |diff-diffexpr|.\n+ This option cannot be set from a |modeline| or in the |sandbox|, for\n+ security reasons.\n+ ]=],\n+ full_name = 'diffexpr',\n+ redraw = { 'curswant' },\n+ scope = { 'global' },\n+ secure = true,\n+ short_desc = N_('expression used to obtain a diff file'),\n+ type = 'string',\n+ varname = 'p_dex',\n+ },\n+ {\n+ abbreviation = 'dip',\n+ alloced = true,\n+ cb = 'did_set_diffopt',\n+ defaults = { if_true = 'internal,filler,closeoff' },\n+ deny_duplicates = true,\n+ desc = [=[\n+ Option settings for diff mode. It can consist of the following items.\n+ All are optional. Items must be separated by a comma.\n+\n+ \tfiller\t\tShow filler lines, to keep the text\n+ \t\t\tsynchronized with a window that has inserted\n+ \t\t\tlines at the same position. Mostly useful\n+ \t\t\twhen windows are side-by-side and 'scrollbind'\n+ \t\t\tis set.\n+\n+ \tcontext:{n}\tUse a context of {n} lines between a change\n+ \t\t\tand a fold that contains unchanged lines.\n+ \t\t\tWhen omitted a context of six lines is used.\n+ \t\t\tWhen using zero the context is actually one,\n+ \t\t\tsince folds require a line in between, also\n+ \t\t\tfor a deleted line.\n+ \t\t\tSee |fold-diff|.\n+\n+ \tiblank\t\tIgnore changes where lines are all blank. Adds\n+ \t\t\tthe \"-B\" flag to the \"diff\" command if\n+ \t\t\t'diffexpr' is empty. Check the documentation\n+ \t\t\tof the \"diff\" command for what this does\n+ \t\t\texactly.\n+ \t\t\tNOTE: the diff windows will get out of sync,\n+ \t\t\tbecause no differences between blank lines are\n+ \t\t\ttaken into account.\n+\n+ \ticase\t\tIgnore changes in case of text. \"a\" and \"A\"\n+ \t\t\tare considered the same. Adds the \"-i\" flag\n+ \t\t\tto the \"diff\" command if 'diffexpr' is empty.\n+\n+ \tiwhite\t\tIgnore changes in amount of white space. Adds\n+ \t\t\tthe \"-b\" flag to the \"diff\" command if\n+ \t\t\t'diffexpr' is empty. Check the documentation\n+ \t\t\tof the \"diff\" command for what this does\n+ \t\t\texactly. It should ignore adding trailing\n+ \t\t\twhite space, but not leading white space.\n+\n+ \tiwhiteall\tIgnore all white space changes. Adds\n+ \t\t\tthe \"-w\" flag to the \"diff\" command if\n+ \t\t\t'diffexpr' is empty. Check the documentation\n+ \t\t\tof the \"diff\" command for what this does\n+ \t\t\texactly.\n+\n+ \tiwhiteeol\tIgnore white space changes at end of line.\n+ \t\t\tAdds the \"-Z\" flag to the \"diff\" command if\n+ \t\t\t'diffexpr' is empty. Check the documentation\n+ \t\t\tof the \"diff\" command for what this does\n+ \t\t\texactly.\n+\n+ \thorizontal\tStart diff mode with horizontal splits (unless\n+ \t\t\texplicitly specified otherwise).\n+\n+ \tvertical\tStart diff mode with vertical splits (unless\n+ \t\t\texplicitly specified otherwise).\n+\n+ \tcloseoff\tWhen a window is closed where 'diff' is set\n+ \t\t\tand there is only one window remaining in the\n+ \t\t\tsame tab page with 'diff' set, execute\n+ \t\t\t`:diffoff` in that window. This undoes a\n+ \t\t\t`:diffsplit` command.\n+\n+ \thiddenoff\tDo not use diff mode for a buffer when it\n+ \t\t\tbecomes hidden.\n+\n+ \tfoldcolumn:{n}\tSet the 'foldcolumn' option to {n} when\n+ \t\t\tstarting diff mode. Without this 2 is used.\n+\n+ \tfollowwrap\tFollow the 'wrap' option and leave as it is.\n+\n+ \tinternal\tUse the internal diff library. This is\n+ \t\t\tignored when 'diffexpr' is set. *E960*\n+ \t\t\tWhen running out of memory when writing a\n+ \t\t\tbuffer this item will be ignored for diffs\n+ \t\t\tinvolving that buffer. Set the 'verbose'\n+ \t\t\toption to see when this happens.\n+\n+ \tindent-heuristic\n+ \t\t\tUse the indent heuristic for the internal\n+ \t\t\tdiff library.\n+\n+ \tlinematch:{n} Enable a second stage diff on each generated\n+ \t\t\thunk in order to align lines. When the total\n+ \t\t\tnumber of lines in a hunk exceeds {n}, the\n+ \t\t\tsecond stage diff will not be performed as\n+ \t\t\tvery large hunks can cause noticeable lag. A\n+ \t\t\trecommended setting is \"linematch:60\", as this\n+ \t\t\twill enable alignment for a 2 buffer diff with\n+ \t\t\thunks of up to 30 lines each, or a 3 buffer\n+ \t\t\tdiff with hunks of up to 20 lines each.\n+\n+ \talgorithm:{text} Use the specified diff algorithm with the\n+ \t\t\tinternal diff engine. Currently supported\n+ \t\t\talgorithms are:\n+ \t\t\tmyers the default algorithm\n+ \t\t\tminimal spend extra time to generate the\n+ \t\t\t\t smallest possible diff\n+ \t\t\tpatience patience diff algorithm\n+ \t\t\thistogram histogram diff algorithm\n+\n+ Examples: >\n+ \t:set diffopt=internal,filler,context:4\n+ \t:set diffopt=\n+ \t:set diffopt=internal,filler,foldcolumn:3\n+ \t:set diffopt-=internal \" do NOT use the internal diff parser\n+ <\n+ ]=],\n+ full_name = 'diffopt',\n+ list = 'onecomma',\n+ redraw = { 'current_window' },\n+ scope = { 'global' },\n+ short_desc = N_('options for using diff mode'),\n+ type = 'string',\n+ varname = 'p_dip',\n+ },\n+ {\n+ abbreviation = 'dg',\n+ defaults = { if_true = false },\n+ desc = [=[\n+ Enable the entering of digraphs in Insert mode with {char1} \n+ {char2}. See |digraphs|.\n+ ]=],\n+ full_name = 'digraph',\n+ scope = { 'global' },\n+ short_desc = N_('enable the entering of digraphs in Insert mode'),\n+ type = 'bool',\n+ varname = 'p_dg',\n+ },\n+ {\n+ abbreviation = 'dir',\n+ defaults = { if_true = '' },\n+ deny_duplicates = true,\n+ desc = [=[\n+ List of directory names for the swap file, separated with commas.\n+\n+ Possible items:\n+ - The swap file will be created in the first directory where this is\n+ possible. If it is not possible in any directory, but last\n+ directory listed in the option does not exist, it is created.\n+ - Empty means that no swap file will be used (recovery is\n+ impossible!) and no |E303| error will be given.\n+ - A directory \".\" means to put the swap file in the same directory as\n+ the edited file. On Unix, a dot is prepended to the file name, so\n+ it doesn't show in a directory listing. On MS-Windows the \"hidden\"\n+ attribute is set and a dot prepended if possible.\n+ - A directory starting with \"./\" (or \".\\\" for MS-Windows) means to put\n+ the swap file relative to where the edited file is. The leading \".\"\n+ is replaced with the path name of the edited file.\n+ - For Unix and Win32, if a directory ends in two path separators \"//\",\n+ the swap file name will be built from the complete path to the file\n+ with all path separators replaced by percent '%' signs (including\n+ the colon following the drive letter on Win32). This will ensure\n+ file name uniqueness in the preserve directory.\n+ On Win32, it is also possible to end with \"\\\\\". However, When a\n+ separating comma is following, you must use \"//\", since \"\\\\\" will\n+ include the comma in the file name. Therefore it is recommended to\n+ use '//', instead of '\\\\'.\n+ - Spaces after the comma are ignored, other spaces are considered part\n+ of the directory name. To have a space at the start of a directory\n+ name, precede it with a backslash.\n+ - To include a comma in a directory name precede it with a backslash.\n+ - A directory name may end in an ':' or '/'.\n+ - Environment variables are expanded |:set_env|.\n+ - Careful with '\\' characters, type one before a space, type two to\n+ get one in the option (see |option-backslash|), for example: >\n+ :set dir=c:\\\\tmp,\\ dir\\\\,with\\\\,commas,\\\\\\ dir\\ with\\ spaces\n+ <\n+ Editing the same file twice will result in a warning. Using \"/tmp\" on\n+ is discouraged: if the system crashes you lose the swap file. And\n+ others on the computer may be able to see the files.\n+ Use |:set+=| and |:set-=| when adding or removing directories from the\n+ list, this avoids problems if the Nvim default is changed.\n+\n+ This option cannot be set from a |modeline| or in the |sandbox|, for\n+ security reasons.\n+ ]=],\n+ expand = 'nodefault',\n+ full_name = 'directory',\n+ list = 'onecomma',\n+ scope = { 'global' },\n+ secure = true,\n+ short_desc = N_('list of directory names for the swap file'),\n+ type = 'string',\n+ varname = 'p_dir',\n+ },\n+ {\n+ abbreviation = 'dy',\n+ cb = 'did_set_display',\n+ defaults = { if_true = 'lastline' },\n+ deny_duplicates = true,\n+ desc = [=[\n+ Change the way text is displayed. This is a comma-separated list of\n+ flags:\n+ lastline\tWhen included, as much as possible of the last line\n+ \t\tin a window will be displayed. \"@@@\" is put in the\n+ \t\tlast columns of the last screen line to indicate the\n+ \t\trest of the line is not displayed.\n+ truncate\tLike \"lastline\", but \"@@@\" is displayed in the first\n+ \t\tcolumn of the last screen line. Overrules \"lastline\".\n+ uhex\t\tShow unprintable characters hexadecimal as \n+ \t\tinstead of using ^C and ~C.\n+ msgsep\t\tObsolete flag. Allowed but takes no effect. |msgsep|\n+\n+ When neither \"lastline\" nor \"truncate\" is included, a last line that\n+ doesn't fit is replaced with \"@\" lines.\n+\n+ The \"@\" character can be changed by setting the \"lastline\" item in\n+ 'fillchars'. The character is highlighted with |hl-NonText|.\n+ ]=],\n+ full_name = 'display',\n+ list = 'onecomma',\n+ redraw = { 'all_windows' },\n+ scope = { 'global' },\n+ short_desc = N_('list of flags for how to display text'),\n+ type = 'string',\n+ varname = 'p_dy',\n+ },\n+ {\n+ abbreviation = 'ead',\n+ cb = 'did_set_eadirection',\n+ defaults = { if_true = 'both' },\n+ desc = [=[\n+ Tells when the 'equalalways' option applies:\n+ \tver\tvertically, width of windows is not affected\n+ \thor\thorizontally, height of windows is not affected\n+ \tboth\twidth and height of windows is affected\n+ ]=],\n+ full_name = 'eadirection',\n+ scope = { 'global' },\n+ short_desc = N_(\"in which direction 'equalalways' works\"),\n+ type = 'string',\n+ varname = 'p_ead',\n+ },\n+ {\n+ abbreviation = 'ed',\n+ defaults = { if_true = false },\n+ full_name = 'edcompatible',\n+ scope = { 'global' },\n+ short_desc = N_('No description'),\n+ type = 'bool',\n+ varname = 'p_force_off',\n+ },\n+ {\n+ abbreviation = 'emo',\n+ cb = 'did_set_ambiwidth',\n+ defaults = { if_true = true },\n+ desc = [=[\n+ When on all Unicode emoji characters are considered to be full width.\n+ This excludes \"text emoji\" characters, which are normally displayed as\n+ single width. Unfortunately there is no good specification for this\n+ and it has been determined on trial-and-error basis. Use the\n+ |setcellwidths()| function to change the behavior.\n+ ]=],\n+ full_name = 'emoji',\n+ redraw = { 'all_windows', 'ui_option' },\n+ scope = { 'global' },\n+ short_desc = N_('No description'),\n+ type = 'bool',\n+ varname = 'p_emoji',\n+ },\n+ {\n+ abbreviation = 'enc',\n+ cb = 'did_set_encoding',\n+ defaults = { if_true = macros('ENC_DFLT') },\n+ deny_in_modelines = true,\n+ desc = [=[\n+ String-encoding used internally and for |RPC| communication.\n+ Always UTF-8.\n+\n+ See 'fileencoding' to control file-content encoding.\n+ ]=],\n+ full_name = 'encoding',\n+ scope = { 'global' },\n+ short_desc = N_('encoding used internally'),\n+ type = 'string',\n+ varname = 'p_enc',\n+ },\n+ {\n+ abbreviation = 'eof',\n+ cb = 'did_set_eof_eol_fixeol_bomb',\n+ defaults = { if_true = false },\n+ desc = [=[\n+ Indicates that a CTRL-Z character was found at the end of the file\n+ when reading it. Normally only happens when 'fileformat' is \"dos\".\n+ When writing a file and this option is off and the 'binary' option\n+ is on, or 'fixeol' option is off, no CTRL-Z will be written at the\n+ end of the file.\n+ See |eol-and-eof| for example settings.\n+ ]=],\n+ full_name = 'endoffile',\n+ no_mkrc = true,\n+ redraw = { 'statuslines' },\n+ scope = { 'buffer' },\n+ short_desc = N_('write CTRL-Z for last line in file'),\n+ type = 'bool',\n+ varname = 'p_eof',\n+ },\n+ {\n+ abbreviation = 'eol',\n+ cb = 'did_set_eof_eol_fixeol_bomb',\n+ defaults = { if_true = true },\n+ desc = [=[\n+ When writing a file and this option is off and the 'binary' option\n+ is on, or 'fixeol' option is off, no will be written for the\n+ last line in the file. This option is automatically set or reset when\n+ starting to edit a new file, depending on whether file has an \n+ for the last line in the file. Normally you don't have to set or\n+ reset this option.\n+ When 'binary' is off and 'fixeol' is on the value is not used when\n+ writing the file. When 'binary' is on or 'fixeol' is off it is used\n+ to remember the presence of a for the last line in the file, so\n+ that when you write the file the situation from the original file can\n+ be kept. But you can change it if you want to.\n+ See |eol-and-eof| for example settings.\n+ ]=],\n+ full_name = 'endofline',\n+ no_mkrc = true,\n+ redraw = { 'statuslines' },\n+ scope = { 'buffer' },\n+ short_desc = N_('write for last line in file'),\n+ type = 'bool',\n+ varname = 'p_eol',\n+ },\n+ {\n+ abbreviation = 'ea',\n+ cb = 'did_set_equalalways',\n+ defaults = { if_true = true },\n+ desc = [=[\n+ When on, all the windows are automatically made the same size after\n+ splitting or closing a window. This also happens the moment the\n+ option is switched on. When off, splitting a window will reduce the\n+ size of the current window and leave the other windows the same. When\n+ closing a window the extra lines are given to the window next to it\n+ (depending on 'splitbelow' and 'splitright').\n+ When mixing vertically and horizontally split windows, a minimal size\n+ is computed and some windows may be larger if there is room. The\n+ 'eadirection' option tells in which direction the size is affected.\n+ Changing the height and width of a window can be avoided by setting\n+ 'winfixheight' and 'winfixwidth', respectively.\n+ If a window size is specified when creating a new window sizes are\n+ currently not equalized (it's complicated, but may be implemented in\n+ the future).\n+ ]=],\n+ full_name = 'equalalways',\n+ scope = { 'global' },\n+ short_desc = N_('windows are automatically made the same size'),\n+ type = 'bool',\n+ varname = 'p_ea',\n+ },\n+ {\n+ abbreviation = 'ep',\n+ defaults = { if_true = '' },\n+ desc = [=[\n+ External program to use for \"=\" command. When this option is empty\n+ the internal formatting functions are used; either 'lisp', 'cindent'\n+ or 'indentexpr'.\n+ Environment variables are expanded |:set_env|. See |option-backslash|\n+ about including spaces and backslashes.\n+ This option cannot be set from a |modeline| or in the |sandbox|, for\n+ security reasons.\n+ ]=],\n+ expand = true,\n+ full_name = 'equalprg',\n+ scope = { 'global', 'buffer' },\n+ secure = true,\n+ short_desc = N_('external program to use for \"=\" command'),\n+ type = 'string',\n+ varname = 'p_ep',\n+ },\n+ {\n+ abbreviation = 'eb',\n+ defaults = { if_true = false },\n+ desc = [=[\n+ Ring the bell (beep or screen flash) for error messages. This only\n+ makes a difference for error messages, the bell will be used always\n+ for a lot of errors without a message (e.g., hitting in Normal\n+ mode). See 'visualbell' to make the bell behave like a screen flash\n+ or do nothing. See 'belloff' to finetune when to ring the bell.\n+ ]=],\n+ full_name = 'errorbells',\n+ scope = { 'global' },\n+ short_desc = N_('ring the bell for error messages'),\n+ type = 'bool',\n+ varname = 'p_eb',\n+ },\n+ {\n+ abbreviation = 'ef',\n+ defaults = { if_true = macros('DFLT_ERRORFILE') },\n+ desc = [=[\n+ Name of the errorfile for the QuickFix mode (see |:cf|).\n+ When the \"-q\" command-line argument is used, 'errorfile' is set to the\n+ following argument. See |-q|.\n+ NOT used for the \":make\" command. See 'makeef' for that.\n+ Environment variables are expanded |:set_env|.\n+ See |option-backslash| about including spaces and backslashes.\n+ This option cannot be set from a |modeline| or in the |sandbox|, for\n+ security reasons.\n+ ]=],\n+ expand = true,\n+ full_name = 'errorfile',\n+ scope = { 'global' },\n+ secure = true,\n+ short_desc = N_('name of the errorfile for the QuickFix mode'),\n+ type = 'string',\n+ varname = 'p_ef',\n+ },\n+ {\n+ abbreviation = 'efm',\n+ defaults = {\n+ if_true = macros('DFLT_EFM'),\n+ doc = 'is very long',\n+ },\n+ deny_duplicates = true,\n+ desc = [=[\n+ Scanf-like description of the format for the lines in the error file\n+ (see |errorformat|).\n+ ]=],\n+ full_name = 'errorformat',\n+ list = 'onecomma',\n+ scope = { 'global', 'buffer' },\n+ short_desc = N_('description of the lines in the error file'),\n+ type = 'string',\n+ varname = 'p_efm',\n+ },\n+ {\n+ abbreviation = 'ei',\n+ cb = 'did_set_eventignore',\n+ defaults = { if_true = '' },\n+ deny_duplicates = true,\n+ desc = [=[\n+ A list of autocommand event names, which are to be ignored.\n+ When set to \"all\" or when \"all\" is one of the items, all autocommand\n+ events are ignored, autocommands will not be executed.\n+ Otherwise this is a comma-separated list of event names. Example: >\n+ :set ei=WinEnter,WinLeave\n+ <\n+ ]=],\n+ full_name = 'eventignore',\n+ list = 'onecomma',\n+ scope = { 'global' },\n+ short_desc = N_('autocommand events that are ignored'),\n+ type = 'string',\n+ varname = 'p_ei',\n+ },\n+ {\n+ abbreviation = 'et',\n+ defaults = { if_true = false },\n+ desc = [=[\n+ In Insert mode: Use the appropriate number of spaces to insert a\n+ . Spaces are used in indents with the '>' and '<' commands and\n+ when 'autoindent' is on. To insert a real tab when 'expandtab' is\n+ on, use CTRL-V. See also |:retab| and |ins-expandtab|.\n+ ]=],\n+ full_name = 'expandtab',\n+ scope = { 'buffer' },\n+ short_desc = N_('use spaces when is inserted'),\n+ type = 'bool',\n+ varname = 'p_et',\n+ },\n+ {\n+ abbreviation = 'ex',\n+ defaults = { if_true = false },\n+ desc = [=[\n+ Automatically execute .nvim.lua, .nvimrc, and .exrc files in the\n+ current directory, if the file is in the |trust| list. Use |:trust| to\n+ manage trusted files. See also |vim.secure.read()|.\n+\n+ Compare 'exrc' to |editorconfig|:\n+ - 'exrc' can execute any code; editorconfig only specifies settings.\n+ - 'exrc' is Nvim-specific; editorconfig works in other editors.\n+\n+ This option cannot be set from a |modeline| or in the |sandbox|, for\n+ security reasons.\n+ ]=],\n+ full_name = 'exrc',\n+ scope = { 'global' },\n+ secure = true,\n+ short_desc = N_('read .nvimrc and .exrc in the current directory'),\n+ type = 'bool',\n+ varname = 'p_exrc',\n+ },\n+ {\n+ abbreviation = 'fenc',\n+ alloced = true,\n+ cb = 'did_set_encoding',\n+ defaults = { if_true = '' },\n+ desc = [=[\n+ File-content encoding for the current buffer. Conversion is done with\n+ iconv() or as specified with 'charconvert'.\n+\n+ When 'fileencoding' is not UTF-8, conversion will be done when\n+ writing the file. For reading see below.\n+ When 'fileencoding' is empty, the file will be saved with UTF-8\n+ encoding (no conversion when reading or writing a file).\n+\n+ WARNING: Conversion to a non-Unicode encoding can cause loss of\n+ information!\n+\n+ See |encoding-names| for the possible values. Additionally, values may be\n+ specified that can be handled by the converter, see\n+ |mbyte-conversion|.\n+\n+ When reading a file 'fileencoding' will be set from 'fileencodings'.\n+ To read a file in a certain encoding it won't work by setting\n+ 'fileencoding', use the |++enc| argument. One exception: when\n+ 'fileencodings' is empty the value of 'fileencoding' is used.\n+ For a new file the global value of 'fileencoding' is used.\n+\n+ Prepending \"8bit-\" and \"2byte-\" has no meaning here, they are ignored.\n+ When the option is set, the value is converted to lowercase. Thus\n+ you can set it with uppercase values too. '_' characters are\n+ replaced with '-'. If a name is recognized from the list at\n+ |encoding-names|, it is replaced by the standard name. For example\n+ \"ISO8859-2\" becomes \"iso-8859-2\".\n+\n+ When this option is set, after starting to edit a file, the 'modified'\n+ option is set, because the file would be different when written.\n+\n+ Keep in mind that changing 'fenc' from a modeline happens\n+ AFTER the text has been read, thus it applies to when the file will be\n+ written. If you do set 'fenc' in a modeline, you might want to set\n+ 'nomodified' to avoid not being able to \":q\".\n+\n+ This option cannot be changed when 'modifiable' is off.\n+ ]=],\n+ full_name = 'fileencoding',\n+ no_mkrc = true,\n+ redraw = { 'statuslines', 'current_buffer' },\n+ scope = { 'buffer' },\n+ short_desc = N_('file encoding for multi-byte text'),\n+ tags = { 'E213' },\n+ type = 'string',\n+ varname = 'p_fenc',\n+ },\n+ {\n+ abbreviation = 'fencs',\n+ defaults = { if_true = 'ucs-bom,utf-8,default,latin1' },\n+ deny_duplicates = true,\n+ desc = [=[\n+ This is a list of character encodings considered when starting to edit\n+ an existing file. When a file is read, Vim tries to use the first\n+ mentioned character encoding. If an error is detected, the next one\n+ in the list is tried. When an encoding is found that works,\n+ 'fileencoding' is set to it. If all fail, 'fileencoding' is set to\n+ an empty string, which means that UTF-8 is used.\n+ \tWARNING: Conversion can cause loss of information! You can use\n+ \tthe |++bad| argument to specify what is done with characters\n+ \tthat can't be converted.\n+ For an empty file or a file with only ASCII characters most encodings\n+ will work and the first entry of 'fileencodings' will be used (except\n+ \"ucs-bom\", which requires the BOM to be present). If you prefer\n+ another encoding use an BufReadPost autocommand event to test if your\n+ preferred encoding is to be used. Example: >\n+ \tau BufReadPost * if search('\\S', 'w') == 0 |\n+ \t\t\\ set fenc=iso-2022-jp | endif\n+ <\tThis sets 'fileencoding' to \"iso-2022-jp\" if the file does not contain\n+ non-blank characters.\n+ When the |++enc| argument is used then the value of 'fileencodings' is\n+ not used.\n+ Note that 'fileencodings' is not used for a new file, the global value\n+ of 'fileencoding' is used instead. You can set it with: >\n+ \t:setglobal fenc=iso-8859-2\n+ <\tThis means that a non-existing file may get a different encoding than\n+ an empty file.\n+ The special value \"ucs-bom\" can be used to check for a Unicode BOM\n+ (Byte Order Mark) at the start of the file. It must not be preceded\n+ by \"utf-8\" or another Unicode encoding for this to work properly.\n+ An entry for an 8-bit encoding (e.g., \"latin1\") should be the last,\n+ because Vim cannot detect an error, thus the encoding is always\n+ accepted.\n+ The special value \"default\" can be used for the encoding from the\n+ environment. It is useful when your environment uses a non-latin1\n+ encoding, such as Russian.\n+ When a file contains an illegal UTF-8 byte sequence it won't be\n+ recognized as \"utf-8\". You can use the |8g8| command to find the\n+ illegal byte sequence.\n+ WRONG VALUES:\t\t\tWHAT'S WRONG:\n+ \tlatin1,utf-8\t\t\"latin1\" will always be used\n+ \tutf-8,ucs-bom,latin1\tBOM won't be recognized in an utf-8\n+ \t\t\t\tfile\n+ \tcp1250,latin1\t\t\"cp1250\" will always be used\n+ If 'fileencodings' is empty, 'fileencoding' is not modified.\n+ See 'fileencoding' for the possible values.\n+ Setting this option does not have an effect until the next time a file\n+ is read.\n+ ]=],\n+ full_name = 'fileencodings',\n+ list = 'onecomma',\n+ scope = { 'global' },\n+ short_desc = N_('automatically detected character encodings'),\n+ type = 'string',\n+ varname = 'p_fencs',\n+ },\n+ {\n+ abbreviation = 'ff',\n+ alloced = true,\n+ cb = 'did_set_fileformat',\n+ defaults = {\n+ if_true = macros('DFLT_FF'),\n+ doc = 'Windows: \"dos\", Unix: \"unix\"',\n+ },\n+ desc = [=[\n+ This gives the of the current buffer, which is used for\n+ reading/writing the buffer from/to a file:\n+ dos\t \n+ unix \n+ mac\t \n+ When \"dos\" is used, CTRL-Z at the end of a file is ignored.\n+ See |file-formats| and |file-read|.\n+ For the character encoding of the file see 'fileencoding'.\n+ When 'binary' is set, the value of 'fileformat' is ignored, file I/O\n+ works like it was set to \"unix\".\n+ This option is set automatically when starting to edit a file and\n+ 'fileformats' is not empty and 'binary' is off.\n+ When this option is set, after starting to edit a file, the 'modified'\n+ option is set, because the file would be different when written.\n+ This option cannot be changed when 'modifiable' is off.\n+ ]=],\n+ full_name = 'fileformat',\n+ no_mkrc = true,\n+ redraw = { 'curswant', 'statuslines' },\n+ scope = { 'buffer' },\n+ short_desc = N_('file format used for file I/O'),\n+ type = 'string',\n+ varname = 'p_ff',\n+ },\n+ {\n+ abbreviation = 'ffs',\n+ cb = 'did_set_fileformats',\n+ defaults = {\n+ if_true = macros('DFLT_FFS_VIM'),\n+ doc = 'Windows: \"dos,unix\", Unix: \"unix,dos\"',\n+ },\n+ deny_duplicates = true,\n+ desc = [=[\n+ This gives the end-of-line () formats that will be tried when\n+ starting to edit a new buffer and when reading a file into an existing\n+ buffer:\n+ - When empty, the format defined with 'fileformat' will be used\n+ always. It is not set automatically.\n+ - When set to one name, that format will be used whenever a new buffer\n+ is opened. 'fileformat' is set accordingly for that buffer. The\n+ 'fileformats' name will be used when a file is read into an existing\n+ buffer, no matter what 'fileformat' for that buffer is set to.\n+ - When more than one name is present, separated by commas, automatic\n+ detection will be done when reading a file. When starting to\n+ edit a file, a check is done for the :\n+ 1. If all lines end in , and 'fileformats' includes \"dos\",\n+ 'fileformat' is set to \"dos\".\n+ 2. If a is found and 'fileformats' includes \"unix\", 'fileformat'\n+ is set to \"unix\". Note that when a is found without a\n+ preceding , \"unix\" is preferred over \"dos\".\n+ 3. If 'fileformat' has not yet been set, and if a is found, and\n+ if 'fileformats' includes \"mac\", 'fileformat' is set to \"mac\".\n+ This means that \"mac\" is only chosen when:\n+ \"unix\" is not present or no is found in the file, and\n+ \"dos\" is not present or no is found in the file.\n+ Except: if \"unix\" was chosen, but there is a before\n+ the first , and there appear to be more s than s in\n+ the first few lines, \"mac\" is used.\n+ 4. If 'fileformat' is still not set, the first name from\n+ 'fileformats' is used.\n+ When reading a file into an existing buffer, the same is done, but\n+ this happens like 'fileformat' has been set appropriately for that\n+ file only, the option is not changed.\n+ When 'binary' is set, the value of 'fileformats' is not used.\n+\n+ When Vim starts up with an empty buffer the first item is used. You\n+ can overrule this by setting 'fileformat' in your .vimrc.\n+\n+ For systems with a Dos-like (), when reading files that\n+ are \":source\"ed and for vimrc files, automatic detection may be\n+ done:\n+ - When 'fileformats' is empty, there is no automatic detection. Dos\n+ format will be used.\n+ - When 'fileformats' is set to one or more names, automatic detection\n+ is done. This is based on the first in the file: If there is a\n+ in front of it, Dos format is used, otherwise Unix format is\n+ used.\n+ Also see |file-formats|.\n+ ]=],\n+ full_name = 'fileformats',\n+ list = 'onecomma',\n+ scope = { 'global' },\n+ short_desc = N_(\"automatically detected values for 'fileformat'\"),\n+ type = 'string',\n+ varname = 'p_ffs',\n+ },\n+ {\n+ abbreviation = 'fic',\n+ defaults = {\n+ condition = 'CASE_INSENSITIVE_FILENAME',\n+ if_false = false,\n+ if_true = true,\n+ doc = [[on for systems where case in file\n+ names is normally ignored]],\n+ },\n+ desc = [=[\n+ When set case is ignored when using file names and directories.\n+ See 'wildignorecase' for only ignoring case when doing completion.\n+ ]=],\n+ full_name = 'fileignorecase',\n+ scope = { 'global' },\n+ short_desc = N_('ignore case when using file names'),\n+ type = 'bool',\n+ varname = 'p_fic',\n+ },\n+ {\n+ abbreviation = 'ft',\n+ alloced = true,\n+ cb = 'did_set_filetype_or_syntax',\n+ defaults = { if_true = '' },\n+ desc = [=[\n+ When this option is set, the FileType autocommand event is triggered.\n+ All autocommands that match with the value of this option will be\n+ executed. Thus the value of 'filetype' is used in place of the file\n+ name.\n+ Otherwise this option does not always reflect the current file type.\n+ This option is normally set when the file type is detected. To enable\n+ this use the \":filetype on\" command. |:filetype|\n+ Setting this option to a different value is most useful in a modeline,\n+ for a file for which the file type is not automatically recognized.\n+ Example, for in an IDL file: >\n+ \t/* vim: set filetype=idl : */\n+ <\t|FileType| |filetypes|\n+ When a dot appears in the value then this separates two filetype\n+ names. Example: >\n+ \t/* vim: set filetype=c.doxygen : */\n+ <\tThis will use the \"c\" filetype first, then the \"doxygen\" filetype.\n+ This works both for filetype plugins and for syntax files. More than\n+ one dot may appear.\n+ This option is not copied to another buffer, independent of the 's' or\n+ 'S' flag in 'cpoptions'.\n+ Only normal file name characters can be used, `/\\*?[|<>` are illegal.\n+ ]=],\n+ expand = true,\n+ full_name = 'filetype',\n+ noglob = true,\n+ normal_fname_chars = true,\n+ scope = { 'buffer' },\n+ short_desc = N_('type of file, used for autocommands'),\n+ type = 'string',\n+ varname = 'p_ft',\n+ },\n+ {\n+ abbreviation = 'fcs',\n+ alloced = true,\n+ cb = 'did_set_chars_option',\n+ defaults = { if_true = '' },\n+ deny_duplicates = true,\n+ desc = [=[\n+ Characters to fill the statuslines, vertical separators and special\n+ lines in the window.\n+ It is a comma-separated list of items. Each item has a name, a colon\n+ and the value of that item:\n+\n+ item\t\tdefault\t\tUsed for ~\n+ stl\t\t' ' or '^'\tstatusline of the current window\n+ stlnc\t\t' ' or '='\tstatusline of the non-current windows\n+ wbr\t\t' '\t\twindow bar\n+ horiz\t\t'─' or '-'\thorizontal separators |:split|\n+ horizup\t'┴' or '-'\tupwards facing horizontal separator\n+ horizdown\t'┬' or '-'\tdownwards facing horizontal separator\n+ vert\t\t'│' or '|'\tvertical separators |:vsplit|\n+ vertleft\t'┤' or '|'\tleft facing vertical separator\n+ vertright\t'├' or '|'\tright facing vertical separator\n+ verthoriz\t'┼' or '+'\toverlapping vertical and horizontal\n+ \t\t\t\tseparator\n+ fold\t\t'·' or '-'\tfilling 'foldtext'\n+ foldopen\t'-'\t\tmark the beginning of a fold\n+ foldclose\t'+'\t\tshow a closed fold\n+ foldsep\t'│' or '|' open fold middle marker\n+ diff\t\t'-'\t\tdeleted lines of the 'diff' option\n+ msgsep\t' '\t\tmessage separator 'display'\n+ eob\t\t'~'\t\tempty lines at the end of a buffer\n+ lastline\t'@'\t\t'display' contains lastline/truncate\n+\n+ Any one that is omitted will fall back to the default. For \"stl\" and\n+ \"stlnc\" the space will be used when there is highlighting, '^' or '='\n+ otherwise.\n+\n+ Note that \"horiz\", \"horizup\", \"horizdown\", \"vertleft\", \"vertright\" and\n+ \"verthoriz\" are only used when 'laststatus' is 3, since only vertical\n+ window separators are used otherwise.\n+\n+ If 'ambiwidth' is \"double\" then \"horiz\", \"horizup\", \"horizdown\",\n+ \"vert\", \"vertleft\", \"vertright\", \"verthoriz\", \"foldsep\" and \"fold\"\n+ default to single-byte alternatives.\n+\n+ Example: >\n+ :set fillchars=stl:^,stlnc:=,vert:│,fold:·,diff:-\n+ <\tThis is similar to the default, except that these characters will also\n+ be used when there is highlighting.\n+\n+ For the \"stl\", \"stlnc\", \"foldopen\", \"foldclose\" and \"foldsep\" items\n+ single-byte and multibyte characters are supported. But double-width\n+ characters are not supported.\n+\n+ The highlighting used for these items:\n+ item\t\thighlight group ~\n+ stl\t\tStatusLine\t\t|hl-StatusLine|\n+ stlnc\t\tStatusLineNC\t\t|hl-StatusLineNC|\n+ wbr\t\tWinBar\t\t\t|hl-WinBar| or |hl-WinBarNC|\n+ horiz\t\tWinSeparator\t\t|hl-WinSeparator|\n+ horizup\tWinSeparator\t\t|hl-WinSeparator|\n+ horizdown\tWinSeparator\t\t|hl-WinSeparator|\n+ vert\t\tWinSeparator\t\t|hl-WinSeparator|\n+ vertleft\tWinSeparator\t\t|hl-WinSeparator|\n+ vertright\tWinSeparator\t\t|hl-WinSeparator|\n+ verthoriz\tWinSeparator\t\t|hl-WinSeparator|\n+ fold\t\tFolded\t\t\t|hl-Folded|\n+ diff\t\tDiffDelete\t\t|hl-DiffDelete|\n+ eob\t\tEndOfBuffer\t\t|hl-EndOfBuffer|\n+ lastline\tNonText\t\t\t|hl-NonText|\n+ ]=],\n+ full_name = 'fillchars',\n+ list = 'onecomma',\n+ redraw = { 'current_window' },\n+ scope = { 'global', 'window' },\n+ short_desc = N_('characters to use for displaying special items'),\n+ type = 'string',\n+ varname = 'p_fcs',\n+ },\n+ {\n+ abbreviation = 'fixeol',\n+ cb = 'did_set_eof_eol_fixeol_bomb',\n+ defaults = { if_true = true },\n+ desc = [=[\n+ When writing a file and this option is on, at the end of file\n+ will be restored if missing. Turn this option off if you want to\n+ preserve the situation from the original file.\n+ When the 'binary' option is set the value of this option doesn't\n+ matter.\n+ See the 'endofline' option.\n+ See |eol-and-eof| for example settings.\n+ ]=],\n+ full_name = 'fixendofline',\n+ redraw = { 'statuslines' },\n+ scope = { 'buffer' },\n+ short_desc = N_('make sure last line in file has '),\n+ type = 'bool',\n+ varname = 'p_fixeol',\n+ },\n+ {\n+ abbreviation = 'fcl',\n+ cb = 'did_set_foldclose',\n+ defaults = { if_true = '' },\n+ deny_duplicates = true,\n+ desc = [=[\n+ When set to \"all\", a fold is closed when the cursor isn't in it and\n+ its level is higher than 'foldlevel'. Useful if you want folds to\n+ automatically close when moving out of them.\n+ ]=],\n+ full_name = 'foldclose',\n+ list = 'onecomma',\n+ redraw = { 'current_window' },\n+ scope = { 'global' },\n+ short_desc = N_('close a fold when the cursor leaves it'),\n+ type = 'string',\n+ varname = 'p_fcl',\n+ },\n+ {\n+ abbreviation = 'fdc',\n+ alloced = true,\n+ cb = 'did_set_foldcolumn',\n+ defaults = { if_true = '0' },\n+ desc = [=[\n+ When and how to draw the foldcolumn. Valid values are:\n+ \"auto\": resize to the minimum amount of folds to display.\n+ \"auto:[1-9]\": resize to accommodate multiple folds up to the\n+ \t\t selected level\n+ 0: to disable foldcolumn\n+ \"[1-9]\": to display a fixed number of columns\n+ See |folding|.\n+ ]=],\n+ full_name = 'foldcolumn',\n+ redraw = { 'current_window' },\n+ scope = { 'window' },\n+ short_desc = N_('width of the column used to indicate folds'),\n+ type = 'string',\n+ },\n+ {\n+ abbreviation = 'fen',\n+ defaults = { if_true = true },\n+ desc = [=[\n+ When off, all folds are open. This option can be used to quickly\n+ switch between showing all text unfolded and viewing the text with\n+ folds (including manually opened or closed folds). It can be toggled\n+ with the |zi| command. The 'foldcolumn' will remain blank when\n+ 'foldenable' is off.\n+ This option is set by commands that create a new fold or close a fold.\n+ See |folding|.\n+ ]=],\n+ full_name = 'foldenable',\n+ redraw = { 'current_window' },\n+ scope = { 'window' },\n+ short_desc = N_('set to display all folds open'),\n+ type = 'bool',\n+ },\n+ {\n+ abbreviation = 'fde',\n+ alloced = true,\n+ cb = 'did_set_foldexpr',\n+ defaults = { if_true = '0' },\n+ desc = [=[\n+ The expression used for when 'foldmethod' is \"expr\". It is evaluated\n+ for each line to obtain its fold level. The context is set to the\n+ script where 'foldexpr' was set, script-local items can be accessed.\n+ See |fold-expr| for the usage.\n+\n+ The expression will be evaluated in the |sandbox| if set from a\n+ modeline, see |sandbox-option|.\n+ This option can't be set from a |modeline| when the 'diff' option is\n+ on or the 'modelineexpr' option is off.\n+\n+ It is not allowed to change text or jump to another window while\n+ evaluating 'foldexpr' |textlock|.\n+ ]=],\n+ full_name = 'foldexpr',\n+ modelineexpr = true,\n+ redraw = { 'current_window' },\n+ scope = { 'window' },\n+ short_desc = N_('expression used when \\'foldmethod\\' is \"expr\"'),\n+ type = 'string',\n+ },\n+ {\n+ abbreviation = 'fdi',\n+ alloced = true,\n+ cb = 'did_set_foldignore',\n+ defaults = { if_true = '#' },\n+ desc = [=[\n+ Used only when 'foldmethod' is \"indent\". Lines starting with\n+ characters in 'foldignore' will get their fold level from surrounding\n+ lines. White space is skipped before checking for this character.\n+ The default \"#\" works well for C programs. See |fold-indent|.\n+ ]=],\n+ full_name = 'foldignore',\n+ redraw = { 'current_window' },\n+ scope = { 'window' },\n+ short_desc = N_('ignore lines when \\'foldmethod\\' is \"indent\"'),\n+ type = 'string',\n+ },\n+ {\n+ abbreviation = 'fdl',\n+ cb = 'did_set_foldlevel',\n+ defaults = { if_true = 0 },\n+ desc = [=[\n+ Sets the fold level: Folds with a higher level will be closed.\n+ Setting this option to zero will close all folds. Higher numbers will\n+ close fewer folds.\n+ This option is set by commands like |zm|, |zM| and |zR|.\n+ See |fold-foldlevel|.\n+ ]=],\n+ full_name = 'foldlevel',\n+ redraw = { 'current_window' },\n+ scope = { 'window' },\n+ short_desc = N_('close folds with a level higher than this'),\n+ type = 'number',\n+ },\n+ {\n+ abbreviation = 'fdls',\n+ defaults = { if_true = -1 },\n+ desc = [=[\n+ Sets 'foldlevel' when starting to edit another buffer in a window.\n+ Useful to always start editing with all folds closed (value zero),\n+ some folds closed (one) or no folds closed (99).\n+ This is done before reading any modeline, thus a setting in a modeline\n+ overrules this option. Starting to edit a file for |diff-mode| also\n+ ignores this option and closes all folds.\n+ It is also done before BufReadPre autocommands, to allow an autocmd to\n+ overrule the 'foldlevel' value for specific files.\n+ When the value is negative, it is not used.\n+ ]=],\n+ full_name = 'foldlevelstart',\n+ redraw = { 'curswant' },\n+ scope = { 'global' },\n+ short_desc = N_(\"'foldlevel' when starting to edit a file\"),\n+ type = 'number',\n+ varname = 'p_fdls',\n+ },\n+ {\n+ abbreviation = 'fmr',\n+ alloced = true,\n+ cb = 'did_set_foldmarker',\n+ defaults = { if_true = '{{{,}}}' },\n+ deny_duplicates = true,\n+ desc = [=[\n+ The start and end marker used when 'foldmethod' is \"marker\". There\n+ must be one comma, which separates the start and end marker. The\n+ marker is a literal string (a regular expression would be too slow).\n+ See |fold-marker|.\n+ ]=],\n+ full_name = 'foldmarker',\n+ list = 'onecomma',\n+ redraw = { 'current_window' },\n+ scope = { 'window' },\n+ short_desc = N_('markers used when \\'foldmethod\\' is \"marker\"'),\n+ type = 'string',\n+ },\n+ {\n+ abbreviation = 'fdm',\n+ alloced = true,\n+ cb = 'did_set_foldmethod',\n+ defaults = { if_true = 'manual' },\n+ desc = [=[\n+ The kind of folding used for the current window. Possible values:\n+ |fold-manual|\tmanual\t Folds are created manually.\n+ |fold-indent|\tindent\t Lines with equal indent form a fold.\n+ |fold-expr|\texpr\t 'foldexpr' gives the fold level of a line.\n+ |fold-marker|\tmarker\t Markers are used to specify folds.\n+ |fold-syntax|\tsyntax\t Syntax highlighting items specify folds.\n+ |fold-diff|\tdiff\t Fold text that is not changed.\n+ ]=],\n+ full_name = 'foldmethod',\n+ redraw = { 'current_window' },\n+ scope = { 'window' },\n+ short_desc = N_('folding type'),\n+ type = 'string',\n+ },\n+ {\n+ abbreviation = 'fml',\n+ cb = 'did_set_foldminlines',\n+ defaults = { if_true = 1 },\n+ desc = [=[\n+ Sets the number of screen lines above which a fold can be displayed\n+ closed. Also for manually closed folds. With the default value of\n+ one a fold can only be closed if it takes up two or more screen lines.\n+ Set to zero to be able to close folds of just one screen line.\n+ Note that this only has an effect on what is displayed. After using\n+ \"zc\" to close a fold, which is displayed open because it's smaller\n+ than 'foldminlines', a following \"zc\" may close a containing fold.\n+ ]=],\n+ full_name = 'foldminlines',\n+ redraw = { 'current_window' },\n+ scope = { 'window' },\n+ short_desc = N_('minimum number of lines for a fold to be closed'),\n+ type = 'number',\n+ },\n+ {\n+ abbreviation = 'fdn',\n+ cb = 'did_set_foldnestmax',\n+ defaults = { if_true = 20 },\n+ desc = [=[\n+ Sets the maximum nesting of folds for the \"indent\" and \"syntax\"\n+ methods. This avoids that too many folds will be created. Using more\n+ than 20 doesn't work, because the internal limit is 20.\n+ ]=],\n+ full_name = 'foldnestmax',\n+ redraw = { 'current_window' },\n+ scope = { 'window' },\n+ short_desc = N_('maximum fold depth'),\n+ type = 'number',\n+ },\n+ {\n+ abbreviation = 'fdo',\n+ cb = 'did_set_foldopen',\n+ defaults = { if_true = 'block,hor,mark,percent,quickfix,search,tag,undo' },\n+ deny_duplicates = true,\n+ desc = [=[\n+ Specifies for which type of commands folds will be opened, if the\n+ command moves the cursor into a closed fold. It is a comma-separated\n+ list of items.\n+ NOTE: When the command is part of a mapping this option is not used.\n+ Add the |zv| command to the mapping to get the same effect.\n+ (rationale: the mapping may want to control opening folds itself)\n+\n+ \titem\t\tcommands ~\n+ \tall\t\tany\n+ \tblock\t\t(, {, [[, [{, etc.\n+ \thor\t\thorizontal movements: \"l\", \"w\", \"fx\", etc.\n+ \tinsert\t\tany command in Insert mode\n+ \tjump\t\tfar jumps: \"G\", \"gg\", etc.\n+ \tmark\t\tjumping to a mark: \"'m\", CTRL-O, etc.\n+ \tpercent\t\t\"%\"\n+ \tquickfix\t\":cn\", \":crew\", \":make\", etc.\n+ \tsearch\t\tsearch for a pattern: \"/\", \"n\", \"*\", \"gd\", etc.\n+ \t\t\t(not for a search pattern in a \":\" command)\n+ \t\t\tAlso for |[s| and |]s|.\n+ \ttag\t\tjumping to a tag: \":ta\", CTRL-T, etc.\n+ \tundo\t\tundo or redo: \"u\" and CTRL-R\n+ When a movement command is used for an operator (e.g., \"dl\" or \"y%\")\n+ this option is not used. This means the operator will include the\n+ whole closed fold.\n+ Note that vertical movements are not here, because it would make it\n+ very difficult to move onto a closed fold.\n+ In insert mode the folds containing the cursor will always be open\n+ when text is inserted.\n+ To close folds you can re-apply 'foldlevel' with the |zx| command or\n+ set the 'foldclose' option to \"all\".\n+ ]=],\n+ full_name = 'foldopen',\n+ list = 'onecomma',\n+ redraw = { 'curswant' },\n+ scope = { 'global' },\n+ short_desc = N_('for which commands a fold will be opened'),\n+ type = 'string',\n+ varname = 'p_fdo',\n+ },\n+ {\n+ abbreviation = 'fdt',\n+ alloced = true,\n+ cb = 'did_set_optexpr',\n+ defaults = { if_true = 'foldtext()' },\n+ desc = [=[\n+ An expression which is used to specify the text displayed for a closed\n+ fold. The context is set to the script where 'foldexpr' was set,\n+ script-local items can be accessed. See |fold-foldtext| for the\n+ usage.\n+\n+ The expression will be evaluated in the |sandbox| if set from a\n+ modeline, see |sandbox-option|.\n+ This option cannot be set in a modeline when 'modelineexpr' is off.\n+\n+ It is not allowed to change text or jump to another window while\n+ evaluating 'foldtext' |textlock|.\n+ ]=],\n+ full_name = 'foldtext',\n+ modelineexpr = true,\n+ redraw = { 'current_window' },\n+ scope = { 'window' },\n+ short_desc = N_('expression used to display for a closed fold'),\n+ type = 'string',\n+ },\n+ {\n+ abbreviation = 'fex',\n+ alloced = true,\n+ cb = 'did_set_optexpr',\n+ defaults = { if_true = '' },\n+ desc = [=[\n+ Expression which is evaluated to format a range of lines for the |gq|\n+ operator or automatic formatting (see 'formatoptions'). When this\n+ option is empty 'formatprg' is used.\n+\n+ The |v:lnum| variable holds the first line to be formatted.\n+ The |v:count| variable holds the number of lines to be formatted.\n+ The |v:char| variable holds the character that is going to be\n+ \t inserted if the expression is being evaluated due to\n+ \t automatic formatting. This can be empty. Don't insert\n+ \t it yet!\n+\n+ Example: >\n+ \t:set formatexpr=mylang#Format()\n+ <\tThis will invoke the mylang#Format() function in the\n+ autoload/mylang.vim file in 'runtimepath'. |autoload|\n+\n+ The expression is also evaluated when 'textwidth' is set and adding\n+ text beyond that limit. This happens under the same conditions as\n+ when internal formatting is used. Make sure the cursor is kept in the\n+ same spot relative to the text then! The |mode()| function will\n+ return \"i\" or \"R\" in this situation.\n+\n+ When the expression evaluates to non-zero Vim will fall back to using\n+ the internal format mechanism.\n+\n+ If the expression starts with s: or ||, then it is replaced with\n+ the script ID (|local-function|). Example: >\n+ \tset formatexpr=s:MyFormatExpr()\n+ \tset formatexpr=SomeFormatExpr()\n+ <\tOtherwise, the expression is evaluated in the context of the script\n+ where the option was set, thus script-local items are available.\n+\n+ The expression will be evaluated in the |sandbox| when set from a\n+ modeline, see |sandbox-option|. That stops the option from working,\n+ since changing the buffer text is not allowed.\n+ This option cannot be set in a modeline when 'modelineexpr' is off.\n+ NOTE: This option is set to \"\" when 'compatible' is set.\n+ ]=],\n+ full_name = 'formatexpr',\n+ modelineexpr = true,\n+ scope = { 'buffer' },\n+ short_desc = N_('expression used with \"gq\" command'),\n+ type = 'string',\n+ varname = 'p_fex',\n+ },\n+ {\n+ abbreviation = 'fo',\n+ alloced = true,\n+ cb = 'did_set_formatoptions',\n+ defaults = { if_true = macros('DFLT_FO_VIM') },\n+ desc = [=[\n+ This is a sequence of letters which describes how automatic\n+ formatting is to be done. See |fo-table|. Commas can be inserted for\n+ readability.\n+ To avoid problems with flags that are added in the future, use the\n+ \"+=\" and \"-=\" feature of \":set\" |add-option-flags|.\n+ ]=],\n+ full_name = 'formatoptions',\n+ list = 'flags',\n+ scope = { 'buffer' },\n+ short_desc = N_('how automatic formatting is to be done'),\n+ type = 'string',\n+ varname = 'p_fo',\n+ },\n+ {\n+ abbreviation = 'flp',\n+ alloced = true,\n+ defaults = { if_true = '^\\\\s*\\\\d\\\\+[\\\\]:.)}\\\\t ]\\\\s*' },\n+ desc = [=[\n+ A pattern that is used to recognize a list header. This is used for\n+ the \"n\" flag in 'formatoptions'.\n+ The pattern must match exactly the text that will be the indent for\n+ the line below it. You can use |/\\ze| to mark the end of the match\n+ while still checking more characters. There must be a character\n+ following the pattern, when it matches the whole line it is handled\n+ like there is no match.\n+ The default recognizes a number, followed by an optional punctuation\n+ character and white space.\n+ ]=],\n+ full_name = 'formatlistpat',\n+ scope = { 'buffer' },\n+ short_desc = N_('pattern used to recognize a list header'),\n+ type = 'string',\n+ varname = 'p_flp',\n+ },\n+ {\n+ abbreviation = 'fp',\n+ defaults = { if_true = '' },\n+ desc = [=[\n+ The name of an external program that will be used to format the lines\n+ selected with the |gq| operator. The program must take the input on\n+ stdin and produce the output on stdout. The Unix program \"fmt\" is\n+ such a program.\n+ If the 'formatexpr' option is not empty it will be used instead.\n+ Otherwise, if 'formatprg' option is an empty string, the internal\n+ format function will be used |C-indenting|.\n+ Environment variables are expanded |:set_env|. See |option-backslash|\n+ about including spaces and backslashes.\n+ This option cannot be set from a |modeline| or in the |sandbox|, for\n+ security reasons.\n+ ]=],\n+ expand = true,\n+ full_name = 'formatprg',\n+ scope = { 'global', 'buffer' },\n+ secure = true,\n+ short_desc = N_('name of external program used with \"gq\" command'),\n+ type = 'string',\n+ varname = 'p_fp',\n+ },\n+ {\n+ abbreviation = 'fs',\n+ defaults = { if_true = false },\n+ desc = [=[\n+ When on, the OS function fsync() will be called after saving a file\n+ (|:write|, |writefile()|, …), |swap-file|, |undo-persistence| and |shada-file|.\n+ This flushes the file to disk, ensuring that it is safely written.\n+ Slow on some systems: writing buffers, quitting Nvim, and other\n+ operations may sometimes take a few seconds.\n+\n+ Files are ALWAYS flushed ('fsync' is ignored) when:\n+ - |CursorHold| event is triggered\n+ - |:preserve| is called\n+ - system signals low battery life\n+ - Nvim exits abnormally\n+\n+ This option cannot be set from a |modeline| or in the |sandbox|, for\n+ security reasons.\n+ ]=],\n+ full_name = 'fsync',\n+ scope = { 'global' },\n+ secure = true,\n+ short_desc = N_('whether to invoke fsync() after file write'),\n+ type = 'bool',\n+ varname = 'p_fs',\n+ },\n+ {\n+ abbreviation = 'gd',\n+ defaults = { if_true = false },\n+ desc = [=[\n+ When on, the \":substitute\" flag 'g' is default on. This means that\n+ all matches in a line are substituted instead of one. When a 'g' flag\n+ is given to a \":substitute\" command, this will toggle the substitution\n+ of all or one match. See |complex-change|.\n+\n+ \tcommand\t\t'gdefault' on\t'gdefault' off\t~\n+ \t:s///\t\t subst. all\t subst. one\n+ \t:s///g\t\t subst. one\t subst. all\n+ \t:s///gg\t\t subst. all\t subst. one\n+\n+ DEPRECATED: Setting this option may break plugins that are not aware\n+ of this option. Also, many users get confused that adding the /g flag\n+ has the opposite effect of that it normally does.\n+ ]=],\n+ full_name = 'gdefault',\n+ scope = { 'global' },\n+ short_desc = N_('the \":substitute\" flag \\'g\\' is default on'),\n+ type = 'bool',\n+ varname = 'p_gd',\n+ },\n+ {\n+ abbreviation = 'gfm',\n+ defaults = { if_true = macros('DFLT_GREPFORMAT') },\n+ deny_duplicates = true,\n+ desc = [=[\n+ Format to recognize for the \":grep\" command output.\n+ This is a scanf-like string that uses the same format as the\n+ 'errorformat' option: see |errorformat|.\n+ ]=],\n+ full_name = 'grepformat',\n+ list = 'onecomma',\n+ scope = { 'global' },\n+ short_desc = N_(\"format of 'grepprg' output\"),\n+ type = 'string',\n+ varname = 'p_gefm',\n+ },\n+ {\n+ abbreviation = 'gp',\n+ defaults = {\n+ condition = 'MSWIN',\n+ if_false = 'grep -n $* /dev/null',\n+ if_true = 'findstr /n $* nul',\n+ doc = [[\"grep -n \",\n+ Unix: \"grep -n $* /dev/null\"]],\n+ },\n+ desc = [=[\n+ Program to use for the |:grep| command. This option may contain '%'\n+ and '#' characters, which are expanded like when used in a command-\n+ line. The placeholder \"$*\" is allowed to specify where the arguments\n+ will be included. Environment variables are expanded |:set_env|. See\n+ |option-backslash| about including spaces and backslashes.\n+ When your \"grep\" accepts the \"-H\" argument, use this to make \":grep\"\n+ also work well with a single file: >\n+ \t:set grepprg=grep\\ -nH\n+ <\tSpecial value: When 'grepprg' is set to \"internal\" the |:grep| command\n+ works like |:vimgrep|, |:lgrep| like |:lvimgrep|, |:grepadd| like\n+ |:vimgrepadd| and |:lgrepadd| like |:lvimgrepadd|.\n+ See also the section |:make_makeprg|, since most of the comments there\n+ apply equally to 'grepprg'.\n+ This option cannot be set from a |modeline| or in the |sandbox|, for\n+ security reasons.\n+ ]=],\n+ expand = true,\n+ full_name = 'grepprg',\n+ scope = { 'global', 'buffer' },\n+ secure = true,\n+ short_desc = N_('program to use for \":grep\"'),\n+ type = 'string',\n+ varname = 'p_gp',\n+ },\n+ {\n+ abbreviation = 'gcr',\n+ cb = 'did_set_guicursor',\n+ defaults = { if_true = 'n-v-c-sm:block,i-ci-ve:ver25,r-cr-o:hor20' },\n+ deny_duplicates = true,\n+ desc = [=[\n+ Configures the cursor style for each mode. Works in the GUI and many\n+ terminals. See |tui-cursor-shape|.\n+\n+ To disable cursor-styling, reset the option: >\n+ \t:set guicursor=\n+\n+ <\tTo enable mode shapes, \"Cursor\" highlight, and blinking: >\n+ \t:set guicursor=n-v-c:block,i-ci-ve:ver25,r-cr:hor20,o:hor50\n+ \t \\,a:blinkwait700-blinkoff400-blinkon250-Cursor/lCursor\n+ \t \\,sm:block-blinkwait175-blinkoff150-blinkon175\n+\n+ <\tThe option is a comma-separated list of parts. Each part consists of a\n+ mode-list and an argument-list:\n+ \tmode-list:argument-list,mode-list:argument-list,..\n+ The mode-list is a dash separated list of these modes:\n+ \tn\tNormal mode\n+ \tv\tVisual mode\n+ \tve\tVisual mode with 'selection' \"exclusive\" (same as 'v',\n+ \t\tif not specified)\n+ \to\tOperator-pending mode\n+ \ti\tInsert mode\n+ \tr\tReplace mode\n+ \tc\tCommand-line Normal (append) mode\n+ \tci\tCommand-line Insert mode\n+ \tcr\tCommand-line Replace mode\n+ \tsm\tshowmatch in Insert mode\n+ \ta\tall modes\n+ The argument-list is a dash separated list of these arguments:\n+ \thor{N}\thorizontal bar, {N} percent of the character height\n+ \tver{N}\tvertical bar, {N} percent of the character width\n+ \tblock\tblock cursor, fills the whole character\n+ \t\t- Only one of the above three should be present.\n+ \t\t- Default is \"block\" for each mode.\n+ \tblinkwait{N}\t\t\t\t*cursor-blinking*\n+ \tblinkon{N}\n+ \tblinkoff{N}\n+ \t\tblink times for cursor: blinkwait is the delay before\n+ \t\tthe cursor starts blinking, blinkon is the time that\n+ \t\tthe cursor is shown and blinkoff is the time that the\n+ \t\tcursor is not shown. Times are in msec. When one of\n+ \t\tthe numbers is zero, there is no blinking. E.g.: >\n+ \t\t\t:set guicursor=n:blinkon0\n+ <\t\t\t- Default is \"blinkon0\" for each mode.\n+ \t{group-name}\n+ \t\tHighlight group that decides the color and font of the\n+ \t\tcursor.\n+ \t\tIn the |TUI|:\n+ \t\t- |inverse|/reverse and no group-name are interpreted\n+ \t\t as \"host-terminal default cursor colors\" which\n+ \t\t typically means \"inverted bg and fg colors\".\n+ \t\t- |ctermfg| and |guifg| are ignored.\n+ \t{group-name}/{group-name}\n+ \t\tTwo highlight group names, the first is used when\n+ \t\tno language mappings are used, the other when they\n+ \t\tare. |language-mapping|\n+\n+ Examples of parts:\n+ n-c-v:block-nCursor\tIn Normal, Command-line and Visual mode, use a\n+ \t\t\tblock cursor with colors from the \"nCursor\"\n+ \t\t\thighlight group\n+ n-v-c-sm:block,i-ci-ve:ver25-Cursor,r-cr-o:hor20\n+ \t\t\tIn Normal et al. modes, use a block cursor\n+ \t\t\twith the default colors defined by the host\n+ \t\t\tterminal. In Insert-likes modes, use\n+ \t\t\ta vertical bar cursor with colors from\n+ \t\t\t\"Cursor\" highlight group. In Replace-likes\n+ \t\t\tmodes, use a underline cursor with\n+ \t\t\tdefault colors.\n+ i-ci:ver30-iCursor-blinkwait300-blinkon200-blinkoff150\n+ \t\t\tIn Insert and Command-line Insert mode, use a\n+ \t\t\t30% vertical bar cursor with colors from the\n+ \t\t\t\"iCursor\" highlight group. Blink a bit\n+ \t\t\tfaster.\n+\n+ The 'a' mode is different. It will set the given argument-list for\n+ all modes. It does not reset anything to defaults. This can be used\n+ to do a common setting for all modes. For example, to switch off\n+ blinking: \"a:blinkon0\"\n+\n+ Examples of cursor highlighting: >\n+ :highlight Cursor gui=reverse guifg=NONE guibg=NONE\n+ :highlight Cursor gui=NONE guifg=bg guibg=fg\n+ <\n+ ]=],\n+ full_name = 'guicursor',\n+ list = 'onecomma',\n+ scope = { 'global' },\n+ short_desc = N_('GUI: settings for cursor shape and blinking'),\n+ tags = { 'E545', 'E546', 'E548', 'E549' },\n+ type = 'string',\n+ varname = 'p_guicursor',\n+ },\n+ {\n+ abbreviation = 'gfn',\n+ defaults = { if_true = '' },\n+ desc = [=[\n+ This is a list of fonts which will be used for the GUI version of Vim.\n+ In its simplest form the value is just one font name. When\n+ the font cannot be found you will get an error message. To try other\n+ font names a list can be specified, font names separated with commas.\n+ The first valid font is used.\n+\n+ Spaces after a comma are ignored. To include a comma in a font name\n+ precede it with a backslash. Setting an option requires an extra\n+ backslash before a space and a backslash. See also\n+ |option-backslash|. For example: >\n+ :set guifont=Screen15,\\ 7x13,font\\\\,with\\\\,commas\n+ <\twill make Vim try to use the font \"Screen15\" first, and if it fails it\n+ will try to use \"7x13\" and then \"font,with,commas\" instead.\n+\n+ If none of the fonts can be loaded, Vim will keep the current setting.\n+ If an empty font list is given, Vim will try using other resource\n+ settings (for X, it will use the Vim.font resource), and finally it\n+ will try some builtin default which should always be there (\"7x13\" in\n+ the case of X). The font names given should be \"normal\" fonts. Vim\n+ will try to find the related bold and italic fonts.\n+\n+ For Win32 and Mac OS: >\n+ :set guifont=*\n+ <\twill bring up a font requester, where you can pick the font you want.\n+\n+ The font name depends on the GUI used.\n+\n+ For Mac OSX you can use something like this: >\n+ :set guifont=Monaco:h10\n+ <\t\t\t\t\t\t\t\t*E236*\n+ Note that the fonts must be mono-spaced (all characters have the same\n+ width).\n+\n+ To preview a font on X11, you might be able to use the \"xfontsel\"\n+ program. The \"xlsfonts\" program gives a list of all available fonts.\n+\n+ For the Win32 GUI\t\t\t\t\t*E244* *E245*\n+ - takes these options in the font name:\n+ \thXX - height is XX (points, can be floating-point)\n+ \twXX - width is XX (points, can be floating-point)\n+ \tb - bold\n+ \ti - italic\n+ \tu - underline\n+ \ts - strikeout\n+ \tcXX - character set XX. Valid charsets are: ANSI, ARABIC,\n+ \t BALTIC, CHINESEBIG5, DEFAULT, EASTEUROPE, GB2312, GREEK,\n+ \t HANGEUL, HEBREW, JOHAB, MAC, OEM, RUSSIAN, SHIFTJIS,\n+ \t SYMBOL, THAI, TURKISH, VIETNAMESE ANSI and BALTIC.\n+ \t Normally you would use \"cDEFAULT\".\n+\n+ Use a ':' to separate the options.\n+ - A '_' can be used in the place of a space, so you don't need to use\n+ backslashes to escape the spaces.\n+ - Examples: >\n+ :set guifont=courier_new:h12:w5:b:cRUSSIAN\n+ :set guifont=Andale_Mono:h7.5:w4.5\n+ <\n+ ]=],\n+ deny_duplicates = true,\n+ full_name = 'guifont',\n+ list = 'onecomma',\n+ redraw = { 'ui_option' },\n+ scope = { 'global' },\n+ short_desc = N_('GUI: Name(s) of font(s) to be used'),\n+ tags = { 'E235', 'E596' },\n+ type = 'string',\n+ varname = 'p_guifont',\n+ },\n+ {\n+ abbreviation = 'gfw',\n+ defaults = { if_true = '' },\n+ deny_duplicates = true,\n+ desc = [=[\n+ Comma-separated list of fonts to be used for double-width characters.\n+ The first font that can be loaded is used.\n+ Note: The size of these fonts must be exactly twice as wide as the one\n+ specified with 'guifont' and the same height.\n+\n+ When 'guifont' has a valid font and 'guifontwide' is empty Vim will\n+ attempt to set 'guifontwide' to a matching double-width font.\n+ ]=],\n+ full_name = 'guifontwide',\n+ list = 'onecomma',\n+ redraw = { 'ui_option' },\n+ scope = { 'global' },\n+ short_desc = N_('list of font names for double-wide characters'),\n+ tags = { 'E231', 'E533', 'E534' },\n+ type = 'string',\n+ varname = 'p_guifontwide',\n+ },\n+ {\n+ abbreviation = 'go',\n+ defaults = {\n+ if_true = '',\n+ doc = '\"egmrLT\" (MS-Windows)',\n+ },\n+ desc = [=[\n+ This option only has an effect in the GUI version of Vim. It is a\n+ sequence of letters which describes what components and options of the\n+ GUI should be used.\n+ To avoid problems with flags that are added in the future, use the\n+ \"+=\" and \"-=\" feature of \":set\" |add-option-flags|.\n+\n+ Valid letters are as follows:\n+ \t\t\t\t\t\t*guioptions_a* *'go-a'*\n+ 'a'\tAutoselect: If present, then whenever VISUAL mode is started,\n+ \tor the Visual area extended, Vim tries to become the owner of\n+ \tthe windowing system's global selection. This means that the\n+ \tVisually highlighted text is available for pasting into other\n+ \tapplications as well as into Vim itself. When the Visual mode\n+ \tends, possibly due to an operation on the text, or when an\n+ \tapplication wants to paste the selection, the highlighted text\n+ \tis automatically yanked into the \"* selection register.\n+ \tThus the selection is still available for pasting into other\n+ \tapplications after the VISUAL mode has ended.\n+ \t If not present, then Vim won't become the owner of the\n+ \twindowing system's global selection unless explicitly told to\n+ \tby a yank or delete operation for the \"* register.\n+ \tThe same applies to the modeless selection.\n+ \t\t\t\t\t\t\t*'go-P'*\n+ 'P'\tLike autoselect but using the \"+ register instead of the \"*\n+ \tregister.\n+ \t\t\t\t\t\t\t*'go-A'*\n+ 'A'\tAutoselect for the modeless selection. Like 'a', but only\n+ \tapplies to the modeless selection.\n+\n+ \t 'guioptions' autoselect Visual autoselect modeless ~\n+ \t\t \"\"\t\t -\t\t\t -\n+ \t\t \"a\"\t\tyes\t\t\tyes\n+ \t\t \"A\"\t\t -\t\t\tyes\n+ \t\t \"aA\"\t\tyes\t\t\tyes\n+\n+ \t\t\t\t\t\t\t*'go-c'*\n+ 'c'\tUse console dialogs instead of popup dialogs for simple\n+ \tchoices.\n+ \t\t\t\t\t\t\t*'go-d'*\n+ 'd'\tUse dark theme variant if available.\n+ \t\t\t\t\t\t\t*'go-e'*\n+ 'e'\tAdd tab pages when indicated with 'showtabline'.\n+ \t'guitablabel' can be used to change the text in the labels.\n+ \tWhen 'e' is missing a non-GUI tab pages line may be used.\n+ \tThe GUI tabs are only supported on some systems, currently\n+ \tMac OS/X and MS-Windows.\n+ \t\t\t\t\t\t\t*'go-i'*\n+ 'i'\tUse a Vim icon.\n+ \t\t\t\t\t\t\t*'go-m'*\n+ 'm'\tMenu bar is present.\n+ \t\t\t\t\t\t\t*'go-M'*\n+ 'M'\tThe system menu \"$VIMRUNTIME/menu.vim\" is not sourced. Note\n+ \tthat this flag must be added in the vimrc file, before\n+ \tswitching on syntax or filetype recognition (when the |gvimrc|\n+ \tfile is sourced the system menu has already been loaded; the\n+ \t`:syntax on` and `:filetype on` commands load the menu too).\n+ \t\t\t\t\t\t\t*'go-g'*\n+ 'g'\tGrey menu items: Make menu items that are not active grey. If\n+ \t'g' is not included inactive menu items are not shown at all.\n+ \t\t\t\t\t\t\t*'go-T'*\n+ 'T'\tInclude Toolbar. Currently only in Win32 GUI.\n+ \t\t\t\t\t\t\t*'go-r'*\n+ 'r'\tRight-hand scrollbar is always present.\n+ \t\t\t\t\t\t\t*'go-R'*\n+ 'R'\tRight-hand scrollbar is present when there is a vertically\n+ \tsplit window.\n+ \t\t\t\t\t\t\t*'go-l'*\n+ 'l'\tLeft-hand scrollbar is always present.\n+ \t\t\t\t\t\t\t*'go-L'*\n+ 'L'\tLeft-hand scrollbar is present when there is a vertically\n+ \tsplit window.\n+ \t\t\t\t\t\t\t*'go-b'*\n+ 'b'\tBottom (horizontal) scrollbar is present. Its size depends on\n+ \tthe longest visible line, or on the cursor line if the 'h'\n+ \tflag is included. |gui-horiz-scroll|\n+ \t\t\t\t\t\t\t*'go-h'*\n+ 'h'\tLimit horizontal scrollbar size to the length of the cursor\n+ \tline. Reduces computations. |gui-horiz-scroll|\n+\n+ And yes, you may even have scrollbars on the left AND the right if\n+ you really want to :-). See |gui-scrollbars| for more information.\n+\n+ \t\t\t\t\t\t\t*'go-v'*\n+ 'v'\tUse a vertical button layout for dialogs. When not included,\n+ \ta horizontal layout is preferred, but when it doesn't fit a\n+ \tvertical layout is used anyway. Not supported in GTK 3.\n+ \t\t\t\t\t\t\t*'go-p'*\n+ 'p'\tUse Pointer callbacks for X11 GUI. This is required for some\n+ \twindow managers. If the cursor is not blinking or hollow at\n+ \tthe right moment, try adding this flag. This must be done\n+ \tbefore starting the GUI. Set it in your |gvimrc|. Adding or\n+ \tremoving it after the GUI has started has no effect.\n+ \t\t\t\t\t\t\t*'go-k'*\n+ 'k'\tKeep the GUI window size when adding/removing a scrollbar, or\n+ \ttoolbar, tabline, etc. Instead, the behavior is similar to\n+ \twhen the window is maximized and will adjust 'lines' and\n+ \t'columns' to fit to the window. Without the 'k' flag Vim will\n+ \ttry to keep 'lines' and 'columns' the same when adding and\n+ \tremoving GUI components.\n+ ]=],\n+ enable_if = false,\n+ full_name = 'guioptions',\n+ list = 'flags',\n+ scope = { 'global' },\n+ short_desc = N_('GUI: Which components and options are used'),\n+ type = 'string',\n+ },\n+ {\n+ abbreviation = 'gtl',\n+ desc = [=[\n+ When non-empty describes the text to use in a label of the GUI tab\n+ pages line. When empty and when the result is empty Vim will use a\n+ default label. See |setting-guitablabel| for more info.\n+\n+ The format of this option is like that of 'statusline'.\n+ 'guitabtooltip' is used for the tooltip, see below.\n+ The expression will be evaluated in the |sandbox| when set from a\n+ modeline, see |sandbox-option|.\n+ This option cannot be set in a modeline when 'modelineexpr' is off.\n+\n+ Only used when the GUI tab pages line is displayed. 'e' must be\n+ present in 'guioptions'. For the non-GUI tab pages line 'tabline' is\n+ used.\n+ ]=],\n+ enable_if = false,\n+ full_name = 'guitablabel',\n+ modelineexpr = true,\n+ redraw = { 'current_window' },\n+ scope = { 'global' },\n+ short_desc = N_('GUI: custom label for a tab page'),\n+ type = 'string',\n+ },\n+ {\n+ abbreviation = 'gtt',\n+ desc = [=[\n+ When non-empty describes the text to use in a tooltip for the GUI tab\n+ pages line. When empty Vim will use a default tooltip.\n+ This option is otherwise just like 'guitablabel' above.\n+ You can include a line break. Simplest method is to use |:let|: >\n+ \t:let &guitabtooltip = \"line one\\nline two\"\n+ <\n+ ]=],\n+ enable_if = false,\n+ full_name = 'guitabtooltip',\n+ redraw = { 'current_window' },\n+ scope = { 'global' },\n+ short_desc = N_('GUI: custom tooltip for a tab page'),\n+ type = 'string',\n+ },\n+ {\n+ abbreviation = 'hf',\n+ cb = 'did_set_helpfile',\n+ defaults = {\n+ if_true = macros('DFLT_HELPFILE'),\n+ doc = [[(MS-Windows) \"$VIMRUNTIME\\doc\\help.txt\"\n+ (others) \"$VIMRUNTIME/doc/help.txt\")\n+ ]],\n+ },\n+ desc = [=[\n+ Name of the main help file. All distributed help files should be\n+ placed together in one directory. Additionally, all \"doc\" directories\n+ in 'runtimepath' will be used.\n+ Environment variables are expanded |:set_env|. For example:\n+ \"$VIMRUNTIME/doc/help.txt\". If $VIMRUNTIME is not set, $VIM is also\n+ tried. Also see |$VIMRUNTIME| and |option-backslash| about including\n+ spaces and backslashes.\n+ This option cannot be set from a |modeline| or in the |sandbox|, for\n+ security reasons.\n+ ]=],\n+ expand = true,\n+ full_name = 'helpfile',\n+ scope = { 'global' },\n+ secure = true,\n+ short_desc = N_('full path name of the main help file'),\n+ type = 'string',\n+ varname = 'p_hf',\n+ },\n+ {\n+ abbreviation = 'hh',\n+ cb = 'did_set_helpheight',\n+ defaults = { if_true = 20 },\n+ desc = [=[\n+ Minimal initial height of the help window when it is opened with the\n+ \":help\" command. The initial height of the help window is half of the\n+ current window, or (when the 'ea' option is on) the same as other\n+ windows. When the height is less than 'helpheight', the height is\n+ set to 'helpheight'. Set to zero to disable.\n+ ]=],\n+ full_name = 'helpheight',\n+ scope = { 'global' },\n+ short_desc = N_('minimum height of a new help window'),\n+ type = 'number',\n+ varname = 'p_hh',\n+ },\n+ {\n+ abbreviation = 'hlg',\n+ cb = 'did_set_helplang',\n+ defaults = {\n+ if_true = '',\n+ doc = 'messages language or empty',\n+ },\n+ deny_duplicates = true,\n+ desc = [=[\n+ Comma-separated list of languages. Vim will use the first language\n+ for which the desired help can be found. The English help will always\n+ be used as a last resort. You can add \"en\" to prefer English over\n+ another language, but that will only find tags that exist in that\n+ language and not in the English help.\n+ Example: >\n+ \t:set helplang=de,it\n+ <\tThis will first search German, then Italian and finally English help\n+ files.\n+ When using |CTRL-]| and \":help!\" in a non-English help file Vim will\n+ try to find the tag in the current language before using this option.\n+ See |help-translated|.\n+ ]=],\n+ full_name = 'helplang',\n+ list = 'onecomma',\n+ scope = { 'global' },\n+ short_desc = N_('preferred help languages'),\n+ type = 'string',\n+ varname = 'p_hlg',\n+ },\n+ {\n+ abbreviation = 'hid',\n+ defaults = { if_true = true },\n+ desc = [=[\n+ When off a buffer is unloaded (including loss of undo information)\n+ when it is |abandon|ed. When on a buffer becomes hidden when it is\n+ |abandon|ed. A buffer displayed in another window does not become\n+ hidden, of course.\n+\n+ Commands that move through the buffer list sometimes hide a buffer\n+ although the 'hidden' option is off when these three are true:\n+ - the buffer is modified\n+ - 'autowrite' is off or writing is not possible\n+ - the '!' flag was used\n+ Also see |windows|.\n+\n+ To hide a specific buffer use the 'bufhidden' option.\n+ 'hidden' is set for one command with \":hide {command}\" |:hide|.\n+ ]=],\n+ full_name = 'hidden',\n+ scope = { 'global' },\n+ short_desc = N_(\"don't unload buffer when it is |abandon|ed\"),\n+ type = 'bool',\n+ varname = 'p_hid',\n+ },\n+ {\n+ abbreviation = 'hl',\n+ cb = 'did_set_highlight',\n+ defaults = { if_true = macros('HIGHLIGHT_INIT') },\n+ deny_duplicates = true,\n+ full_name = 'highlight',\n+ list = 'onecomma',\n+ scope = { 'global' },\n+ short_desc = N_('sets highlighting mode for various occasions'),\n+ type = 'string',\n+ varname = 'p_hl',\n+ },\n+ {\n+ abbreviation = 'hi',\n+ defaults = { if_true = 10000 },\n+ desc = [=[\n+ A history of \":\" commands, and a history of previous search patterns\n+ is remembered. This option decides how many entries may be stored in\n+ each of these histories (see |cmdline-editing|).\n+ The maximum value is 10000.\n+ ]=],\n+ full_name = 'history',\n+ scope = { 'global' },\n+ short_desc = N_('number of command-lines that are remembered'),\n+ type = 'number',\n+ varname = 'p_hi',\n+ },\n+ {\n+ abbreviation = 'hk',\n+ defaults = { if_true = false },\n+ full_name = 'hkmap',\n+ scope = { 'global' },\n+ short_desc = N_('No descripti", + "html_url": "https://github.com/neovim/neovim/pull/24528#discussion_r1284409308", + "id": 1284409308, + "in_reply_to_id": 1284344262, + "line": null, + "node_id": "PRRC_kwDOAPphoM5Mjofc", + "original_commit_id": "8735c361b3f2657c5ac340f75c31cdaf12cd6e59", + "original_line": 7660, + "original_position": 10719, + "original_start_line": null, + "path": "src/nvim/options.lua", + "position": null, + "pull_request_review_id": 1562849751, + "pull_request_url": "https://api.github.com/repos/neovim/neovim/pulls/24528", + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/pulls/comments/1284409308/reactions" + }, + "side": "RIGHT", + "start_line": null, + "start_side": null, + "subject_type": "line", + "updated_at": "2023-08-04T13:14:19Z", + "url": "https://api.github.com/repos/neovim/neovim/pulls/comments/1284409308", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/7904185?v=4", + "events_url": "https://api.github.com/users/lewis6991/events{/privacy}", + "followers_url": "https://api.github.com/users/lewis6991/followers", + "following_url": "https://api.github.com/users/lewis6991/following{/other_user}", + "gists_url": "https://api.github.com/users/lewis6991/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/lewis6991", + "id": 7904185, + "login": "lewis6991", + "node_id": "MDQ6VXNlcjc5MDQxODU=", + "organizations_url": "https://api.github.com/users/lewis6991/orgs", + "received_events_url": "https://api.github.com/users/lewis6991/received_events", + "repos_url": "https://api.github.com/users/lewis6991/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/lewis6991/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/lewis6991/subscriptions", + "type": "User", + "url": "https://api.github.com/users/lewis6991" + } + }, + { + "_links": { + "html": { + "href": "https://github.com/neovim/neovim/pull/24528#discussion_r1284422123" + }, + "pull_request": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/24528" + }, + "self": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/comments/1284422123" + } + }, + "author_association": "MEMBER", + "body": "Change the TAB in default 'spellcapcheck' from `\\t` to `\\\\t`, i.e. have a literal backslash.", + "commit_id": "fe5eadf4a3c0dd57c5a9936c4982187e3f9d082c", + "created_at": "2023-08-04T13:25:06Z", + "diff_hunk": "@@ -1,3079 +1,10001 @@\n--- {\n--- {\n--- full_name='aleph', abbreviation='al',\n--- short_desc=\"ASCII code of the letter Aleph (Hebrew)\",\n--- varname='p_aleph', pv_name=nil,\n--- type='number', list=nil, scope={'global'},\n--- deny_duplicates=nil,\n--- enable_if=nil,\n--- defaults={condition=nil, if_true=224, if_false=nil},\n--- secure=nil, gettext=nil, noglob=nil, normal_fname_chars=nil,\n--- pri_mkrc=nil, deny_in_modelines=nil, normal_dname_chars=nil,\n--- modelineexpr=nil,\n--- func=nil,\n--- expand=nil, nodefault=nil, no_mkrc=nil,\n--- alloced=nil,\n--- save_pv_indir=nil,\n--- redraw={'curswant'},\n--- }\n--- }\n--- types: bool, number, string\n--- lists: (nil), comma, onecomma, flags, flagscomma\n--- scopes: global, buffer, window\n--- redraw options: statuslines, tabline, current_window, current_window_only,\n--- current_buffer, all_windows, curswant\n--- defaults: {condition=#if condition, if_true=default, if_false=default}\n--- #if condition:\n--- string: #ifdef string\n--- !string: #ifndef string\n--- {string, string}: #if defined(string) && defined(string)\n--- {!string, !string}: #if !defined(string) && !defined(string)\n-local cstr = function(s)\n+--- @class vim.option_meta\n+--- @field full_name string\n+--- @field desc? string\n+--- @field abbreviation? string\n+--- @field short_desc? string|fun(): string\n+--- @field varname? string\n+--- @field pv_name? string\n+--- @field type 'bool'|'number'|'string'\n+--- @field list? 'comma'|'onecomma'|'flags'|'flagscomma'\n+--- @field scope vim.option_scope[]\n+--- @field deny_duplicates? boolean\n+--- @field enable_if? string|false\n+--- @field defaults? vim.option_defaults\n+--- @field secure? true\n+--- @field noglob? true\n+--- @field normal_fname_chars? true\n+--- @field pri_mkrc? true\n+--- @field deny_in_modelines? true\n+--- @field normal_dname_chars? true\n+--- @field modelineexpr? true\n+--- @field func? true\n+--- @field expand? string|true\n+--- @field nodefault? true\n+--- @field no_mkrc? true\n+--- @field alloced? true\n+--- @field redraw? vim.option_redraw[]\n+--- @field cb? string\n+--- @field tags? string[]\n+\n+--- @class vim.option_defaults\n+--- @field condition? string\n+--- string: #ifdef string\n+--- !string: #ifndef string\n+--- @field if_true integer|boolean|string|fun(): string\n+--- @field if_false? integer|boolean|string\n+--- @field doc? string Default to show in options.txt\n+--- @field meta? integer|boolean|string Default to use in Lua meta files\n+\n+--- @alias vim.option_scope 'global'|'buffer'|'window'\n+\n+--- @alias vim.option_redraw\n+--- |'statuslines'\n+--- |'tabline'\n+--- |'current_window'\n+--- |'current_window_only'\n+--- |'current_buffer'\n+--- |'all_windows'\n+--- |'curswant'\n+--- |'ui_option'\n+\n+--- @param s string\n+--- @return string\n+local function cstr(s)\n return '\"' .. s:gsub('[\"\\\\]', '\\\\%0'):gsub('\\t', '\\\\t') .. '\"'\n end\n-local macros=function(s)\n+\n+--- @param s string\n+--- @return fun(): string\n+local function macros(s)\n return function()\n return s\n end\n end\n-local imacros=function(s)\n+\n+--- @param s string\n+--- @return fun(): string\n+local function imacros(s)\n return function()\n return '(intptr_t)' .. s\n end\n end\n-local N_=function(s) -- luacheck: ignore 211 (currently unused)\n+\n+--- @param s string\n+--- @return fun(): string\n+local function N_(s) -- luacheck: ignore 211 (currently unused)\n return function()\n return 'N_(' .. cstr(s) .. ')'\n end\n end\n--- used for 'cinkeys' and 'indentkeys'\n-local indentkeys_default = '0{,0},0),0],:,0#,!^F,o,O,e';\n+\n return {\n- cstr=cstr,\n- options={\n- {\n- full_name='aleph', abbreviation='al',\n- short_desc=N_(\"ASCII code of the letter Aleph (Hebrew)\"),\n- type='number', scope={'global'},\n- defaults={if_true=224}\n- },\n- {\n- full_name='arabic', abbreviation='arab',\n- short_desc=N_(\"Arabic as a default second language\"),\n- type='bool', scope={'window'},\n- redraw={'curswant'},\n- defaults={if_true=false},\n- cb='did_set_arabic'\n- },\n- {\n- full_name='arabicshape', abbreviation='arshape',\n- short_desc=N_(\"do shaping for Arabic characters\"),\n- type='bool', scope={'global'},\n- redraw={'all_windows', 'ui_option'},\n+ cstr = cstr,\n+ --- @type vim.option_meta[]\n+ options = {\n+ {\n+ abbreviation = 'al',\n+ defaults = { if_true = 224 },\n+ full_name = 'aleph',\n+ scope = { 'global' },\n+ short_desc = N_('ASCII code of the letter Aleph (Hebrew)'),\n+ type = 'number',\n+ },\n+ {\n+ abbreviation = 'arab',\n+ cb = 'did_set_arabic',\n+ defaults = { if_true = false },\n+ desc = [=[\n+ This option can be set to start editing Arabic text.\n+ Setting this option will:\n+ - Set the 'rightleft' option, unless 'termbidi' is set.\n+ - Set the 'arabicshape' option, unless 'termbidi' is set.\n+ - Set the 'keymap' option to \"arabic\"; in Insert mode CTRL-^ toggles\n+ between typing English and Arabic key mapping.\n+ - Set the 'delcombine' option\n \n- varname='p_arshape',\n- defaults={if_true=true}\n- },\n- {\n- full_name='allowrevins', abbreviation='ari',\n- short_desc=N_(\"allow CTRL-_ in Insert and Command-line mode\"),\n- type='bool', scope={'global'},\n- varname='p_ari',\n- defaults={if_true=false}\n- },\n- {\n- full_name='ambiwidth', abbreviation='ambw',\n- short_desc=N_(\"what to do with Unicode chars of ambiguous width\"),\n- type='string', scope={'global'},\n- redraw={'all_windows', 'ui_option'},\n- varname='p_ambw',\n- defaults={if_true=\"single\"},\n- cb='did_set_ambiwidth'\n- },\n- {\n- full_name='autochdir', abbreviation='acd',\n- short_desc=N_(\"change directory to the file in the current window\"),\n- type='bool', scope={'global'},\n- varname='p_acd',\n- defaults={if_true=false},\n- cb='did_set_autochdir'\n- },\n- {\n- full_name='autoindent', abbreviation='ai',\n- short_desc=N_(\"take indent for new line from previous line\"),\n- type='bool', scope={'buffer'},\n- varname='p_ai',\n- defaults={if_true=true}\n- },\n- {\n- full_name='autoread', abbreviation='ar',\n- short_desc=N_(\"autom. read file when changed outside of Vim\"),\n- type='bool', scope={'global', 'buffer'},\n- varname='p_ar',\n- defaults={if_true=true}\n- },\n- {\n- full_name='autowrite', abbreviation='aw',\n- short_desc=N_(\"automatically write file if changed\"),\n- type='bool', scope={'global'},\n- varname='p_aw',\n- defaults={if_true=false}\n- },\n- {\n- full_name='autowriteall', abbreviation='awa',\n- short_desc=N_(\"as 'autowrite', but works with more commands\"),\n- type='bool', scope={'global'},\n- varname='p_awa',\n- defaults={if_true=false}\n- },\n- {\n- full_name='background', abbreviation='bg',\n- short_desc=N_(\"\\\"dark\\\" or \\\"light\\\", used for highlight colors\"),\n- type='string', scope={'global'},\n- varname='p_bg',\n- defaults={if_true=\"dark\"},\n- cb='did_set_background'\n- },\n- {\n- full_name='backspace', abbreviation='bs',\n- short_desc=N_(\"how backspace works at start of line\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- varname='p_bs',\n- defaults={if_true=\"indent,eol,start\"},\n- cb='did_set_backspace'\n- },\n- {\n- full_name='backup', abbreviation='bk',\n- short_desc=N_(\"keep backup file after overwriting a file\"),\n- type='bool', scope={'global'},\n- varname='p_bk',\n- defaults={if_true=false}\n- },\n- {\n- full_name='backupcopy', abbreviation='bkc',\n- short_desc=N_(\"make backup as a copy, don't rename the file\"),\n- type='string', list='onecomma', scope={'global', 'buffer'},\n- deny_duplicates=true,\n- varname='p_bkc',\n- defaults={\n- condition='UNIX',\n- if_true=\"auto\",\n- if_false=\"auto\"\n+ Resetting this option will:\n+ - Reset the 'rightleft' option.\n+ - Disable the use of 'keymap' (without changing its value).\n+ Note that 'arabicshape' and 'delcombine' are not reset (it is a global\n+ option).\n+ Also see |arabic.txt|.\n+ ]=],\n+ full_name = 'arabic',\n+ redraw = { 'curswant' },\n+ scope = { 'window' },\n+ short_desc = N_('Arabic as a default second language'),\n+ type = 'bool',\n+ },\n+ {\n+ abbreviation = 'arshape',\n+ defaults = { if_true = true },\n+ desc = [=[\n+ When on and 'termbidi' is off, the required visual character\n+ corrections that need to take place for displaying the Arabic language\n+ take effect. Shaping, in essence, gets enabled; the term is a broad\n+ one which encompasses:\n+ a) the changing/morphing of characters based on their location\n+ within a word (initial, medial, final and stand-alone).\n+ b) the enabling of the ability to compose characters\n+ c) the enabling of the required combining of some characters\n+ When disabled the display shows each character's true stand-alone\n+ form.\n+ Arabic is a complex language which requires other settings, for\n+ further details see |arabic.txt|.\n+ ]=],\n+ full_name = 'arabicshape',\n+ redraw = { 'all_windows', 'ui_option' },\n+ scope = { 'global' },\n+ short_desc = N_('do shaping for Arabic characters'),\n+ type = 'bool',\n+ varname = 'p_arshape',\n+ },\n+ {\n+ abbreviation = 'ari',\n+ defaults = { if_true = false },\n+ desc = [=[\n+ Allow CTRL-_ in Insert and Command-line mode. This is default off, to\n+ avoid that users that accidentally type CTRL-_ instead of SHIFT-_ get\n+ into reverse Insert mode, and don't know how to get out. See\n+ 'revins'.\n+ ]=],\n+ full_name = 'allowrevins',\n+ scope = { 'global' },\n+ short_desc = N_('allow CTRL-_ in Insert and Command-line mode'),\n+ type = 'bool',\n+ varname = 'p_ari',\n+ },\n+ {\n+ abbreviation = 'ambw',\n+ cb = 'did_set_ambiwidth',\n+ defaults = { if_true = 'single' },\n+ desc = [=[\n+ Tells Vim what to do with characters with East Asian Width Class\n+ Ambiguous (such as Euro, Registered Sign, Copyright Sign, Greek\n+ letters, Cyrillic letters).\n+\n+ There are currently two possible values:\n+ \"single\":\tUse the same width as characters in US-ASCII. This is\n+ \t\texpected by most users.\n+ \"double\":\tUse twice the width of ASCII characters.\n+ \t\t\t\t\t\t*E834* *E835*\n+ The value \"double\" cannot be used if 'listchars' or 'fillchars'\n+ contains a character that would be double width. These errors may\n+ also be given when calling setcellwidths().\n+\n+ The values are overruled for characters specified with\n+ |setcellwidths()|.\n+\n+ There are a number of CJK fonts for which the width of glyphs for\n+ those characters are solely based on how many octets they take in\n+ legacy/traditional CJK encodings. In those encodings, Euro,\n+ Registered sign, Greek/Cyrillic letters are represented by two octets,\n+ therefore those fonts have \"wide\" glyphs for them. This is also\n+ true of some line drawing characters used to make tables in text\n+ file. Therefore, when a CJK font is used for GUI Vim or\n+ Vim is running inside a terminal (emulators) that uses a CJK font\n+ (or Vim is run inside an xterm invoked with \"-cjkwidth\" option.),\n+ this option should be set to \"double\" to match the width perceived\n+ by Vim with the width of glyphs in the font. Perhaps it also has\n+ to be set to \"double\" under CJK MS-Windows when the system locale is\n+ set to one of CJK locales. See Unicode Standard Annex #11\n+ (https://www.unicode.org/reports/tr11).\n+ ]=],\n+ full_name = 'ambiwidth',\n+ redraw = { 'all_windows', 'ui_option' },\n+ scope = { 'global' },\n+ short_desc = N_('what to do with Unicode chars of ambiguous width'),\n+ type = 'string',\n+ varname = 'p_ambw',\n+ },\n+ {\n+ abbreviation = 'acd',\n+ cb = 'did_set_autochdir',\n+ defaults = { if_true = false },\n+ desc = [=[\n+ When on, Vim will change the current working directory whenever you\n+ open a file, switch buffers, delete a buffer or open/close a window.\n+ It will change to the directory containing the file which was opened\n+ or selected. When a buffer has no name it also has no directory, thus\n+ the current directory won't change when navigating to it.\n+ Note: When this option is on some plugins may not work.\n+ ]=],\n+ full_name = 'autochdir',\n+ scope = { 'global' },\n+ short_desc = N_('change directory to the file in the current window'),\n+ type = 'bool',\n+ varname = 'p_acd',\n+ },\n+ {\n+ abbreviation = 'ai',\n+ defaults = { if_true = true },\n+ desc = [=[\n+ Copy indent from current line when starting a new line (typing \n+ in Insert mode or when using the \"o\" or \"O\" command). If you do not\n+ type anything on the new line except or CTRL-D and then type\n+ , CTRL-O or , the indent is deleted again. Moving the cursor\n+ to another line has the same effect, unless the 'I' flag is included\n+ in 'cpoptions'.\n+ When autoindent is on, formatting (with the \"gq\" command or when you\n+ reach 'textwidth' in Insert mode) uses the indentation of the first\n+ line.\n+ When 'smartindent' or 'cindent' is on the indent is changed in\n+ a different way.\n+ ]=],\n+ full_name = 'autoindent',\n+ scope = { 'buffer' },\n+ short_desc = N_('take indent for new line from previous line'),\n+ type = 'bool',\n+ varname = 'p_ai',\n+ },\n+ {\n+ abbreviation = 'ar',\n+ defaults = { if_true = true },\n+ desc = [=[\n+ When a file has been detected to have been changed outside of Vim and\n+ it has not been changed inside of Vim, automatically read it again.\n+ When the file has been deleted this is not done, so you have the text\n+ from before it was deleted. When it appears again then it is read.\n+ |timestamp|\n+ If this option has a local value, use this command to switch back to\n+ using the global value: >\n+ \t:set autoread<\n+ <\n+ ]=],\n+ full_name = 'autoread',\n+ scope = { 'global', 'buffer' },\n+ short_desc = N_('autom. read file when changed outside of Vim'),\n+ type = 'bool',\n+ varname = 'p_ar',\n+ },\n+ {\n+ abbreviation = 'aw',\n+ defaults = { if_true = false },\n+ desc = [=[\n+ Write the contents of the file, if it has been modified, on each\n+ `:next`, `:rewind`, `:last`, `:first`, `:previous`, `:stop`,\n+ `:suspend`, `:tag`, `:!`, `:make`, CTRL-] and CTRL-^ command; and when\n+ a `:buffer`, CTRL-O, CTRL-I, '{A-Z0-9}, or `{A-Z0-9} command takes one\n+ to another file.\n+ A buffer is not written if it becomes hidden, e.g. when 'bufhidden' is\n+ set to \"hide\" and `:next` is used.\n+ Note that for some commands the 'autowrite' option is not used, see\n+ 'autowriteall' for that.\n+ Some buffers will not be written, specifically when 'buftype' is\n+ \"nowrite\", \"nofile\", \"terminal\" or \"prompt\".\n+ USE WITH CARE: If you make temporary changes to a buffer that you\n+ don't want to be saved this option may cause it to be saved anyway.\n+ Renaming the buffer with \":file {name}\" may help avoid this.\n+ ]=],\n+ full_name = 'autowrite',\n+ scope = { 'global' },\n+ short_desc = N_('automatically write file if changed'),\n+ type = 'bool',\n+ varname = 'p_aw',\n+ },\n+ {\n+ abbreviation = 'awa',\n+ defaults = { if_true = false },\n+ desc = [=[\n+ Like 'autowrite', but also used for commands \":edit\", \":enew\", \":quit\",\n+ \":qall\", \":exit\", \":xit\", \":recover\" and closing the Vim window.\n+ Setting this option also implies that Vim behaves like 'autowrite' has\n+ been set.\n+ ]=],\n+ full_name = 'autowriteall',\n+ scope = { 'global' },\n+ short_desc = N_(\"as 'autowrite', but works with more commands\"),\n+ type = 'bool',\n+ varname = 'p_awa',\n+ },\n+ {\n+ abbreviation = 'bg',\n+ cb = 'did_set_background',\n+ defaults = { if_true = 'dark' },\n+ desc = [=[\n+ When set to \"dark\" or \"light\", adjusts the default color groups for\n+ that background type. The |TUI| or other UI sets this on startup\n+ (triggering |OptionSet|) if it can detect the background color.\n+\n+ This option does NOT change the background color, it tells Nvim what\n+ the \"inherited\" (terminal/GUI) background looks like.\n+ See |:hi-normal| if you want to set the background color explicitly.\n+ \t\t\t\t\t*g:colors_name*\n+ When a color scheme is loaded (the \"g:colors_name\" variable is set)\n+ setting 'background' will cause the color scheme to be reloaded. If\n+ the color scheme adjusts to the value of 'background' this will work.\n+ However, if the color scheme sets 'background' itself the effect may\n+ be undone. First delete the \"g:colors_name\" variable when needed.\n+\n+ Normally this option would be set in the vimrc file. Possibly\n+ depending on the terminal name. Example: >\n+ \t:if $TERM ==# \"xterm\"\n+ \t: set background=dark\n+ \t:endif\n+ <\tWhen this option is set, the default settings for the highlight groups\n+ will change. To use other settings, place \":highlight\" commands AFTER\n+ the setting of the 'background' option.\n+ This option is also used in the \"$VIMRUNTIME/syntax/syntax.vim\" file\n+ to select the colors for syntax highlighting. After changing this\n+ option, you must load syntax.vim again to see the result. This can be\n+ done with \":syntax on\".\n+ ]=],\n+ full_name = 'background',\n+ scope = { 'global' },\n+ short_desc = N_('\"dark\" or \"light\", used for highlight colors'),\n+ type = 'string',\n+ varname = 'p_bg',\n+ },\n+ {\n+ abbreviation = 'bs',\n+ cb = 'did_set_backspace',\n+ defaults = { if_true = 'indent,eol,start' },\n+ deny_duplicates = true,\n+ desc = [=[\n+ Influences the working of , , CTRL-W and CTRL-U in Insert\n+ mode. This is a list of items, separated by commas. Each item allows\n+ a way to backspace over something:\n+ value\teffect\t~\n+ indent\tallow backspacing over autoindent\n+ eol\tallow backspacing over line breaks (join lines)\n+ start\tallow backspacing over the start of insert; CTRL-W and CTRL-U\n+ \tstop once at the start of insert.\n+ nostop\tlike start, except CTRL-W and CTRL-U do not stop at the start of\n+ \tinsert.\n+\n+ When the value is empty, Vi compatible backspacing is used, none of\n+ the ways mentioned for the items above are possible.\n+ ]=],\n+ full_name = 'backspace',\n+ list = 'onecomma',\n+ scope = { 'global' },\n+ short_desc = N_('how backspace works at start of line'),\n+ type = 'string',\n+ varname = 'p_bs',\n+ },\n+ {\n+ abbreviation = 'bk',\n+ defaults = { if_true = false },\n+ desc = [=[\n+ Make a backup before overwriting a file. Leave it around after the\n+ file has been successfully written. If you do not want to keep the\n+ backup file, but you do want a backup while the file is being\n+ written, reset this option and set the 'writebackup' option (this is\n+ the default). If you do not want a backup file at all reset both\n+ options (use this if your file system is almost full). See the\n+ |backup-table| for more explanations.\n+ When the 'backupskip' pattern matches, a backup is not made anyway.\n+ When 'patchmode' is set, the backup may be renamed to become the\n+ oldest version of a file.\n+ ]=],\n+ full_name = 'backup',\n+ scope = { 'global' },\n+ short_desc = N_('keep backup file after overwriting a file'),\n+ type = 'bool',\n+ varname = 'p_bk',\n+ },\n+ {\n+ abbreviation = 'bkc',\n+ cb = 'did_set_backupcopy',\n+ defaults = { condition = 'UNIX', if_false = 'auto', if_true = 'auto' },\n+ deny_duplicates = true,\n+ desc = [=[\n+ When writing a file and a backup is made, this option tells how it's\n+ done. This is a comma-separated list of words.\n+\n+ The main values are:\n+ \"yes\"\tmake a copy of the file and overwrite the original one\n+ \"no\"\trename the file and write a new one\n+ \"auto\"\tone of the previous, what works best\n+\n+ Extra values that can be combined with the ones above are:\n+ \"breaksymlink\"\talways break symlinks when writing\n+ \"breakhardlink\"\talways break hardlinks when writing\n+\n+ Making a copy and overwriting the original file:\n+ - Takes extra time to copy the file.\n+ + When the file has special attributes, is a (hard/symbolic) link or\n+ has a resource fork, all this is preserved.\n+ - When the file is a link the backup will have the name of the link,\n+ not of the real file.\n+\n+ Renaming the file and writing a new one:\n+ + It's fast.\n+ - Sometimes not all attributes of the file can be copied to the new\n+ file.\n+ - When the file is a link the new file will not be a link.\n+\n+ The \"auto\" value is the middle way: When Vim sees that renaming the\n+ file is possible without side effects (the attributes can be passed on\n+ and the file is not a link) that is used. When problems are expected,\n+ a copy will be made.\n+\n+ The \"breaksymlink\" and \"breakhardlink\" values can be used in\n+ combination with any of \"yes\", \"no\" and \"auto\". When included, they\n+ force Vim to always break either symbolic or hard links by doing\n+ exactly what the \"no\" option does, renaming the original file to\n+ become the backup and writing a new file in its place. This can be\n+ useful for example in source trees where all the files are symbolic or\n+ hard links and any changes should stay in the local source tree, not\n+ be propagated back to the original source.\n+ \t\t\t\t\t\t*crontab*\n+ One situation where \"no\" and \"auto\" will cause problems: A program\n+ that opens a file, invokes Vim to edit that file, and then tests if\n+ the open file was changed (through the file descriptor) will check the\n+ backup file instead of the newly created file. \"crontab -e\" is an\n+ example.\n+\n+ When a copy is made, the original file is truncated and then filled\n+ with the new text. This means that protection bits, owner and\n+ symbolic links of the original file are unmodified. The backup file,\n+ however, is a new file, owned by the user who edited the file. The\n+ group of the backup is set to the group of the original file. If this\n+ fails, the protection bits for the group are made the same as for\n+ others.\n+\n+ When the file is renamed, this is the other way around: The backup has\n+ the same attributes of the original file, and the newly written file\n+ is owned by the current user. When the file was a (hard/symbolic)\n+ link, the new file will not! That's why the \"auto\" value doesn't\n+ rename when the file is a link. The owner and group of the newly\n+ written file will be set to the same ones as the original file, but\n+ the system may refuse to do this. In that case the \"auto\" value will\n+ again not rename the file.\n+ ]=],\n+ full_name = 'backupcopy',\n+ list = 'onecomma',\n+ scope = { 'global', 'buffer' },\n+ short_desc = N_(\"make backup as a copy, don't rename the file\"),\n+ type = 'string',\n+ varname = 'p_bkc',\n+ },\n+ {\n+ abbreviation = 'bdir',\n+ defaults = { if_true = '' },\n+ deny_duplicates = true,\n+ desc = [=[\n+ List of directories for the backup file, separated with commas.\n+ - The backup file will be created in the first directory in the list\n+ where this is possible. If none of the directories exist Nvim will\n+ attempt to create the last directory in the list.\n+ - Empty means that no backup file will be created ('patchmode' is\n+ impossible!). Writing may fail because of this.\n+ - A directory \".\" means to put the backup file in the same directory\n+ as the edited file.\n+ - A directory starting with \"./\" (or \".\\\" for MS-Windows) means to put\n+ the backup file relative to where the edited file is. The leading\n+ \".\" is replaced with the path name of the edited file.\n+ (\".\" inside a directory name has no special meaning).\n+ - Spaces after the comma are ignored, other spaces are considered part\n+ of the directory name. To have a space at the start of a directory\n+ name, precede it with a backslash.\n+ - To include a comma in a directory name precede it with a backslash.\n+ - A directory name may end in an '/'.\n+ - For Unix and Win32, if a directory ends in two path separators \"//\",\n+ the swap file name will be built from the complete path to the file\n+ with all path separators changed to percent '%' signs. This will\n+ ensure file name uniqueness in the backup directory.\n+ On Win32, it is also possible to end with \"\\\\\". However, When a\n+ separating comma is following, you must use \"//\", since \"\\\\\" will\n+ include the comma in the file name. Therefore it is recommended to\n+ use '//', instead of '\\\\'.\n+ - Environment variables are expanded |:set_env|.\n+ - Careful with '\\' characters, type one before a space, type two to\n+ get one in the option (see |option-backslash|), for example: >\n+ :set bdir=c:\\\\tmp,\\ dir\\\\,with\\\\,commas,\\\\\\ dir\\ with\\ spaces\n+ <\n+ See also 'backup' and 'writebackup' options.\n+ If you want to hide your backup files on Unix, consider this value: >\n+ \t:set backupdir=./.backup,~/.backup,.,/tmp\n+ <\tYou must create a \".backup\" directory in each directory and in your\n+ home directory for this to work properly.\n+ The use of |:set+=| and |:set-=| is preferred when adding or removing\n+ directories from the list. This avoids problems when a future version\n+ uses another default.\n+ This option cannot be set from a |modeline| or in the |sandbox|, for\n+ security reasons.\n+ ]=],\n+ expand = 'nodefault',\n+ full_name = 'backupdir',\n+ list = 'onecomma',\n+ scope = { 'global' },\n+ secure = true,\n+ short_desc = N_('list of directories for the backup file'),\n+ type = 'string',\n+ varname = 'p_bdir',\n+ },\n+ {\n+ abbreviation = 'bex',\n+ cb = 'did_set_backupext_or_patchmode',\n+ defaults = { if_true = '~' },\n+ desc = [=[\n+ String which is appended to a file name to make the name of the\n+ backup file. The default is quite unusual, because this avoids\n+ accidentally overwriting existing files with a backup file. You might\n+ prefer using \".bak\", but make sure that you don't have files with\n+ \".bak\" that you want to keep.\n+ Only normal file name characters can be used; `/\\*?[|<>` are illegal.\n+\n+ If you like to keep a lot of backups, you could use a BufWritePre\n+ autocommand to change 'backupext' just before writing the file to\n+ include a timestamp. >\n+ \t:au BufWritePre * let &bex = '-' .. strftime(\"%Y%b%d%X\") .. '~'\n+ <\tUse 'backupdir' to put the backup in a different directory.\n+ ]=],\n+ full_name = 'backupext',\n+ normal_fname_chars = true,\n+ scope = { 'global' },\n+ short_desc = N_('extension used for the backup file'),\n+ tags = { 'E589' },\n+ type = 'string',\n+ varname = 'p_bex',\n+ },\n+ {\n+ abbreviation = 'bsk',\n+ defaults = {\n+ if_true = '',\n+ doc = [[\"$TMPDIR/*,$TMP/*,$TEMP/*\"\n+ Unix: \"/tmp/*,$TMPDIR/*,$TMP/*,$TEMP/*\"\n+ Mac: \"/private/tmp/*,$TMPDIR/*,$TMP/*,$TEMP/*\")]],\n+ meta = '/tmp/*',\n },\n- cb='did_set_backupcopy'\n- },\n- {\n- full_name='backupdir', abbreviation='bdir',\n- short_desc=N_(\"list of directories for the backup file\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- secure=true,\n- expand='nodefault',\n- varname='p_bdir',\n- defaults={if_true=''}\n- },\n- {\n- full_name='backupext', abbreviation='bex',\n- short_desc=N_(\"extension used for the backup file\"),\n- type='string', scope={'global'},\n- normal_fname_chars=true,\n- varname='p_bex',\n- defaults={if_true=\"~\"},\n- cb='did_set_backupext_or_patchmode'\n- },\n- {\n- full_name='backupskip', abbreviation='bsk',\n- short_desc=N_(\"no backup for files that match these patterns\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- varname='p_bsk',\n- defaults={if_true=\"\"}\n- },\n- {\n- full_name='belloff', abbreviation='bo',\n- short_desc=N_(\"do not ring the bell for these reasons\"),\n- type='string', list='comma', scope={'global'},\n- deny_duplicates=true,\n- varname='p_bo',\n- defaults={if_true=\"all\"},\n- cb='did_set_belloff'\n- },\n- {\n- full_name='binary', abbreviation='bin',\n- short_desc=N_(\"read/write/edit file in binary mode\"),\n- type='bool', scope={'buffer'},\n- redraw={'statuslines'},\n- varname='p_bin',\n- defaults={if_true=false},\n- cb='did_set_binary'\n- },\n- {\n- full_name='bomb',\n- short_desc=N_(\"a Byte Order Mark to the file\"),\n- type='bool', scope={'buffer'},\n- no_mkrc=true,\n- redraw={'statuslines'},\n- varname='p_bomb',\n- defaults={if_true=false},\n- cb='did_set_eof_eol_fixeol_bomb'\n- },\n- {\n- full_name='breakat', abbreviation='brk',\n- short_desc=N_(\"characters that may cause a line break\"),\n- type='string', list='flags', scope={'global'},\n- redraw={'all_windows'},\n- varname='p_breakat',\n- defaults={if_true=\" \\t!@*-+;:,./?\"},\n- cb='did_set_breakat'\n- },\n- {\n- full_name='breakindent', abbreviation='bri',\n- short_desc=N_(\"wrapped line repeats indent\"),\n- type='bool', scope={'window'},\n- redraw={'current_window'},\n- defaults={if_true=false}\n- },\n- {\n- full_name='breakindentopt', abbreviation='briopt',\n- short_desc=N_(\"settings for 'breakindent'\"),\n- type='string', list='onecomma', scope={'window'},\n- deny_duplicates=true,\n- alloced=true,\n- redraw={'current_buffer'},\n- defaults={if_true=\"\"},\n- cb='did_set_breakindentopt'\n- },\n- {\n- full_name='browsedir', abbreviation='bsdir',\n- short_desc=N_(\"which directory to start browsing in\"),\n- type='string', scope={'global'},\n- enable_if=false,\n- },\n- {\n- full_name='bufhidden', abbreviation='bh',\n- short_desc=N_(\"what to do when buffer is no longer in window\"),\n- type='string', scope={'buffer'},\n- noglob=true,\n- alloced=true,\n- varname='p_bh',\n- defaults={if_true=\"\"},\n- cb='did_set_bufhidden'\n- },\n- {\n- full_name='buflisted', abbreviation='bl',\n- short_desc=N_(\"whether the buffer shows up in the buffer list\"),\n- type='bool', scope={'buffer'},\n- noglob=true,\n- varname='p_bl',\n- defaults={if_true=1},\n- cb='did_set_buflisted'\n- },\n- {\n- full_name='buftype', abbreviation='bt',\n- short_desc=N_(\"special type of buffer\"),\n- type='string', scope={'buffer'},\n- noglob=true,\n- alloced=true,\n- varname='p_bt',\n- defaults={if_true=\"\"},\n- cb='did_set_buftype'\n- },\n- {\n- full_name='casemap', abbreviation='cmp',\n- short_desc=N_(\"specifies how case of letters is changed\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- varname='p_cmp',\n- defaults={if_true=\"internal,keepascii\"},\n- cb='did_set_casemap'\n- },\n- {\n- full_name='cdhome', abbreviation='cdh',\n- short_desc=N_(\":cd without argument goes to the home directory\"),\n- type='bool', scope={'global'},\n- secure=true,\n- varname='p_cdh',\n- defaults={if_true=false}\n- },\n- {\n- full_name='cdpath', abbreviation='cd',\n- short_desc=N_(\"list of directories searched with \\\":cd\\\"\"),\n- type='string', list='comma', scope={'global'},\n- deny_duplicates=true,\n- expand=true,\n- secure=true,\n- varname='p_cdpath',\n- defaults={if_true=\",,\"}\n- },\n- {\n- full_name='cedit',\n- short_desc=N_(\"used to open the command-line window\"),\n- type='string', scope={'global'},\n- varname='p_cedit',\n- defaults={if_true=macros('CTRL_F_STR')},\n- cb='did_set_cedit'\n- },\n- {\n- full_name='channel',\n- short_desc=N_(\"Channel connected to the buffer\"),\n- type='number', scope={'buffer'},\n- no_mkrc=true,\n- nodefault=true,\n- varname='p_channel',\n- defaults={if_true=0}\n- },\n- {\n- full_name='charconvert', abbreviation='ccv',\n- short_desc=N_(\"expression for character encoding conversion\"),\n- type='string', scope={'global'},\n- secure=true,\n- varname='p_ccv',\n- defaults={if_true=\"\"},\n- cb='did_set_optexpr'\n- },\n- {\n- full_name='cindent', abbreviation='cin',\n- short_desc=N_(\"do C program indenting\"),\n- type='bool', scope={'buffer'},\n- varname='p_cin',\n- defaults={if_true=false}\n- },\n- {\n- full_name='cinkeys', abbreviation='cink',\n- short_desc=N_(\"keys that trigger indent when 'cindent' is set\"),\n- type='string', list='onecomma', scope={'buffer'},\n- deny_duplicates=true,\n- alloced=true,\n- varname='p_cink',\n- defaults={if_true=indentkeys_default}\n- },\n- {\n- full_name='cinoptions', abbreviation='cino',\n- short_desc=N_(\"how to do indenting when 'cindent' is set\"),\n- type='string', list='onecomma', scope={'buffer'},\n- deny_duplicates=true,\n- alloced=true,\n- varname='p_cino',\n- defaults={if_true=\"\"},\n- cb='did_set_cinoptions'\n- },\n- {\n- full_name='cinwords', abbreviation='cinw',\n- short_desc=N_(\"words where 'si' and 'cin' add an indent\"),\n- type='string', list='onecomma', scope={'buffer'},\n- deny_duplicates=true,\n- alloced=true,\n- varname='p_cinw',\n- defaults={if_true=\"if,else,while,do,for,switch\"}\n- },\n- {\n- full_name='cinscopedecls', abbreviation='cinsd',\n- short_desc=N_(\"words that are recognized by 'cino-g'\"),\n- type='string', list='onecomma', scope={'buffer'},\n- deny_duplicates=true,\n- alloced=true,\n- varname='p_cinsd',\n- defaults={if_true=\"public,protected,private\"}\n- },\n- {\n- full_name='clipboard', abbreviation='cb',\n- short_desc=N_(\"use the clipboard as the unnamed register\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- varname='p_cb',\n- defaults={if_true=\"\"},\n- cb='did_set_clipboard'\n- },\n- {\n- full_name='cmdheight', abbreviation='ch',\n- short_desc=N_(\"number of lines to use for the command-line\"),\n- type='number', scope={'global'},\n- redraw={'all_windows'},\n- varname='p_ch',\n- defaults={if_true=1},\n- cb='did_set_cmdheight'\n- },\n- {\n- full_name='cmdwinheight', abbreviation='cwh',\n- short_desc=N_(\"height of the command-line window\"),\n- type='number', scope={'global'},\n- varname='p_cwh',\n- defaults={if_true=7}\n- },\n- {\n- full_name='colorcolumn', abbreviation='cc',\n- short_desc=N_(\"columns to highlight\"),\n- type='string', list='onecomma', scope={'window'},\n- deny_duplicates=true,\n- redraw={'current_window'},\n- defaults={if_true=\"\"},\n- cb='did_set_colorcolumn'\n- },\n- {\n- full_name='columns', abbreviation='co',\n- short_desc=N_(\"number of columns in the display\"),\n- type='number', scope={'global'},\n- no_mkrc=true,\n- varname='p_columns',\n- defaults={if_true=macros('DFLT_COLS')}\n- },\n- {\n- full_name='comments', abbreviation='com',\n- short_desc=N_(\"patterns that can start a comment line\"),\n- type='string', list='onecomma', scope={'buffer'},\n- deny_duplicates=true,\n- alloced=true,\n- redraw={'curswant'},\n- varname='p_com',\n- defaults={if_true=\"s1:/*,mb:*,ex:*/,://,b:#,:%,:XCOMM,n:>,fb:-\"},\n- cb='did_set_comments'\n- },\n- {\n- full_name='commentstring', abbreviation='cms',\n- short_desc=N_(\"template for comments; used for fold marker\"),\n- type='string', scope={'buffer'},\n- alloced=true,\n- redraw={'curswant'},\n- varname='p_cms',\n- defaults={if_true=\"\"},\n- cb='did_set_commentstring'\n- },\n- {\n- full_name='compatible', abbreviation='cp',\n- short_desc=N_(\"No description\"),\n- type='bool', scope={'global'},\n- varname='p_force_off',\n- -- pri_mkrc isn't needed here, optval_default()\n- -- always returns TRUE for 'compatible'\n- defaults={if_true=false}\n- },\n- {\n- full_name='complete', abbreviation='cpt',\n- short_desc=N_(\"specify how Insert mode completion works\"),\n- type='string', list='onecomma', scope={'buffer'},\n- deny_duplicates=true,\n- alloced=true,\n- varname='p_cpt',\n- defaults={if_true=\".,w,b,u,t\"},\n- cb='did_set_complete'\n- },\n- {\n- full_name='concealcursor', abbreviation='cocu',\n- short_desc=N_(\"whether concealable text is hidden in cursor line\"),\n- type='string', scope={'window'},\n- alloced=true,\n- redraw={'current_window'},\n- defaults={if_true=\"\"},\n- cb='did_set_concealcursor'\n- },\n- {\n- full_name='conceallevel', abbreviation='cole',\n- short_desc=N_(\"whether concealable text is shown or hidden\"),\n- type='number', scope={'window'},\n- redraw={'current_window'},\n- defaults={if_true=0}\n- },\n- {\n- full_name='completefunc', abbreviation='cfu',\n- short_desc=N_(\"function to be used for Insert mode completion\"),\n- type='string', scope={'buffer'},\n- secure=true,\n- alloced=true,\n- func=true,\n- varname='p_cfu',\n- defaults={if_true=\"\"},\n- cb='did_set_completefunc'\n- },\n- {\n- full_name='completeopt', abbreviation='cot',\n- short_desc=N_(\"options for Insert mode completion\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- varname='p_cot',\n- defaults={if_true=\"menu,preview\"},\n- cb='did_set_completeopt'\n- },\n- {\n- full_name='completeslash', abbreviation='csl',\n- type='string', scope={'buffer'},\n- varname='p_csl',\n- enable_if='BACKSLASH_IN_FILENAME',\n- defaults={if_true=\"\"},\n- cb='did_set_completeslash'\n- },\n- {\n- full_name='confirm', abbreviation='cf',\n- short_desc=N_(\"ask what to do about unsaved/read-only files\"),\n- type='bool', scope={'global'},\n- varname='p_confirm',\n- defaults={if_true=false}\n- },\n- {\n- full_name='copyindent', abbreviation='ci',\n- short_desc=N_(\"make 'autoindent' use existing indent structure\"),\n- type='bool', scope={'buffer'},\n- varname='p_ci',\n- defaults={if_true=false}\n- },\n- {\n- full_name='cpoptions', abbreviation='cpo',\n- short_desc=N_(\"flags for Vi-compatible behavior\"),\n- type='string', list='flags', scope={'global'},\n- redraw={'all_windows'},\n- varname='p_cpo',\n- defaults={if_true=macros('CPO_VIM')},\n- cb='did_set_cpoptions'\n- },\n- {\n- full_name='cursorbind', abbreviation='crb',\n- short_desc=N_(\"move cursor in window as it moves in other windows\"),\n- type='bool', scope={'window'},\n- pv_name='p_crbind',\n- defaults={if_true=false}\n- },\n- {\n- full_name='cursorcolumn', abbreviation='cuc',\n- short_desc=N_(\"highlight the screen column of the cursor\"),\n- type='bool', scope={'window'},\n- redraw={'current_window_only'},\n- defaults={if_true=false}\n- },\n- {\n- full_name='cursorline', abbreviation='cul',\n- short_desc=N_(\"highlight the screen line of the cursor\"),\n- type='bool', scope={'window'},\n- redraw={'current_window_only'},\n- defaults={if_true=false}\n- },\n- {\n- full_name='cursorlineopt', abbreviation='culopt',\n- short_desc=N_(\"settings for 'cursorline'\"),\n- type='string', list='onecomma', scope={'window'},\n- deny_duplicates=true,\n- redraw={'current_window_only'},\n- defaults={if_true=\"both\"},\n- cb='did_set_cursorlineopt'\n- },\n- {\n- full_name='debug',\n- short_desc=N_(\"to \\\"msg\\\" to see all error messages\"),\n- type='string', scope={'global'},\n- varname='p_debug',\n- defaults={if_true=\"\"},\n- cb='did_set_debug'\n- },\n- {\n- full_name='define', abbreviation='def',\n- short_desc=N_(\"pattern to be used to find a macro definition\"),\n- type='string', scope={'global', 'buffer'},\n- alloced=true,\n- redraw={'curswant'},\n- varname='p_def',\n- defaults={if_true=\"\"}\n- },\n- {\n- full_name='delcombine', abbreviation='deco',\n- short_desc=N_(\"delete combining characters on their own\"),\n- type='bool', scope={'global'},\n- varname='p_deco',\n- defaults={if_true=false}\n- },\n- {\n- full_name='dictionary', abbreviation='dict',\n- short_desc=N_(\"list of file names used for keyword completion\"),\n- type='string', list='onecomma', scope={'global', 'buffer'},\n- deny_duplicates=true,\n- normal_dname_chars=true,\n- expand=true,\n- varname='p_dict',\n- defaults={if_true=\"\"}\n- },\n- {\n- full_name='diff',\n- short_desc=N_(\"diff mode for the current window\"),\n- type='bool', scope={'window'},\n- noglob=true,\n- redraw={'current_window'},\n- defaults={if_true=false},\n- cb='did_set_diff'\n- },\n- {\n- full_name='diffexpr', abbreviation='dex',\n- short_desc=N_(\"expression used to obtain a diff file\"),\n- type='string', scope={'global'},\n- secure=true,\n- redraw={'curswant'},\n- varname='p_dex',\n- defaults={if_true=\"\"},\n- cb='did_set_optexpr'\n- },\n- {\n- full_name='diffopt', abbreviation='dip',\n- short_desc=N_(\"options for using diff mode\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- alloced=true,\n- redraw={'current_window'},\n- varname='p_dip',\n- defaults={if_true=\"internal,filler,closeoff\"},\n- cb='did_set_diffopt'\n- },\n- {\n- full_name='digraph', abbreviation='dg',\n- short_desc=N_(\"enable the entering of digraphs in Insert mode\"),\n- type='bool', scope={'global'},\n- varname='p_dg',\n- defaults={if_true=false}\n- },\n- {\n- full_name='directory', abbreviation='dir',\n- short_desc=N_(\"list of directory names for the swap file\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- secure=true,\n- expand='nodefault',\n- varname='p_dir',\n- defaults={if_true=''}\n- },\n- {\n- full_name='display', abbreviation='dy',\n- short_desc=N_(\"list of flags for how to display text\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- redraw={'all_windows'},\n- varname='p_dy',\n- defaults={if_true=\"lastline\"},\n- cb='did_set_display'\n- },\n- {\n- full_name='eadirection', abbreviation='ead',\n- short_desc=N_(\"in which direction 'equalalways' works\"),\n- type='string', scope={'global'},\n- varname='p_ead',\n- defaults={if_true=\"both\"},\n- cb='did_set_eadirection'\n- },\n- {\n- full_name='edcompatible', abbreviation='ed',\n- short_desc=N_(\"No description\"),\n- type='bool', scope={'global'},\n- varname='p_force_off',\n- defaults={if_true=false}\n- },\n- {\n- full_name='emoji', abbreviation='emo',\n- short_desc=N_(\"No description\"),\n- type='bool', scope={'global'},\n- redraw={'all_windows', 'ui_option'},\n- varname='p_emoji',\n- defaults={if_true=true},\n- cb='did_set_ambiwidth'\n- },\n- {\n- full_name='encoding', abbreviation='enc',\n- short_desc=N_(\"encoding used internally\"),\n- type='string', scope={'global'},\n- deny_in_modelines=true,\n- varname='p_enc',\n- defaults={if_true=macros('ENC_DFLT')},\n- cb='did_set_encoding'\n- },\n- {\n- full_name='endoffile', abbreviation='eof',\n- short_desc=N_(\"write CTRL-Z for last line in file\"),\n- type='bool', scope={'buffer'},\n- no_mkrc=true,\n- redraw={'statuslines'},\n- varname='p_eof',\n- defaults={if_true=false},\n- cb='did_set_eof_eol_fixeol_bomb'\n- },\n- {\n- full_name='endofline', abbreviation='eol',\n- short_desc=N_(\"write for last line in file\"),\n- type='bool', scope={'buffer'},\n- no_mkrc=true,\n- redraw={'statuslines'},\n- varname='p_eol',\n- defaults={if_true=true},\n- cb='did_set_eof_eol_fixeol_bomb'\n- },\n- {\n- full_name='equalalways', abbreviation='ea',\n- short_desc=N_(\"windows are automatically made the same size\"),\n- type='bool', scope={'global'},\n- varname='p_ea',\n- defaults={if_true=true},\n- cb='did_set_equalalways'\n- },\n- {\n- full_name='equalprg', abbreviation='ep',\n- short_desc=N_(\"external program to use for \\\"=\\\" command\"),\n- type='string', scope={'global', 'buffer'},\n- secure=true,\n- expand=true,\n- varname='p_ep',\n- defaults={if_true=\"\"}\n- },\n- {\n- full_name='errorbells', abbreviation='eb',\n- short_desc=N_(\"ring the bell for error messages\"),\n- type='bool', scope={'global'},\n- varname='p_eb',\n- defaults={if_true=false}\n- },\n- {\n- full_name='errorfile', abbreviation='ef',\n- short_desc=N_(\"name of the errorfile for the QuickFix mode\"),\n- type='string', scope={'global'},\n- secure=true,\n- expand=true,\n- varname='p_ef',\n- defaults={if_true=macros('DFLT_ERRORFILE')}\n- },\n- {\n- full_name='errorformat', abbreviation='efm',\n- short_desc=N_(\"description of the lines in the error file\"),\n- type='string', list='onecomma', scope={'global', 'buffer'},\n- deny_duplicates=true,\n- varname='p_efm',\n- defaults={if_true=macros('DFLT_EFM')}\n- },\n- {\n- full_name='eventignore', abbreviation='ei',\n- short_desc=N_(\"autocommand events that are ignored\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- varname='p_ei',\n- defaults={if_true=\"\"},\n- cb='did_set_eventignore'\n- },\n- {\n- full_name='expandtab', abbreviation='et',\n- short_desc=N_(\"use spaces when is inserted\"),\n- type='bool', scope={'buffer'},\n- varname='p_et',\n- defaults={if_true=false}\n- },\n- {\n- full_name='exrc', abbreviation='ex',\n- short_desc=N_(\"read .nvimrc and .exrc in the current directory\"),\n- type='bool', scope={'global'},\n- secure=true,\n- varname='p_exrc',\n- defaults={if_true=false}\n- },\n- {\n- full_name='fileencoding', abbreviation='fenc',\n- short_desc=N_(\"file encoding for multi-byte text\"),\n- type='string', scope={'buffer'},\n- no_mkrc=true,\n- alloced=true,\n- redraw={'statuslines', 'current_buffer'},\n- varname='p_fenc',\n- defaults={if_true=\"\"},\n- cb='did_set_encoding'\n- },\n- {\n- full_name='fileencodings', abbreviation='fencs',\n- short_desc=N_(\"automatically detected character encodings\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- varname='p_fencs',\n- defaults={if_true=\"ucs-bom,utf-8,default,latin1\"}\n- },\n- {\n- full_name='fileformat', abbreviation='ff',\n- short_desc=N_(\"file format used for file I/O\"),\n- type='string', scope={'buffer'},\n- no_mkrc=true,\n- alloced=true,\n- redraw={'curswant', 'statuslines'},\n- varname='p_ff',\n- defaults={if_true=macros('DFLT_FF')},\n- cb='did_set_fileformat'\n- },\n- {\n- full_name='fileformats', abbreviation='ffs',\n- short_desc=N_(\"automatically detected values for 'fileformat'\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- varname='p_ffs',\n- defaults={if_true=macros('DFLT_FFS_VIM')},\n- cb='did_set_fileformats'\n- },\n- {\n- full_name='fileignorecase', abbreviation='fic',\n- short_desc=N_(\"ignore case when using file names\"),\n- type='bool', scope={'global'},\n- varname='p_fic',\n- defaults={\n- condition='CASE_INSENSITIVE_FILENAME',\n- if_true=true,\n- if_false=false,\n- }\n- },\n- {\n- full_name='filetype', abbreviation='ft',\n- short_desc=N_(\"type of file, used for autocommands\"),\n- type='string', scope={'buffer'},\n- noglob=true,\n- normal_fname_chars=true,\n- alloced=true,\n- expand=true,\n- varname='p_ft',\n- defaults={if_true=\"\"},\n- cb='did_set_filetype_or_syntax'\n- },\n- {\n- full_name='fillchars', abbreviation='fcs',\n- short_desc=N_(\"characters to use for displaying special items\"),\n- type='string', list='onecomma', scope={'global', 'window'},\n- deny_duplicates=true,\n- alloced=true,\n- redraw={'current_window'},\n- varname='p_fcs',\n- defaults={if_true=''},\n- cb='did_set_chars_option'\n- },\n- {\n- full_name='fixendofline', abbreviation='fixeol',\n- short_desc=N_(\"make sure last line in file has \"),\n- type='bool', scope={'buffer'},\n- redraw={'statuslines'},\n- varname='p_fixeol',\n- defaults={if_true=true},\n- cb='did_set_eof_eol_fixeol_bomb'\n- },\n- {\n- full_name='foldclose', abbreviation='fcl',\n- short_desc=N_(\"close a fold when the cursor leaves it\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- redraw={'current_window'},\n- varname='p_fcl',\n- defaults={if_true=\"\"},\n- cb='did_set_foldclose'\n- },\n- {\n- full_name='foldcolumn', abbreviation='fdc',\n- short_desc=N_(\"width of the column used to indicate folds\"),\n- type='string', scope={'window'},\n- alloced=true,\n- redraw={'current_window'},\n- defaults={if_true=\"0\"},\n- cb='did_set_foldcolumn'\n- },\n- {\n- full_name='foldenable', abbreviation='fen',\n- short_desc=N_(\"set to display all folds open\"),\n- type='bool', scope={'window'},\n- redraw={'current_window'},\n- defaults={if_true=true}\n- },\n- {\n- full_name='foldexpr', abbreviation='fde',\n- short_desc=N_(\"expression used when 'foldmethod' is \\\"expr\\\"\"),\n- type='string', scope={'window'},\n- modelineexpr=true,\n- alloced=true,\n- redraw={'current_window'},\n- defaults={if_true=\"0\"},\n- cb='did_set_foldexpr'\n- },\n- {\n- full_name='foldignore', abbreviation='fdi',\n- short_desc=N_(\"ignore lines when 'foldmethod' is \\\"indent\\\"\"),\n- type='string', scope={'window'},\n- alloced=true,\n- redraw={'current_window'},\n- defaults={if_true=\"#\"},\n- cb='did_set_foldignore'\n- },\n- {\n- full_name='foldlevel', abbreviation='fdl',\n- short_desc=N_(\"close folds with a level higher than this\"),\n- type='number', scope={'window'},\n- redraw={'current_window'},\n- defaults={if_true=0},\n- cb='did_set_foldlevel'\n- },\n- {\n- full_name='foldlevelstart', abbreviation='fdls',\n- short_desc=N_(\"'foldlevel' when starting to edit a file\"),\n- type='number', scope={'global'},\n- redraw={'curswant'},\n- varname='p_fdls',\n- defaults={if_true=-1}\n- },\n- {\n- full_name='foldmarker', abbreviation='fmr',\n- short_desc=N_(\"markers used when 'foldmethod' is \\\"marker\\\"\"),\n- type='string', list='onecomma', scope={'window'},\n- deny_duplicates=true,\n- alloced=true,\n- redraw={'current_window'},\n- defaults={if_true=\"{{{,}}}\"},\n- cb='did_set_foldmarker'\n- },\n- {\n- full_name='foldmethod', abbreviation='fdm',\n- short_desc=N_(\"folding type\"),\n- type='string', scope={'window'},\n- alloced=true,\n- redraw={'current_window'},\n- defaults={if_true=\"manual\"},\n- cb='did_set_foldmethod'\n- },\n- {\n- full_name='foldminlines', abbreviation='fml',\n- short_desc=N_(\"minimum number of lines for a fold to be closed\"),\n- type='number', scope={'window'},\n- redraw={'current_window'},\n- defaults={if_true=1},\n- cb='did_set_foldminlines'\n- },\n- {\n- full_name='foldnestmax', abbreviation='fdn',\n- short_desc=N_(\"maximum fold depth\"),\n- type='number', scope={'window'},\n- redraw={'current_window'},\n- defaults={if_true=20},\n- cb='did_set_foldnestmax'\n- },\n- {\n- full_name='foldopen', abbreviation='fdo',\n- short_desc=N_(\"for which commands a fold will be opened\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- redraw={'curswant'},\n- varname='p_fdo',\n- defaults={if_true=\"block,hor,mark,percent,quickfix,search,tag,undo\"},\n- cb='did_set_foldopen'\n- },\n- {\n- full_name='foldtext', abbreviation='fdt',\n- short_desc=N_(\"expression used to display for a closed fold\"),\n- type='string', scope={'window'},\n- modelineexpr=true,\n- alloced=true,\n- redraw={'current_window'},\n- defaults={if_true=\"foldtext()\"},\n- cb='did_set_optexpr'\n- },\n- {\n- full_name='formatexpr', abbreviation='fex',\n- short_desc=N_(\"expression used with \\\"gq\\\" command\"),\n- type='string', scope={'buffer'},\n- modelineexpr=true,\n- alloced=true,\n- varname='p_fex',\n- defaults={if_true=\"\"},\n- cb='did_set_optexpr'\n- },\n- {\n- full_name='formatoptions', abbreviation='fo',\n- short_desc=N_(\"how automatic formatting is to be done\"),\n- type='string', list='flags', scope={'buffer'},\n- alloced=true,\n- varname='p_fo',\n- defaults={if_true=macros('DFLT_FO_VIM')},\n- cb='did_set_formatoptions'\n- },\n- {\n- full_name='formatlistpat', abbreviation='flp',\n- short_desc=N_(\"pattern used to recognize a list header\"),\n- type='string', scope={'buffer'},\n- alloced=true,\n- varname='p_flp',\n- defaults={if_true=\"^\\\\s*\\\\d\\\\+[\\\\]:.)}\\\\t ]\\\\s*\"}\n- },\n- {\n- full_name='formatprg', abbreviation='fp',\n- short_desc=N_(\"name of external program used with \\\"gq\\\" command\"),\n- type='string', scope={'global', 'buffer'},\n- secure=true,\n- expand=true,\n- varname='p_fp',\n- defaults={if_true=\"\"}\n- },\n- {\n- full_name='fsync', abbreviation='fs',\n- short_desc=N_(\"whether to invoke fsync() after file write\"),\n- type='bool', scope={'global'},\n- secure=true,\n- varname='p_fs',\n- defaults={if_true=false}\n- },\n- {\n- full_name='gdefault', abbreviation='gd',\n- short_desc=N_(\"the \\\":substitute\\\" flag 'g' is default on\"),\n- type='bool', scope={'global'},\n- varname='p_gd',\n- defaults={if_true=false}\n- },\n- {\n- full_name='grepformat', abbreviation='gfm',\n- short_desc=N_(\"format of 'grepprg' output\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- varname='p_gefm',\n- defaults={if_true=macros('DFLT_GREPFORMAT')}\n- },\n- {\n- full_name='grepprg', abbreviation='gp',\n- short_desc=N_(\"program to use for \\\":grep\\\"\"),\n- type='string', scope={'global', 'buffer'},\n- secure=true,\n- expand=true,\n- varname='p_gp',\n- defaults={\n- condition='MSWIN',\n- -- Add an extra file name so that grep will always\n- -- insert a file name in the match line. */\n- if_true=\"findstr /n $* nul\",\n- if_false=\"grep -n $* /dev/null\"\n- }\n- },\n- {\n- full_name='guicursor', abbreviation='gcr',\n- short_desc=N_(\"GUI: settings for cursor shape and blinking\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- varname='p_guicursor',\n- defaults={if_true=\"n-v-c-sm:block,i-ci-ve:ver25,r-cr-o:hor20\"},\n- cb='did_set_guicursor'\n- },\n- {\n- full_name='guifont', abbreviation='gfn',\n- short_desc=N_(\"GUI: Name(s) of font(s) to be used\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- varname='p_guifont',\n- redraw={'ui_option'},\n- defaults={if_true=\"\"}\n- },\n- {\n- full_name='guifontwide', abbreviation='gfw',\n- short_desc=N_(\"list of font names for double-wide characters\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- redraw={'ui_option'},\n- varname='p_guifontwide',\n- defaults={if_true=\"\"}\n- },\n- {\n- full_name='guioptions', abbreviation='go',\n- short_desc=N_(\"GUI: Which components and options are used\"),\n- type='string', list='flags', scope={'global'},\n- enable_if=false,\n- },\n- {\n- full_name='guitablabel', abbreviation='gtl',\n- short_desc=N_(\"GUI: custom label for a tab page\"),\n- type='string', scope={'global'},\n- modelineexpr=true,\n- redraw={'current_window'},\n- enable_if=false,\n- },\n- {\n- full_name='guitabtooltip', abbreviation='gtt',\n- short_desc=N_(\"GUI: custom tooltip for a tab page\"),\n- type='string', scope={'global'},\n- redraw={'current_window'},\n- enable_if=false,\n- },\n- {\n- full_name='helpfile', abbreviation='hf',\n- short_desc=N_(\"full path name of the main help file\"),\n- type='string', scope={'global'},\n- secure=true,\n- expand=true,\n- varname='p_hf',\n- defaults={if_true=macros('DFLT_HELPFILE')},\n- cb='did_set_helpfile'\n- },\n- {\n- full_name='helpheight', abbreviation='hh',\n- short_desc=N_(\"minimum height of a new help window\"),\n- type='number', scope={'global'},\n- varname='p_hh',\n- defaults={if_true=20},\n- cb='did_set_helpheight'\n- },\n- {\n- full_name='helplang', abbreviation='hlg',\n- short_desc=N_(\"preferred help languages\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- varname='p_hlg',\n- defaults={if_true=\"\"},\n- cb='did_set_helplang'\n- },\n- {\n- full_name='hidden', abbreviation='hid',\n- short_desc=N_(\"don't unload buffer when it is |abandon|ed\"),\n- type='bool', scope={'global'},\n- varname='p_hid',\n- defaults={if_true=true}\n- },\n- {\n- full_name='highlight', abbreviation='hl',\n- short_desc=N_(\"sets highlighting mode for various occasions\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- varname='p_hl',\n- defaults={if_true=macros('HIGHLIGHT_INIT')},\n- cb='did_set_highlight'\n- },\n- {\n- full_name='history', abbreviation='hi',\n- short_desc=N_(\"number of command-lines that are remembered\"),\n- type='number', scope={'global'},\n- varname='p_hi',\n- defaults={if_true=10000}\n- },\n- {\n- full_name='hkmap', abbreviation='hk',\n- short_desc=N_(\"No description\"),\n- type='bool', scope={'global'},\n- varname='p_force_off',\n- defaults={if_true=false}\n- },\n- {\n- full_name='hkmapp', abbreviation='hkp',\n- short_desc=N_(\"No description\"),\n- type='bool', scope={'global'},\n- varname='p_force_off',\n- defaults={if_true=false}\n- },\n- {\n- full_name='hlsearch', abbreviation='hls',\n- short_desc=N_(\"highlight matches with last search pattern\"),\n- type='bool', scope={'global'},\n- redraw={'all_windows'},\n- varname='p_hls',\n- defaults={if_true=true},\n- cb='did_set_hlsearch'\n- },\n- {\n- full_name='icon',\n- short_desc=N_(\"Vim set the text of the window icon\"),\n- type='bool', scope={'global'},\n- varname='p_icon',\n- defaults={if_true=false},\n- cb='did_set_title_icon'\n- },\n- {\n- full_name='iconstring',\n- short_desc=N_(\"to use for the Vim icon text\"),\n- type='string', scope={'global'},\n- modelineexpr=true,\n- varname='p_iconstring',\n- defaults={if_true=\"\"},\n- cb='did_set_iconstring'\n- },\n- {\n- full_name='ignorecase', abbreviation='ic',\n- short_desc=N_(\"ignore case in search patterns\"),\n- type='bool', scope={'global'},\n- varname='p_ic',\n- defaults={if_true=false},\n- cb='did_set_ignorecase'\n- },\n- {\n- full_name='imcmdline', abbreviation='imc',\n- short_desc=N_(\"use IM when starting to edit a command line\"),\n- type='bool', scope={'global'},\n- enable_if=false,\n- defaults={if_true=false}\n- },\n- {\n- full_name='imdisable', abbreviation='imd',\n- short_desc=N_(\"do not use the IM in any mode\"),\n- type='bool', scope={'global'},\n- enable_if=false,\n- defaults={if_true=false}\n- },\n- {\n- full_name='iminsert', abbreviation='imi',\n- short_desc=N_(\"use :lmap or IM in Insert mode\"),\n- type='number', scope={'buffer'},\n- varname='p_iminsert', pv_name='p_imi',\n- defaults={if_true=macros('B_IMODE_NONE')},\n- cb='did_set_iminsert'\n- },\n- {\n- full_name='imsearch', abbreviation='ims',\n- short_desc=N_(\"use :lmap or IM when typing a search pattern\"),\n- type='number', scope={'buffer'},\n- varname='p_imsearch', pv_name='p_ims',\n- defaults={\n- if_true=macros('B_IMODE_USE_INSERT'),\n- }\n- },\n- {\n- full_name='inccommand', abbreviation='icm',\n- short_desc=N_(\"Live preview of substitution\"),\n- type='string', scope={'global'},\n- varname='p_icm',\n- defaults={if_true=\"nosplit\"},\n- cb='did_set_inccommand'\n- },\n- {\n- full_name='include', abbreviation='inc',\n- short_desc=N_(\"pattern to be used to find an include file\"),\n- type='string', scope={'global', 'buffer'},\n- alloced=true,\n- varname='p_inc',\n- defaults={if_true=\"\"}\n- },\n- {\n- full_name='includeexpr', abbreviation='inex',\n- short_desc=N_(\"expression used to process an include line\"),\n- type='string', scope={'buffer'},\n- modelineexpr=true,\n- alloced=true,\n- varname='p_inex',\n- defaults={if_true=\"\"},\n- cb='did_set_optexpr'\n- },\n- {\n- full_name='incsearch', abbreviation='is',\n- short_desc=N_(\"highlight match while typing search pattern\"),\n- type='bool', scope={'global'},\n- varname='p_is',\n- defaults={if_true=true}\n- },\n- {\n- full_name='indentexpr', abbreviation='inde',\n- short_desc=N_(\"expression used to obtain the indent of a line\"),\n- type='string', scope={'buffer'},\n- modelineexpr=true,\n- alloced=true,\n- varname='p_inde',\n- defaults={if_true=\"\"},\n- cb='did_set_optexpr'\n- },\n- {\n- full_name='indentkeys', abbreviation='indk',\n- short_desc=N_(\"keys that trigger indenting with 'indentexpr'\"),\n- type='string', list='onecomma', scope={'buffer'},\n- deny_duplicates=true,\n- alloced=true,\n- varname='p_indk',\n- defaults={if_true=indentkeys_default}\n- },\n- {\n- full_name='infercase', abbreviation='inf',\n- short_desc=N_(\"adjust case of match for keyword completion\"),\n- type='bool', scope={'buffer'},\n- varname='p_inf',\n- defaults={if_true=false}\n- },\n- {\n- full_name='insertmode', abbreviation='im',\n- short_desc=N_(\"No description\"),\n- type='bool', scope={'global'},\n- varname='p_force_off',\n- defaults={if_true=false}\n- },\n- {\n- full_name='isfname', abbreviation='isf',\n- short_desc=N_(\"characters included in file names and pathnames\"),\n- type='string', list='comma', scope={'global'},\n- deny_duplicates=true,\n- varname='p_isf',\n- defaults={\n- condition='BACKSLASH_IN_FILENAME',\n- -- Excluded are: & and ^ are special in cmd.exe\n- -- ( and ) are used in text separating fnames */\n- if_true=\"@,48-57,/,\\\\,.,-,_,+,,,#,$,%,{,},[,],:,@-@,!,~,=\",\n- if_false=\"@,48-57,/,.,-,_,+,,,#,$,%,~,=\"\n+ deny_duplicates = true,\n+ desc = [=[\n+ A list of file patterns. When one of the patterns matches with the\n+ name of the file which is written, no backup file is created. Both\n+ the specified file name and the full path name of the file are used.\n+ The pattern is used like with |:autocmd|, see |autocmd-pattern|.\n+ Watch out for special characters, see |option-backslash|.\n+ When $TMPDIR, $TMP or $TEMP is not defined, it is not used for the\n+ default value. \"/tmp/*\" is only used for Unix.\n+\n+ WARNING: Not having a backup file means that when Vim fails to write\n+ your buffer correctly and then, for whatever reason, Vim exits, you\n+ lose both the original file and what you were writing. Only disable\n+ backups if you don't care about losing the file.\n+\n+ Note that environment variables are not expanded. If you want to use\n+ $HOME you must expand it explicitly, e.g.: >\n+ \t:let &backupskip = escape(expand('$HOME'), '\\') .. '/tmp/*'\n+\n+ <\tNote that the default also makes sure that \"crontab -e\" works (when a\n+ backup would be made by renaming the original file crontab won't see\n+ the newly created file). Also see 'backupcopy' and |crontab|.\n+ ]=],\n+ full_name = 'backupskip',\n+ list = 'onecomma',\n+ scope = { 'global' },\n+ short_desc = N_('no backup for files that match these patterns'),\n+ type = 'string',\n+ varname = 'p_bsk',\n+ },\n+ {\n+ abbreviation = 'bo',\n+ cb = 'did_set_belloff',\n+ defaults = { if_true = 'all' },\n+ deny_duplicates = true,\n+ desc = [=[\n+ Specifies for which events the bell will not be rung. It is a comma-\n+ separated list of items. For each item that is present, the bell\n+ will be silenced. This is most useful to specify specific events in\n+ insert mode to be silenced.\n+\n+ item\t meaning when present\t~\n+ all\t All events.\n+ backspace When hitting or and deleting results in an\n+ \t error.\n+ cursor\t Fail to move around using the cursor keys or\n+ \t / in |Insert-mode|.\n+ complete Error occurred when using |i_CTRL-X_CTRL-K| or\n+ \t |i_CTRL-X_CTRL-T|.\n+ copy\t Cannot copy char from insert mode using |i_CTRL-Y| or\n+ \t |i_CTRL-E|.\n+ ctrlg\t Unknown Char after in Insert mode.\n+ error\t Other Error occurred (e.g. try to join last line)\n+ \t (mostly used in |Normal-mode| or |Cmdline-mode|).\n+ esc\t hitting in |Normal-mode|.\n+ hangul\t Ignored.\n+ lang\t Calling the beep module for Lua/Mzscheme/TCL.\n+ mess\t No output available for |g<|.\n+ showmatch Error occurred for 'showmatch' function.\n+ operator Empty region error |cpo-E|.\n+ register Unknown register after in |Insert-mode|.\n+ shell\t Bell from shell output |:!|.\n+ spell\t Error happened on spell suggest.\n+ wildmode More matches in |cmdline-completion| available\n+ \t (depends on the 'wildmode' setting).\n+\n+ This is most useful to fine tune when in Insert mode the bell should\n+ be rung. For Normal mode and Ex commands, the bell is often rung to\n+ indicate that an error occurred. It can be silenced by adding the\n+ \"error\" keyword.\n+ ]=],\n+ full_name = 'belloff',\n+ list = 'comma',\n+ scope = { 'global' },\n+ short_desc = N_('do not ring the bell for these reasons'),\n+ type = 'string',\n+ varname = 'p_bo',\n+ },\n+ {\n+ abbreviation = 'bin',\n+ cb = 'did_set_binary',\n+ defaults = { if_true = false },\n+ desc = [=[\n+ This option should be set before editing a binary file. You can also\n+ use the |-b| Vim argument. When this option is switched on a few\n+ options will be changed (also when it already was on):\n+ \t'textwidth' will be set to 0\n+ \t'wrapmargin' will be set to 0\n+ \t'modeline' will be off\n+ \t'expandtab' will be off\n+ Also, 'fileformat' and 'fileformats' options will not be used, the\n+ file is read and written like 'fileformat' was \"unix\" (a single \n+ separates lines).\n+ The 'fileencoding' and 'fileencodings' options will not be used, the\n+ file is read without conversion.\n+ NOTE: When you start editing a(nother) file while the 'bin' option is\n+ on, settings from autocommands may change the settings again (e.g.,\n+ 'textwidth'), causing trouble when editing. You might want to set\n+ 'bin' again when the file has been loaded.\n+ The previous values of these options are remembered and restored when\n+ 'bin' is switched from on to off. Each buffer has its own set of\n+ saved option values.\n+ To edit a file with 'binary' set you can use the |++bin| argument.\n+ This avoids you have to do \":set bin\", which would have effect for all\n+ files you edit.\n+ When writing a file the for the last line is only written if\n+ there was one in the original file (normally Vim appends an to\n+ the last line if there is none; this would make the file longer). See\n+ the 'endofline' option.\n+ ]=],\n+ full_name = 'binary',\n+ redraw = { 'statuslines' },\n+ scope = { 'buffer' },\n+ short_desc = N_('read/write/edit file in binary mode'),\n+ type = 'bool',\n+ varname = 'p_bin',\n+ },\n+ {\n+ cb = 'did_set_eof_eol_fixeol_bomb',\n+ defaults = { if_true = false },\n+ desc = [=[\n+ When writing a file and the following conditions are met, a BOM (Byte\n+ Order Mark) is prepended to the file:\n+ - this option is on\n+ - the 'binary' option is off\n+ - 'fileencoding' is \"utf-8\", \"ucs-2\", \"ucs-4\" or one of the little/big\n+ endian variants.\n+ Some applications use the BOM to recognize the encoding of the file.\n+ Often used for UCS-2 files on MS-Windows. For other applications it\n+ causes trouble, for example: \"cat file1 file2\" makes the BOM of file2\n+ appear halfway through the resulting file. Gcc doesn't accept a BOM.\n+ When Vim reads a file and 'fileencodings' starts with \"ucs-bom\", a\n+ check for the presence of the BOM is done and 'bomb' set accordingly.\n+ Unless 'binary' is set, it is removed from the first line, so that you\n+ don't see it when editing. When you don't change the options, the BOM\n+ will be restored when writing the file.\n+ ]=],\n+ full_name = 'bomb',\n+ no_mkrc = true,\n+ redraw = { 'statuslines' },\n+ scope = { 'buffer' },\n+ short_desc = N_('a Byte Order Mark to the file'),\n+ type = 'bool',\n+ varname = 'p_bomb',\n+ },\n+ {\n+ abbreviation = 'brk',\n+ cb = 'did_set_breakat',\n+ defaults = {\n+ if_true = ' \\t!@*-+;:,./?',\n+ doc = '\" ^I!@*-+;:,./?\"',\n },\n- cb='did_set_isopt'\n- },\n- {\n- full_name='isident', abbreviation='isi',\n- short_desc=N_(\"characters included in identifiers\"),\n- type='string', list='comma', scope={'global'},\n- deny_duplicates=true,\n- varname='p_isi',\n- defaults={\n- condition='MSWIN',\n- if_true=\"@,48-57,_,128-167,224-235\",\n- if_false=\"@,48-57,_,192-255\"\n+ desc = [=[\n+ This option lets you choose which characters might cause a line\n+ break if 'linebreak' is on. Only works for ASCII characters.\n+ ]=],\n+ full_name = 'breakat',\n+ list = 'flags',\n+ redraw = { 'all_windows' },\n+ scope = { 'global' },\n+ short_desc = N_('characters that may cause a line break'),\n+ type = 'string',\n+ varname = 'p_breakat',\n+ },\n+ {\n+ abbreviation = 'bri',\n+ defaults = { if_true = false },\n+ desc = [=[\n+ Every wrapped line will continue visually indented (same amount of\n+ space as the beginning of that line), thus preserving horizontal blocks\n+ of text.\n+ ]=],\n+ full_name = 'breakindent',\n+ redraw = { 'current_window' },\n+ scope = { 'window' },\n+ short_desc = N_('wrapped line repeats indent'),\n+ type = 'bool',\n+ },\n+ {\n+ abbreviation = 'briopt',\n+ alloced = true,\n+ cb = 'did_set_breakindentopt',\n+ defaults = { if_true = '' },\n+ deny_duplicates = true,\n+ desc = [=[\n+ Settings for 'breakindent'. It can consist of the following optional\n+ items and must be separated by a comma:\n+ \tmin:{n}\t Minimum text width that will be kept after\n+ \t\t applying 'breakindent', even if the resulting\n+ \t\t text should normally be narrower. This prevents\n+ \t\t text indented almost to the right window border\n+ \t\t occupying lot of vertical space when broken.\n+ \t\t (default: 20)\n+ \tshift:{n} After applying 'breakindent', the wrapped line's\n+ \t\t beginning will be shifted by the given number of\n+ \t\t characters. It permits dynamic French paragraph\n+ \t\t indentation (negative) or emphasizing the line\n+ \t\t continuation (positive).\n+ \t\t (default: 0)\n+ \tsbr\t Display the 'showbreak' value before applying the\n+ \t\t additional indent.\n+ \t\t (default: off)\n+ \tlist:{n} Adds an additional indent for lines that match a\n+ \t\t numbered or bulleted list (using the\n+ \t\t 'formatlistpat' setting).\n+ \tlist:-1\t Uses the length of a match with 'formatlistpat'\n+ \t\t for indentation.\n+ \t\t (default: 0)\n+ \tcolumn:{n} Indent at column {n}. Will overrule the other\n+ \t\t sub-options. Note: an additional indent may be\n+ \t\t added for the 'showbreak' setting.\n+ \t\t (default: off)\n+ ]=],\n+ full_name = 'breakindentopt',\n+ list = 'onecomma',\n+ redraw = { 'current_buffer' },\n+ scope = { 'window' },\n+ short_desc = N_(\"settings for 'breakindent'\"),\n+ type = 'string',\n+ },\n+ {\n+ abbreviation = 'bsdir',\n+ defaults = {\n+ if_true = '',\n+ doc = '\"last\"',\n },\n- cb='did_set_isopt'\n- },\n- {\n- full_name='iskeyword', abbreviation='isk',\n- short_desc=N_(\"characters included in keywords\"),\n- type='string', list='comma', scope={'buffer'},\n- deny_duplicates=true,\n- alloced=true,\n- varname='p_isk',\n- defaults={if_true=\"@,48-57,_,192-255\"},\n- cb='did_set_isopt'\n- },\n- {\n- full_name='isprint', abbreviation='isp',\n- short_desc=N_(\"printable characters\"),\n- type='string', list='comma', scope={'global'},\n- deny_duplicates=true,\n- redraw={'all_windows'},\n- varname='p_isp',\n- defaults={if_true=\"@,161-255\"},\n- cb='did_set_isopt'\n- },\n- {\n- full_name='joinspaces', abbreviation='js',\n- short_desc=N_(\"two spaces after a period with a join command\"),\n- type='bool', scope={'global'},\n- varname='p_js',\n- defaults={if_true=false}\n- },\n- {\n- full_name='jumpoptions', abbreviation='jop',\n- short_desc=N_(\"Controls the behavior of the jumplist\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- varname='p_jop',\n- defaults={if_true=''},\n- cb='did_set_jumpoptions'\n- },\n- {\n- full_name='keymap', abbreviation='kmp',\n- short_desc=N_(\"name of a keyboard mapping\"),\n- type='string', scope={'buffer'},\n- normal_fname_chars=true,\n- pri_mkrc=true,\n- alloced=true,\n- redraw={'statuslines', 'current_buffer'},\n- varname='p_keymap', pv_name='p_kmap',\n- defaults={if_true=\"\"},\n- cb='did_set_keymap'\n- },\n- {\n- full_name='keymodel', abbreviation='km',\n- short_desc=N_(\"enable starting/stopping selection with keys\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- varname='p_km',\n- defaults={if_true=\"\"},\n- cb='did_set_keymodel'\n- },\n- {\n- full_name='keywordprg', abbreviation='kp',\n- short_desc=N_(\"program to use for the \\\"K\\\" command\"),\n- type='string', scope={'global', 'buffer'},\n- secure=true,\n- expand=true,\n- varname='p_kp',\n- defaults={\n- if_true=\":Man\",\n- }\n- },\n- {\n- full_name='langmap', abbreviation='lmap',\n- short_desc=N_(\"alphabetic characters for other language mode\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- secure=true,\n- varname='p_langmap',\n- defaults={if_true=\"\"},\n- cb='did_set_langmap'\n- },\n- {\n- full_name='langmenu', abbreviation='lm',\n- short_desc=N_(\"language to be used for the menus\"),\n- type='string', scope={'global'},\n- normal_fname_chars=true,\n- varname='p_lm',\n- defaults={if_true=\"\"}\n- },\n- {\n- full_name='langnoremap', abbreviation='lnr',\n- short_desc=N_(\"do not apply 'langmap' to mapped characters\"),\n- type='bool', scope={'global'},\n- varname='p_lnr',\n- defaults={if_true=true},\n- cb='did_set_langnoremap'\n- },\n- {\n- full_name='langremap', abbreviation='lrm',\n- short_desc=N_('No description'),\n- type='bool', scope={'global'},\n- varname='p_lrm',\n- defaults={if_true=false},\n- cb='did_set_langremap'\n- },\n- {\n- full_name='laststatus', abbreviation='ls',\n- short_desc=N_(\"tells when last window has status lines\"),\n- type='number', scope={'global'},\n- redraw={'all_windows'},\n- varname='p_ls',\n- defaults={if_true=2},\n- cb='did_set_laststatus'\n- },\n- {\n- full_name='lazyredraw', abbreviation='lz',\n- short_desc=N_(\"don't redraw while executing macros\"),\n- type='bool', scope={'global'},\n- varname='p_lz',\n- defaults={if_true=false}\n- },\n- {\n- full_name='linebreak', abbreviation='lbr',\n- short_desc=N_(\"wrap long lines at a blank\"),\n- type='bool', scope={'window'},\n- redraw={'current_window'},\n- defaults={if_true=false}\n- },\n- {\n- full_name='lines',\n- short_desc=N_(\"of lines in the display\"),\n- type='number', scope={'global'},\n- no_mkrc=true,\n- varname='p_lines',\n- defaults={if_true=macros('DFLT_ROWS')}\n- },\n- {\n- full_name='linespace', abbreviation='lsp',\n- short_desc=N_(\"number of pixel lines to use between characters\"),\n- type='number', scope={'global'},\n- redraw={'ui_option'},\n- varname='p_linespace',\n- defaults={if_true=0}\n- },\n- {\n- full_name='lisp',\n- short_desc=N_(\"indenting for Lisp\"),\n- type='bool', scope={'buffer'},\n- varname='p_lisp',\n- defaults={if_true=false},\n- cb='did_set_lisp'\n- },\n- {\n- full_name='lispoptions', abbreviation='lop',\n- short_desc=N_(\"options for lisp indenting\"),\n- type='string', list='onecomma', scope={'buffer'},\n- deny_duplicates=true,\n- varname='p_lop', pv_name='p_lop',\n- defaults={if_true=''},\n- cb='did_set_lispoptions'\n- },\n- {\n- full_name='lispwords', abbreviation='lw',\n- short_desc=N_(\"words that change how lisp indenting works\"),\n- type='string', list='onecomma', scope={'global', 'buffer'},\n- deny_duplicates=true,\n- varname='p_lispwords', pv_name='p_lw',\n- defaults={if_true=macros('LISPWORD_VALUE')}\n- },\n- {\n- full_name='list',\n- short_desc=N_(\" and \"),\n- type='bool', scope={'window'},\n- redraw={'current_window'},\n- defaults={if_true=false}\n- },\n- {\n- full_name='listchars', abbreviation='lcs',\n- short_desc=N_(\"characters for displaying in list mode\"),\n- type='string', list='onecomma', scope={'global', 'window'},\n- deny_duplicates=true,\n- alloced=true,\n- redraw={'current_window'},\n- varname='p_lcs',\n- defaults={if_true=\"tab:> ,trail:-,nbsp:+\"},\n- cb='did_set_chars_option'\n- },\n- {\n- full_name='loadplugins', abbreviation='lpl',\n- short_desc=N_(\"load plugin scripts when starting up\"),\n- type='bool', scope={'global'},\n- varname='p_lpl',\n- defaults={if_true=true}\n- },\n- {\n- full_name='magic',\n- short_desc=N_(\"special characters in search patterns\"),\n- type='bool', scope={'global'},\n- varname='p_magic',\n- defaults={if_true=true}\n- },\n- {\n- full_name='makeef', abbreviation='mef',\n- short_desc=N_(\"name of the errorfile for \\\":make\\\"\"),\n- type='string', scope={'global'},\n- secure=true,\n- expand=true,\n- varname='p_mef',\n- defaults={if_true=\"\"}\n- },\n- {\n- full_name='makeencoding', abbreviation='menc',\n- short_desc=N_(\"Converts the output of external commands\"),\n- type='string', scope={'global', 'buffer'},\n- varname='p_menc',\n- defaults={if_true=\"\"},\n- cb='did_set_encoding'\n- },\n- {\n- full_name='makeprg', abbreviation='mp',\n- short_desc=N_(\"program to use for the \\\":make\\\" command\"),\n- type='string', scope={'global', 'buffer'},\n- secure=true,\n- expand=true,\n- varname='p_mp',\n- defaults={if_true=\"make\"}\n- },\n- {\n- full_name='matchpairs', abbreviation='mps',\n- short_desc=N_(\"pairs of characters that \\\"%\\\" can match\"),\n- type='string', list='onecomma', scope={'buffer'},\n- deny_duplicates=true,\n- alloced=true,\n- varname='p_mps',\n- defaults={if_true=\"(:),{:},[:]\"},\n- cb='did_set_matchpairs'\n- },\n- {\n- full_name='matchtime', abbreviation='mat',\n- short_desc=N_(\"tenths of a second to show matching paren\"),\n- type='number', scope={'global'},\n- varname='p_mat',\n- defaults={if_true=5}\n- },\n- {\n- full_name='maxcombine', abbreviation='mco',\n- short_desc=N_(\"maximum nr of combining characters displayed\"),\n- type='number', scope={'global'},\n- varname='p_mco',\n- defaults={if_true=6}\n- },\n- {\n- full_name='maxfuncdepth', abbreviation='mfd',\n- short_desc=N_(\"maximum recursive depth for user functions\"),\n- type='number', scope={'global'},\n- varname='p_mfd',\n- defaults={if_true=100}\n- },\n- {\n- full_name='maxmapdepth', abbreviation='mmd',\n- short_desc=N_(\"maximum recursive depth for mapping\"),\n- type='number', scope={'global'},\n- varname='p_mmd',\n- defaults={if_true=1000}\n- },\n- {\n- full_name='maxmempattern', abbreviation='mmp',\n- short_desc=N_(\"maximum memory (in Kbyte) used for pattern search\"),\n- type='number', scope={'global'},\n- varname='p_mmp',\n- defaults={if_true=1000}\n- },\n- {\n- full_name='menuitems', abbreviation='mis',\n- short_desc=N_(\"maximum number of items in a menu\"),\n- type='number', scope={'global'},\n- varname='p_mis',\n- defaults={if_true=25}\n- },\n- {\n- full_name='mkspellmem', abbreviation='msm',\n- short_desc=N_(\"memory used before |:mkspell| compresses the tree\"),\n- type='string', scope={'global'},\n- secure=true,\n- expand=true,\n- varname='p_msm',\n- defaults={if_true=\"460000,2000,500\"},\n- cb='did_set_mkspellmem'\n- },\n- {\n- full_name='modeline', abbreviation='ml',\n- short_desc=N_(\"recognize modelines at start or end of file\"),\n- type='bool', scope={'buffer'},\n- varname='p_ml',\n- defaults={if_true=true}\n- },\n- {\n- full_name='modelineexpr', abbreviation='mle',\n- short_desc=N_(\"allow some options to be set in modeline\"),\n- type='bool', scope={'global'},\n- secure=true,\n- varname='p_mle',\n- defaults={if_true=false}\n- },\n- {\n- full_name='modelines', abbreviation='mls',\n- short_desc=N_(\"number of lines checked for modelines\"),\n- type='number', scope={'global'},\n- varname='p_mls',\n- defaults={if_true=5}\n- },\n- {\n- full_name='modifiable', abbreviation='ma',\n- short_desc=N_(\"changes to the text are not possible\"),\n- type='bool', scope={'buffer'},\n- noglob=true,\n- varname='p_ma',\n- defaults={if_true=true},\n- cb='did_set_modifiable'\n- },\n- {\n- full_name='modified', abbreviation='mod',\n- short_desc=N_(\"buffer has been modified\"),\n- type='bool', scope={'buffer'},\n- no_mkrc=true,\n- redraw={'statuslines'},\n- varname='p_mod',\n- defaults={if_true=false},\n- cb='did_set_modified'\n- },\n- {\n- full_name='more',\n- short_desc=N_(\"listings when the whole screen is filled\"),\n- type='bool', scope={'global'},\n- varname='p_more',\n- defaults={if_true=true}\n- },\n- {\n- full_name='mouse',\n- short_desc=N_(\"the use of mouse clicks\"),\n- type='string', list='flags', scope={'global'},\n- varname='p_mouse',\n- defaults={if_true=\"nvi\"},\n- cb='did_set_mouse'\n- },\n- {\n- full_name='mousefocus', abbreviation='mousef',\n- short_desc=N_(\"keyboard focus follows the mouse\"),\n- type='bool', scope={'global'},\n- redraw={'ui_option'},\n- varname='p_mousef',\n- defaults={if_true=false}\n- },\n- {\n- full_name='mousehide', abbreviation='mh',\n- short_desc=N_(\"hide mouse pointer while typing\"),\n- type='bool', scope={'global'},\n- enable_if=false,\n- defaults={if_true=true}\n- },\n- {\n- full_name='mousemodel', abbreviation='mousem',\n- short_desc=N_(\"changes meaning of mouse buttons\"),\n- type='string', scope={'global'},\n- varname='p_mousem',\n- defaults={if_true=\"popup_setpos\"},\n- cb='did_set_mousemodel'\n- },\n- {\n- full_name='mousemoveevent', abbreviation='mousemev',\n- short_desc=N_(\"deliver mouse move events to input queue\"),\n- type='bool', scope={'global'},\n- redraw={'ui_option'},\n- varname='p_mousemev',\n- defaults={if_true=false}\n- },\n- {\n- full_name='mousescroll',\n- short_desc=N_(\"amount to scroll by when scrolling with a mouse\"),\n- type='string', list='comma', scope={'global'},\n- vi_def=true,\n- varname='p_mousescroll',\n- defaults={if_true=\"ver:3,hor:6\"},\n- cb='did_set_mousescroll'\n- },\n- {\n- full_name='mouseshape', abbreviation='mouses',\n- short_desc=N_(\"shape of the mouse pointer in different modes\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- enable_if=false,\n- },\n- {\n- full_name='mousetime', abbreviation='mouset',\n- short_desc=N_(\"max time between mouse double-click\"),\n- type='number', scope={'global'},\n- varname='p_mouset',\n- defaults={if_true=500}\n- },\n- {\n- full_name='nrformats', abbreviation='nf',\n- short_desc=N_(\"number formats recognized for CTRL-A command\"),\n- type='string', list='onecomma', scope={'buffer'},\n- deny_duplicates=true,\n- alloced=true,\n- varname='p_nf',\n- defaults={if_true=\"bin,hex\"},\n- cb='did_set_nrformats'\n- },\n- {\n- full_name='number', abbreviation='nu',\n- short_desc=N_(\"print the line number in front of each line\"),\n- type='bool', scope={'window'},\n- redraw={'current_window'},\n- defaults={if_true=false},\n- cb='did_set_number_relativenumber'\n- },\n- {\n- full_name='numberwidth', abbreviation='nuw',\n- short_desc=N_(\"number of columns used for the line number\"),\n- type='number', scope={'window'},\n- redraw={'current_window'},\n- defaults={if_true=4},\n- cb='did_set_numberwidth'\n- },\n- {\n- full_name='omnifunc', abbreviation='ofu',\n- short_desc=N_(\"function for filetype-specific completion\"),\n- type='string', scope={'buffer'},\n- secure=true,\n- alloced=true,\n- func=true,\n- varname='p_ofu',\n- defaults={if_true=\"\"},\n- cb='did_set_omnifunc'\n- },\n- {\n- full_name='opendevice', abbreviation='odev',\n- short_desc=N_(\"allow reading/writing devices on MS-Windows\"),\n- type='bool', scope={'global'},\n- enable_if=false,\n- defaults={if_true=false}\n- },\n- {\n- full_name='operatorfunc', abbreviation='opfunc',\n- short_desc=N_(\"function to be called for |g@| operator\"),\n- type='string', scope={'global'},\n- secure=true,\n- func=true,\n- varname='p_opfunc',\n- defaults={if_true=\"\"},\n- cb='did_set_operatorfunc'\n- },\n- {\n- full_name='packpath', abbreviation='pp',\n- short_desc=N_(\"list of directories used for packages\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- secure=true,\n- expand=true,\n- varname='p_pp',\n- defaults={if_true=''},\n- cb='did_set_runtimepackpath'\n- },\n- {\n- full_name='paragraphs', abbreviation='para',\n- short_desc=N_(\"nroff macros that separate paragraphs\"),\n- type='string', scope={'global'},\n- varname='p_para',\n- defaults={if_true=\"IPLPPPQPP TPHPLIPpLpItpplpipbp\"}\n- },\n- {\n- full_name='paste',\n- short_desc=N_(\"pasting text\"),\n- type='bool', scope={'global'},\n- pri_mkrc=true,\n- varname='p_paste',\n- defaults={if_true=false},\n- cb='did_set_paste'\n- },\n- {\n- full_name='pastetoggle', abbreviation='pt',\n- short_desc=N_(\"No description\"),\n- type='string', scope={'global'},\n- defaults={if_true=\"\"}\n- },\n- {\n- full_name='patchexpr', abbreviation='pex',\n- short_desc=N_(\"expression used to patch a file\"),\n- type='string', scope={'global'},\n- secure=true,\n- varname='p_pex',\n- defaults={if_true=\"\"},\n- cb='did_set_optexpr'\n- },\n- {\n- full_name='patchmode', abbreviation='pm',\n- short_desc=N_(\"keep the oldest version of a file\"),\n- type='string', scope={'global'},\n- normal_fname_chars=true,\n- varname='p_pm',\n- defaults={if_true=\"\"},\n- cb='did_set_backupext_or_patchmode'\n- },\n- {\n- full_name='path', abbreviation='pa',\n- short_desc=N_(\"list of directories searched with \\\"gf\\\" et.al.\"),\n- type='string', list='comma', scope={'global', 'buffer'},\n- deny_duplicates=true,\n- expand=true,\n- varname='p_path',\n- defaults={if_true=\".,,\"}\n- },\n- {\n- full_name='preserveindent', abbreviation='pi',\n- short_desc=N_(\"preserve the indent structure when reindenting\"),\n- type='bool', scope={'buffer'},\n- varname='p_pi',\n- defaults={if_true=false}\n- },\n- {\n- full_name='previewheight', abbreviation='pvh',\n- short_desc=N_(\"height of the preview window\"),\n- type='number', scope={'global'},\n- varname='p_pvh',\n- defaults={if_true=12}\n- },\n- {\n- full_name='previewwindow', abbreviation='pvw',\n- short_desc=N_(\"identifies the preview window\"),\n- type='bool', scope={'window'},\n- noglob=true,\n- redraw={'statuslines'},\n- defaults={if_true=false},\n- cb='did_set_previewwindow'\n- },\n- {\n- full_name='prompt',\n- short_desc=N_(\"enable prompt in Ex mode\"),\n- type='bool', scope={'global'},\n- varname='p_force_on',\n- defaults={if_true=true}\n- },\n- {\n- full_name='pumblend', abbreviation='pb',\n- short_desc=N_(\"Controls transparency level of popup menu\"),\n- type='number', scope={'global'},\n- redraw={'ui_option'},\n- varname='p_pb',\n- defaults={if_true=0},\n- cb='did_set_pumblend'\n- },\n- {\n- full_name='pumheight', abbreviation='ph',\n- short_desc=N_(\"maximum height of the popup menu\"),\n- type='number', scope={'global'},\n- varname='p_ph',\n- defaults={if_true=0}\n- },\n- {\n- full_name='pumwidth', abbreviation='pw',\n- short_desc=N_(\"minimum width of the popup menu\"),\n- type='number', scope={'global'},\n- varname='p_pw',\n- defaults={if_true=15}\n- },\n- {\n- full_name='pyxversion', abbreviation='pyx',\n- short_desc=N_(\"selects default python version to use\"),\n- type='number', scope={'global'},\n- secure=true,\n- varname='p_pyx',\n- defaults={if_true=3}\n- },\n- {\n- full_name='quickfixtextfunc', abbreviation='qftf',\n- short_desc=N_(\"customize the quickfix window\"),\n- type='string', scope={'global'},\n- secure=true,\n- func=true,\n- varname='p_qftf',\n- defaults={if_true=\"\"},\n- cb='did_set_quickfixtextfunc'\n- },\n- {\n- full_name='quoteescape', abbreviation='qe',\n- short_desc=N_(\"escape characters used in a string\"),\n- type='string', scope={'buffer'},\n- alloced=true,\n- varname='p_qe',\n- defaults={if_true=\"\\\\\"}\n- },\n- {\n- full_name='readonly', abbreviation='ro',\n- short_desc=N_(\"disallow writing the buffer\"),\n- type='bool', scope={'buffer'},\n- noglob=true,\n- redraw={'statuslines'},\n- varname='p_ro',\n- defaults={if_true=false},\n- cb='did_set_readonly'\n- },\n- {\n- full_name='redrawdebug', abbreviation='rdb',\n- short_desc=N_(\"Changes the way redrawing works (debug)\"),\n- type='string', list='onecomma', scope={'global'},\n- varname='p_rdb',\n- defaults={if_true=''},\n- cb='did_set_redrawdebug'\n- },\n- {\n- full_name='redrawtime', abbreviation='rdt',\n- short_desc=N_(\"timeout for 'hlsearch' and |:match| highlighting\"),\n- type='number', scope={'global'},\n- varname='p_rdt',\n- defaults={if_true=2000}\n- },\n- {\n- full_name='regexpengine', abbreviation='re',\n- short_desc=N_(\"default regexp engine to use\"),\n- type='number', scope={'global'},\n- varname='p_re',\n- defaults={if_true=0}\n- },\n- {\n- full_name='relativenumber', abbreviation='rnu',\n- short_desc=N_(\"show relative line number in front of each line\"),\n- type='bool', scope={'window'},\n- redraw={'current_window'},\n- defaults={if_true=false},\n- cb='did_set_number_relativenumber'\n- },\n- {\n- full_name='remap',\n- short_desc=N_(\"No description\"),\n- type='bool', scope={'global'},\n- varname='p_force_on',\n- defaults={if_true=true}\n- },\n- {\n- full_name='report',\n- short_desc=N_(\"for reporting nr. of lines changed\"),\n- type='number', scope={'global'},\n- varname='p_report',\n- defaults={if_true=2}\n- },\n- {\n- full_name='revins', abbreviation='ri',\n- short_desc=N_(\"inserting characters will work backwards\"),\n- type='bool', scope={'global'},\n- varname='p_ri',\n- defaults={if_true=false}\n- },\n- {\n- full_name='rightleft', abbreviation='rl',\n- short_desc=N_(\"window is right-to-left oriented\"),\n- type='bool', scope={'window'},\n- redraw={'current_window'},\n- defaults={if_true=false}\n- },\n- {\n- full_name='rightleftcmd', abbreviation='rlc',\n- short_desc=N_(\"commands for which editing works right-to-left\"),\n- type='string', scope={'window'},\n- alloced=true,\n- redraw={'current_window'},\n- defaults={if_true=\"search\"},\n- cb='did_set_rightleftcmd'\n- },\n- {\n- full_name='ruler', abbreviation='ru',\n- short_desc=N_(\"show cursor line and column in the status line\"),\n- type='bool', scope={'global'},\n- redraw={'statuslines'},\n- varname='p_ru',\n- defaults={if_true=true}\n- },\n- {\n- full_name='rulerformat', abbreviation='ruf',\n- short_desc=N_(\"custom format for the ruler\"),\n- type='string', scope={'global'},\n- alloced=true,\n- modelineexpr=true,\n- redraw={'statuslines'},\n- varname='p_ruf',\n- defaults={if_true=\"\"},\n- cb='did_set_rulerformat'\n- },\n- {\n- full_name='runtimepath', abbreviation='rtp',\n- short_desc=N_(\"list of directories used for runtime files\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- secure=true,\n- expand='nodefault',\n- varname='p_rtp',\n- defaults={if_true=''},\n- cb='did_set_runtimepackpath'\n- },\n- {\n- full_name='scroll', abbreviation='scr',\n- short_desc=N_(\"lines to scroll with CTRL-U and CTRL-D\"),\n- type='number', scope={'window'},\n- no_mkrc=true,\n- pv_name='p_scroll',\n- defaults={if_true=0}\n- },\n- {\n- full_name='smoothscroll', abbreviation='sms',\n- short_desc=N_(\"scroll by screen lines when 'wrap' is set\"),\n- type='bool', scope={'window'},\n- pv_name='p_sms',\n- redraw={'current_window'},\n- defaults={if_true=0},\n- cb='did_set_smoothscroll'\n- },\n- {\n- full_name='scrollback', abbreviation='scbk',\n- short_desc=N_(\"lines to scroll with CTRL-U and CTRL-D\"),\n- type='number', scope={'buffer'},\n- varname='p_scbk',\n- redraw={'current_buffer'},\n- defaults={if_true=-1},\n- cb='did_set_scrollback'\n- },\n- {\n- full_name='scrollbind', abbreviation='scb',\n- short_desc=N_(\"scroll in window as other windows scroll\"),\n- type='bool', scope={'window'},\n- pv_name='p_scbind',\n- defaults={if_true=false},\n- cb='did_set_scrollbind'\n- },\n- {\n- full_name='scrolljump', abbreviation='sj',\n- short_desc=N_(\"minimum number of lines to scroll\"),\n- type='number', scope={'global'},\n- varname='p_sj',\n- defaults={if_true=1}\n- },\n- {\n- full_name='scrolloff', abbreviation='so',\n- short_desc=N_(\"minimum nr. of lines above and below cursor\"),\n- type='number', scope={'global', 'window'},\n- varname='p_so',\n- defaults={if_true=0}\n- },\n- {\n- full_name='scrollopt', abbreviation='sbo',\n- short_desc=N_(\"how 'scrollbind' should behave\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- varname='p_sbo',\n- defaults={if_true=\"ver,jump\"},\n- cb='did_set_scrollopt'\n- },\n- {\n- full_name='sections', abbreviation='sect',\n- short_desc=N_(\"nroff macros that separate sections\"),\n- type='string', scope={'global'},\n- varname='p_sections',\n- defaults={if_true=\"SHNHH HUnhsh\"}\n- },\n- {\n- full_name='secure',\n- short_desc=N_(\"No description\"),\n- type='bool', scope={'global'},\n- secure=true,\n- varname='p_secure',\n- defaults={if_true=false}\n- },\n- {\n- full_name='selection', abbreviation='sel',\n- short_desc=N_(\"what type of selection to use\"),\n- type='string', scope={'global'},\n- varname='p_sel',\n- defaults={if_true=\"inclusive\"},\n- cb='did_set_selection'\n- },\n- {\n- full_name='selectmode', abbreviation='slm',\n- short_desc=N_(\"when to use Select mode instead of Visual mode\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- varname='p_slm',\n- defaults={if_true=\"\"},\n- cb='did_set_selectmode'\n- },\n- {\n- full_name='sessionoptions', abbreviation='ssop',\n- short_desc=N_(\"options for |:mksession|\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- varname='p_ssop',\n- defaults={if_true=\"blank,buffers,curdir,folds,help,tabpages,winsize,terminal\"},\n- cb='did_set_sessionoptions',\n- },\n- {\n- full_name='shada', abbreviation='sd',\n- short_desc=N_(\"use .shada file upon startup and exiting\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- secure=true,\n- varname='p_shada',\n- defaults={if_true=\"!,'100,<50,s10,h\"}\n- },\n- {\n- full_name='shadafile', abbreviation='sdf',\n- short_desc=N_(\"overrides the filename used for shada\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- secure=true,\n- expand=true,\n- varname='p_shadafile',\n- defaults={if_true=\"\"}\n- },\n- {\n- full_name='shell', abbreviation='sh',\n- short_desc=N_(\"name of shell to use for external commands\"),\n- type='string', scope={'global'},\n- secure=true,\n- expand=true,\n- varname='p_sh',\n- defaults={\n- condition='MSWIN',\n- if_true=\"cmd.exe\",\n- if_false=\"sh\"\n- }\n- },\n- {\n- full_name='shellcmdflag', abbreviation='shcf',\n- short_desc=N_(\"flag to shell to execute one command\"),\n- type='string', scope={'global'},\n- secure=true,\n- varname='p_shcf',\n- defaults={\n- condition='MSWIN',\n- if_true=\"/s /c\",\n- if_false=\"-c\"\n- }\n- },\n- {\n- full_name='shellpipe', abbreviation='sp',\n- short_desc=N_(\"string to put output of \\\":make\\\" in error file\"),\n- type='string', scope={'global'},\n- secure=true,\n- varname='p_sp',\n- defaults={\n- condition='MSWIN',\n- if_true=\"2>&1| tee\",\n- if_false=\"| tee\",\n- }\n- },\n- {\n- full_name='shellquote', abbreviation='shq',\n- short_desc=N_(\"quote character(s) for around shell command\"),\n- type='string', scope={'global'},\n- secure=true,\n- varname='p_shq',\n- defaults={if_true=\"\"}\n- },\n- {\n- full_name='shellredir', abbreviation='srr',\n- short_desc=N_(\"string to put output of filter in a temp file\"),\n- type='string', scope={'global'},\n- secure=true,\n- varname='p_srr',\n- defaults={\n- condition='MSWIN',\n- if_true=\">%s 2>&1\",\n- if_false=\">\"\n- }\n- },\n- {\n- full_name='shellslash', abbreviation='ssl',\n- short_desc=N_(\"use forward slash for shell file names\"),\n- type='bool', scope={'global'},\n- varname='p_ssl',\n- enable_if='BACKSLASH_IN_FILENAME',\n- defaults={if_true=false},\n- cb='did_set_shellslash'\n- },\n- {\n- full_name='shelltemp', abbreviation='stmp',\n- short_desc=N_(\"whether to use a temp file for shell commands\"),\n- type='bool', scope={'global'},\n- varname='p_stmp',\n- defaults={if_true=true}\n- },\n- {\n- full_name='shellxquote', abbreviation='sxq',\n- short_desc=N_(\"like 'shellquote', but include redirection\"),\n- type='string', scope={'global'},\n- secure=true,\n- varname='p_sxq',\n- defaults={\n- condition='MSWIN',\n- if_true=\"\\\"\",\n- if_false=\"\",\n- }\n- },\n- {\n- full_name='shellxescape', abbreviation='sxe',\n- short_desc=N_(\"characters to escape when 'shellxquote' is (\"),\n- type='string', scope={'global'},\n- secure=true,\n- varname='p_sxe',\n- defaults={if_true=\"\"}\n- },\n- {\n- full_name='shiftround', abbreviation='sr',\n- short_desc=N_(\"round indent to multiple of shiftwidth\"),\n- type='bool', scope={'global'},\n- varname='p_sr',\n- defaults={if_true=false}\n- },\n- {\n- full_name='shiftwidth', abbreviation='sw',\n- short_desc=N_(\"number of spaces to use for (auto)indent step\"),\n- type='number', scope={'buffer'},\n- varname='p_sw',\n- defaults={if_true=8},\n- cb='did_set_shiftwidth_tabstop'\n- },\n- {\n- full_name='shortmess', abbreviation='shm',\n- short_desc=N_(\"list of flags, reduce length of messages\"),\n- type='string', list='flags', scope={'global'},\n- varname='p_shm',\n- defaults={if_true=\"filnxtToOCF\"},\n- cb='did_set_shortmess'\n- },\n- {\n- full_name='showbreak', abbreviation='sbr',\n- short_desc=N_(\"string to use at the start of wrapped lines\"),\n- type='string', scope={'global', 'window'},\n- redraw={'all_windows'},\n- varname='p_sbr',\n- defaults={if_true=\"\"},\n- cb='did_set_showbreak'\n- },\n- {\n- full_name='showcmd', abbreviation='sc',\n- short_desc=N_(\"show (partial) command in status line\"),\n- type='bool', scope={'global'},\n- varname='p_sc',\n- defaults={if_true=true}\n- },\n- {\n- full_name='showcmdloc', abbreviation='sloc',\n- short_desc=N_(\"change location of partial command\"),\n- type='string', scope={'global'},\n- varname='p_sloc',\n- defaults={if_true=\"last\"},\n- cb='did_set_showcmdloc'\n- },\n- {\n- full_name='showfulltag', abbreviation='sft',\n- short_desc=N_(\"show full tag pattern when completing tag\"),\n- type='bool', scope={'global'},\n- varname='p_sft',\n- defaults={if_true=false}\n- },\n- {\n- full_name='showmatch', abbreviation='sm',\n- short_desc=N_(\"briefly jump to matching bracket if insert one\"),\n- type='bool', scope={'global'},\n- varname='p_sm',\n- defaults={if_true=false}\n- },\n- {\n- full_name='showmode', abbreviation='smd',\n- short_desc=N_(\"message on status line to show current mode\"),\n- type='bool', scope={'global'},\n- varname='p_smd',\n- defaults={if_true=true}\n- },\n- {\n- full_name='showtabline', abbreviation='stal',\n- short_desc=N_(\"tells when the tab pages line is displayed\"),\n- type='number', scope={'global'},\n- redraw={'all_windows', 'ui_option'},\n- varname='p_stal',\n- defaults={if_true=1},\n- cb='did_set_showtabline'\n- },\n- {\n- full_name='sidescroll', abbreviation='ss',\n- short_desc=N_(\"minimum number of columns to scroll horizontal\"),\n- type='number', scope={'global'},\n- varname='p_ss',\n- defaults={if_true=1}\n- },\n- {\n- full_name='sidescrolloff', abbreviation='siso',\n- short_desc=N_(\"min. nr. of columns to left and right of cursor\"),\n- type='number', scope={'global', 'window'},\n- varname='p_siso',\n- defaults={if_true=0}\n- },\n- {\n- full_name='signcolumn', abbreviation='scl',\n- short_desc=N_(\"when to display the sign column\"),\n- type='string', scope={'window'},\n- alloced=true,\n- redraw={'current_window'},\n- defaults={if_true=\"auto\"},\n- cb='did_set_signcolumn'\n- },\n- {\n- full_name='smartcase', abbreviation='scs',\n- short_desc=N_(\"no ignore case when pattern has uppercase\"),\n- type='bool', scope={'global'},\n- varname='p_scs',\n- defaults={if_true=false}\n- },\n- {\n- full_name='smartindent', abbreviation='si',\n- short_desc=N_(\"smart autoindenting for C programs\"),\n- type='bool', scope={'buffer'},\n- varname='p_si',\n- defaults={if_true=false}\n- },\n- {\n- full_name='smarttab', abbreviation='sta',\n- short_desc=N_(\"use 'shiftwidth' when inserting \"),\n- type='bool', scope={'global'},\n- varname='p_sta',\n- defaults={if_true=true}\n- },\n- {\n- full_name='softtabstop', abbreviation='sts',\n- short_desc=N_(\"number of spaces that uses while editing\"),\n- type='number', scope={'buffer'},\n- varname='p_sts',\n- defaults={if_true=0}\n- },\n- {\n- full_name='spell',\n- short_desc=N_(\"spell checking\"),\n- type='bool', scope={'window'},\n- redraw={'current_window'},\n- defaults={if_true=false},\n- cb='did_set_spell'\n- },\n- {\n- full_name='spellcapcheck', abbreviation='spc',\n- short_desc=N_(\"pattern to locate end of a sentence\"),\n- type='string', scope={'buffer'},\n- alloced=true,\n- redraw={'current_buffer'},\n- varname='p_spc',\n- defaults={if_true=\"[.?!]\\\\_[\\\\])'\\\"\t ]\\\\+\"},\n- cb='did_set_spellcapcheck'\n- },\n- {\n- full_name='spellfile', abbreviation='spf',\n- short_desc=N_(\"files where |zg| and |zw| store words\"),\n- type='string', list='onecomma', scope={'buffer'},\n- deny_duplicates=true,\n- secure=true,\n- alloced=true,\n- expand=true,\n- varname='p_spf',\n- defaults={if_true=\"\"},\n- cb='did_set_spellfile'\n- },\n- {\n- full_name='spelllang', abbreviation='spl',\n- short_desc=N_(\"language(s) to do spell checking for\"),\n- type='string', list='onecomma', scope={'buffer'},\n- deny_duplicates=true,\n- alloced=true,\n- expand=true,\n- redraw={'current_buffer'},\n- varname='p_spl',\n- defaults={if_true=\"en\"},\n- cb='did_set_spelllang'\n- },\n- {\n- full_name='spellsuggest', abbreviation='sps',\n- short_desc=N_(\"method(s) used to suggest spelling corrections\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- secure=true,\n- expand=true,\n- varname='p_sps',\n- defaults={if_true=\"best\"},\n- cb='did_set_spellsuggest'\n- },\n- {\n- full_name='spelloptions', abbreviation='spo',\n- type='string', list='onecomma', scope={'buffer'},\n- deny_duplicates=true,\n- secure=true,\n- expand=true,\n- varname='p_spo',\n- redraw={'current_buffer'},\n- defaults={if_true=\"\"},\n- cb='did_set_spelloptions'\n- },\n- {\n- full_name='splitbelow', abbreviation='sb',\n- short_desc=N_(\"new window from split is below the current one\"),\n- type='bool', scope={'global'},\n- varname='p_sb',\n- defaults={if_true=false}\n- },\n- {\n- full_name='splitkeep', abbreviation='spk',\n- short_desc=N_(\"determines scroll behavior for split windows\"),\n- type='string', scope={'global'},\n- varname='p_spk',\n- defaults={if_true='cursor'},\n- cb='did_set_splitkeep'\n- },\n- {\n- full_name='splitright', abbreviation='spr',\n- short_desc=N_(\"new window is put right of the current one\"),\n- type='bool', scope={'global'},\n- varname='p_spr',\n- defaults={if_true=false}\n- },\n- {\n- full_name='startofline', abbreviation='sol',\n- short_desc=N_(\"commands move cursor to first non-blank in line\"),\n- type='bool', scope={'global'},\n- vim=false,\n- varname='p_sol',\n- defaults={if_true=false}\n- },\n- {\n- full_name='statuscolumn', abbreviation='stc',\n- short_desc=N_(\"custom format for the status column\"),\n- type='string', scope={'window'},\n- redraw={'current_window'},\n- secure=true,\n- alloced=true,\n- defaults={if_true=\"\"},\n- cb='did_set_statuscolumn'\n- },\n- {\n- full_name='statusline', abbreviation='stl',\n- short_desc=N_(\"custom format for the status line\"),\n- type='string', scope={'global', 'window'},\n- alloced=true,\n- modelineexpr=true,\n- redraw={'statuslines'},\n- varname='p_stl',\n- defaults={if_true=\"\"},\n- cb='did_set_statusline'\n- },\n- {\n- full_name='suffixes', abbreviation='su',\n- short_desc=N_(\"suffixes that are ignored with multiple match\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- varname='p_su',\n- defaults={if_true=\".bak,~,.o,.h,.info,.swp,.obj\"}\n- },\n- {\n- full_name='suffixesadd', abbreviation='sua',\n- short_desc=N_(\"suffixes added when searching for a file\"),\n- type='string', list='onecomma', scope={'buffer'},\n- deny_duplicates=true,\n- alloced=true,\n- varname='p_sua',\n- defaults={if_true=\"\"}\n- },\n- {\n- full_name='swapfile', abbreviation='swf',\n- short_desc=N_(\"whether to use a swapfile for a buffer\"),\n- type='bool', scope={'buffer'},\n- redraw={'statuslines'},\n- varname='p_swf',\n- defaults={if_true=true},\n- cb='did_set_swapfile'\n- },\n- {\n- full_name='switchbuf', abbreviation='swb',\n- short_desc=N_(\"sets behavior when switching to another buffer\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- varname='p_swb',\n- defaults={if_true=\"uselast\"},\n- cb='did_set_switchbuf'\n- },\n- {\n- full_name='synmaxcol', abbreviation='smc',\n- short_desc=N_(\"maximum column to find syntax items\"),\n- type='number', scope={'buffer'},\n- redraw={'current_buffer'},\n- varname='p_smc',\n- defaults={if_true=3000}\n- },\n- {\n- full_name='syntax', abbreviation='syn',\n- short_desc=N_(\"syntax to be loaded for current buffer\"),\n- type='string', scope={'buffer'},\n- noglob=true,\n- normal_fname_chars=true,\n- alloced=true,\n- varname='p_syn',\n- defaults={if_true=\"\"},\n- cb='did_set_filetype_or_syntax'\n- },\n- {\n- full_name='tagfunc', abbreviation='tfu',\n- short_desc=N_(\"function used to perform tag searches\"),\n- type='string', scope={'buffer'},\n- secure=true,\n- func=true,\n- varname='p_tfu',\n- defaults={if_true=\"\"},\n- cb='did_set_tagfunc'\n- },\n- {\n- full_name='tabline', abbreviation='tal',\n- short_desc=N_(\"custom format for the console tab pages line\"),\n- type='string', scope={'global'},\n- modelineexpr=true,\n- redraw={'tabline'},\n- varname='p_tal',\n- defaults={if_true=\"\"},\n- cb='did_set_tabline'\n- },\n- {\n- full_name='tabpagemax', abbreviation='tpm',\n- short_desc=N_(\"maximum number of tab pages for |-p| and \\\"tab all\\\"\"),\n- type='number', scope={'global'},\n- varname='p_tpm',\n- defaults={if_true=50}\n- },\n- {\n- full_name='tabstop', abbreviation='ts',\n- short_desc=N_(\"number of spaces that in file uses\"),\n- type='number', scope={'buffer'},\n- redraw={'current_buffer'},\n- varname='p_ts',\n- defaults={if_true=8},\n- cb='did_set_shiftwidth_tabstop'\n- },\n- {\n- full_name='tagbsearch', abbreviation='tbs',\n- short_desc=N_(\"use binary searching in tags files\"),\n- type='bool', scope={'global'},\n- varname='p_tbs',\n- defaults={if_true=true}\n- },\n- {\n- full_name='tagcase', abbreviation='tc',\n- short_desc=N_(\"how to handle case when searching in tags files\"),\n- type='string', scope={'global', 'buffer'},\n- varname='p_tc',\n- defaults={if_true=\"followic\"},\n- cb='did_set_tagcase'\n- },\n- {\n- full_name='taglength', abbreviation='tl',\n- short_desc=N_(\"number of significant characters for a tag\"),\n- type='number', scope={'global'},\n- varname='p_tl',\n- defaults={if_true=0}\n- },\n- {\n- full_name='tagrelative', abbreviation='tr',\n- short_desc=N_(\"file names in tag file are relative\"),\n- type='bool', scope={'global'},\n- varname='p_tr',\n- defaults={if_true=true}\n- },\n- {\n- full_name='tags', abbreviation='tag',\n- short_desc=N_(\"list of file names used by the tag command\"),\n- type='string', list='onecomma', scope={'global', 'buffer'},\n- deny_duplicates=true,\n- expand=true,\n- varname='p_tags',\n- defaults={if_true=\"./tags;,tags\"}\n- },\n- {\n- full_name='tagstack', abbreviation='tgst',\n- short_desc=N_(\"push tags onto the tag stack\"),\n- type='bool', scope={'global'},\n- varname='p_tgst',\n- defaults={if_true=true}\n- },\n- {\n- full_name='termbidi', abbreviation='tbidi',\n- short_desc=N_(\"terminal takes care of bi-directionality\"),\n- type='bool', scope={'global'},\n- varname='p_tbidi',\n- defaults={if_true=false}\n- },\n- {\n- full_name='termencoding', abbreviation='tenc',\n- short_desc=N_(\"Terminal encoding\"),\n- type='string', scope={'global'},\n- defaults={if_true=\"\"}\n- },\n- {\n- full_name='termguicolors', abbreviation='tgc',\n- short_desc=N_(\"Terminal true color support\"),\n- type='bool', scope={'global'},\n- redraw={'ui_option'},\n- varname='p_tgc',\n- defaults={if_true=false}\n- },\n- {\n- full_name='termpastefilter', abbreviation='tpf',\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- varname='p_tpf',\n- defaults={if_true=\"BS,HT,ESC,DEL\"},\n- cb='did_set_termpastefilter'\n- },\n- {\n- full_name='terse',\n- short_desc=N_(\"No description\"),\n- type='bool', scope={'global'},\n- varname='p_force_off',\n- defaults={if_true=false}\n- },\n- {\n- full_name='textwidth', abbreviation='tw',\n- short_desc=N_(\"maximum width of text that is being inserted\"),\n- type='number', scope={'buffer'},\n- redraw={'current_buffer'},\n- varname='p_tw',\n- defaults={if_true=0},\n- cb='did_set_textwidth'\n- },\n- {\n- full_name='thesaurus', abbreviation='tsr',\n- short_desc=N_(\"list of thesaurus files for keyword completion\"),\n- type='string', list='onecomma', scope={'global', 'buffer'},\n- deny_duplicates=true,\n- normal_dname_chars=true,\n- expand=true,\n- varname='p_tsr',\n- defaults={if_true=\"\"}\n- },\n- {\n- full_name='thesaurusfunc', abbreviation='tsrfu',\n- short_desc=N_(\"function used for thesaurus completion\"),\n- type='string', scope={'global', 'buffer'},\n- secure=true,\n- alloced=true,\n- func=true,\n- varname='p_tsrfu',\n- defaults={if_true=\"\"},\n- cb='did_set_thesaurusfunc'\n- },\n- {\n- full_name='tildeop', abbreviation='top',\n- short_desc=N_(\"tilde command \\\"~\\\" behaves like an operator\"),\n- type='bool', scope={'global'},\n- varname='p_to',\n- defaults={if_true=false}\n- },\n- {\n- full_name='timeout', abbreviation='to',\n- short_desc=N_(\"time out on mappings and key codes\"),\n- type='bool', scope={'global'},\n- varname='p_timeout',\n- defaults={if_true=true}\n- },\n- {\n- full_name='timeoutlen', abbreviation='tm',\n- short_desc=N_(\"time out time in milliseconds\"),\n- type='number', scope={'global'},\n- varname='p_tm',\n- defaults={if_true=1000}\n- },\n- {\n- full_name='title',\n- short_desc=N_(\"Vim set the title of the window\"),\n- type='bool', scope={'global'},\n- varname='p_title',\n- defaults={if_true=false},\n- cb='did_set_title_icon'\n- },\n- {\n- full_name='titlelen',\n- short_desc=N_(\"of 'columns' used for window title\"),\n- type='number', scope={'global'},\n- varname='p_titlelen',\n- defaults={if_true=85},\n- cb='did_set_titlelen'\n- },\n- {\n- full_name='titleold',\n- short_desc=N_(\"title, restored when exiting\"),\n- type='string', scope={'global'},\n- secure=true,\n- no_mkrc=true,\n- varname='p_titleold',\n- defaults={if_true=\"\"}\n- },\n- {\n- full_name='titlestring',\n- short_desc=N_(\"to use for the Vim window title\"),\n- type='string', scope={'global'},\n- modelineexpr=true,\n- varname='p_titlestring',\n- defaults={if_true=\"\"},\n- cb='did_set_titlestring'\n- },\n- {\n- full_name='ttimeout',\n- short_desc=N_(\"out on mappings\"),\n- type='bool', scope={'global'},\n- redraw={'ui_option'},\n- varname='p_ttimeout',\n- defaults={if_true=true}\n- },\n- {\n- full_name='ttimeoutlen', abbreviation='ttm',\n- short_desc=N_(\"time out time for key codes in milliseconds\"),\n- type='number', scope={'global'},\n- redraw={'ui_option'},\n- varname='p_ttm',\n- defaults={if_true=50}\n- },\n- {\n- full_name='ttyfast', abbreviation='tf',\n- short_desc=N_(\"No description\"),\n- type='bool', scope={'global'},\n- no_mkrc=true,\n- varname='p_force_on',\n- defaults={if_true=true}\n- },\n- {\n- full_name='undodir', abbreviation='udir',\n- short_desc=N_(\"where to store undo files\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- secure=true,\n- expand='nodefault',\n- varname='p_udir',\n- defaults={if_true=''}\n- },\n- {\n- full_name='undofile', abbreviation='udf',\n- short_desc=N_(\"save undo information in a file\"),\n- type='bool', scope={'buffer'},\n- varname='p_udf',\n- defaults={if_true=false},\n- cb='did_set_undofile'\n- },\n- {\n- full_name='undolevels', abbreviation='ul',\n- short_desc=N_(\"maximum number of changes that can be undone\"),\n- type='number', scope={'global', 'buffer'},\n- varname='p_ul',\n- defaults={if_true=1000},\n- cb='did_set_undolevels'\n- },\n- {\n- full_name='undoreload', abbreviation='ur',\n- short_desc=N_(\"max nr of lines to save for undo on a buffer reload\"),\n- type='number', scope={'global'},\n- varname='p_ur',\n- defaults={if_true=10000}\n- },\n- {\n- full_name='updatecount', abbreviation='uc',\n- short_desc=N_(\"after this many characters flush swap file\"),\n- type='number', scope={'global'},\n- varname='p_uc',\n- defaults={if_true=200},\n- cb='did_set_updatecount'\n- },\n- {\n- full_name='updatetime', abbreviation='ut',\n- short_desc=N_(\"after this many milliseconds flush swap file\"),\n- type='number', scope={'global'},\n- varname='p_ut',\n- defaults={if_true=4000}\n- },\n- {\n- full_name='varsofttabstop', abbreviation='vsts',\n- short_desc=N_(\"list of numbers of spaces that uses while editing\"),\n- type='string', list='comma', scope={'buffer'},\n- varname='p_vsts',\n- defaults={if_true=\"\"},\n- cb='did_set_varsofttabstop'\n- },\n- {\n- full_name='vartabstop', abbreviation='vts',\n- short_desc=N_(\"list of numbers of spaces that in file uses\"),\n- type='string', list='comma', scope={'buffer'},\n- varname='p_vts',\n- redraw={'current_buffer'},\n- defaults={if_true=\"\"},\n- cb='did_set_vartabstop'\n- },\n- {\n- full_name='verbose', abbreviation='vbs',\n- short_desc=N_(\"give informative messages\"),\n- type='number', scope={'global'},\n- varname='p_verbose', redraw={'ui_option'},\n- defaults={if_true=0}\n- },\n- {\n- full_name='verbosefile', abbreviation='vfile',\n- short_desc=N_(\"file to write messages in\"),\n- type='string', scope={'global'},\n- secure=true,\n- expand=true,\n- varname='p_vfile',\n- defaults={if_true=\"\"},\n- cb='did_set_verbosefile'\n- },\n- {\n- full_name='viewdir', abbreviation='vdir',\n- short_desc=N_(\"directory where to store files with :mkview\"),\n- type='string', scope={'global'},\n- secure=true,\n- expand='nodefault',\n- varname='p_vdir',\n- defaults={if_true=''}\n- },\n- {\n- full_name='viewoptions', abbreviation='vop',\n- short_desc=N_(\"specifies what to save for :mkview\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- varname='p_vop',\n- defaults={if_true=\"folds,cursor,curdir\"},\n- cb='did_set_viewoptions'\n- },\n- {\n- -- Alias for \"shada\".\n- full_name='viminfo', abbreviation='vi',\n- short_desc=N_(\"Alias for shada\"),\n- type='string', scope={'global'}, nodefault=true,\n- },\n- {\n- -- Alias for \"shadafile\".\n- full_name='viminfofile', abbreviation='vif',\n- short_desc=N_(\"Alias for shadafile instead\"),\n- type='string', scope={'global'}, nodefault=true,\n- },\n- {\n- full_name='virtualedit', abbreviation='ve',\n- short_desc=N_(\"when to use virtual editing\"),\n- type='string', list='onecomma', scope={'global', 'window'},\n- deny_duplicates=true,\n- redraw={'curswant'},\n- varname='p_ve',\n- defaults={if_true=\"\"},\n- cb='did_set_virtualedit'\n- },\n- {\n- full_name='visualbell', abbreviation='vb',\n- short_desc=N_(\"use visual bell instead of beeping\"),\n- type='bool', scope={'global'},\n- varname='p_vb',\n- defaults={if_true=false}\n- },\n- {\n- full_name='warn',\n- short_desc=N_(\"for shell command when buffer was changed\"),\n- type='bool', scope={'global'},\n- varname='p_warn',\n- defaults={if_true=true}\n- },\n- {\n- full_name='whichwrap', abbreviation='ww',\n- short_desc=N_(\"allow specified keys to cross line boundaries\"),\n- type='string', list='flagscomma', scope={'global'},\n- varname='p_ww',\n- defaults={if_true=\"b,s\"},\n- cb='did_set_whichwrap'\n- },\n- {\n- full_name='wildchar', abbreviation='wc',\n- short_desc=N_(\"command-line character for wildcard expansion\"),\n- type='number', scope={'global'},\n- varname='p_wc',\n- defaults={if_true=imacros('TAB')}\n- },\n- {\n- full_name='wildcharm', abbreviation='wcm',\n- short_desc=N_(\"like 'wildchar' but also works when mapped\"),\n- type='number', scope={'global'},\n- varname='p_wcm',\n- defaults={if_true=0}\n- },\n- {\n- full_name='wildignore', abbreviation='wig',\n- short_desc=N_(\"files matching these patterns are not completed\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- varname='p_wig',\n- defaults={if_true=\"\"}\n- },\n- {\n- full_name='wildignorecase', abbreviation='wic',\n- short_desc=N_(\"ignore case when completing file names\"),\n- type='bool', scope={'global'},\n- varname='p_wic',\n- defaults={if_true=false}\n- },\n- {\n- full_name='wildmenu', abbreviation='wmnu',\n- short_desc=N_(\"use menu for command line completion\"),\n- type='bool', scope={'global'},\n- varname='p_wmnu',\n- defaults={if_true=true}\n- },\n- {\n- full_name='wildmode', abbreviation='wim',\n- short_desc=N_(\"mode for 'wildchar' command-line expansion\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=false,\n- varname='p_wim',\n- defaults={if_true=\"full\"},\n- cb='did_set_wildmode'\n- },\n- {\n- full_name='wildoptions', abbreviation='wop',\n- short_desc=N_(\"specifies how command line completion is done\"),\n- type='string', list='onecomma', scope={'global'},\n- deny_duplicates=true,\n- varname='p_wop',\n- defaults={if_true='pum,tagfile'},\n- cb='did_set_wildoptions'\n- },\n- {\n- full_name='winaltkeys', abbreviation='wak',\n- short_desc=N_(\"when the windows system handles ALT keys\"),\n- type='string', scope={'global'},\n- varname='p_wak',\n- defaults={if_true=\"menu\"},\n- cb='did_set_winaltkeys'\n- },\n- {\n- full_name='winbar', abbreviation='wbr',\n- short_desc=N_(\"custom format for the window bar\"),\n- type='string', scope={'global', 'window'},\n- alloced=true,\n- modelineexpr=true,\n- redraw={'statuslines'},\n- varname='p_wbr',\n- defaults={if_true=\"\"},\n- cb='did_set_winbar'\n- },\n- {\n- full_name='winblend', abbreviation='winbl',\n- short_desc=N_(\"Controls transparency level for floating windows\"),\n- type='number', scope={'window'},\n- redraw={'current_window'},\n- defaults={if_true=0},\n- cb='did_set_winblend'\n- },\n- {\n- full_name='winhighlight', abbreviation='winhl',\n- short_desc=N_(\"Setup window-local highlights\");\n- type='string', list='onecomma', scope={'window'},\n- deny_duplicates=true,\n- alloced=true,\n- redraw={'current_window'},\n- defaults={if_true=\"\"},\n- cb='did_set_winhl'\n- },\n- {\n- full_name='window', abbreviation='wi',\n- short_desc=N_(\"nr of lines to scroll for CTRL-F and CTRL-B\"),\n- type='number', scope={'global'},\n- varname='p_window',\n- defaults={if_true=0},\n- cb='did_set_window'\n- },\n- {\n- full_name='winheight', abbreviation='wh',\n- short_desc=N_(\"minimum number of lines for the current window\"),\n- type='number', scope={'global'},\n- varname='p_wh',\n- defaults={if_true=1},\n- cb='did_set_winheight'\n- },\n- {\n- full_name='winfixheight', abbreviation='wfh',\n- short_desc=N_(\"keep window height when opening/closing windows\"),\n- type='bool', scope={'window'},\n- redraw={'statuslines'},\n- defaults={if_true=false}\n- },\n- {\n- full_name='winfixwidth', abbreviation='wfw',\n- short_desc=N_(\"keep window width when opening/closing windows\"),\n- type='bool', scope={'window'},\n- redraw={'statuslines'},\n- defaults={if_true=false}\n- },\n- {\n- full_name='winminheight', abbreviation='wmh',\n- short_desc=N_(\"minimum number of lines for any window\"),\n- type='number', scope={'global'},\n- varname='p_wmh',\n- defaults={if_true=1},\n- cb='did_set_winminheight'\n- },\n- {\n- full_name='winminwidth', abbreviation='wmw',\n- short_desc=N_(\"minimal number of columns for any window\"),\n- type='number', scope={'global'},\n- varname='p_wmw',\n- defaults={if_true=1},\n- cb='did_set_winminwidth'\n- },\n- {\n- full_name='winwidth', abbreviation='wiw',\n- short_desc=N_(\"minimal number of columns for current window\"),\n- type='number', scope={'global'},\n- varname='p_wiw',\n- defaults={if_true=20},\n- cb='did_set_winwidth'\n- },\n- {\n- full_name='wrap',\n- short_desc=N_(\"lines wrap and continue on the next line\"),\n- type='bool', scope={'window'},\n- redraw={'current_window'},\n- defaults={if_true=true},\n- cb='did_set_wrap'\n- },\n- {\n- full_name='wrapmargin', abbreviation='wm',\n- short_desc=N_(\"chars from the right where wrapping starts\"),\n- type='number', scope={'buffer'},\n- varname='p_wm',\n- defaults={if_true=0}\n- },\n- {\n- full_name='wrapscan', abbreviation='ws',\n- short_desc=N_(\"searches wrap around the end of the file\"),\n- type='bool', scope={'global'},\n- varname='p_ws',\n- defaults={if_true=true}\n- },\n- {\n- full_name='write',\n- short_desc=N_(\"to a file is allowed\"),\n- type='bool', scope={'global'},\n- varname='p_write',\n- defaults={if_true=true}\n- },\n- {\n- full_name='writeany', abbreviation='wa',\n- short_desc=N_(\"write to file with no need for \\\"!\\\" override\"),\n- type='bool', scope={'global'},\n- varname='p_wa',\n- defaults={if_true=false}\n- },\n- {\n- full_name='writebackup', abbreviation='wb',\n- short_desc=N_(\"make a backup before overwriting a file\"),\n- type='bool', scope={'global'},\n- varname='p_wb',\n- defaults={if_true=true}\n- },\n- {\n- full_name='writedelay', abbreviation='wd',\n- short_desc=N_(\"delay this many msec for each char (for debug)\"),\n- type='number', scope={'global'},\n- varname='p_wd',\n- defaults={if_true=0}\n- },\n- }\n+ desc = [=[\n+ Which directory to use for the file browser:\n+ last\t\tUse same directory as with last file browser, where a\n+ \t\tfile was opened or saved.\n+ buffer\tUse the directory of the related buffer.\n+ current\tUse the current directory.\n+ {path}\tUse the specified directory\n+ ]=],\n+ enable_if = false,\n+ full_name = 'browsedir',\n+ scope = { 'global' },\n+ short_desc = N_('which directory to start browsing in'),\n+ type = 'string',\n+ },\n+ {\n+ abbreviation = 'bh',\n+ alloced = true,\n+ cb = 'did_set_bufhidden',\n+ defaults = { if_true = '' },\n+ desc = [=[\n+ This option specifies what happens when a buffer is no longer\n+ displayed in a window:\n+ \tfollow the global 'hidden' option\n+ hide\t\thide the buffer (don't unload it), even if 'hidden' is\n+ \t\tnot set\n+ unload\tunload the buffer, even if 'hidden' is set; the\n+ \t\t|:hide| command will also unload the buffer\n+ delete\tdelete the buffer from the buffer list, even if\n+ \t\t'hidden' is set; the |:hide| command will also delete\n+ \t\tthe buffer, making it behave like |:bdelete|\n+ wipe\t\twipe the buffer from the buffer list, even if\n+ \t\t'hidden' is set; the |:hide| command will also wipe\n+ \t\tout the buffer, making it behave like |:bwipeout|\n+\n+ CAREFUL: when \"unload\", \"delete\" or \"wipe\" is used changes in a buffer\n+ are lost without a warning. Also, these values may break autocommands\n+ that switch between buffers temporarily.\n+ This option is used together with 'buftype' and 'swapfile' to specify\n+ special kinds of buffers. See |special-buffers|.\n+ ]=],\n+ full_name = 'bufhidden',\n+ noglob = true,\n+ scope = { 'buffer' },\n+ short_desc = N_('what to do when buffer is no longer in window'),\n+ type = 'string',\n+ varname = 'p_bh',\n+ },\n+ {\n+ abbreviation = 'bl',\n+ cb = 'did_set_buflisted',\n+ defaults = { if_true = true },\n+ desc = [=[\n+ When this option is set, the buffer shows up in the buffer list. If\n+ it is reset it is not used for \":bnext\", \"ls\", the Buffers menu, etc.\n+ This option is reset by Vim for buffers that are only used to remember\n+ a file name or marks. Vim sets it when starting to edit a buffer.\n+ But not when moving to a buffer with \":buffer\".\n+ ]=],\n+ full_name = 'buflisted',\n+ noglob = true,\n+ scope = { 'buffer' },\n+ short_desc = N_('whether the buffer shows up in the buffer list'),\n+ tags = { 'E85' },\n+ type = 'bool',\n+ varname = 'p_bl',\n+ },\n+ {\n+ abbreviation = 'bt',\n+ alloced = true,\n+ cb = 'did_set_buftype',\n+ defaults = { if_true = '' },\n+ desc = [=[\n+ The value of this option specifies the type of a buffer:\n+ \tnormal buffer\n+ acwrite\tbuffer will always be written with |BufWriteCmd|s\n+ help\t\thelp buffer (do not set this manually)\n+ nofile\tbuffer is not related to a file, will not be written\n+ nowrite\tbuffer will not be written\n+ quickfix\tlist of errors |:cwindow| or locations |:lwindow|\n+ terminal\t|terminal-emulator| buffer\n+ prompt\tbuffer where only the last line can be edited, meant\n+ \t\tto be used by a plugin, see |prompt-buffer|\n+\n+ This option is used together with 'bufhidden' and 'swapfile' to\n+ specify special kinds of buffers. See |special-buffers|.\n+ Also see |win_gettype()|, which returns the type of the window.\n+\n+ Be careful with changing this option, it can have many side effects!\n+ One such effect is that Vim will not check the timestamp of the file,\n+ if the file is changed by another program this will not be noticed.\n+\n+ A \"quickfix\" buffer is only used for the error list and the location\n+ list. This value is set by the |:cwindow| and |:lwindow| commands and\n+ you are not supposed to change it.\n+\n+ \"nofile\" and \"nowrite\" buffers are similar:\n+ both:\t\tThe buffer is not to be written to disk, \":w\" doesn't\n+ \t\twork (\":w filename\" does work though).\n+ both:\t\tThe buffer is never considered to be |'modified'|.\n+ \t\tThere is no warning when the changes will be lost, for\n+ \t\texample when you quit Vim.\n+ both:\t\tA swap file is only created when using too much memory\n+ \t\t(when 'swapfile' has been reset there is never a swap\n+ \t\tfile).\n+ nofile only:\tThe buffer name is fixed, it is not handled like a\n+ \t\tfile name. It is not modified in response to a |:cd|\n+ \t\tcommand.\n+ both:\t\tWhen using \":e bufname\" and already editing \"bufname\"\n+ \t\tthe buffer is made empty and autocommands are\n+ \t\ttriggered as usual for |:edit|.\n+ \t\t\t\t\t\t*E676*\n+ \"acwrite\" implies that the buffer name is not related to a file, like\n+ \"nofile\", but it will be written. Thus, in contrast to \"nofile\" and\n+ \"nowrite\", \":w\" does work and a modified buffer can't be abandoned\n+ without saving. For writing there must be matching |BufWriteCmd|,\n+ |FileWriteCmd| or |FileAppendCmd| autocommands.\n+ ]=],\n+ full_name = 'buftype',\n+ noglob = true,\n+ scope = { 'buffer' },\n+ tags = { 'E382' },\n+ short_desc = N_('special type of buffer'),\n+ type = 'string',\n+ varname = 'p_bt',\n+ },\n+ {\n+ abbreviation = 'cmp',\n+ cb = 'did_set_casemap',\n+ defaults = { if_true = 'internal,keepascii' },\n+ deny_duplicates = true,\n+ desc = [=[\n+ Specifies details about changing the case of letters. It may contain\n+ these words, separated by a comma:\n+ internal\tUse internal case mapping functions, the current\n+ \t\tlocale does not change the case mapping. When\n+ \t\t\"internal\" is omitted, the towupper() and towlower()\n+ \t\tsystem library functions are used when available.\n+ keepascii\tFor the ASCII characters (0x00 to 0x7f) use the US\n+ \t\tcase mapping, the current locale is not effective.\n+ \t\tThis probably only matters for Turkish.\n+ ]=],\n+ full_name = 'casemap',\n+ list = 'onecomma',\n+ scope = { 'global' },\n+ short_desc = N_('specifies how case of letters is changed'),\n+ type = 'string',\n+ varname = 'p_cmp',\n+ },\n+ {\n+ abbreviation = 'cdh',\n+ defaults = { if_true = false },\n+ desc = [=[\n+ When on, |:cd|, |:tcd| and |:lcd| without an argument changes the\n+ current working directory to the |$HOME| directory like in Unix.\n+ When off, those commands just print the current directory name.\n+ On Unix this option has no effect.\n+ ]=],\n+ full_name = 'cdhome',\n+ scope = { 'global' },\n+ secure = true,\n+ short_desc = N_(':cd without argument goes to the home directory'),\n+ type = 'bool',\n+ varname = 'p_cdh',\n+ },\n+ {\n+ abbreviation = 'cd',\n+ defaults = {\n+ if_true = ',,',\n+ doc = 'equivalent to $CDPATH or \",,\"',\n+ },\n+ deny_duplicates = true,\n+ desc = [=[\n+ This is a list of directories which will be searched when using the\n+ |:cd|, |:tcd| and |:lcd| commands, provided that the directory being\n+ searched for has a relative path, not an absolute part starting with\n+ \"/\", \"./\" or \"../\", the 'cdpath' option is not used then.\n+ The 'cdpath' option's value has the same form and semantics as\n+ |'path'|. Also see |file-searching|.\n+ The default value is taken from $CDPATH, with a \",\" prepended to look\n+ in the current directory first.\n+ If the default value taken from $CDPATH is not what you want, include\n+ a modified version of the following command in your vimrc file to\n+ override it: >\n+ :let &cdpath = ',' .. substitute(substitute($CDPATH, '[, ]', '\\\\\\0', 'g'), ':', ',', 'g')\n+ <\tThis option cannot be set from a |modeline| or in the |sandbox|, for\n+ security reasons.\n+ (parts of 'cdpath' can be passed to the shell to expand file names).\n+ ]=],\n+ expand = true,\n+ full_name = 'cdpath',\n+ list = 'comma',\n+ scope = { 'global' },\n+ secure = true,\n+ short_desc = N_('list of directories searched with \":cd\"'),\n+ tags = { 'E344', 'E346' },\n+ type = 'string',\n+ varname = 'p_cdpath',\n+ },\n+ {\n+ cb = 'did_set_cedit',\n+ defaults = {\n+ if_true = macros('CTRL_F_STR'),\n+ doc = 'CTRL-F',\n+ },\n+ desc = [=[\n+ The key used in Command-line Mode to open the command-line window.\n+ Only non-printable keys are allowed.\n+ The key can be specified as a single character, but it is difficult to\n+ type. The preferred way is to use the <> notation. Examples: >\n+ \t:exe \"set cedit=\\\\\"\n+ \t:exe \"set cedit=\\\\\"\n+ <\t|Nvi| also has this option, but it only uses the first character.\n+ See |cmdwin|.\n+ ]=],\n+ full_name = 'cedit',\n+ scope = { 'global' },\n+ short_desc = N_('used to open the command-line window'),\n+ type = 'string',\n+ varname = 'p_cedit',\n+ },\n+ {\n+ defaults = { if_true = 0 },\n+ desc = [=[\n+ |channel| connected to the buffer, or 0 if no channel is connected.\n+ In a |:terminal| buffer this is the terminal channel.\n+ Read-only.\n+ ]=],\n+ full_name = 'channel',\n+ no_mkrc = true,\n+ nodefault = true,\n+ scope = { 'buffer' },\n+ short_desc = N_('Channel connected to the buffer'),\n+ type = 'number',\n+ varname = 'p_channel',\n+ },\n+ {\n+ abbreviation = 'ccv',\n+ cb = 'did_set_optexpr',\n+ defaults = { if_true = '' },\n+ desc = [=[\n+ An expression that is used for character encoding conversion. It is\n+ evaluated when a file that is to be read or has been written has a\n+ different encoding from what is desired.\n+ 'charconvert' is not used when the internal iconv() function is\n+ supported and is able to do the conversion. Using iconv() is\n+ preferred, because it is much faster.\n+ 'charconvert' is not used when reading stdin |--|, because there is no\n+ file to convert from. You will have to save the text in a file first.\n+ The expression must return zero, false or an empty string for success,\n+ non-zero or true for failure.\n+ See |encoding-names| for possible encoding names.\n+ Additionally, names given in 'fileencodings' and 'fileencoding' are\n+ used.\n+ Conversion between \"latin1\", \"unicode\", \"ucs-2\", \"ucs-4\" and \"utf-8\"\n+ is done internally by Vim, 'charconvert' is not used for this.\n+ Also used for Unicode conversion.\n+ Example: >\n+ \tset charconvert=CharConvert()\n+ \tfun CharConvert()\n+ \t system(\"recode \"\n+ \t\t\\ .. v:charconvert_from .. \"..\" .. v:charconvert_to\n+ \t\t\\ .. \" <\" .. v:fname_in .. \" >\" .. v:fname_out)\n+ \t return v:shell_error\n+ \tendfun\n+ <\tThe related Vim variables are:\n+ \tv:charconvert_from\tname of the current encoding\n+ \tv:charconvert_to\tname of the desired encoding\n+ \tv:fname_in\t\tname of the input file\n+ \tv:fname_out\t\tname of the output file\n+ Note that v:fname_in and v:fname_out will never be the same.\n+ This option cannot be set from a |modeline| or in the |sandbox|, for\n+ security reasons.\n+ ]=],\n+ full_name = 'charconvert',\n+ scope = { 'global' },\n+ secure = true,\n+ short_desc = N_('expression for character encoding conversion'),\n+ type = 'string',\n+ tags = { 'E202', 'E214', 'E513' },\n+ varname = 'p_ccv',\n+ },\n+ {\n+ abbreviation = 'cin',\n+ defaults = { if_true = false },\n+ desc = [=[\n+ Enables automatic C program indenting. See 'cinkeys' to set the keys\n+ that trigger reindenting in insert mode and 'cinoptions' to set your\n+ preferred indent style.\n+ If 'indentexpr' is not empty, it overrules 'cindent'.\n+ If 'lisp' is not on and both 'indentexpr' and 'equalprg' are empty,\n+ the \"=\" operator indents using this algorithm rather than calling an\n+ external program.\n+ See |C-indenting|.\n+ When you don't like the way 'cindent' works, try the 'smartindent'\n+ option or 'indentexpr'.\n+ ]=],\n+ full_name = 'cindent',\n+ scope = { 'buffer' },\n+ short_desc = N_('do C program indenting'),\n+ type = 'bool',\n+ varname = 'p_cin',\n+ },\n+ {\n+ abbreviation = 'cink',\n+ alloced = true,\n+ defaults = { if_true = '0{,0},0),0],:,0#,!^F,o,O,e' },\n+ deny_duplicates = true,\n+ desc = [=[\n+ A list of keys that, when typed in Insert mode, cause reindenting of\n+ the current line. Only used if 'cindent' is on and 'indentexpr' is\n+ empty.\n+ For the format of this option see |cinkeys-format|.\n+ See |C-indenting|.\n+ ]=],\n+ full_name = 'cinkeys',\n+ list = 'onecomma',\n+ scope = { 'buffer' },\n+ short_desc = N_(\"keys that trigger indent when 'cindent' is set\"),\n+ type = 'string',\n+ varname = 'p_cink',\n+ },\n+ {\n+ abbreviation = 'cino',\n+ alloced = true,\n+ cb = 'did_set_cinoptions',\n+ defaults = { if_true = '' },\n+ deny_duplicates = true,\n+ desc = [=[\n+ The 'cinoptions' affect the way 'cindent' reindents lines in a C\n+ program. See |cinoptions-values| for the values of this option, and\n+ |C-indenting| for info on C indenting in general.\n+ ]=],\n+ full_name = 'cinoptions',\n+ list = 'onecomma',\n+ scope = { 'buffer' },\n+ short_desc = N_(\"how to do indenting when 'cindent' is set\"),\n+ type = 'string',\n+ varname = 'p_cino',\n+ },\n+ {\n+ abbreviation = 'cinw',\n+ alloced = true,\n+ defaults = { if_true = 'if,else,while,do,for,switch' },\n+ deny_duplicates = true,\n+ desc = [=[\n+ These keywords start an extra indent in the next line when\n+ 'smartindent' or 'cindent' is set. For 'cindent' this is only done at\n+ an appropriate place (inside {}).\n+ Note that 'ignorecase' isn't used for 'cinwords'. If case doesn't\n+ matter, include the keyword both the uppercase and lowercase:\n+ \"if,If,IF\".\n+ ]=],\n+ full_name = 'cinwords',\n+ list = 'onecomma',\n+ scope = { 'buffer' },\n+ short_desc = N_(\"words where 'si' and 'cin' add an indent\"),\n+ type = 'string',\n+ varname = 'p_cinw',\n+ },\n+ {\n+ abbreviation = 'cinsd',\n+ alloced = true,\n+ defaults = { if_true = 'public,protected,private' },\n+ deny_duplicates = true,\n+ desc = [=[\n+ Keywords that are interpreted as a C++ scope declaration by |cino-g|.\n+ Useful e.g. for working with the Qt framework that defines additional\n+ scope declarations \"signals\", \"public slots\" and \"private slots\": >\n+ \tset cinscopedecls+=signals,public\\ slots,private\\ slots\n+ <\n+ ]=],\n+ full_name = 'cinscopedecls',\n+ list = 'onecomma',\n+ scope = { 'buffer' },\n+ short_desc = N_(\"words that are recognized by 'cino-g'\"),\n+ type = 'string',\n+ varname = 'p_cinsd',\n+ },\n+ {\n+ abbreviation = 'cb',\n+ cb = 'did_set_clipboard',\n+ defaults = { if_true = '' },\n+ desc = [=[\n+ This option is a list of comma-separated names.\n+ These names are recognized:\n+\n+ \t\t\t\t\t*clipboard-unnamed*\n+ unnamed\t\tWhen included, Vim will use the clipboard register \"*\"\n+ \t\tfor all yank, delete, change and put operations which\n+ \t\twould normally go to the unnamed register. When a\n+ \t\tregister is explicitly specified, it will always be\n+ \t\tused regardless of whether \"unnamed\" is in 'clipboard'\n+ \t\tor not. The clipboard register can always be\n+ \t\texplicitly accessed using the \"* notation. Also see\n+ \t\t|clipboard|.\n+\n+ \t\t\t\t\t*clipboard-unnamedplus*\n+ unnamedplus\tA variant of the \"unnamed\" flag which uses the\n+ \t\tclipboard register \"+\" (|quoteplus|) instead of\n+ \t\tregister \"*\" for all yank, delete, change and put\n+ \t\toperations which would normally go to the unnamed\n+ \t\tregister. When \"unnamed\" is also included to the\n+ \t\toption, yank and delete operations (but not put)\n+ \t\twill additionally copy the text into register\n+ \t\t\"*\". See |clipboard|.\n+ ]=],\n+ deny_duplicates = true,\n+ full_name = 'clipboard',\n+ list = 'onecomma',\n+ scope = { 'global' },\n+ short_desc = N_('use the clipboard as the unnamed register'),\n+ type = 'string',\n+ varname = 'p_cb',\n+ },\n+ {\n+ abbreviation = 'ch',\n+ cb = 'did_set_cmdheight',\n+ defaults = { if_true = 1 },\n+ desc = [=[\n+ Number of screen lines to use for the command-line. Helps avoiding\n+ |hit-enter| prompts.\n+ The value of this option is stored with the tab page, so that each tab\n+ page can have a different value.\n+\n+ When 'cmdheight' is zero, there is no command-line unless it is being\n+ used. The command-line will cover the last line of the screen when\n+ shown.\n+\n+ WARNING: `cmdheight=0` is considered experimental. Expect some\n+ unwanted behaviour. Some 'shortmess' flags and similar\n+ mechanism might fail to take effect, causing unwanted hit-enter\n+ prompts. Some informative messages, both from Nvim itself and\n+ plugins, will not be displayed.\n+ ]=],\n+ full_name = 'cmdheight',\n+ redraw = { 'all_windows' },\n+ scope = { 'global' },\n+ short_desc = N_('number of lines to use for the command-line'),\n+ type = 'number',\n+ varname = 'p_ch',\n+ },\n+ {\n+ abbreviation = 'cwh',\n+ defaults = { if_true = 7 },\n+ desc = [=[\n+ Number of screen lines to use for the command-line window. |cmdwin|\n+ ]=],\n+ full_name = 'cmdwinheight',\n+ scope = { 'global' },\n+ short_desc = N_('height of the command-line window'),\n+ type = 'number',\n+ varname = 'p_cwh',\n+ },\n+ {\n+ abbreviation = 'cc',\n+ cb = 'did_set_colorcolumn',\n+ defaults = { if_true = '' },\n+ deny_duplicates = true,\n+ desc = [=[\n+ 'colorcolumn' is a comma-separated list of screen columns that are\n+ highlighted with ColorColumn |hl-ColorColumn|. Useful to align\n+ text. Will make screen redrawing slower.\n+ The screen column can be an absolute number, or a number preceded with\n+ '+' or '-', which is added to or subtracted from 'textwidth'. >\n+\n+ \t:set cc=+1\t \" highlight column after 'textwidth'\n+ \t:set cc=+1,+2,+3 \" highlight three columns after 'textwidth'\n+ \t:hi ColorColumn ctermbg=lightgrey guibg=lightgrey\n+ <\n+ When 'textwidth' is zero then the items with '-' and '+' are not used.\n+ A maximum of 256 columns are highlighted.\n+ ]=],\n+ full_name = 'colorcolumn',\n+ list = 'onecomma',\n+ redraw = { 'current_window' },\n+ scope = { 'window' },\n+ short_desc = N_('columns to highlight'),\n+ type = 'string',\n+ },\n+ {\n+ abbreviation = 'co',\n+ defaults = {\n+ if_true = macros('DFLT_COLS'),\n+ doc = '80 or terminal width',\n+ },\n+ desc = [=[\n+ Number of columns of the screen. Normally this is set by the terminal\n+ initialization and does not have to be set by hand.\n+ When Vim is running in the GUI or in a resizable window, setting this\n+ option will cause the window size to be changed. When you only want\n+ to use the size for the GUI, put the command in your |ginit.vim| file.\n+ When you set this option and Vim is unable to change the physical\n+ number of columns of the display, the display may be messed up. For\n+ the GUI it is always possible and Vim limits the number of columns to\n+ what fits on the screen. You can use this command to get the widest\n+ window possible: >\n+ \t:set columns=9999\n+ <\tMinimum value is 12, maximum value is 10000.\n+ ]=],\n+ full_name = 'columns',\n+ no_mkrc = true,\n+ scope = { 'global' },\n+ short_desc = N_('number of columns in the display'),\n+ tags = { 'E594' },\n+ type = 'number',\n+ varname = 'p_columns',\n+ },\n+ {\n+ abbreviation = 'com',\n+ alloced = true,\n+ cb = 'did_set_comments',\n+ defaults = { if_true = 's1:/*,mb:*,ex:*/,://,b:#,:%,:XCOMM,n:>,fb:-' },\n+ deny_duplicates = true,\n+ desc = [=[\n+ A comma-separated list of strings that can start a comment line. See\n+ |format-comments|. See |option-backslash| about using backslashes to\n+ insert a space.\n+ ]=],\n+ full_name = 'comments',\n+ list = 'onecomma',\n+ redraw = { 'curswant' },\n+ scope = { 'buffer' },\n+ short_desc = N_('patterns that can start a comment line'),\n+ tags = { 'E524', 'E525' },\n+ type = 'string',\n+ varname = 'p_com',\n+ },\n+ {\n+ abbreviation = 'cms',\n+ alloced = true,\n+ cb = 'did_set_commentstring',\n+ defaults = { if_true = '' },\n+ desc = [=[\n+ A template for a comment. The \"%s\" in the value is replaced with the\n+ comment text. For example, C uses \"/*%s*/\". Currently only used to\n+ add markers for folding, see |fold-marker|.\n+ ]=],\n+ full_name = 'commentstring',\n+ redraw = { 'curswant' },\n+ scope = { 'buffer' },\n+ short_desc = N_('template for comments; used for fold marker'),\n+ tags = { 'E537' },\n+ type = 'string',\n+ varname = 'p_cms',\n+ },\n+ {\n+ abbreviation = 'cp',\n+ defaults = { if_true = false },\n+ full_name = 'compatible',\n+ scope = { 'global' },\n+ short_desc = N_('No description'),\n+ type = 'bool',\n+ varname = 'p_force_off',\n+ },\n+ {\n+ abbreviation = 'cpt',\n+ alloced = true,\n+ cb = 'did_set_complete',\n+ defaults = { if_true = '.,w,b,u,t' },\n+ deny_duplicates = true,\n+ desc = [=[\n+ This option specifies how keyword completion |ins-completion| works\n+ when CTRL-P or CTRL-N are used. It is also used for whole-line\n+ completion |i_CTRL-X_CTRL-L|. It indicates the type of completion\n+ and the places to scan. It is a comma-separated list of flags:\n+ .\tscan the current buffer ('wrapscan' is ignored)\n+ w\tscan buffers from other windows\n+ b\tscan other loaded buffers that are in the buffer list\n+ u\tscan the unloaded buffers that are in the buffer list\n+ U\tscan the buffers that are not in the buffer list\n+ k\tscan the files given with the 'dictionary' option\n+ kspell use the currently active spell checking |spell|\n+ k{dict}\tscan the file {dict}. Several \"k\" flags can be given,\n+ \tpatterns are valid too. For example: >\n+ \t\t:set cpt=k/usr/dict/*,k~/spanish\n+ <\ts\tscan the files given with the 'thesaurus' option\n+ s{tsr}\tscan the file {tsr}. Several \"s\" flags can be given, patterns\n+ \tare valid too.\n+ i\tscan current and included files\n+ d\tscan current and included files for defined name or macro\n+ \t|i_CTRL-X_CTRL-D|\n+ ]\ttag completion\n+ t\tsame as \"]\"\n+\n+ Unloaded buffers are not loaded, thus their autocmds |:autocmd| are\n+ not executed, this may lead to unexpected completions from some files\n+ (gzipped files for example). Unloaded buffers are not scanned for\n+ whole-line completion.\n+\n+ As you can see, CTRL-N and CTRL-P can be used to do any 'iskeyword'-\n+ based expansion (e.g., dictionary |i_CTRL-X_CTRL-K|, included patterns\n+ |i_CTRL-X_CTRL-I|, tags |i_CTRL-X_CTRL-]| and normal expansions).\n+ ]=],\n+ full_name = 'complete',\n+ list = 'onecomma',\n+ scope = { 'buffer' },\n+ short_desc = N_('specify how Insert mode completion works'),\n+ tags = { 'E535' },\n+ type = 'string',\n+ varname = 'p_cpt',\n+ },\n+ {\n+ abbreviation = 'cocu',\n+ alloced = true,\n+ cb = 'did_set_concealcursor',\n+ defaults = { if_true = '' },\n+ desc = [=[\n+ Sets the modes in which text in the cursor line can also be concealed.\n+ When the current mode is listed then concealing happens just like in\n+ other lines.\n+ n\t\tNormal mode\n+ v\t\tVisual mode\n+ i\t\tInsert mode\n+ c\t\tCommand line editing, for 'incsearch'\n+\n+ 'v' applies to all lines in the Visual area, not only the cursor.\n+ A useful value is \"nc\". This is used in help files. So long as you\n+ are moving around text is concealed, but when starting to insert text\n+ or selecting a Visual area the concealed text is displayed, so that\n+ you can see what you are doing.\n+ Keep in mind that the cursor position is not always where it's\n+ displayed. E.g., when moving vertically it may change column.\n+ ]=],\n+ full_name = 'concealcursor',\n+ redraw = { 'current_window' },\n+ scope = { 'window' },\n+ short_desc = N_('whether concealable text is hidden in cursor line'),\n+ type = 'string',\n+ },\n+ {\n+ abbreviation = 'cole',\n+ defaults = { if_true = 0 },\n+ desc = [=[\n+ Determine how text with the \"conceal\" syntax attribute |:syn-conceal|\n+ is shown:\n+\n+ Value\t\tEffect ~\n+ 0\t\tText is shown normally\n+ 1\t\tEach block of concealed text is replaced with one\n+ \t\tcharacter. If the syntax item does not have a custom\n+ \t\treplacement character defined (see |:syn-cchar|) the\n+ \t\tcharacter defined in 'listchars' is used.\n+ \t\tIt is highlighted with the \"Conceal\" highlight group.\n+ 2\t\tConcealed text is completely hidden unless it has a\n+ \t\tcustom replacement character defined (see\n+ \t\t|:syn-cchar|).\n+ 3\t\tConcealed text is completely hidden.\n+\n+ Note: in the cursor line concealed text is not hidden, so that you can\n+ edit and copy the text. This can be changed with the 'concealcursor'\n+ option.\n+ ]=],\n+ full_name = 'conceallevel',\n+ redraw = { 'current_window' },\n+ scope = { 'window' },\n+ short_desc = N_('whether concealable text is shown or hidden'),\n+ type = 'number',\n+ },\n+ {\n+ abbreviation = 'cfu',\n+ alloced = true,\n+ cb = 'did_set_completefunc',\n+ defaults = { if_true = '' },\n+ desc = [=[\n+ This option specifies a function to be used for Insert mode completion\n+ with CTRL-X CTRL-U. |i_CTRL-X_CTRL-U|\n+ See |complete-functions| for an explanation of how the function is\n+ invoked and what it should return. The value can be the name of a\n+ function, a |lambda| or a |Funcref|. See |option-value-function| for\n+ more information.\n+ This option cannot be set from a |modeline| or in the |sandbox|, for\n+ security reasons.\n+ ]=],\n+ full_name = 'completefunc',\n+ func = true,\n+ scope = { 'buffer' },\n+ secure = true,\n+ short_desc = N_('function to be used for Insert mode completion'),\n+ type = 'string',\n+ varname = 'p_cfu',\n+ },\n+ {\n+ abbreviation = 'cot',\n+ cb = 'did_set_completeopt',\n+ defaults = { if_true = 'menu,preview' },\n+ deny_duplicates = true,\n+ desc = [=[\n+ A comma-separated list of options for Insert mode completion\n+ |ins-completion|. The supported values are:\n+\n+ menu\t Use a popup menu to show the possible completions. The\n+ \t menu is only shown when there is more than one match and\n+ \t sufficient colors are available. |ins-completion-menu|\n+\n+ menuone Use the popup menu also when there is only one match.\n+ \t Useful when there is additional information about the\n+ \t match, e.g., what file it comes from.\n+\n+ longest Only insert the longest common text of the matches. If\n+ \t the menu is displayed you can use CTRL-L to add more\n+ \t characters. Whether case is ignored depends on the kind\n+ \t of completion. For buffer text the 'ignorecase' option is\n+ \t used.\n+\n+ preview Show extra information about the currently selected\n+ \t completion in the preview window. Only works in\n+ \t combination with \"menu\" or \"menuone\".\n+\n+ noinsert Do not insert any text for a match until the user selects\n+ \t a match from the menu. Only works in combination with\n+ \t \"menu\" or \"menuone\". No effect if \"longest\" is present.\n+\n+ noselect Do not select a match in the menu, force the user to\n+ \t select one from the menu. Only works in combination with\n+ \t \"menu\" or \"menuone\".\n+ ]=],\n+ full_name = 'completeopt',\n+ list = 'onecomma',\n+ scope = { 'global' },\n+ short_desc = N_('options for Insert mode completion'),\n+ type = 'string',\n+ varname = 'p_cot',\n+ },\n+ {\n+ abbreviation = 'csl',\n+ cb = 'did_set_completeslash',\n+ defaults = { if_true = '' },\n+ desc = [=[\n+ \t\tonly for MS-Windows\n+ When this option is set it overrules 'shellslash' for completion:\n+ - When this option is set to \"slash\", a forward slash is used for path\n+ completion in insert mode. This is useful when editing HTML tag, or\n+ Makefile with 'noshellslash' on MS-Windows.\n+ - When this option is set to \"backslash\", backslash is used. This is\n+ useful when editing a batch file with 'shellslash' set on MS-Windows.\n+ - When this option is empty, same character is used as for\n+ 'shellslash'.\n+ For Insert mode completion the buffer-local value is used. For\n+ command line completion the global value is used.\n+ ]=],\n+ enable_if = 'BACKSLASH_IN_FILENAME',\n+ full_name = 'completeslash',\n+ scope = { 'buffer' },\n+ type = 'string',\n+ varname = 'p_csl',\n+ },\n+ {\n+ abbreviation = 'cf',\n+ defaults = { if_true = false },\n+ desc = [=[\n+ When 'confirm' is on, certain operations that would normally\n+ fail because of unsaved changes to a buffer, e.g. \":q\" and \":e\",\n+ instead raise a dialog asking if you wish to save the current\n+ file(s). You can still use a ! to unconditionally |abandon| a buffer.\n+ If 'confirm' is off you can still activate confirmation for one\n+ command only (this is most useful in mappings) with the |:confirm|\n+ command.\n+ Also see the |confirm()| function and the 'v' flag in 'guioptions'.\n+ ]=],\n+ full_name = 'confirm',\n+ scope = { 'global' },\n+ short_desc = N_('ask what to do about unsaved/read-only files'),\n+ type = 'bool',\n+ varname = 'p_confirm',\n+ },\n+ {\n+ abbreviation = 'ci',\n+ defaults = { if_true = false },\n+ desc = [=[\n+ Copy the structure of the existing lines indent when autoindenting a\n+ new line. Normally the new indent is reconstructed by a series of\n+ tabs followed by spaces as required (unless |'expandtab'| is enabled,\n+ in which case only spaces are used). Enabling this option makes the\n+ new line copy whatever characters were used for indenting on the\n+ existing line. 'expandtab' has no effect on these characters, a Tab\n+ remains a Tab. If the new indent is greater than on the existing\n+ line, the remaining space is filled in the normal manner.\n+ See 'preserveindent'.\n+ ]=],\n+ full_name = 'copyindent',\n+ scope = { 'buffer' },\n+ short_desc = N_(\"make 'autoindent' use existing indent structure\"),\n+ type = 'bool',\n+ varname = 'p_ci',\n+ },\n+ {\n+ abbreviation = 'cpo',\n+ cb = 'did_set_cpoptions',\n+ defaults = { if_true = macros('CPO_VIM') },\n+ desc = [=[\n+ A sequence of single character flags. When a character is present\n+ this indicates Vi-compatible behavior. This is used for things where\n+ not being Vi-compatible is mostly or sometimes preferred.\n+ 'cpoptions' stands for \"compatible-options\".\n+ Commas can be added for readability.\n+ To avoid problems with flags that are added in the future, use the\n+ \"+=\" and \"-=\" feature of \":set\" |add-option-flags|.\n+\n+ contains\tbehavior\t~\n+ \t\t\t\t\t\t\t*cpo-a*\n+ \ta\tWhen included, a \":read\" command with a file name\n+ \t\targument will set the alternate file name for the\n+ \t\tcurrent window.\n+ \t\t\t\t\t\t\t*cpo-A*\n+ \tA\tWhen included, a \":write\" command with a file name\n+ \t\targument will set the alternate file name for the\n+ \t\tcurrent window.\n+ \t\t\t\t\t\t\t*cpo-b*\n+ \tb\t\"\\|\" in a \":map\" command is recognized as the end of\n+ \t\tthe map command. The '\\' is included in the mapping,\n+ \t\tthe text after the '|' is interpreted as the next\n+ \t\tcommand. Use a CTRL-V instead of a backslash to\n+ \t\tinclude the '|' in the mapping. Applies to all\n+ \t\tmapping, abbreviation, menu and autocmd commands.\n+ \t\tSee also |map_bar|.\n+ \t\t\t\t\t\t\t*cpo-B*\n+ \tB\tA backslash has no special meaning in mappings,\n+ \t\tabbreviations, user commands and the \"to\" part of the\n+ \t\tmenu commands. Remove this flag to be able to use a\n+ \t\tbackslash like a CTRL-V. For example, the command\n+ \t\t\":map X \\\\\" results in X being mapped to:\n+ \t\t\t'B' included:\t\"\\^[\"\t (^[ is a real )\n+ \t\t\t'B' excluded:\t\"\" (5 characters)\n+ \t\t\t\t\t\t\t*cpo-c*\n+ \tc\tSearching continues at the end of any match at the\n+ \t\tcursor position, but not further than the start of the\n+ \t\tnext line. When not present searching continues\n+ \t\tone character from the cursor position. With 'c'\n+ \t\t\"abababababab\" only gets three matches when repeating\n+ \t\t\"/abab\", without 'c' there are five matches.\n+ \t\t\t\t\t\t\t*cpo-C*\n+ \tC\tDo not concatenate sourced lines that start with a\n+ \t\tbackslash. See |line-continuation|.\n+ \t\t\t\t\t\t\t*cpo-d*\n+ \td\tUsing \"./\" in the 'tags' option doesn't mean to use\n+ \t\tthe tags file relative to the current file, but the\n+ \t\ttags file in the current directory.\n+ \t\t\t\t\t\t\t*cpo-D*\n+ \tD\tCan't use CTRL-K to enter a digraph after Normal mode\n+ \t\tcommands with a character argument, like |r|, |f| and\n+ \t\t|t|.\n+ \t\t\t\t\t\t\t*cpo-e*\n+ \te\tWhen executing a register with \":@r\", always add a\n+ \t\t to the last line, also when the register is not\n+ \t\tlinewise. If this flag is not present, the register\n+ \t\tis not linewise and the last line does not end in a\n+ \t\t, then the last line is put on the command-line\n+ \t\tand can be edited before hitting .\n+ \t\t\t\t\t\t\t*cpo-E*\n+ \tE\tIt is an error when using \"y\", \"d\", \"c\", \"g~\", \"gu\" or\n+ \t\t\"gU\" on an Empty region. The operators only work when\n+ \t\tat least one character is to be operated on. Example:\n+ \t\tThis makes \"y0\" fail in the first column.\n+ \t\t\t\t\t\t\t*cpo-f*\n+ \tf\tWhen included, a \":read\" command with a file name\n+ \t\targument will set the file name for the current buffer,\n+ \t\tif the current buffer doesn't have a file name yet.\n+ \t\t\t\t\t\t\t*cpo-F*\n+ \tF\tWhen included, a \":write\" command with a file name\n+ \t\targument will set the file name for the current\n+ \t\tbuffer, if the current buffer doesn't have a file name\n+ \t\tyet. Also see |cpo-P|.\n+ \t\t\t\t\t\t\t*cpo-i*\n+ \ti\tWhen included, interrupting the reading of a file will\n+ \t\tleave it modified.\n+ \t\t\t\t\t\t\t*cpo-I*\n+ \tI\tWhen moving the cursor up or down just after inserting\n+ \t\tindent for 'autoindent', do not delete the indent.\n+ \t\t\t\t\t\t\t*cpo-J*\n+ \tJ\tA |sentence| has to be followed by two spaces after\n+ \t\tthe '.', '!' or '?'. A is not recognized as\n+ \t\twhite space.\n+ \t\t\t\t\t\t\t*cpo-K*\n+ \tK\tDon't wait for a key code to complete when it is\n+ \t\thalfway through a mapping. This breaks mapping\n+ \t\t when only part of the second has been\n+ \t\tread. It enables cancelling the mapping by typing\n+ \t\t.\n+ \t\t\t\t\t\t\t*cpo-l*\n+ \tl\tBackslash in a [] range in a search pattern is taken\n+ \t\tliterally, only \"\\]\", \"\\^\", \"\\-\" and \"\\\\\" are special.\n+ \t\tSee |/[]|\n+ \t\t 'l' included: \"/[ \\t]\" finds , '\\' and 't'\n+ \t\t 'l' excluded: \"/[ \\t]\" finds and \n+ \t\t\t\t\t\t\t*cpo-L*\n+ \tL\tWhen the 'list' option is set, 'wrapmargin',\n+ \t\t'textwidth', 'softtabstop' and Virtual Replace mode\n+ \t\t(see |gR|) count a as two characters, instead of\n+ \t\tthe normal behavior of a .\n+ \t\t\t\t\t\t\t*cpo-m*\n+ \tm\tWhen included, a showmatch will always wait half a\n+ \t\tsecond. When not included, a showmatch will wait half\n+ \t\ta second or until a character is typed. |'showmatch'|\n+ \t\t\t\t\t\t\t*cpo-M*\n+ \tM\tWhen excluded, \"%\" matching will take backslashes into\n+ \t\taccount. Thus in \"( \\( )\" and \"\\( ( \\)\" the outer\n+ \t\tparenthesis match. When included \"%\" ignores\n+ \t\tbackslashes, which is Vi compatible.\n+ \t\t\t\t\t\t\t*cpo-n*\n+ \tn\tWhen included, the column used for 'number' and\n+ \t\t'relativenumber' will also be used for text of wrapped\n+ \t\tlines.\n+ \t\t\t\t\t\t\t*cpo-o*\n+ \to\tLine offset to search command is not remembered for\n+ \t\tnext search.\n+ \t\t\t\t\t\t\t*cpo-O*\n+ \tO\tDon't complain if a file is being overwritten, even\n+ \t\twhen it didn't exist when editing it. This is a\n+ \t\tprotection against a file unexpectedly created by\n+ \t\tsomeone else. Vi didn't complain about this.\n+ \t\t\t\t\t\t\t*cpo-p*\n+ \tp\tVi compatible Lisp indenting. When not present, a\n+ \t\tslightly better algorithm is used.\n+ \t\t\t\t\t\t\t*cpo-P*\n+ \tP\tWhen included, a \":write\" command that appends to a\n+ \t\tfile will set the file name for the current buffer, if\n+ \t\tthe current buffer doesn't have a file name yet and\n+ \t\tthe 'F' flag is also included |cpo-F|.\n+ \t\t\t\t\t\t\t*cpo-q*\n+ \tq\tWhen joining multiple lines leave the cursor at the\n+ \t\tposition where it would be when joining two lines.\n+ \t\t\t\t\t\t\t*cpo-r*\n+ \tr\tRedo (\".\" command) uses \"/\" to repeat a search\n+ \t\tcommand, instead of the actually used search string.\n+ \t\t\t\t\t\t\t*cpo-R*\n+ \tR\tRemove marks from filtered lines. Without this flag\n+ \t\tmarks are kept like |:keepmarks| was used.\n+ \t\t\t\t\t\t\t*cpo-s*\n+ \ts\tSet buffer options when entering the buffer for the\n+ \t\tfirst time. This is like it is in Vim version 3.0.\n+ \t\tAnd it is the default. If not present the options are\n+ \t\tset when the buffer is created.\n+ \t\t\t\t\t\t\t*cpo-S*\n+ \tS\tSet buffer options always when entering a buffer\n+ \t\t(except 'readonly', 'fileformat', 'filetype' and\n+ \t\t'syntax'). This is the (most) Vi compatible setting.\n+ \t\tThe options are set to the values in the current\n+ \t\tbuffer. When you change an option and go to another\n+ \t\tbuffer, the value is copied. Effectively makes the\n+ \t\tbuffer options global to all buffers.\n+\n+ \t\t's' 'S' copy buffer options\n+ \t\tno no when buffer created\n+ \t\tyes no when buffer first entered (default)\n+ \t\t X yes each time when buffer entered (vi comp.)\n+ \t\t\t\t\t\t\t*cpo-t*\n+ \tt\tSearch pattern for the tag command is remembered for\n+ \t\t\"n\" command. Otherwise Vim only puts the pattern in\n+ \t\tthe history for search pattern, but doesn't change the\n+ \t\tlast used search pattern.\n+ \t\t\t\t\t\t\t*cpo-u*\n+ \tu\tUndo is Vi compatible. See |undo-two-ways|.\n+ \t\t\t\t\t\t\t*cpo-v*\n+ \tv\tBackspaced characters remain visible on the screen in\n+ \t\tInsert mode. Without this flag the characters are\n+ \t\terased from the screen right away. With this flag the\n+ \t\tscreen newly typed text overwrites backspaced\n+ \t\tcharacters.\n+ \t\t\t\t\t\t\t*cpo-W*\n+ \tW\tDon't overwrite a readonly file. When omitted, \":w!\"\n+ \t\toverwrites a readonly file, if possible.\n+ \t\t\t\t\t\t\t*cpo-x*\n+ \tx\t on the command-line executes the command-line.\n+ \t\tThe default in Vim is to abandon the command-line,\n+ \t\tbecause normally aborts a command. |c_|\n+ \t\t\t\t\t\t\t*cpo-X*\n+ \tX\tWhen using a count with \"R\" the replaced text is\n+ \t\tdeleted only once. Also when repeating \"R\" with \".\"\n+ \t\tand a count.\n+ \t\t\t\t\t\t\t*cpo-y*\n+ \ty\tA yank command can be redone with \".\". Think twice if\n+ \t\tyou really want to use this, it may break some\n+ \t\tplugins, since most people expect \".\" to only repeat a\n+ \t\tchange.\n+ \t\t\t\t\t\t\t*cpo-Z*\n+ \tZ\tWhen using \"w!\" while the 'readonly' option is set,\n+ \t\tdon't reset 'readonly'.\n+ \t\t\t\t\t\t\t*cpo-!*\n+ \t!\tWhen redoing a filter command, use the last used\n+ \t\texternal command, whatever it was. Otherwise the last\n+ \t\tused -filter- command is used.\n+ \t\t\t\t\t\t\t*cpo-$*\n+ \t$\tWhen making a change to one line, don't redisplay the\n+ \t\tline, but put a '$' at the end of the changed text.\n+ \t\tThe changed text will be overwritten when you type the\n+ \t\tnew text. The line is redisplayed if you type any\n+ \t\tcommand that moves the cursor from the insertion\n+ \t\tpoint.\n+ \t\t\t\t\t\t\t*cpo-%*\n+ \t%\tVi-compatible matching is done for the \"%\" command.\n+ \t\tDoes not recognize \"#if\", \"#endif\", etc.\n+ \t\tDoes not recognize \"/*\" and \"*/\".\n+ \t\tParens inside single and double quotes are also\n+ \t\tcounted, causing a string that contains a paren to\n+ \t\tdisturb the matching. For example, in a line like\n+ \t\t\"if (strcmp(\"foo(\", s))\" the first paren does not\n+ \t\tmatch the last one. When this flag is not included,\n+ \t\tparens inside single and double quotes are treated\n+ \t\tspecially. When matching a paren outside of quotes,\n+ \t\teverything inside quotes is ignored. When matching a\n+ \t\tparen inside quotes, it will find the matching one (if\n+ \t\tthere is one). This works very well for C programs.\n+ \t\tThis flag is also used for other features, such as\n+ \t\tC-indenting.\n+ \t\t\t\t\t\t\t*cpo-+*\n+ \t+\tWhen included, a \":write file\" command will reset the\n+ \t\t'modified' flag of the buffer, even though the buffer\n+ \t\titself may still be different from its file.\n+ \t\t\t\t\t\t\t*cpo->*\n+ \t>\tWhen appending to a register, put a line break before\n+ \t\tthe appended text.\n+ \t\t\t\t\t\t\t*cpo-;*\n+ \t;\tWhen using |,| or |;| to repeat the last |t| search\n+ \t\tand the cursor is right in front of the searched\n+ \t\tcharacter, the cursor won't move. When not included,\n+ \t\tthe cursor would skip over it and jump to the\n+ \t\tfollowing occurrence.\n+ \t\t\t\t\t\t\t*cpo-_*\n+ \t_\tWhen using |cw| on a word, do not include the\n+ \t\twhitespace following the word in the motion.\n+ ]=],\n+ full_name = 'cpoptions',\n+ list = 'flags',\n+ redraw = { 'all_windows' },\n+ scope = { 'global' },\n+ short_desc = N_('flags for Vi-compatible behavior'),\n+ tags = { 'cpo' },\n+ type = 'string',\n+ varname = 'p_cpo',\n+ },\n+ {\n+ abbreviation = 'crb',\n+ defaults = { if_true = false },\n+ desc = [=[\n+ When this option is set, as the cursor in the current\n+ window moves other cursorbound windows (windows that also have\n+ this option set) move their cursors to the corresponding line and\n+ column. This option is useful for viewing the\n+ differences between two versions of a file (see 'diff'); in diff mode,\n+ inserted and deleted lines (though not characters within a line) are\n+ taken into account.\n+ ]=],\n+ full_name = 'cursorbind',\n+ pv_name = 'p_crbind',\n+ scope = { 'window' },\n+ short_desc = N_('move cursor in window as it moves in other windows'),\n+ type = 'bool',\n+ },\n+ {\n+ abbreviation = 'cuc',\n+ defaults = { if_true = false },\n+ desc = [=[\n+ Highlight the screen column of the cursor with CursorColumn\n+ |hl-CursorColumn|. Useful to align text. Will make screen redrawing\n+ slower.\n+ If you only want the highlighting in the current window you can use\n+ these autocommands: >\n+ \tau WinLeave * set nocursorline nocursorcolumn\n+ \tau WinEnter * set cursorline cursorcolumn\n+ <\n+ ]=],\n+ full_name = 'cursorcolumn',\n+ redraw = { 'current_window_only' },\n+ scope = { 'window' },\n+ short_desc = N_('highlight the screen column of the cursor'),\n+ type = 'bool',\n+ },\n+ {\n+ abbreviation = 'cul',\n+ defaults = { if_true = false },\n+ desc = [=[\n+ Highlight the text line of the cursor with CursorLine |hl-CursorLine|.\n+ Useful to easily spot the cursor. Will make screen redrawing slower.\n+ When Visual mode is active the highlighting isn't used to make it\n+ easier to see the selected text.\n+ ]=],\n+ full_name = 'cursorline',\n+ redraw = { 'current_window_only' },\n+ scope = { 'window' },\n+ short_desc = N_('highlight the screen line of the cursor'),\n+ type = 'bool',\n+ },\n+ {\n+ abbreviation = 'culopt',\n+ cb = 'did_set_cursorlineopt',\n+ defaults = { if_true = 'both' },\n+ deny_duplicates = true,\n+ desc = [=[\n+ Comma-separated list of settings for how 'cursorline' is displayed.\n+ Valid values:\n+ \"line\"\t\tHighlight the text line of the cursor with\n+ \t\tCursorLine |hl-CursorLine|.\n+ \"screenline\"\tHighlight only the screen line of the cursor with\n+ \t\tCursorLine |hl-CursorLine|.\n+ \"number\"\tHighlight the line number of the cursor with\n+ \t\tCursorLineNr |hl-CursorLineNr|.\n+\n+ Special value:\n+ \"both\"\t\tAlias for the values \"line,number\".\n+\n+ \"line\" and \"screenline\" cannot be used together.\n+ ]=],\n+ full_name = 'cursorlineopt',\n+ list = 'onecomma',\n+ redraw = { 'current_window_only' },\n+ scope = { 'window' },\n+ short_desc = N_(\"settings for 'cursorline'\"),\n+ type = 'string',\n+ },\n+ {\n+ cb = 'did_set_debug',\n+ defaults = { if_true = '' },\n+ desc = [=[\n+ These values can be used:\n+ msg\tError messages that would otherwise be omitted will be given\n+ \tanyway.\n+ throw\tError messages that would otherwise be omitted will be given\n+ \tanyway and also throw an exception and set |v:errmsg|.\n+ beep\tA message will be given when otherwise only a beep would be\n+ \tproduced.\n+ The values can be combined, separated by a comma.\n+ \"msg\" and \"throw\" are useful for debugging 'foldexpr', 'formatexpr' or\n+ 'indentexpr'.\n+ ]=],\n+ full_name = 'debug',\n+ scope = { 'global' },\n+ short_desc = N_('to \"msg\" to see all error messages'),\n+ type = 'string',\n+ varname = 'p_debug',\n+ },\n+ {\n+ abbreviation = 'def',\n+ alloced = true,\n+ defaults = { if_true = '' },\n+ desc = [=[\n+ Pattern to be used to find a macro definition. It is a search\n+ pattern, just like for the \"/\" command. This option is used for the\n+ commands like \"[i\" and \"[d\" |include-search|. The 'isident' option is\n+ used to recognize the defined name after the match: >\n+ \t{match with 'define'}{non-ID chars}{defined name}{non-ID char}\n+ <\tSee |option-backslash| about inserting backslashes to include a space\n+ or backslash.\n+ For C++ this value would be useful, to include const type declarations: >\n+ \t^\\(#\\s*define\\|[a-z]*\\s*const\\s*[a-z]*\\)\n+ <\tYou can also use \"\\ze\" just before the name and continue the pattern\n+ to check what is following. E.g. for Javascript, if a function is\n+ defined with `func_name = function(args)`: >\n+ \t^\\s*\\ze\\i\\+\\s*=\\s*function(\n+ <\tIf the function is defined with `func_name : function() {...`: >\n+ ^\\s*\\ze\\i\\+\\s*[:]\\s*(*function\\s*(\n+ <\tWhen using the \":set\" command, you need to double the backslashes!\n+ To avoid that use `:let` with a single quote string: >\n+ \tlet &l:define = '^\\s*\\ze\\k\\+\\s*=\\s*function('\n+ <\n+ ]=],\n+ full_name = 'define',\n+ redraw = { 'curswant' },\n+ scope = { 'global', 'buffer' },\n+ short_desc = N_('pattern to be used to find a macro definition'),\n+ type = 'string',\n+ varname = 'p_def',\n+ },\n+ {\n+ abbreviation = 'deco',\n+ defaults = { if_true = false },\n+ desc = [=[\n+ If editing Unicode and this option is set, backspace and Normal mode\n+ \"x\" delete each combining character on its own. When it is off (the\n+ default) the character along with its combining characters are\n+ deleted.\n+ Note: When 'delcombine' is set \"xx\" may work differently from \"2x\"!\n+\n+ This is useful for Arabic, Hebrew and many other languages where one\n+ may have combining characters overtop of base characters, and want\n+ to remove only the combining ones.\n+ ]=],\n+ full_name = 'delcombine',\n+ scope = { 'global' },\n+ short_desc = N_('delete combining characters on their own'),\n+ type = 'bool',\n+ varname = 'p_deco',\n+ },\n+ {\n+ abbreviation = 'dict',\n+ defaults = { if_true = '' },\n+ deny_duplicates = true,\n+ desc = [=[\n+ List of file names, separated by commas, that are used to lookup words\n+ for keyword completion commands |i_CTRL-X_CTRL-K|. Each file should\n+ contain a list of words. This can be one word per line, or several\n+ words per line, separated by non-keyword characters (white space is\n+ preferred). Maximum line length is 510 bytes.\n+\n+ When this option is empty or an entry \"spell\" is present, and spell\n+ checking is enabled, words in the word lists for the currently active\n+ 'spelllang' are used. See |spell|.\n+\n+ To include a comma in a file name precede it with a backslash. Spaces\n+ after a comma are ignored, otherwise spaces are included in the file\n+ name. See |option-backslash| about using backslashes.\n+ This has nothing to do with the |Dictionary| variable type.\n+ Where to find a list of words?\n+ - BSD/macOS include the \"/usr/share/dict/words\" file.\n+ - Try \"apt install spell\" to get the \"/usr/share/dict/words\" file on\n+ apt-managed systems (Debian/Ubuntu).\n+ The use of |:set+=| and |:set-=| is preferred when adding or removing\n+ directories from the list. This avoids problems when a future version\n+ uses another default.\n+ Backticks cannot be used in this option for security reasons.\n+ ]=],\n+ expand = true,\n+ full_name = 'dictionary',\n+ list = 'onecomma',\n+ normal_dname_chars = true,\n+ scope = { 'global', 'buffer' },\n+ short_desc = N_('list of file names used for keyword completion'),\n+ type = 'string',\n+ varname = 'p_dict',\n+ },\n+ {\n+ cb = 'did_set_diff',\n+ defaults = { if_true = false },\n+ desc = [=[\n+ Join the current window in the group of windows that shows differences\n+ between files. See |diff-mode|.\n+ ]=],\n+ full_name = 'diff',\n+ noglob = true,\n+ redraw = { 'current_window' },\n+ scope = { 'window' },\n+ short_desc = N_('diff mode for the current window'),\n+ type = 'bool',\n+ },\n+ {\n+ abbreviation = 'dex',\n+ cb = 'did_set_optexpr',\n+ defaults = { if_true = '' },\n+ desc = [=[\n+ Expression which is evaluated to obtain a diff file (either ed-style\n+ or unified-style) from two versions of a file. See |diff-diffexpr|.\n+ This option cannot be set from a |modeline| or in the |sandbox|, for\n+ security reasons.\n+ ]=],\n+ full_name = 'diffexpr',\n+ redraw = { 'curswant' },\n+ scope = { 'global' },\n+ secure = true,\n+ short_desc = N_('expression used to obtain a diff file'),\n+ type = 'string',\n+ varname = 'p_dex',\n+ },\n+ {\n+ abbreviation = 'dip',\n+ alloced = true,\n+ cb = 'did_set_diffopt',\n+ defaults = { if_true = 'internal,filler,closeoff' },\n+ deny_duplicates = true,\n+ desc = [=[\n+ Option settings for diff mode. It can consist of the following items.\n+ All are optional. Items must be separated by a comma.\n+\n+ \tfiller\t\tShow filler lines, to keep the text\n+ \t\t\tsynchronized with a window that has inserted\n+ \t\t\tlines at the same position. Mostly useful\n+ \t\t\twhen windows are side-by-side and 'scrollbind'\n+ \t\t\tis set.\n+\n+ \tcontext:{n}\tUse a context of {n} lines between a change\n+ \t\t\tand a fold that contains unchanged lines.\n+ \t\t\tWhen omitted a context of six lines is used.\n+ \t\t\tWhen using zero the context is actually one,\n+ \t\t\tsince folds require a line in between, also\n+ \t\t\tfor a deleted line.\n+ \t\t\tSee |fold-diff|.\n+\n+ \tiblank\t\tIgnore changes where lines are all blank. Adds\n+ \t\t\tthe \"-B\" flag to the \"diff\" command if\n+ \t\t\t'diffexpr' is empty. Check the documentation\n+ \t\t\tof the \"diff\" command for what this does\n+ \t\t\texactly.\n+ \t\t\tNOTE: the diff windows will get out of sync,\n+ \t\t\tbecause no differences between blank lines are\n+ \t\t\ttaken into account.\n+\n+ \ticase\t\tIgnore changes in case of text. \"a\" and \"A\"\n+ \t\t\tare considered the same. Adds the \"-i\" flag\n+ \t\t\tto the \"diff\" command if 'diffexpr' is empty.\n+\n+ \tiwhite\t\tIgnore changes in amount of white space. Adds\n+ \t\t\tthe \"-b\" flag to the \"diff\" command if\n+ \t\t\t'diffexpr' is empty. Check the documentation\n+ \t\t\tof the \"diff\" command for what this does\n+ \t\t\texactly. It should ignore adding trailing\n+ \t\t\twhite space, but not leading white space.\n+\n+ \tiwhiteall\tIgnore all white space changes. Adds\n+ \t\t\tthe \"-w\" flag to the \"diff\" command if\n+ \t\t\t'diffexpr' is empty. Check the documentation\n+ \t\t\tof the \"diff\" command for what this does\n+ \t\t\texactly.\n+\n+ \tiwhiteeol\tIgnore white space changes at end of line.\n+ \t\t\tAdds the \"-Z\" flag to the \"diff\" command if\n+ \t\t\t'diffexpr' is empty. Check the documentation\n+ \t\t\tof the \"diff\" command for what this does\n+ \t\t\texactly.\n+\n+ \thorizontal\tStart diff mode with horizontal splits (unless\n+ \t\t\texplicitly specified otherwise).\n+\n+ \tvertical\tStart diff mode with vertical splits (unless\n+ \t\t\texplicitly specified otherwise).\n+\n+ \tcloseoff\tWhen a window is closed where 'diff' is set\n+ \t\t\tand there is only one window remaining in the\n+ \t\t\tsame tab page with 'diff' set, execute\n+ \t\t\t`:diffoff` in that window. This undoes a\n+ \t\t\t`:diffsplit` command.\n+\n+ \thiddenoff\tDo not use diff mode for a buffer when it\n+ \t\t\tbecomes hidden.\n+\n+ \tfoldcolumn:{n}\tSet the 'foldcolumn' option to {n} when\n+ \t\t\tstarting diff mode. Without this 2 is used.\n+\n+ \tfollowwrap\tFollow the 'wrap' option and leave as it is.\n+\n+ \tinternal\tUse the internal diff library. This is\n+ \t\t\tignored when 'diffexpr' is set. *E960*\n+ \t\t\tWhen running out of memory when writing a\n+ \t\t\tbuffer this item will be ignored for diffs\n+ \t\t\tinvolving that buffer. Set the 'verbose'\n+ \t\t\toption to see when this happens.\n+\n+ \tindent-heuristic\n+ \t\t\tUse the indent heuristic for the internal\n+ \t\t\tdiff library.\n+\n+ \tlinematch:{n} Enable a second stage diff on each generated\n+ \t\t\thunk in order to align lines. When the total\n+ \t\t\tnumber of lines in a hunk exceeds {n}, the\n+ \t\t\tsecond stage diff will not be performed as\n+ \t\t\tvery large hunks can cause noticeable lag. A\n+ \t\t\trecommended setting is \"linematch:60\", as this\n+ \t\t\twill enable alignment for a 2 buffer diff with\n+ \t\t\thunks of up to 30 lines each, or a 3 buffer\n+ \t\t\tdiff with hunks of up to 20 lines each.\n+\n+ \talgorithm:{text} Use the specified diff algorithm with the\n+ \t\t\tinternal diff engine. Currently supported\n+ \t\t\talgorithms are:\n+ \t\t\tmyers the default algorithm\n+ \t\t\tminimal spend extra time to generate the\n+ \t\t\t\t smallest possible diff\n+ \t\t\tpatience patience diff algorithm\n+ \t\t\thistogram histogram diff algorithm\n+\n+ Examples: >\n+ \t:set diffopt=internal,filler,context:4\n+ \t:set diffopt=\n+ \t:set diffopt=internal,filler,foldcolumn:3\n+ \t:set diffopt-=internal \" do NOT use the internal diff parser\n+ <\n+ ]=],\n+ full_name = 'diffopt',\n+ list = 'onecomma',\n+ redraw = { 'current_window' },\n+ scope = { 'global' },\n+ short_desc = N_('options for using diff mode'),\n+ type = 'string',\n+ varname = 'p_dip',\n+ },\n+ {\n+ abbreviation = 'dg',\n+ defaults = { if_true = false },\n+ desc = [=[\n+ Enable the entering of digraphs in Insert mode with {char1} \n+ {char2}. See |digraphs|.\n+ ]=],\n+ full_name = 'digraph',\n+ scope = { 'global' },\n+ short_desc = N_('enable the entering of digraphs in Insert mode'),\n+ type = 'bool',\n+ varname = 'p_dg',\n+ },\n+ {\n+ abbreviation = 'dir',\n+ defaults = { if_true = '' },\n+ deny_duplicates = true,\n+ desc = [=[\n+ List of directory names for the swap file, separated with commas.\n+\n+ Possible items:\n+ - The swap file will be created in the first directory where this is\n+ possible. If it is not possible in any directory, but last\n+ directory listed in the option does not exist, it is created.\n+ - Empty means that no swap file will be used (recovery is\n+ impossible!) and no |E303| error will be given.\n+ - A directory \".\" means to put the swap file in the same directory as\n+ the edited file. On Unix, a dot is prepended to the file name, so\n+ it doesn't show in a directory listing. On MS-Windows the \"hidden\"\n+ attribute is set and a dot prepended if possible.\n+ - A directory starting with \"./\" (or \".\\\" for MS-Windows) means to put\n+ the swap file relative to where the edited file is. The leading \".\"\n+ is replaced with the path name of the edited file.\n+ - For Unix and Win32, if a directory ends in two path separators \"//\",\n+ the swap file name will be built from the complete path to the file\n+ with all path separators replaced by percent '%' signs (including\n+ the colon following the drive letter on Win32). This will ensure\n+ file name uniqueness in the preserve directory.\n+ On Win32, it is also possible to end with \"\\\\\". However, When a\n+ separating comma is following, you must use \"//\", since \"\\\\\" will\n+ include the comma in the file name. Therefore it is recommended to\n+ use '//', instead of '\\\\'.\n+ - Spaces after the comma are ignored, other spaces are considered part\n+ of the directory name. To have a space at the start of a directory\n+ name, precede it with a backslash.\n+ - To include a comma in a directory name precede it with a backslash.\n+ - A directory name may end in an ':' or '/'.\n+ - Environment variables are expanded |:set_env|.\n+ - Careful with '\\' characters, type one before a space, type two to\n+ get one in the option (see |option-backslash|), for example: >\n+ :set dir=c:\\\\tmp,\\ dir\\\\,with\\\\,commas,\\\\\\ dir\\ with\\ spaces\n+ <\n+ Editing the same file twice will result in a warning. Using \"/tmp\" on\n+ is discouraged: if the system crashes you lose the swap file. And\n+ others on the computer may be able to see the files.\n+ Use |:set+=| and |:set-=| when adding or removing directories from the\n+ list, this avoids problems if the Nvim default is changed.\n+\n+ This option cannot be set from a |modeline| or in the |sandbox|, for\n+ security reasons.\n+ ]=],\n+ expand = 'nodefault',\n+ full_name = 'directory',\n+ list = 'onecomma',\n+ scope = { 'global' },\n+ secure = true,\n+ short_desc = N_('list of directory names for the swap file'),\n+ type = 'string',\n+ varname = 'p_dir',\n+ },\n+ {\n+ abbreviation = 'dy',\n+ cb = 'did_set_display',\n+ defaults = { if_true = 'lastline' },\n+ deny_duplicates = true,\n+ desc = [=[\n+ Change the way text is displayed. This is a comma-separated list of\n+ flags:\n+ lastline\tWhen included, as much as possible of the last line\n+ \t\tin a window will be displayed. \"@@@\" is put in the\n+ \t\tlast columns of the last screen line to indicate the\n+ \t\trest of the line is not displayed.\n+ truncate\tLike \"lastline\", but \"@@@\" is displayed in the first\n+ \t\tcolumn of the last screen line. Overrules \"lastline\".\n+ uhex\t\tShow unprintable characters hexadecimal as \n+ \t\tinstead of using ^C and ~C.\n+ msgsep\t\tObsolete flag. Allowed but takes no effect. |msgsep|\n+\n+ When neither \"lastline\" nor \"truncate\" is included, a last line that\n+ doesn't fit is replaced with \"@\" lines.\n+\n+ The \"@\" character can be changed by setting the \"lastline\" item in\n+ 'fillchars'. The character is highlighted with |hl-NonText|.\n+ ]=],\n+ full_name = 'display',\n+ list = 'onecomma',\n+ redraw = { 'all_windows' },\n+ scope = { 'global' },\n+ short_desc = N_('list of flags for how to display text'),\n+ type = 'string',\n+ varname = 'p_dy',\n+ },\n+ {\n+ abbreviation = 'ead',\n+ cb = 'did_set_eadirection',\n+ defaults = { if_true = 'both' },\n+ desc = [=[\n+ Tells when the 'equalalways' option applies:\n+ \tver\tvertically, width of windows is not affected\n+ \thor\thorizontally, height of windows is not affected\n+ \tboth\twidth and height of windows is affected\n+ ]=],\n+ full_name = 'eadirection',\n+ scope = { 'global' },\n+ short_desc = N_(\"in which direction 'equalalways' works\"),\n+ type = 'string',\n+ varname = 'p_ead',\n+ },\n+ {\n+ abbreviation = 'ed',\n+ defaults = { if_true = false },\n+ full_name = 'edcompatible',\n+ scope = { 'global' },\n+ short_desc = N_('No description'),\n+ type = 'bool',\n+ varname = 'p_force_off',\n+ },\n+ {\n+ abbreviation = 'emo',\n+ cb = 'did_set_ambiwidth',\n+ defaults = { if_true = true },\n+ desc = [=[\n+ When on all Unicode emoji characters are considered to be full width.\n+ This excludes \"text emoji\" characters, which are normally displayed as\n+ single width. Unfortunately there is no good specification for this\n+ and it has been determined on trial-and-error basis. Use the\n+ |setcellwidths()| function to change the behavior.\n+ ]=],\n+ full_name = 'emoji',\n+ redraw = { 'all_windows', 'ui_option' },\n+ scope = { 'global' },\n+ short_desc = N_('No description'),\n+ type = 'bool',\n+ varname = 'p_emoji',\n+ },\n+ {\n+ abbreviation = 'enc',\n+ cb = 'did_set_encoding',\n+ defaults = { if_true = macros('ENC_DFLT') },\n+ deny_in_modelines = true,\n+ desc = [=[\n+ String-encoding used internally and for |RPC| communication.\n+ Always UTF-8.\n+\n+ See 'fileencoding' to control file-content encoding.\n+ ]=],\n+ full_name = 'encoding',\n+ scope = { 'global' },\n+ short_desc = N_('encoding used internally'),\n+ type = 'string',\n+ varname = 'p_enc',\n+ },\n+ {\n+ abbreviation = 'eof',\n+ cb = 'did_set_eof_eol_fixeol_bomb',\n+ defaults = { if_true = false },\n+ desc = [=[\n+ Indicates that a CTRL-Z character was found at the end of the file\n+ when reading it. Normally only happens when 'fileformat' is \"dos\".\n+ When writing a file and this option is off and the 'binary' option\n+ is on, or 'fixeol' option is off, no CTRL-Z will be written at the\n+ end of the file.\n+ See |eol-and-eof| for example settings.\n+ ]=],\n+ full_name = 'endoffile',\n+ no_mkrc = true,\n+ redraw = { 'statuslines' },\n+ scope = { 'buffer' },\n+ short_desc = N_('write CTRL-Z for last line in file'),\n+ type = 'bool',\n+ varname = 'p_eof',\n+ },\n+ {\n+ abbreviation = 'eol',\n+ cb = 'did_set_eof_eol_fixeol_bomb',\n+ defaults = { if_true = true },\n+ desc = [=[\n+ When writing a file and this option is off and the 'binary' option\n+ is on, or 'fixeol' option is off, no will be written for the\n+ last line in the file. This option is automatically set or reset when\n+ starting to edit a new file, depending on whether file has an \n+ for the last line in the file. Normally you don't have to set or\n+ reset this option.\n+ When 'binary' is off and 'fixeol' is on the value is not used when\n+ writing the file. When 'binary' is on or 'fixeol' is off it is used\n+ to remember the presence of a for the last line in the file, so\n+ that when you write the file the situation from the original file can\n+ be kept. But you can change it if you want to.\n+ See |eol-and-eof| for example settings.\n+ ]=],\n+ full_name = 'endofline',\n+ no_mkrc = true,\n+ redraw = { 'statuslines' },\n+ scope = { 'buffer' },\n+ short_desc = N_('write for last line in file'),\n+ type = 'bool',\n+ varname = 'p_eol',\n+ },\n+ {\n+ abbreviation = 'ea',\n+ cb = 'did_set_equalalways',\n+ defaults = { if_true = true },\n+ desc = [=[\n+ When on, all the windows are automatically made the same size after\n+ splitting or closing a window. This also happens the moment the\n+ option is switched on. When off, splitting a window will reduce the\n+ size of the current window and leave the other windows the same. When\n+ closing a window the extra lines are given to the window next to it\n+ (depending on 'splitbelow' and 'splitright').\n+ When mixing vertically and horizontally split windows, a minimal size\n+ is computed and some windows may be larger if there is room. The\n+ 'eadirection' option tells in which direction the size is affected.\n+ Changing the height and width of a window can be avoided by setting\n+ 'winfixheight' and 'winfixwidth', respectively.\n+ If a window size is specified when creating a new window sizes are\n+ currently not equalized (it's complicated, but may be implemented in\n+ the future).\n+ ]=],\n+ full_name = 'equalalways',\n+ scope = { 'global' },\n+ short_desc = N_('windows are automatically made the same size'),\n+ type = 'bool',\n+ varname = 'p_ea',\n+ },\n+ {\n+ abbreviation = 'ep',\n+ defaults = { if_true = '' },\n+ desc = [=[\n+ External program to use for \"=\" command. When this option is empty\n+ the internal formatting functions are used; either 'lisp', 'cindent'\n+ or 'indentexpr'.\n+ Environment variables are expanded |:set_env|. See |option-backslash|\n+ about including spaces and backslashes.\n+ This option cannot be set from a |modeline| or in the |sandbox|, for\n+ security reasons.\n+ ]=],\n+ expand = true,\n+ full_name = 'equalprg',\n+ scope = { 'global', 'buffer' },\n+ secure = true,\n+ short_desc = N_('external program to use for \"=\" command'),\n+ type = 'string',\n+ varname = 'p_ep',\n+ },\n+ {\n+ abbreviation = 'eb',\n+ defaults = { if_true = false },\n+ desc = [=[\n+ Ring the bell (beep or screen flash) for error messages. This only\n+ makes a difference for error messages, the bell will be used always\n+ for a lot of errors without a message (e.g., hitting in Normal\n+ mode). See 'visualbell' to make the bell behave like a screen flash\n+ or do nothing. See 'belloff' to finetune when to ring the bell.\n+ ]=],\n+ full_name = 'errorbells',\n+ scope = { 'global' },\n+ short_desc = N_('ring the bell for error messages'),\n+ type = 'bool',\n+ varname = 'p_eb',\n+ },\n+ {\n+ abbreviation = 'ef',\n+ defaults = { if_true = macros('DFLT_ERRORFILE') },\n+ desc = [=[\n+ Name of the errorfile for the QuickFix mode (see |:cf|).\n+ When the \"-q\" command-line argument is used, 'errorfile' is set to the\n+ following argument. See |-q|.\n+ NOT used for the \":make\" command. See 'makeef' for that.\n+ Environment variables are expanded |:set_env|.\n+ See |option-backslash| about including spaces and backslashes.\n+ This option cannot be set from a |modeline| or in the |sandbox|, for\n+ security reasons.\n+ ]=],\n+ expand = true,\n+ full_name = 'errorfile',\n+ scope = { 'global' },\n+ secure = true,\n+ short_desc = N_('name of the errorfile for the QuickFix mode'),\n+ type = 'string',\n+ varname = 'p_ef',\n+ },\n+ {\n+ abbreviation = 'efm',\n+ defaults = {\n+ if_true = macros('DFLT_EFM'),\n+ doc = 'is very long',\n+ },\n+ deny_duplicates = true,\n+ desc = [=[\n+ Scanf-like description of the format for the lines in the error file\n+ (see |errorformat|).\n+ ]=],\n+ full_name = 'errorformat',\n+ list = 'onecomma',\n+ scope = { 'global', 'buffer' },\n+ short_desc = N_('description of the lines in the error file'),\n+ type = 'string',\n+ varname = 'p_efm',\n+ },\n+ {\n+ abbreviation = 'ei',\n+ cb = 'did_set_eventignore',\n+ defaults = { if_true = '' },\n+ deny_duplicates = true,\n+ desc = [=[\n+ A list of autocommand event names, which are to be ignored.\n+ When set to \"all\" or when \"all\" is one of the items, all autocommand\n+ events are ignored, autocommands will not be executed.\n+ Otherwise this is a comma-separated list of event names. Example: >\n+ :set ei=WinEnter,WinLeave\n+ <\n+ ]=],\n+ full_name = 'eventignore',\n+ list = 'onecomma',\n+ scope = { 'global' },\n+ short_desc = N_('autocommand events that are ignored'),\n+ type = 'string',\n+ varname = 'p_ei',\n+ },\n+ {\n+ abbreviation = 'et',\n+ defaults = { if_true = false },\n+ desc = [=[\n+ In Insert mode: Use the appropriate number of spaces to insert a\n+ . Spaces are used in indents with the '>' and '<' commands and\n+ when 'autoindent' is on. To insert a real tab when 'expandtab' is\n+ on, use CTRL-V. See also |:retab| and |ins-expandtab|.\n+ ]=],\n+ full_name = 'expandtab',\n+ scope = { 'buffer' },\n+ short_desc = N_('use spaces when is inserted'),\n+ type = 'bool',\n+ varname = 'p_et',\n+ },\n+ {\n+ abbreviation = 'ex',\n+ defaults = { if_true = false },\n+ desc = [=[\n+ Automatically execute .nvim.lua, .nvimrc, and .exrc files in the\n+ current directory, if the file is in the |trust| list. Use |:trust| to\n+ manage trusted files. See also |vim.secure.read()|.\n+\n+ Compare 'exrc' to |editorconfig|:\n+ - 'exrc' can execute any code; editorconfig only specifies settings.\n+ - 'exrc' is Nvim-specific; editorconfig works in other editors.\n+\n+ This option cannot be set from a |modeline| or in the |sandbox|, for\n+ security reasons.\n+ ]=],\n+ full_name = 'exrc',\n+ scope = { 'global' },\n+ secure = true,\n+ short_desc = N_('read .nvimrc and .exrc in the current directory'),\n+ type = 'bool',\n+ varname = 'p_exrc',\n+ },\n+ {\n+ abbreviation = 'fenc',\n+ alloced = true,\n+ cb = 'did_set_encoding',\n+ defaults = { if_true = '' },\n+ desc = [=[\n+ File-content encoding for the current buffer. Conversion is done with\n+ iconv() or as specified with 'charconvert'.\n+\n+ When 'fileencoding' is not UTF-8, conversion will be done when\n+ writing the file. For reading see below.\n+ When 'fileencoding' is empty, the file will be saved with UTF-8\n+ encoding (no conversion when reading or writing a file).\n+\n+ WARNING: Conversion to a non-Unicode encoding can cause loss of\n+ information!\n+\n+ See |encoding-names| for the possible values. Additionally, values may be\n+ specified that can be handled by the converter, see\n+ |mbyte-conversion|.\n+\n+ When reading a file 'fileencoding' will be set from 'fileencodings'.\n+ To read a file in a certain encoding it won't work by setting\n+ 'fileencoding', use the |++enc| argument. One exception: when\n+ 'fileencodings' is empty the value of 'fileencoding' is used.\n+ For a new file the global value of 'fileencoding' is used.\n+\n+ Prepending \"8bit-\" and \"2byte-\" has no meaning here, they are ignored.\n+ When the option is set, the value is converted to lowercase. Thus\n+ you can set it with uppercase values too. '_' characters are\n+ replaced with '-'. If a name is recognized from the list at\n+ |encoding-names|, it is replaced by the standard name. For example\n+ \"ISO8859-2\" becomes \"iso-8859-2\".\n+\n+ When this option is set, after starting to edit a file, the 'modified'\n+ option is set, because the file would be different when written.\n+\n+ Keep in mind that changing 'fenc' from a modeline happens\n+ AFTER the text has been read, thus it applies to when the file will be\n+ written. If you do set 'fenc' in a modeline, you might want to set\n+ 'nomodified' to avoid not being able to \":q\".\n+\n+ This option cannot be changed when 'modifiable' is off.\n+ ]=],\n+ full_name = 'fileencoding',\n+ no_mkrc = true,\n+ redraw = { 'statuslines', 'current_buffer' },\n+ scope = { 'buffer' },\n+ short_desc = N_('file encoding for multi-byte text'),\n+ tags = { 'E213' },\n+ type = 'string',\n+ varname = 'p_fenc',\n+ },\n+ {\n+ abbreviation = 'fencs',\n+ defaults = { if_true = 'ucs-bom,utf-8,default,latin1' },\n+ deny_duplicates = true,\n+ desc = [=[\n+ This is a list of character encodings considered when starting to edit\n+ an existing file. When a file is read, Vim tries to use the first\n+ mentioned character encoding. If an error is detected, the next one\n+ in the list is tried. When an encoding is found that works,\n+ 'fileencoding' is set to it. If all fail, 'fileencoding' is set to\n+ an empty string, which means that UTF-8 is used.\n+ \tWARNING: Conversion can cause loss of information! You can use\n+ \tthe |++bad| argument to specify what is done with characters\n+ \tthat can't be converted.\n+ For an empty file or a file with only ASCII characters most encodings\n+ will work and the first entry of 'fileencodings' will be used (except\n+ \"ucs-bom\", which requires the BOM to be present). If you prefer\n+ another encoding use an BufReadPost autocommand event to test if your\n+ preferred encoding is to be used. Example: >\n+ \tau BufReadPost * if search('\\S', 'w') == 0 |\n+ \t\t\\ set fenc=iso-2022-jp | endif\n+ <\tThis sets 'fileencoding' to \"iso-2022-jp\" if the file does not contain\n+ non-blank characters.\n+ When the |++enc| argument is used then the value of 'fileencodings' is\n+ not used.\n+ Note that 'fileencodings' is not used for a new file, the global value\n+ of 'fileencoding' is used instead. You can set it with: >\n+ \t:setglobal fenc=iso-8859-2\n+ <\tThis means that a non-existing file may get a different encoding than\n+ an empty file.\n+ The special value \"ucs-bom\" can be used to check for a Unicode BOM\n+ (Byte Order Mark) at the start of the file. It must not be preceded\n+ by \"utf-8\" or another Unicode encoding for this to work properly.\n+ An entry for an 8-bit encoding (e.g., \"latin1\") should be the last,\n+ because Vim cannot detect an error, thus the encoding is always\n+ accepted.\n+ The special value \"default\" can be used for the encoding from the\n+ environment. It is useful when your environment uses a non-latin1\n+ encoding, such as Russian.\n+ When a file contains an illegal UTF-8 byte sequence it won't be\n+ recognized as \"utf-8\". You can use the |8g8| command to find the\n+ illegal byte sequence.\n+ WRONG VALUES:\t\t\tWHAT'S WRONG:\n+ \tlatin1,utf-8\t\t\"latin1\" will always be used\n+ \tutf-8,ucs-bom,latin1\tBOM won't be recognized in an utf-8\n+ \t\t\t\tfile\n+ \tcp1250,latin1\t\t\"cp1250\" will always be used\n+ If 'fileencodings' is empty, 'fileencoding' is not modified.\n+ See 'fileencoding' for the possible values.\n+ Setting this option does not have an effect until the next time a file\n+ is read.\n+ ]=],\n+ full_name = 'fileencodings',\n+ list = 'onecomma',\n+ scope = { 'global' },\n+ short_desc = N_('automatically detected character encodings'),\n+ type = 'string',\n+ varname = 'p_fencs',\n+ },\n+ {\n+ abbreviation = 'ff',\n+ alloced = true,\n+ cb = 'did_set_fileformat',\n+ defaults = {\n+ if_true = macros('DFLT_FF'),\n+ doc = 'Windows: \"dos\", Unix: \"unix\"',\n+ },\n+ desc = [=[\n+ This gives the of the current buffer, which is used for\n+ reading/writing the buffer from/to a file:\n+ dos\t \n+ unix \n+ mac\t \n+ When \"dos\" is used, CTRL-Z at the end of a file is ignored.\n+ See |file-formats| and |file-read|.\n+ For the character encoding of the file see 'fileencoding'.\n+ When 'binary' is set, the value of 'fileformat' is ignored, file I/O\n+ works like it was set to \"unix\".\n+ This option is set automatically when starting to edit a file and\n+ 'fileformats' is not empty and 'binary' is off.\n+ When this option is set, after starting to edit a file, the 'modified'\n+ option is set, because the file would be different when written.\n+ This option cannot be changed when 'modifiable' is off.\n+ ]=],\n+ full_name = 'fileformat',\n+ no_mkrc = true,\n+ redraw = { 'curswant', 'statuslines' },\n+ scope = { 'buffer' },\n+ short_desc = N_('file format used for file I/O'),\n+ type = 'string',\n+ varname = 'p_ff',\n+ },\n+ {\n+ abbreviation = 'ffs',\n+ cb = 'did_set_fileformats',\n+ defaults = {\n+ if_true = macros('DFLT_FFS_VIM'),\n+ doc = 'Windows: \"dos,unix\", Unix: \"unix,dos\"',\n+ },\n+ deny_duplicates = true,\n+ desc = [=[\n+ This gives the end-of-line () formats that will be tried when\n+ starting to edit a new buffer and when reading a file into an existing\n+ buffer:\n+ - When empty, the format defined with 'fileformat' will be used\n+ always. It is not set automatically.\n+ - When set to one name, that format will be used whenever a new buffer\n+ is opened. 'fileformat' is set accordingly for that buffer. The\n+ 'fileformats' name will be used when a file is read into an existing\n+ buffer, no matter what 'fileformat' for that buffer is set to.\n+ - When more than one name is present, separated by commas, automatic\n+ detection will be done when reading a file. When starting to\n+ edit a file, a check is done for the :\n+ 1. If all lines end in , and 'fileformats' includes \"dos\",\n+ 'fileformat' is set to \"dos\".\n+ 2. If a is found and 'fileformats' includes \"unix\", 'fileformat'\n+ is set to \"unix\". Note that when a is found without a\n+ preceding , \"unix\" is preferred over \"dos\".\n+ 3. If 'fileformat' has not yet been set, and if a is found, and\n+ if 'fileformats' includes \"mac\", 'fileformat' is set to \"mac\".\n+ This means that \"mac\" is only chosen when:\n+ \"unix\" is not present or no is found in the file, and\n+ \"dos\" is not present or no is found in the file.\n+ Except: if \"unix\" was chosen, but there is a before\n+ the first , and there appear to be more s than s in\n+ the first few lines, \"mac\" is used.\n+ 4. If 'fileformat' is still not set, the first name from\n+ 'fileformats' is used.\n+ When reading a file into an existing buffer, the same is done, but\n+ this happens like 'fileformat' has been set appropriately for that\n+ file only, the option is not changed.\n+ When 'binary' is set, the value of 'fileformats' is not used.\n+\n+ When Vim starts up with an empty buffer the first item is used. You\n+ can overrule this by setting 'fileformat' in your .vimrc.\n+\n+ For systems with a Dos-like (), when reading files that\n+ are \":source\"ed and for vimrc files, automatic detection may be\n+ done:\n+ - When 'fileformats' is empty, there is no automatic detection. Dos\n+ format will be used.\n+ - When 'fileformats' is set to one or more names, automatic detection\n+ is done. This is based on the first in the file: If there is a\n+ in front of it, Dos format is used, otherwise Unix format is\n+ used.\n+ Also see |file-formats|.\n+ ]=],\n+ full_name = 'fileformats',\n+ list = 'onecomma',\n+ scope = { 'global' },\n+ short_desc = N_(\"automatically detected values for 'fileformat'\"),\n+ type = 'string',\n+ varname = 'p_ffs',\n+ },\n+ {\n+ abbreviation = 'fic',\n+ defaults = {\n+ condition = 'CASE_INSENSITIVE_FILENAME',\n+ if_false = false,\n+ if_true = true,\n+ doc = [[on for systems where case in file\n+ names is normally ignored]],\n+ },\n+ desc = [=[\n+ When set case is ignored when using file names and directories.\n+ See 'wildignorecase' for only ignoring case when doing completion.\n+ ]=],\n+ full_name = 'fileignorecase',\n+ scope = { 'global' },\n+ short_desc = N_('ignore case when using file names'),\n+ type = 'bool',\n+ varname = 'p_fic',\n+ },\n+ {\n+ abbreviation = 'ft',\n+ alloced = true,\n+ cb = 'did_set_filetype_or_syntax',\n+ defaults = { if_true = '' },\n+ desc = [=[\n+ When this option is set, the FileType autocommand event is triggered.\n+ All autocommands that match with the value of this option will be\n+ executed. Thus the value of 'filetype' is used in place of the file\n+ name.\n+ Otherwise this option does not always reflect the current file type.\n+ This option is normally set when the file type is detected. To enable\n+ this use the \":filetype on\" command. |:filetype|\n+ Setting this option to a different value is most useful in a modeline,\n+ for a file for which the file type is not automatically recognized.\n+ Example, for in an IDL file: >\n+ \t/* vim: set filetype=idl : */\n+ <\t|FileType| |filetypes|\n+ When a dot appears in the value then this separates two filetype\n+ names. Example: >\n+ \t/* vim: set filetype=c.doxygen : */\n+ <\tThis will use the \"c\" filetype first, then the \"doxygen\" filetype.\n+ This works both for filetype plugins and for syntax files. More than\n+ one dot may appear.\n+ This option is not copied to another buffer, independent of the 's' or\n+ 'S' flag in 'cpoptions'.\n+ Only normal file name characters can be used, `/\\*?[|<>` are illegal.\n+ ]=],\n+ expand = true,\n+ full_name = 'filetype',\n+ noglob = true,\n+ normal_fname_chars = true,\n+ scope = { 'buffer' },\n+ short_desc = N_('type of file, used for autocommands'),\n+ type = 'string',\n+ varname = 'p_ft',\n+ },\n+ {\n+ abbreviation = 'fcs',\n+ alloced = true,\n+ cb = 'did_set_chars_option',\n+ defaults = { if_true = '' },\n+ deny_duplicates = true,\n+ desc = [=[\n+ Characters to fill the statuslines, vertical separators and special\n+ lines in the window.\n+ It is a comma-separated list of items. Each item has a name, a colon\n+ and the value of that item:\n+\n+ item\t\tdefault\t\tUsed for ~\n+ stl\t\t' ' or '^'\tstatusline of the current window\n+ stlnc\t\t' ' or '='\tstatusline of the non-current windows\n+ wbr\t\t' '\t\twindow bar\n+ horiz\t\t'─' or '-'\thorizontal separators |:split|\n+ horizup\t'┴' or '-'\tupwards facing horizontal separator\n+ horizdown\t'┬' or '-'\tdownwards facing horizontal separator\n+ vert\t\t'│' or '|'\tvertical separators |:vsplit|\n+ vertleft\t'┤' or '|'\tleft facing vertical separator\n+ vertright\t'├' or '|'\tright facing vertical separator\n+ verthoriz\t'┼' or '+'\toverlapping vertical and horizontal\n+ \t\t\t\tseparator\n+ fold\t\t'·' or '-'\tfilling 'foldtext'\n+ foldopen\t'-'\t\tmark the beginning of a fold\n+ foldclose\t'+'\t\tshow a closed fold\n+ foldsep\t'│' or '|' open fold middle marker\n+ diff\t\t'-'\t\tdeleted lines of the 'diff' option\n+ msgsep\t' '\t\tmessage separator 'display'\n+ eob\t\t'~'\t\tempty lines at the end of a buffer\n+ lastline\t'@'\t\t'display' contains lastline/truncate\n+\n+ Any one that is omitted will fall back to the default. For \"stl\" and\n+ \"stlnc\" the space will be used when there is highlighting, '^' or '='\n+ otherwise.\n+\n+ Note that \"horiz\", \"horizup\", \"horizdown\", \"vertleft\", \"vertright\" and\n+ \"verthoriz\" are only used when 'laststatus' is 3, since only vertical\n+ window separators are used otherwise.\n+\n+ If 'ambiwidth' is \"double\" then \"horiz\", \"horizup\", \"horizdown\",\n+ \"vert\", \"vertleft\", \"vertright\", \"verthoriz\", \"foldsep\" and \"fold\"\n+ default to single-byte alternatives.\n+\n+ Example: >\n+ :set fillchars=stl:^,stlnc:=,vert:│,fold:·,diff:-\n+ <\tThis is similar to the default, except that these characters will also\n+ be used when there is highlighting.\n+\n+ For the \"stl\", \"stlnc\", \"foldopen\", \"foldclose\" and \"foldsep\" items\n+ single-byte and multibyte characters are supported. But double-width\n+ characters are not supported.\n+\n+ The highlighting used for these items:\n+ item\t\thighlight group ~\n+ stl\t\tStatusLine\t\t|hl-StatusLine|\n+ stlnc\t\tStatusLineNC\t\t|hl-StatusLineNC|\n+ wbr\t\tWinBar\t\t\t|hl-WinBar| or |hl-WinBarNC|\n+ horiz\t\tWinSeparator\t\t|hl-WinSeparator|\n+ horizup\tWinSeparator\t\t|hl-WinSeparator|\n+ horizdown\tWinSeparator\t\t|hl-WinSeparator|\n+ vert\t\tWinSeparator\t\t|hl-WinSeparator|\n+ vertleft\tWinSeparator\t\t|hl-WinSeparator|\n+ vertright\tWinSeparator\t\t|hl-WinSeparator|\n+ verthoriz\tWinSeparator\t\t|hl-WinSeparator|\n+ fold\t\tFolded\t\t\t|hl-Folded|\n+ diff\t\tDiffDelete\t\t|hl-DiffDelete|\n+ eob\t\tEndOfBuffer\t\t|hl-EndOfBuffer|\n+ lastline\tNonText\t\t\t|hl-NonText|\n+ ]=],\n+ full_name = 'fillchars',\n+ list = 'onecomma',\n+ redraw = { 'current_window' },\n+ scope = { 'global', 'window' },\n+ short_desc = N_('characters to use for displaying special items'),\n+ type = 'string',\n+ varname = 'p_fcs',\n+ },\n+ {\n+ abbreviation = 'fixeol',\n+ cb = 'did_set_eof_eol_fixeol_bomb',\n+ defaults = { if_true = true },\n+ desc = [=[\n+ When writing a file and this option is on, at the end of file\n+ will be restored if missing. Turn this option off if you want to\n+ preserve the situation from the original file.\n+ When the 'binary' option is set the value of this option doesn't\n+ matter.\n+ See the 'endofline' option.\n+ See |eol-and-eof| for example settings.\n+ ]=],\n+ full_name = 'fixendofline',\n+ redraw = { 'statuslines' },\n+ scope = { 'buffer' },\n+ short_desc = N_('make sure last line in file has '),\n+ type = 'bool',\n+ varname = 'p_fixeol',\n+ },\n+ {\n+ abbreviation = 'fcl',\n+ cb = 'did_set_foldclose',\n+ defaults = { if_true = '' },\n+ deny_duplicates = true,\n+ desc = [=[\n+ When set to \"all\", a fold is closed when the cursor isn't in it and\n+ its level is higher than 'foldlevel'. Useful if you want folds to\n+ automatically close when moving out of them.\n+ ]=],\n+ full_name = 'foldclose',\n+ list = 'onecomma',\n+ redraw = { 'current_window' },\n+ scope = { 'global' },\n+ short_desc = N_('close a fold when the cursor leaves it'),\n+ type = 'string',\n+ varname = 'p_fcl',\n+ },\n+ {\n+ abbreviation = 'fdc',\n+ alloced = true,\n+ cb = 'did_set_foldcolumn',\n+ defaults = { if_true = '0' },\n+ desc = [=[\n+ When and how to draw the foldcolumn. Valid values are:\n+ \"auto\": resize to the minimum amount of folds to display.\n+ \"auto:[1-9]\": resize to accommodate multiple folds up to the\n+ \t\t selected level\n+ 0: to disable foldcolumn\n+ \"[1-9]\": to display a fixed number of columns\n+ See |folding|.\n+ ]=],\n+ full_name = 'foldcolumn',\n+ redraw = { 'current_window' },\n+ scope = { 'window' },\n+ short_desc = N_('width of the column used to indicate folds'),\n+ type = 'string',\n+ },\n+ {\n+ abbreviation = 'fen',\n+ defaults = { if_true = true },\n+ desc = [=[\n+ When off, all folds are open. This option can be used to quickly\n+ switch between showing all text unfolded and viewing the text with\n+ folds (including manually opened or closed folds). It can be toggled\n+ with the |zi| command. The 'foldcolumn' will remain blank when\n+ 'foldenable' is off.\n+ This option is set by commands that create a new fold or close a fold.\n+ See |folding|.\n+ ]=],\n+ full_name = 'foldenable',\n+ redraw = { 'current_window' },\n+ scope = { 'window' },\n+ short_desc = N_('set to display all folds open'),\n+ type = 'bool',\n+ },\n+ {\n+ abbreviation = 'fde',\n+ alloced = true,\n+ cb = 'did_set_foldexpr',\n+ defaults = { if_true = '0' },\n+ desc = [=[\n+ The expression used for when 'foldmethod' is \"expr\". It is evaluated\n+ for each line to obtain its fold level. The context is set to the\n+ script where 'foldexpr' was set, script-local items can be accessed.\n+ See |fold-expr| for the usage.\n+\n+ The expression will be evaluated in the |sandbox| if set from a\n+ modeline, see |sandbox-option|.\n+ This option can't be set from a |modeline| when the 'diff' option is\n+ on or the 'modelineexpr' option is off.\n+\n+ It is not allowed to change text or jump to another window while\n+ evaluating 'foldexpr' |textlock|.\n+ ]=],\n+ full_name = 'foldexpr',\n+ modelineexpr = true,\n+ redraw = { 'current_window' },\n+ scope = { 'window' },\n+ short_desc = N_('expression used when \\'foldmethod\\' is \"expr\"'),\n+ type = 'string',\n+ },\n+ {\n+ abbreviation = 'fdi',\n+ alloced = true,\n+ cb = 'did_set_foldignore',\n+ defaults = { if_true = '#' },\n+ desc = [=[\n+ Used only when 'foldmethod' is \"indent\". Lines starting with\n+ characters in 'foldignore' will get their fold level from surrounding\n+ lines. White space is skipped before checking for this character.\n+ The default \"#\" works well for C programs. See |fold-indent|.\n+ ]=],\n+ full_name = 'foldignore',\n+ redraw = { 'current_window' },\n+ scope = { 'window' },\n+ short_desc = N_('ignore lines when \\'foldmethod\\' is \"indent\"'),\n+ type = 'string',\n+ },\n+ {\n+ abbreviation = 'fdl',\n+ cb = 'did_set_foldlevel',\n+ defaults = { if_true = 0 },\n+ desc = [=[\n+ Sets the fold level: Folds with a higher level will be closed.\n+ Setting this option to zero will close all folds. Higher numbers will\n+ close fewer folds.\n+ This option is set by commands like |zm|, |zM| and |zR|.\n+ See |fold-foldlevel|.\n+ ]=],\n+ full_name = 'foldlevel',\n+ redraw = { 'current_window' },\n+ scope = { 'window' },\n+ short_desc = N_('close folds with a level higher than this'),\n+ type = 'number',\n+ },\n+ {\n+ abbreviation = 'fdls',\n+ defaults = { if_true = -1 },\n+ desc = [=[\n+ Sets 'foldlevel' when starting to edit another buffer in a window.\n+ Useful to always start editing with all folds closed (value zero),\n+ some folds closed (one) or no folds closed (99).\n+ This is done before reading any modeline, thus a setting in a modeline\n+ overrules this option. Starting to edit a file for |diff-mode| also\n+ ignores this option and closes all folds.\n+ It is also done before BufReadPre autocommands, to allow an autocmd to\n+ overrule the 'foldlevel' value for specific files.\n+ When the value is negative, it is not used.\n+ ]=],\n+ full_name = 'foldlevelstart',\n+ redraw = { 'curswant' },\n+ scope = { 'global' },\n+ short_desc = N_(\"'foldlevel' when starting to edit a file\"),\n+ type = 'number',\n+ varname = 'p_fdls',\n+ },\n+ {\n+ abbreviation = 'fmr',\n+ alloced = true,\n+ cb = 'did_set_foldmarker',\n+ defaults = { if_true = '{{{,}}}' },\n+ deny_duplicates = true,\n+ desc = [=[\n+ The start and end marker used when 'foldmethod' is \"marker\". There\n+ must be one comma, which separates the start and end marker. The\n+ marker is a literal string (a regular expression would be too slow).\n+ See |fold-marker|.\n+ ]=],\n+ full_name = 'foldmarker',\n+ list = 'onecomma',\n+ redraw = { 'current_window' },\n+ scope = { 'window' },\n+ short_desc = N_('markers used when \\'foldmethod\\' is \"marker\"'),\n+ type = 'string',\n+ },\n+ {\n+ abbreviation = 'fdm',\n+ alloced = true,\n+ cb = 'did_set_foldmethod',\n+ defaults = { if_true = 'manual' },\n+ desc = [=[\n+ The kind of folding used for the current window. Possible values:\n+ |fold-manual|\tmanual\t Folds are created manually.\n+ |fold-indent|\tindent\t Lines with equal indent form a fold.\n+ |fold-expr|\texpr\t 'foldexpr' gives the fold level of a line.\n+ |fold-marker|\tmarker\t Markers are used to specify folds.\n+ |fold-syntax|\tsyntax\t Syntax highlighting items specify folds.\n+ |fold-diff|\tdiff\t Fold text that is not changed.\n+ ]=],\n+ full_name = 'foldmethod',\n+ redraw = { 'current_window' },\n+ scope = { 'window' },\n+ short_desc = N_('folding type'),\n+ type = 'string',\n+ },\n+ {\n+ abbreviation = 'fml',\n+ cb = 'did_set_foldminlines',\n+ defaults = { if_true = 1 },\n+ desc = [=[\n+ Sets the number of screen lines above which a fold can be displayed\n+ closed. Also for manually closed folds. With the default value of\n+ one a fold can only be closed if it takes up two or more screen lines.\n+ Set to zero to be able to close folds of just one screen line.\n+ Note that this only has an effect on what is displayed. After using\n+ \"zc\" to close a fold, which is displayed open because it's smaller\n+ than 'foldminlines', a following \"zc\" may close a containing fold.\n+ ]=],\n+ full_name = 'foldminlines',\n+ redraw = { 'current_window' },\n+ scope = { 'window' },\n+ short_desc = N_('minimum number of lines for a fold to be closed'),\n+ type = 'number',\n+ },\n+ {\n+ abbreviation = 'fdn',\n+ cb = 'did_set_foldnestmax',\n+ defaults = { if_true = 20 },\n+ desc = [=[\n+ Sets the maximum nesting of folds for the \"indent\" and \"syntax\"\n+ methods. This avoids that too many folds will be created. Using more\n+ than 20 doesn't work, because the internal limit is 20.\n+ ]=],\n+ full_name = 'foldnestmax',\n+ redraw = { 'current_window' },\n+ scope = { 'window' },\n+ short_desc = N_('maximum fold depth'),\n+ type = 'number',\n+ },\n+ {\n+ abbreviation = 'fdo',\n+ cb = 'did_set_foldopen',\n+ defaults = { if_true = 'block,hor,mark,percent,quickfix,search,tag,undo' },\n+ deny_duplicates = true,\n+ desc = [=[\n+ Specifies for which type of commands folds will be opened, if the\n+ command moves the cursor into a closed fold. It is a comma-separated\n+ list of items.\n+ NOTE: When the command is part of a mapping this option is not used.\n+ Add the |zv| command to the mapping to get the same effect.\n+ (rationale: the mapping may want to control opening folds itself)\n+\n+ \titem\t\tcommands ~\n+ \tall\t\tany\n+ \tblock\t\t(, {, [[, [{, etc.\n+ \thor\t\thorizontal movements: \"l\", \"w\", \"fx\", etc.\n+ \tinsert\t\tany command in Insert mode\n+ \tjump\t\tfar jumps: \"G\", \"gg\", etc.\n+ \tmark\t\tjumping to a mark: \"'m\", CTRL-O, etc.\n+ \tpercent\t\t\"%\"\n+ \tquickfix\t\":cn\", \":crew\", \":make\", etc.\n+ \tsearch\t\tsearch for a pattern: \"/\", \"n\", \"*\", \"gd\", etc.\n+ \t\t\t(not for a search pattern in a \":\" command)\n+ \t\t\tAlso for |[s| and |]s|.\n+ \ttag\t\tjumping to a tag: \":ta\", CTRL-T, etc.\n+ \tundo\t\tundo or redo: \"u\" and CTRL-R\n+ When a movement command is used for an operator (e.g., \"dl\" or \"y%\")\n+ this option is not used. This means the operator will include the\n+ whole closed fold.\n+ Note that vertical movements are not here, because it would make it\n+ very difficult to move onto a closed fold.\n+ In insert mode the folds containing the cursor will always be open\n+ when text is inserted.\n+ To close folds you can re-apply 'foldlevel' with the |zx| command or\n+ set the 'foldclose' option to \"all\".\n+ ]=],\n+ full_name = 'foldopen',\n+ list = 'onecomma',\n+ redraw = { 'curswant' },\n+ scope = { 'global' },\n+ short_desc = N_('for which commands a fold will be opened'),\n+ type = 'string',\n+ varname = 'p_fdo',\n+ },\n+ {\n+ abbreviation = 'fdt',\n+ alloced = true,\n+ cb = 'did_set_optexpr',\n+ defaults = { if_true = 'foldtext()' },\n+ desc = [=[\n+ An expression which is used to specify the text displayed for a closed\n+ fold. The context is set to the script where 'foldexpr' was set,\n+ script-local items can be accessed. See |fold-foldtext| for the\n+ usage.\n+\n+ The expression will be evaluated in the |sandbox| if set from a\n+ modeline, see |sandbox-option|.\n+ This option cannot be set in a modeline when 'modelineexpr' is off.\n+\n+ It is not allowed to change text or jump to another window while\n+ evaluating 'foldtext' |textlock|.\n+ ]=],\n+ full_name = 'foldtext',\n+ modelineexpr = true,\n+ redraw = { 'current_window' },\n+ scope = { 'window' },\n+ short_desc = N_('expression used to display for a closed fold'),\n+ type = 'string',\n+ },\n+ {\n+ abbreviation = 'fex',\n+ alloced = true,\n+ cb = 'did_set_optexpr',\n+ defaults = { if_true = '' },\n+ desc = [=[\n+ Expression which is evaluated to format a range of lines for the |gq|\n+ operator or automatic formatting (see 'formatoptions'). When this\n+ option is empty 'formatprg' is used.\n+\n+ The |v:lnum| variable holds the first line to be formatted.\n+ The |v:count| variable holds the number of lines to be formatted.\n+ The |v:char| variable holds the character that is going to be\n+ \t inserted if the expression is being evaluated due to\n+ \t automatic formatting. This can be empty. Don't insert\n+ \t it yet!\n+\n+ Example: >\n+ \t:set formatexpr=mylang#Format()\n+ <\tThis will invoke the mylang#Format() function in the\n+ autoload/mylang.vim file in 'runtimepath'. |autoload|\n+\n+ The expression is also evaluated when 'textwidth' is set and adding\n+ text beyond that limit. This happens under the same conditions as\n+ when internal formatting is used. Make sure the cursor is kept in the\n+ same spot relative to the text then! The |mode()| function will\n+ return \"i\" or \"R\" in this situation.\n+\n+ When the expression evaluates to non-zero Vim will fall back to using\n+ the internal format mechanism.\n+\n+ If the expression starts with s: or ||, then it is replaced with\n+ the script ID (|local-function|). Example: >\n+ \tset formatexpr=s:MyFormatExpr()\n+ \tset formatexpr=SomeFormatExpr()\n+ <\tOtherwise, the expression is evaluated in the context of the script\n+ where the option was set, thus script-local items are available.\n+\n+ The expression will be evaluated in the |sandbox| when set from a\n+ modeline, see |sandbox-option|. That stops the option from working,\n+ since changing the buffer text is not allowed.\n+ This option cannot be set in a modeline when 'modelineexpr' is off.\n+ NOTE: This option is set to \"\" when 'compatible' is set.\n+ ]=],\n+ full_name = 'formatexpr',\n+ modelineexpr = true,\n+ scope = { 'buffer' },\n+ short_desc = N_('expression used with \"gq\" command'),\n+ type = 'string',\n+ varname = 'p_fex',\n+ },\n+ {\n+ abbreviation = 'fo',\n+ alloced = true,\n+ cb = 'did_set_formatoptions',\n+ defaults = { if_true = macros('DFLT_FO_VIM') },\n+ desc = [=[\n+ This is a sequence of letters which describes how automatic\n+ formatting is to be done. See |fo-table|. Commas can be inserted for\n+ readability.\n+ To avoid problems with flags that are added in the future, use the\n+ \"+=\" and \"-=\" feature of \":set\" |add-option-flags|.\n+ ]=],\n+ full_name = 'formatoptions',\n+ list = 'flags',\n+ scope = { 'buffer' },\n+ short_desc = N_('how automatic formatting is to be done'),\n+ type = 'string',\n+ varname = 'p_fo',\n+ },\n+ {\n+ abbreviation = 'flp',\n+ alloced = true,\n+ defaults = { if_true = '^\\\\s*\\\\d\\\\+[\\\\]:.)}\\\\t ]\\\\s*' },\n+ desc = [=[\n+ A pattern that is used to recognize a list header. This is used for\n+ the \"n\" flag in 'formatoptions'.\n+ The pattern must match exactly the text that will be the indent for\n+ the line below it. You can use |/\\ze| to mark the end of the match\n+ while still checking more characters. There must be a character\n+ following the pattern, when it matches the whole line it is handled\n+ like there is no match.\n+ The default recognizes a number, followed by an optional punctuation\n+ character and white space.\n+ ]=],\n+ full_name = 'formatlistpat',\n+ scope = { 'buffer' },\n+ short_desc = N_('pattern used to recognize a list header'),\n+ type = 'string',\n+ varname = 'p_flp',\n+ },\n+ {\n+ abbreviation = 'fp',\n+ defaults = { if_true = '' },\n+ desc = [=[\n+ The name of an external program that will be used to format the lines\n+ selected with the |gq| operator. The program must take the input on\n+ stdin and produce the output on stdout. The Unix program \"fmt\" is\n+ such a program.\n+ If the 'formatexpr' option is not empty it will be used instead.\n+ Otherwise, if 'formatprg' option is an empty string, the internal\n+ format function will be used |C-indenting|.\n+ Environment variables are expanded |:set_env|. See |option-backslash|\n+ about including spaces and backslashes.\n+ This option cannot be set from a |modeline| or in the |sandbox|, for\n+ security reasons.\n+ ]=],\n+ expand = true,\n+ full_name = 'formatprg',\n+ scope = { 'global', 'buffer' },\n+ secure = true,\n+ short_desc = N_('name of external program used with \"gq\" command'),\n+ type = 'string',\n+ varname = 'p_fp',\n+ },\n+ {\n+ abbreviation = 'fs',\n+ defaults = { if_true = false },\n+ desc = [=[\n+ When on, the OS function fsync() will be called after saving a file\n+ (|:write|, |writefile()|, …), |swap-file|, |undo-persistence| and |shada-file|.\n+ This flushes the file to disk, ensuring that it is safely written.\n+ Slow on some systems: writing buffers, quitting Nvim, and other\n+ operations may sometimes take a few seconds.\n+\n+ Files are ALWAYS flushed ('fsync' is ignored) when:\n+ - |CursorHold| event is triggered\n+ - |:preserve| is called\n+ - system signals low battery life\n+ - Nvim exits abnormally\n+\n+ This option cannot be set from a |modeline| or in the |sandbox|, for\n+ security reasons.\n+ ]=],\n+ full_name = 'fsync',\n+ scope = { 'global' },\n+ secure = true,\n+ short_desc = N_('whether to invoke fsync() after file write'),\n+ type = 'bool',\n+ varname = 'p_fs',\n+ },\n+ {\n+ abbreviation = 'gd',\n+ defaults = { if_true = false },\n+ desc = [=[\n+ When on, the \":substitute\" flag 'g' is default on. This means that\n+ all matches in a line are substituted instead of one. When a 'g' flag\n+ is given to a \":substitute\" command, this will toggle the substitution\n+ of all or one match. See |complex-change|.\n+\n+ \tcommand\t\t'gdefault' on\t'gdefault' off\t~\n+ \t:s///\t\t subst. all\t subst. one\n+ \t:s///g\t\t subst. one\t subst. all\n+ \t:s///gg\t\t subst. all\t subst. one\n+\n+ DEPRECATED: Setting this option may break plugins that are not aware\n+ of this option. Also, many users get confused that adding the /g flag\n+ has the opposite effect of that it normally does.\n+ ]=],\n+ full_name = 'gdefault',\n+ scope = { 'global' },\n+ short_desc = N_('the \":substitute\" flag \\'g\\' is default on'),\n+ type = 'bool',\n+ varname = 'p_gd',\n+ },\n+ {\n+ abbreviation = 'gfm',\n+ defaults = { if_true = macros('DFLT_GREPFORMAT') },\n+ deny_duplicates = true,\n+ desc = [=[\n+ Format to recognize for the \":grep\" command output.\n+ This is a scanf-like string that uses the same format as the\n+ 'errorformat' option: see |errorformat|.\n+ ]=],\n+ full_name = 'grepformat',\n+ list = 'onecomma',\n+ scope = { 'global' },\n+ short_desc = N_(\"format of 'grepprg' output\"),\n+ type = 'string',\n+ varname = 'p_gefm',\n+ },\n+ {\n+ abbreviation = 'gp',\n+ defaults = {\n+ condition = 'MSWIN',\n+ if_false = 'grep -n $* /dev/null',\n+ if_true = 'findstr /n $* nul',\n+ doc = [[\"grep -n \",\n+ Unix: \"grep -n $* /dev/null\"]],\n+ },\n+ desc = [=[\n+ Program to use for the |:grep| command. This option may contain '%'\n+ and '#' characters, which are expanded like when used in a command-\n+ line. The placeholder \"$*\" is allowed to specify where the arguments\n+ will be included. Environment variables are expanded |:set_env|. See\n+ |option-backslash| about including spaces and backslashes.\n+ When your \"grep\" accepts the \"-H\" argument, use this to make \":grep\"\n+ also work well with a single file: >\n+ \t:set grepprg=grep\\ -nH\n+ <\tSpecial value: When 'grepprg' is set to \"internal\" the |:grep| command\n+ works like |:vimgrep|, |:lgrep| like |:lvimgrep|, |:grepadd| like\n+ |:vimgrepadd| and |:lgrepadd| like |:lvimgrepadd|.\n+ See also the section |:make_makeprg|, since most of the comments there\n+ apply equally to 'grepprg'.\n+ This option cannot be set from a |modeline| or in the |sandbox|, for\n+ security reasons.\n+ ]=],\n+ expand = true,\n+ full_name = 'grepprg',\n+ scope = { 'global', 'buffer' },\n+ secure = true,\n+ short_desc = N_('program to use for \":grep\"'),\n+ type = 'string',\n+ varname = 'p_gp',\n+ },\n+ {\n+ abbreviation = 'gcr',\n+ cb = 'did_set_guicursor',\n+ defaults = { if_true = 'n-v-c-sm:block,i-ci-ve:ver25,r-cr-o:hor20' },\n+ deny_duplicates = true,\n+ desc = [=[\n+ Configures the cursor style for each mode. Works in the GUI and many\n+ terminals. See |tui-cursor-shape|.\n+\n+ To disable cursor-styling, reset the option: >\n+ \t:set guicursor=\n+\n+ <\tTo enable mode shapes, \"Cursor\" highlight, and blinking: >\n+ \t:set guicursor=n-v-c:block,i-ci-ve:ver25,r-cr:hor20,o:hor50\n+ \t \\,a:blinkwait700-blinkoff400-blinkon250-Cursor/lCursor\n+ \t \\,sm:block-blinkwait175-blinkoff150-blinkon175\n+\n+ <\tThe option is a comma-separated list of parts. Each part consists of a\n+ mode-list and an argument-list:\n+ \tmode-list:argument-list,mode-list:argument-list,..\n+ The mode-list is a dash separated list of these modes:\n+ \tn\tNormal mode\n+ \tv\tVisual mode\n+ \tve\tVisual mode with 'selection' \"exclusive\" (same as 'v',\n+ \t\tif not specified)\n+ \to\tOperator-pending mode\n+ \ti\tInsert mode\n+ \tr\tReplace mode\n+ \tc\tCommand-line Normal (append) mode\n+ \tci\tCommand-line Insert mode\n+ \tcr\tCommand-line Replace mode\n+ \tsm\tshowmatch in Insert mode\n+ \ta\tall modes\n+ The argument-list is a dash separated list of these arguments:\n+ \thor{N}\thorizontal bar, {N} percent of the character height\n+ \tver{N}\tvertical bar, {N} percent of the character width\n+ \tblock\tblock cursor, fills the whole character\n+ \t\t- Only one of the above three should be present.\n+ \t\t- Default is \"block\" for each mode.\n+ \tblinkwait{N}\t\t\t\t*cursor-blinking*\n+ \tblinkon{N}\n+ \tblinkoff{N}\n+ \t\tblink times for cursor: blinkwait is the delay before\n+ \t\tthe cursor starts blinking, blinkon is the time that\n+ \t\tthe cursor is shown and blinkoff is the time that the\n+ \t\tcursor is not shown. Times are in msec. When one of\n+ \t\tthe numbers is zero, there is no blinking. E.g.: >\n+ \t\t\t:set guicursor=n:blinkon0\n+ <\t\t\t- Default is \"blinkon0\" for each mode.\n+ \t{group-name}\n+ \t\tHighlight group that decides the color and font of the\n+ \t\tcursor.\n+ \t\tIn the |TUI|:\n+ \t\t- |inverse|/reverse and no group-name are interpreted\n+ \t\t as \"host-terminal default cursor colors\" which\n+ \t\t typically means \"inverted bg and fg colors\".\n+ \t\t- |ctermfg| and |guifg| are ignored.\n+ \t{group-name}/{group-name}\n+ \t\tTwo highlight group names, the first is used when\n+ \t\tno language mappings are used, the other when they\n+ \t\tare. |language-mapping|\n+\n+ Examples of parts:\n+ n-c-v:block-nCursor\tIn Normal, Command-line and Visual mode, use a\n+ \t\t\tblock cursor with colors from the \"nCursor\"\n+ \t\t\thighlight group\n+ n-v-c-sm:block,i-ci-ve:ver25-Cursor,r-cr-o:hor20\n+ \t\t\tIn Normal et al. modes, use a block cursor\n+ \t\t\twith the default colors defined by the host\n+ \t\t\tterminal. In Insert-likes modes, use\n+ \t\t\ta vertical bar cursor with colors from\n+ \t\t\t\"Cursor\" highlight group. In Replace-likes\n+ \t\t\tmodes, use a underline cursor with\n+ \t\t\tdefault colors.\n+ i-ci:ver30-iCursor-blinkwait300-blinkon200-blinkoff150\n+ \t\t\tIn Insert and Command-line Insert mode, use a\n+ \t\t\t30% vertical bar cursor with colors from the\n+ \t\t\t\"iCursor\" highlight group. Blink a bit\n+ \t\t\tfaster.\n+\n+ The 'a' mode is different. It will set the given argument-list for\n+ all modes. It does not reset anything to defaults. This can be used\n+ to do a common setting for all modes. For example, to switch off\n+ blinking: \"a:blinkon0\"\n+\n+ Examples of cursor highlighting: >\n+ :highlight Cursor gui=reverse guifg=NONE guibg=NONE\n+ :highlight Cursor gui=NONE guifg=bg guibg=fg\n+ <\n+ ]=],\n+ full_name = 'guicursor',\n+ list = 'onecomma',\n+ scope = { 'global' },\n+ short_desc = N_('GUI: settings for cursor shape and blinking'),\n+ tags = { 'E545', 'E546', 'E548', 'E549' },\n+ type = 'string',\n+ varname = 'p_guicursor',\n+ },\n+ {\n+ abbreviation = 'gfn',\n+ defaults = { if_true = '' },\n+ desc = [=[\n+ This is a list of fonts which will be used for the GUI version of Vim.\n+ In its simplest form the value is just one font name. When\n+ the font cannot be found you will get an error message. To try other\n+ font names a list can be specified, font names separated with commas.\n+ The first valid font is used.\n+\n+ Spaces after a comma are ignored. To include a comma in a font name\n+ precede it with a backslash. Setting an option requires an extra\n+ backslash before a space and a backslash. See also\n+ |option-backslash|. For example: >\n+ :set guifont=Screen15,\\ 7x13,font\\\\,with\\\\,commas\n+ <\twill make Vim try to use the font \"Screen15\" first, and if it fails it\n+ will try to use \"7x13\" and then \"font,with,commas\" instead.\n+\n+ If none of the fonts can be loaded, Vim will keep the current setting.\n+ If an empty font list is given, Vim will try using other resource\n+ settings (for X, it will use the Vim.font resource), and finally it\n+ will try some builtin default which should always be there (\"7x13\" in\n+ the case of X). The font names given should be \"normal\" fonts. Vim\n+ will try to find the related bold and italic fonts.\n+\n+ For Win32 and Mac OS: >\n+ :set guifont=*\n+ <\twill bring up a font requester, where you can pick the font you want.\n+\n+ The font name depends on the GUI used.\n+\n+ For Mac OSX you can use something like this: >\n+ :set guifont=Monaco:h10\n+ <\t\t\t\t\t\t\t\t*E236*\n+ Note that the fonts must be mono-spaced (all characters have the same\n+ width).\n+\n+ To preview a font on X11, you might be able to use the \"xfontsel\"\n+ program. The \"xlsfonts\" program gives a list of all available fonts.\n+\n+ For the Win32 GUI\t\t\t\t\t*E244* *E245*\n+ - takes these options in the font name:\n+ \thXX - height is XX (points, can be floating-point)\n+ \twXX - width is XX (points, can be floating-point)\n+ \tb - bold\n+ \ti - italic\n+ \tu - underline\n+ \ts - strikeout\n+ \tcXX - character set XX. Valid charsets are: ANSI, ARABIC,\n+ \t BALTIC, CHINESEBIG5, DEFAULT, EASTEUROPE, GB2312, GREEK,\n+ \t HANGEUL, HEBREW, JOHAB, MAC, OEM, RUSSIAN, SHIFTJIS,\n+ \t SYMBOL, THAI, TURKISH, VIETNAMESE ANSI and BALTIC.\n+ \t Normally you would use \"cDEFAULT\".\n+\n+ Use a ':' to separate the options.\n+ - A '_' can be used in the place of a space, so you don't need to use\n+ backslashes to escape the spaces.\n+ - Examples: >\n+ :set guifont=courier_new:h12:w5:b:cRUSSIAN\n+ :set guifont=Andale_Mono:h7.5:w4.5\n+ <\n+ ]=],\n+ deny_duplicates = true,\n+ full_name = 'guifont',\n+ list = 'onecomma',\n+ redraw = { 'ui_option' },\n+ scope = { 'global' },\n+ short_desc = N_('GUI: Name(s) of font(s) to be used'),\n+ tags = { 'E235', 'E596' },\n+ type = 'string',\n+ varname = 'p_guifont',\n+ },\n+ {\n+ abbreviation = 'gfw',\n+ defaults = { if_true = '' },\n+ deny_duplicates = true,\n+ desc = [=[\n+ Comma-separated list of fonts to be used for double-width characters.\n+ The first font that can be loaded is used.\n+ Note: The size of these fonts must be exactly twice as wide as the one\n+ specified with 'guifont' and the same height.\n+\n+ When 'guifont' has a valid font and 'guifontwide' is empty Vim will\n+ attempt to set 'guifontwide' to a matching double-width font.\n+ ]=],\n+ full_name = 'guifontwide',\n+ list = 'onecomma',\n+ redraw = { 'ui_option' },\n+ scope = { 'global' },\n+ short_desc = N_('list of font names for double-wide characters'),\n+ tags = { 'E231', 'E533', 'E534' },\n+ type = 'string',\n+ varname = 'p_guifontwide',\n+ },\n+ {\n+ abbreviation = 'go',\n+ defaults = {\n+ if_true = '',\n+ doc = '\"egmrLT\" (MS-Windows)',\n+ },\n+ desc = [=[\n+ This option only has an effect in the GUI version of Vim. It is a\n+ sequence of letters which describes what components and options of the\n+ GUI should be used.\n+ To avoid problems with flags that are added in the future, use the\n+ \"+=\" and \"-=\" feature of \":set\" |add-option-flags|.\n+\n+ Valid letters are as follows:\n+ \t\t\t\t\t\t*guioptions_a* *'go-a'*\n+ 'a'\tAutoselect: If present, then whenever VISUAL mode is started,\n+ \tor the Visual area extended, Vim tries to become the owner of\n+ \tthe windowing system's global selection. This means that the\n+ \tVisually highlighted text is available for pasting into other\n+ \tapplications as well as into Vim itself. When the Visual mode\n+ \tends, possibly due to an operation on the text, or when an\n+ \tapplication wants to paste the selection, the highlighted text\n+ \tis automatically yanked into the \"* selection register.\n+ \tThus the selection is still available for pasting into other\n+ \tapplications after the VISUAL mode has ended.\n+ \t If not present, then Vim won't become the owner of the\n+ \twindowing system's global selection unless explicitly told to\n+ \tby a yank or delete operation for the \"* register.\n+ \tThe same applies to the modeless selection.\n+ \t\t\t\t\t\t\t*'go-P'*\n+ 'P'\tLike autoselect but using the \"+ register instead of the \"*\n+ \tregister.\n+ \t\t\t\t\t\t\t*'go-A'*\n+ 'A'\tAutoselect for the modeless selection. Like 'a', but only\n+ \tapplies to the modeless selection.\n+\n+ \t 'guioptions' autoselect Visual autoselect modeless ~\n+ \t\t \"\"\t\t -\t\t\t -\n+ \t\t \"a\"\t\tyes\t\t\tyes\n+ \t\t \"A\"\t\t -\t\t\tyes\n+ \t\t \"aA\"\t\tyes\t\t\tyes\n+\n+ \t\t\t\t\t\t\t*'go-c'*\n+ 'c'\tUse console dialogs instead of popup dialogs for simple\n+ \tchoices.\n+ \t\t\t\t\t\t\t*'go-d'*\n+ 'd'\tUse dark theme variant if available.\n+ \t\t\t\t\t\t\t*'go-e'*\n+ 'e'\tAdd tab pages when indicated with 'showtabline'.\n+ \t'guitablabel' can be used to change the text in the labels.\n+ \tWhen 'e' is missing a non-GUI tab pages line may be used.\n+ \tThe GUI tabs are only supported on some systems, currently\n+ \tMac OS/X and MS-Windows.\n+ \t\t\t\t\t\t\t*'go-i'*\n+ 'i'\tUse a Vim icon.\n+ \t\t\t\t\t\t\t*'go-m'*\n+ 'm'\tMenu bar is present.\n+ \t\t\t\t\t\t\t*'go-M'*\n+ 'M'\tThe system menu \"$VIMRUNTIME/menu.vim\" is not sourced. Note\n+ \tthat this flag must be added in the vimrc file, before\n+ \tswitching on syntax or filetype recognition (when the |gvimrc|\n+ \tfile is sourced the system menu has already been loaded; the\n+ \t`:syntax on` and `:filetype on` commands load the menu too).\n+ \t\t\t\t\t\t\t*'go-g'*\n+ 'g'\tGrey menu items: Make menu items that are not active grey. If\n+ \t'g' is not included inactive menu items are not shown at all.\n+ \t\t\t\t\t\t\t*'go-T'*\n+ 'T'\tInclude Toolbar. Currently only in Win32 GUI.\n+ \t\t\t\t\t\t\t*'go-r'*\n+ 'r'\tRight-hand scrollbar is always present.\n+ \t\t\t\t\t\t\t*'go-R'*\n+ 'R'\tRight-hand scrollbar is present when there is a vertically\n+ \tsplit window.\n+ \t\t\t\t\t\t\t*'go-l'*\n+ 'l'\tLeft-hand scrollbar is always present.\n+ \t\t\t\t\t\t\t*'go-L'*\n+ 'L'\tLeft-hand scrollbar is present when there is a vertically\n+ \tsplit window.\n+ \t\t\t\t\t\t\t*'go-b'*\n+ 'b'\tBottom (horizontal) scrollbar is present. Its size depends on\n+ \tthe longest visible line, or on the cursor line if the 'h'\n+ \tflag is included. |gui-horiz-scroll|\n+ \t\t\t\t\t\t\t*'go-h'*\n+ 'h'\tLimit horizontal scrollbar size to the length of the cursor\n+ \tline. Reduces computations. |gui-horiz-scroll|\n+\n+ And yes, you may even have scrollbars on the left AND the right if\n+ you really want to :-). See |gui-scrollbars| for more information.\n+\n+ \t\t\t\t\t\t\t*'go-v'*\n+ 'v'\tUse a vertical button layout for dialogs. When not included,\n+ \ta horizontal layout is preferred, but when it doesn't fit a\n+ \tvertical layout is used anyway. Not supported in GTK 3.\n+ \t\t\t\t\t\t\t*'go-p'*\n+ 'p'\tUse Pointer callbacks for X11 GUI. This is required for some\n+ \twindow managers. If the cursor is not blinking or hollow at\n+ \tthe right moment, try adding this flag. This must be done\n+ \tbefore starting the GUI. Set it in your |gvimrc|. Adding or\n+ \tremoving it after the GUI has started has no effect.\n+ \t\t\t\t\t\t\t*'go-k'*\n+ 'k'\tKeep the GUI window size when adding/removing a scrollbar, or\n+ \ttoolbar, tabline, etc. Instead, the behavior is similar to\n+ \twhen the window is maximized and will adjust 'lines' and\n+ \t'columns' to fit to the window. Without the 'k' flag Vim will\n+ \ttry to keep 'lines' and 'columns' the same when adding and\n+ \tremoving GUI components.\n+ ]=],\n+ enable_if = false,\n+ full_name = 'guioptions',\n+ list = 'flags',\n+ scope = { 'global' },\n+ short_desc = N_('GUI: Which components and options are used'),\n+ type = 'string',\n+ },\n+ {\n+ abbreviation = 'gtl',\n+ desc = [=[\n+ When non-empty describes the text to use in a label of the GUI tab\n+ pages line. When empty and when the result is empty Vim will use a\n+ default label. See |setting-guitablabel| for more info.\n+\n+ The format of this option is like that of 'statusline'.\n+ 'guitabtooltip' is used for the tooltip, see below.\n+ The expression will be evaluated in the |sandbox| when set from a\n+ modeline, see |sandbox-option|.\n+ This option cannot be set in a modeline when 'modelineexpr' is off.\n+\n+ Only used when the GUI tab pages line is displayed. 'e' must be\n+ present in 'guioptions'. For the non-GUI tab pages line 'tabline' is\n+ used.\n+ ]=],\n+ enable_if = false,\n+ full_name = 'guitablabel',\n+ modelineexpr = true,\n+ redraw = { 'current_window' },\n+ scope = { 'global' },\n+ short_desc = N_('GUI: custom label for a tab page'),\n+ type = 'string',\n+ },\n+ {\n+ abbreviation = 'gtt',\n+ desc = [=[\n+ When non-empty describes the text to use in a tooltip for the GUI tab\n+ pages line. When empty Vim will use a default tooltip.\n+ This option is otherwise just like 'guitablabel' above.\n+ You can include a line break. Simplest method is to use |:let|: >\n+ \t:let &guitabtooltip = \"line one\\nline two\"\n+ <\n+ ]=],\n+ enable_if = false,\n+ full_name = 'guitabtooltip',\n+ redraw = { 'current_window' },\n+ scope = { 'global' },\n+ short_desc = N_('GUI: custom tooltip for a tab page'),\n+ type = 'string',\n+ },\n+ {\n+ abbreviation = 'hf',\n+ cb = 'did_set_helpfile',\n+ defaults = {\n+ if_true = macros('DFLT_HELPFILE'),\n+ doc = [[(MS-Windows) \"$VIMRUNTIME\\doc\\help.txt\"\n+ (others) \"$VIMRUNTIME/doc/help.txt\")\n+ ]],\n+ },\n+ desc = [=[\n+ Name of the main help file. All distributed help files should be\n+ placed together in one directory. Additionally, all \"doc\" directories\n+ in 'runtimepath' will be used.\n+ Environment variables are expanded |:set_env|. For example:\n+ \"$VIMRUNTIME/doc/help.txt\". If $VIMRUNTIME is not set, $VIM is also\n+ tried. Also see |$VIMRUNTIME| and |option-backslash| about including\n+ spaces and backslashes.\n+ This option cannot be set from a |modeline| or in the |sandbox|, for\n+ security reasons.\n+ ]=],\n+ expand = true,\n+ full_name = 'helpfile',\n+ scope = { 'global' },\n+ secure = true,\n+ short_desc = N_('full path name of the main help file'),\n+ type = 'string',\n+ varname = 'p_hf',\n+ },\n+ {\n+ abbreviation = 'hh',\n+ cb = 'did_set_helpheight',\n+ defaults = { if_true = 20 },\n+ desc = [=[\n+ Minimal initial height of the help window when it is opened with the\n+ \":help\" command. The initial height of the help window is half of the\n+ current window, or (when the 'ea' option is on) the same as other\n+ windows. When the height is less than 'helpheight', the height is\n+ set to 'helpheight'. Set to zero to disable.\n+ ]=],\n+ full_name = 'helpheight',\n+ scope = { 'global' },\n+ short_desc = N_('minimum height of a new help window'),\n+ type = 'number',\n+ varname = 'p_hh',\n+ },\n+ {\n+ abbreviation = 'hlg',\n+ cb = 'did_set_helplang',\n+ defaults = {\n+ if_true = '',\n+ doc = 'messages language or empty',\n+ },\n+ deny_duplicates = true,\n+ desc = [=[\n+ Comma-separated list of languages. Vim will use the first language\n+ for which the desired help can be found. The English help will always\n+ be used as a last resort. You can add \"en\" to prefer English over\n+ another language, but that will only find tags that exist in that\n+ language and not in the English help.\n+ Example: >\n+ \t:set helplang=de,it\n+ <\tThis will first search German, then Italian and finally English help\n+ files.\n+ When using |CTRL-]| and \":help!\" in a non-English help file Vim will\n+ try to find the tag in the current language before using this option.\n+ See |help-translated|.\n+ ]=],\n+ full_name = 'helplang',\n+ list = 'onecomma',\n+ scope = { 'global' },\n+ short_desc = N_('preferred help languages'),\n+ type = 'string',\n+ varname = 'p_hlg',\n+ },\n+ {\n+ abbreviation = 'hid',\n+ defaults = { if_true = true },\n+ desc = [=[\n+ When off a buffer is unloaded (including loss of undo information)\n+ when it is |abandon|ed. When on a buffer becomes hidden when it is\n+ |abandon|ed. A buffer displayed in another window does not become\n+ hidden, of course.\n+\n+ Commands that move through the buffer list sometimes hide a buffer\n+ although the 'hidden' option is off when these three are true:\n+ - the buffer is modified\n+ - 'autowrite' is off or writing is not possible\n+ - the '!' flag was used\n+ Also see |windows|.\n+\n+ To hide a specific buffer use the 'bufhidden' option.\n+ 'hidden' is set for one command with \":hide {command}\" |:hide|.\n+ ]=],\n+ full_name = 'hidden',\n+ scope = { 'global' },\n+ short_desc = N_(\"don't unload buffer when it is |abandon|ed\"),\n+ type = 'bool',\n+ varname = 'p_hid',\n+ },\n+ {\n+ abbreviation = 'hl',\n+ cb = 'did_set_highlight',\n+ defaults = { if_true = macros('HIGHLIGHT_INIT') },\n+ deny_duplicates = true,\n+ full_name = 'highlight',\n+ list = 'onecomma',\n+ scope = { 'global' },\n+ short_desc = N_('sets highlighting mode for various occasions'),\n+ type = 'string',\n+ varname = 'p_hl',\n+ },\n+ {\n+ abbreviation = 'hi',\n+ defaults = { if_true = 10000 },\n+ desc = [=[\n+ A history of \":\" commands, and a history of previous search patterns\n+ is remembered. This option decides how many entries may be stored in\n+ each of these histories (see |cmdline-editing|).\n+ The maximum value is 10000.\n+ ]=],\n+ full_name = 'history',\n+ scope = { 'global' },\n+ short_desc = N_('number of command-lines that are remembered'),\n+ type = 'number',\n+ varname = 'p_hi',\n+ },\n+ {\n+ abbreviation = 'hk',\n+ defaults = { if_true = false },\n+ full_name = 'hkmap',\n+ scope = { 'global' },\n+ short_desc = N_('No descripti", + "html_url": "https://github.com/neovim/neovim/pull/24528#discussion_r1284422123", + "id": 1284422123, + "in_reply_to_id": 1284344262, + "line": null, + "node_id": "PRRC_kwDOAPphoM5Mjrnr", + "original_commit_id": "8735c361b3f2657c5ac340f75c31cdaf12cd6e59", + "original_line": 7660, + "original_position": 10719, + "original_start_line": null, + "path": "src/nvim/options.lua", + "position": null, + "pull_request_review_id": 1562870684, + "pull_request_url": "https://api.github.com/repos/neovim/neovim/pulls/24528", + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/pulls/comments/1284422123/reactions" + }, + "side": "RIGHT", + "start_line": null, + "start_side": null, + "subject_type": "line", + "updated_at": "2023-08-04T13:31:40Z", + "url": "https://api.github.com/repos/neovim/neovim/pulls/comments/1284422123", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/35768171?v=4", + "events_url": "https://api.github.com/users/zeertzjq/events{/privacy}", + "followers_url": "https://api.github.com/users/zeertzjq/followers", + "following_url": "https://api.github.com/users/zeertzjq/following{/other_user}", + "gists_url": "https://api.github.com/users/zeertzjq/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/zeertzjq", + "id": 35768171, + "login": "zeertzjq", + "node_id": "MDQ6VXNlcjM1NzY4MTcx", + "organizations_url": "https://api.github.com/users/zeertzjq/orgs", + "received_events_url": "https://api.github.com/users/zeertzjq/received_events", + "repos_url": "https://api.github.com/users/zeertzjq/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/zeertzjq/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/zeertzjq/subscriptions", + "type": "User", + "url": "https://api.github.com/users/zeertzjq" + } + }, + { + "_links": { + "html": { + "href": "https://github.com/neovim/neovim/pull/24528#discussion_r1284427437" + }, + "pull_request": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/24528" + }, + "self": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/comments/1284427437" + } + }, + "author_association": "MEMBER", + "body": "Do we definitely need to ignore all these files? Generated code can have errors.", + "commit_id": "fe5eadf4a3c0dd57c5a9936c4982187e3f9d082c", + "created_at": "2023-08-04T13:29:02Z", + "diff_hunk": "@@ -48,4 +48,5 @@ exclude_files = {\n 'runtime/lua/vim/_meta/api.lua',\n 'runtime/lua/vim/re.lua',\n 'src/nvim/eval.lua',\n+ 'src/nvim/options.lua',", + "html_url": "https://github.com/neovim/neovim/pull/24528#discussion_r1284427437", + "id": 1284427437, + "line": null, + "node_id": "PRRC_kwDOAPphoM5Mjs6t", + "original_commit_id": "601b9217949a61ed9138a5ffa829146fd288e2e5", + "original_line": 51, + "original_position": 4, + "original_start_line": null, + "path": ".luacheckrc", + "position": null, + "pull_request_review_id": 1562877461, + "pull_request_url": "https://api.github.com/repos/neovim/neovim/pulls/24528", + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/pulls/comments/1284427437/reactions" + }, + "side": "RIGHT", + "start_line": null, + "start_side": null, + "subject_type": "line", + "updated_at": "2023-08-04T13:29:02Z", + "url": "https://api.github.com/repos/neovim/neovim/pulls/comments/1284427437", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/1359421?v=4", + "events_url": "https://api.github.com/users/justinmk/events{/privacy}", + "followers_url": "https://api.github.com/users/justinmk/followers", + "following_url": "https://api.github.com/users/justinmk/following{/other_user}", + "gists_url": "https://api.github.com/users/justinmk/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/justinmk", + "id": 1359421, + "login": "justinmk", + "node_id": "MDQ6VXNlcjEzNTk0MjE=", + "organizations_url": "https://api.github.com/users/justinmk/orgs", + "received_events_url": "https://api.github.com/users/justinmk/received_events", + "repos_url": "https://api.github.com/users/justinmk/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/justinmk/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/justinmk/subscriptions", + "type": "User", + "url": "https://api.github.com/users/justinmk" + } + }, + { + "_links": { + "html": { + "href": "https://github.com/neovim/neovim/pull/24528#discussion_r1284428453" + }, + "pull_request": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/24528" + }, + "self": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/comments/1284428453" + } + }, + "author_association": "MEMBER", + "body": "Why is it failing? Is it feasible to fix the warnings?", + "commit_id": "fe5eadf4a3c0dd57c5a9936c4982187e3f9d082c", + "created_at": "2023-08-04T13:29:55Z", + "diff_hunk": "@@ -2,3 +2,4 @@\n /src\n /test\n /runtime/lua/vim/re.lua\n+/runtime/lua/vim/_meta/options.lua", + "html_url": "https://github.com/neovim/neovim/pull/24528#discussion_r1284428453", + "id": 1284428453, + "in_reply_to_id": 1283454434, + "line": 5, + "node_id": "PRRC_kwDOAPphoM5MjtKl", + "original_commit_id": "b3d64435740ec124f75f06015f751356633a46f5", + "original_line": 5, + "original_position": 4, + "original_start_line": null, + "path": ".styluaignore", + "position": 4, + "pull_request_review_id": 1562879050, + "pull_request_url": "https://api.github.com/repos/neovim/neovim/pulls/24528", + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/pulls/comments/1284428453/reactions" + }, + "side": "RIGHT", + "start_line": null, + "start_side": null, + "subject_type": "line", + "updated_at": "2023-08-04T13:29:55Z", + "url": "https://api.github.com/repos/neovim/neovim/pulls/comments/1284428453", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/1359421?v=4", + "events_url": "https://api.github.com/users/justinmk/events{/privacy}", + "followers_url": "https://api.github.com/users/justinmk/followers", + "following_url": "https://api.github.com/users/justinmk/following{/other_user}", + "gists_url": "https://api.github.com/users/justinmk/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/justinmk", + "id": 1359421, + "login": "justinmk", + "node_id": "MDQ6VXNlcjEzNTk0MjE=", + "organizations_url": "https://api.github.com/users/justinmk/orgs", + "received_events_url": "https://api.github.com/users/justinmk/received_events", + "repos_url": "https://api.github.com/users/justinmk/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/justinmk/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/justinmk/subscriptions", + "type": "User", + "url": "https://api.github.com/users/justinmk" + } + }, + { + "_links": { + "html": { + "href": "https://github.com/neovim/neovim/pull/24528#discussion_r1284429451" + }, + "pull_request": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/24528" + }, + "self": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/comments/1284429451" + } + }, + "author_association": "MEMBER", + "body": "Yep, luacheck provides way too many false-negatives in `[[...]]` strings.", + "commit_id": "fe5eadf4a3c0dd57c5a9936c4982187e3f9d082c", + "created_at": "2023-08-04T13:30:43Z", + "diff_hunk": "@@ -48,4 +48,5 @@ exclude_files = {\n 'runtime/lua/vim/_meta/api.lua',\n 'runtime/lua/vim/re.lua',\n 'src/nvim/eval.lua',\n+ 'src/nvim/options.lua',", + "html_url": "https://github.com/neovim/neovim/pull/24528#discussion_r1284429451", + "id": 1284429451, + "in_reply_to_id": 1284427437, + "line": null, + "node_id": "PRRC_kwDOAPphoM5MjtaL", + "original_commit_id": "601b9217949a61ed9138a5ffa829146fd288e2e5", + "original_line": 51, + "original_position": 4, + "original_start_line": null, + "path": ".luacheckrc", + "position": null, + "pull_request_review_id": 1562880489, + "pull_request_url": "https://api.github.com/repos/neovim/neovim/pulls/24528", + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/pulls/comments/1284429451/reactions" + }, + "side": "RIGHT", + "start_line": null, + "start_side": null, + "subject_type": "line", + "updated_at": "2023-08-04T13:30:43Z", + "url": "https://api.github.com/repos/neovim/neovim/pulls/comments/1284429451", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/7904185?v=4", + "events_url": "https://api.github.com/users/lewis6991/events{/privacy}", + "followers_url": "https://api.github.com/users/lewis6991/followers", + "following_url": "https://api.github.com/users/lewis6991/following{/other_user}", + "gists_url": "https://api.github.com/users/lewis6991/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/lewis6991", + "id": 7904185, + "login": "lewis6991", + "node_id": "MDQ6VXNlcjc5MDQxODU=", + "organizations_url": "https://api.github.com/users/lewis6991/orgs", + "received_events_url": "https://api.github.com/users/lewis6991/received_events", + "repos_url": "https://api.github.com/users/lewis6991/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/lewis6991/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/lewis6991/subscriptions", + "type": "User", + "url": "https://api.github.com/users/lewis6991" + } + }, + { + "_links": { + "html": { + "href": "https://github.com/neovim/neovim/pull/24528#discussion_r1284432621" + }, + "pull_request": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/24528" + }, + "self": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/comments/1284432621" + } + }, + "author_association": "MEMBER", + "body": "Also this file isn't generated.", + "commit_id": "fe5eadf4a3c0dd57c5a9936c4982187e3f9d082c", + "created_at": "2023-08-04T13:33:35Z", + "diff_hunk": "@@ -48,4 +48,5 @@ exclude_files = {\n 'runtime/lua/vim/_meta/api.lua',\n 'runtime/lua/vim/re.lua',\n 'src/nvim/eval.lua',\n+ 'src/nvim/options.lua',", + "html_url": "https://github.com/neovim/neovim/pull/24528#discussion_r1284432621", + "id": 1284432621, + "in_reply_to_id": 1284427437, + "line": null, + "node_id": "PRRC_kwDOAPphoM5MjuLt", + "original_commit_id": "601b9217949a61ed9138a5ffa829146fd288e2e5", + "original_line": 51, + "original_position": 4, + "original_start_line": null, + "path": ".luacheckrc", + "position": null, + "pull_request_review_id": 1562885325, + "pull_request_url": "https://api.github.com/repos/neovim/neovim/pulls/24528", + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/pulls/comments/1284432621/reactions" + }, + "side": "RIGHT", + "start_line": null, + "start_side": null, + "subject_type": "line", + "updated_at": "2023-08-04T13:33:36Z", + "url": "https://api.github.com/repos/neovim/neovim/pulls/comments/1284432621", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/7904185?v=4", + "events_url": "https://api.github.com/users/lewis6991/events{/privacy}", + "followers_url": "https://api.github.com/users/lewis6991/followers", + "following_url": "https://api.github.com/users/lewis6991/following{/other_user}", + "gists_url": "https://api.github.com/users/lewis6991/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/lewis6991", + "id": 7904185, + "login": "lewis6991", + "node_id": "MDQ6VXNlcjc5MDQxODU=", + "organizations_url": "https://api.github.com/users/lewis6991/orgs", + "received_events_url": "https://api.github.com/users/lewis6991/received_events", + "repos_url": "https://api.github.com/users/lewis6991/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/lewis6991/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/lewis6991/subscriptions", + "type": "User", + "url": "https://api.github.com/users/lewis6991" + } + }, + { + "_links": { + "html": { + "href": "https://github.com/neovim/neovim/pull/24528#discussion_r1284437052" + }, + "pull_request": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/24528" + }, + "self": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/comments/1284437052" + } + }, + "author_association": "MEMBER", + "body": "can't we ignore more granular warnings instead of all warnings?", + "commit_id": "fe5eadf4a3c0dd57c5a9936c4982187e3f9d082c", + "created_at": "2023-08-04T13:37:35Z", + "diff_hunk": "@@ -48,4 +48,5 @@ exclude_files = {\n 'runtime/lua/vim/_meta/api.lua',\n 'runtime/lua/vim/re.lua',\n 'src/nvim/eval.lua',\n+ 'src/nvim/options.lua',", + "html_url": "https://github.com/neovim/neovim/pull/24528#discussion_r1284437052", + "id": 1284437052, + "in_reply_to_id": 1284427437, + "line": null, + "node_id": "PRRC_kwDOAPphoM5MjvQ8", + "original_commit_id": "601b9217949a61ed9138a5ffa829146fd288e2e5", + "original_line": 51, + "original_position": 4, + "original_start_line": null, + "path": ".luacheckrc", + "position": null, + "pull_request_review_id": 1562892798, + "pull_request_url": "https://api.github.com/repos/neovim/neovim/pulls/24528", + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/pulls/comments/1284437052/reactions" + }, + "side": "RIGHT", + "start_line": null, + "start_side": null, + "subject_type": "line", + "updated_at": "2023-08-04T13:37:36Z", + "url": "https://api.github.com/repos/neovim/neovim/pulls/comments/1284437052", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/1359421?v=4", + "events_url": "https://api.github.com/users/justinmk/events{/privacy}", + "followers_url": "https://api.github.com/users/justinmk/followers", + "following_url": "https://api.github.com/users/justinmk/following{/other_user}", + "gists_url": "https://api.github.com/users/justinmk/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/justinmk", + "id": 1359421, + "login": "justinmk", + "node_id": "MDQ6VXNlcjEzNTk0MjE=", + "organizations_url": "https://api.github.com/users/justinmk/orgs", + "received_events_url": "https://api.github.com/users/justinmk/received_events", + "repos_url": "https://api.github.com/users/justinmk/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/justinmk/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/justinmk/subscriptions", + "type": "User", + "url": "https://api.github.com/users/justinmk" + } + }, + { + "_links": { + "html": { + "href": "https://github.com/neovim/neovim/pull/24528#discussion_r1284438942" + }, + "pull_request": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/24528" + }, + "self": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/comments/1284438942" + } + }, + "author_association": "MEMBER", + "body": "Maybe, but honestly I've never found luacheck that valuable.\r\n\r\nI'll have a look.", + "commit_id": "fe5eadf4a3c0dd57c5a9936c4982187e3f9d082c", + "created_at": "2023-08-04T13:39:19Z", + "diff_hunk": "@@ -48,4 +48,5 @@ exclude_files = {\n 'runtime/lua/vim/_meta/api.lua',\n 'runtime/lua/vim/re.lua',\n 'src/nvim/eval.lua',\n+ 'src/nvim/options.lua',", + "html_url": "https://github.com/neovim/neovim/pull/24528#discussion_r1284438942", + "id": 1284438942, + "in_reply_to_id": 1284427437, + "line": null, + "node_id": "PRRC_kwDOAPphoM5Mjvue", + "original_commit_id": "601b9217949a61ed9138a5ffa829146fd288e2e5", + "original_line": 51, + "original_position": 4, + "original_start_line": null, + "path": ".luacheckrc", + "position": null, + "pull_request_review_id": 1562895695, + "pull_request_url": "https://api.github.com/repos/neovim/neovim/pulls/24528", + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/pulls/comments/1284438942/reactions" + }, + "side": "RIGHT", + "start_line": null, + "start_side": null, + "subject_type": "line", + "updated_at": "2023-08-04T13:39:19Z", + "url": "https://api.github.com/repos/neovim/neovim/pulls/comments/1284438942", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/7904185?v=4", + "events_url": "https://api.github.com/users/lewis6991/events{/privacy}", + "followers_url": "https://api.github.com/users/lewis6991/followers", + "following_url": "https://api.github.com/users/lewis6991/following{/other_user}", + "gists_url": "https://api.github.com/users/lewis6991/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/lewis6991", + "id": 7904185, + "login": "lewis6991", + "node_id": "MDQ6VXNlcjc5MDQxODU=", + "organizations_url": "https://api.github.com/users/lewis6991/orgs", + "received_events_url": "https://api.github.com/users/lewis6991/received_events", + "repos_url": "https://api.github.com/users/lewis6991/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/lewis6991/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/lewis6991/subscriptions", + "type": "User", + "url": "https://api.github.com/users/lewis6991" + } + }, + { + "_links": { + "html": { + "href": "https://github.com/neovim/neovim/pull/24528#discussion_r1284451900" + }, + "pull_request": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/24528" + }, + "self": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/comments/1284451900" + } + }, + "author_association": "MEMBER", + "body": "hmm. created https://github.com/neovim/neovim/issues/24563", + "commit_id": "fe5eadf4a3c0dd57c5a9936c4982187e3f9d082c", + "created_at": "2023-08-04T13:51:10Z", + "diff_hunk": "@@ -48,4 +48,5 @@ exclude_files = {\n 'runtime/lua/vim/_meta/api.lua',\n 'runtime/lua/vim/re.lua',\n 'src/nvim/eval.lua',\n+ 'src/nvim/options.lua',", + "html_url": "https://github.com/neovim/neovim/pull/24528#discussion_r1284451900", + "id": 1284451900, + "in_reply_to_id": 1284427437, + "line": null, + "node_id": "PRRC_kwDOAPphoM5Mjy48", + "original_commit_id": "601b9217949a61ed9138a5ffa829146fd288e2e5", + "original_line": 51, + "original_position": 4, + "original_start_line": null, + "path": ".luacheckrc", + "position": null, + "pull_request_review_id": 1562917708, + "pull_request_url": "https://api.github.com/repos/neovim/neovim/pulls/24528", + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/pulls/comments/1284451900/reactions" + }, + "side": "RIGHT", + "start_line": null, + "start_side": null, + "subject_type": "line", + "updated_at": "2023-08-04T13:51:10Z", + "url": "https://api.github.com/repos/neovim/neovim/pulls/comments/1284451900", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/1359421?v=4", + "events_url": "https://api.github.com/users/justinmk/events{/privacy}", + "followers_url": "https://api.github.com/users/justinmk/followers", + "following_url": "https://api.github.com/users/justinmk/following{/other_user}", + "gists_url": "https://api.github.com/users/justinmk/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/justinmk", + "id": 1359421, + "login": "justinmk", + "node_id": "MDQ6VXNlcjEzNTk0MjE=", + "organizations_url": "https://api.github.com/users/justinmk/orgs", + "received_events_url": "https://api.github.com/users/justinmk/received_events", + "repos_url": "https://api.github.com/users/justinmk/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/justinmk/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/justinmk/subscriptions", + "type": "User", + "url": "https://api.github.com/users/justinmk" + } + }, + { + "_links": { + "html": { + "href": "https://github.com/neovim/neovim/pull/24528#discussion_r1284474508" + }, + "pull_request": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/24528" + }, + "self": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/comments/1284474508" + } + }, + "author_association": "MEMBER", + "body": "done", + "commit_id": "fe5eadf4a3c0dd57c5a9936c4982187e3f9d082c", + "created_at": "2023-08-04T14:10:09Z", + "diff_hunk": "@@ -48,4 +48,5 @@ exclude_files = {\n 'runtime/lua/vim/_meta/api.lua',\n 'runtime/lua/vim/re.lua',\n 'src/nvim/eval.lua',\n+ 'src/nvim/options.lua',", + "html_url": "https://github.com/neovim/neovim/pull/24528#discussion_r1284474508", + "id": 1284474508, + "in_reply_to_id": 1284427437, + "line": null, + "node_id": "PRRC_kwDOAPphoM5Mj4aM", + "original_commit_id": "601b9217949a61ed9138a5ffa829146fd288e2e5", + "original_line": 51, + "original_position": 4, + "original_start_line": null, + "path": ".luacheckrc", + "position": null, + "pull_request_review_id": 1562955092, + "pull_request_url": "https://api.github.com/repos/neovim/neovim/pulls/24528", + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/pulls/comments/1284474508/reactions" + }, + "side": "RIGHT", + "start_line": null, + "start_side": null, + "subject_type": "line", + "updated_at": "2023-08-04T14:10:09Z", + "url": "https://api.github.com/repos/neovim/neovim/pulls/comments/1284474508", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/7904185?v=4", + "events_url": "https://api.github.com/users/lewis6991/events{/privacy}", + "followers_url": "https://api.github.com/users/lewis6991/followers", + "following_url": "https://api.github.com/users/lewis6991/following{/other_user}", + "gists_url": "https://api.github.com/users/lewis6991/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/lewis6991", + "id": 7904185, + "login": "lewis6991", + "node_id": "MDQ6VXNlcjc5MDQxODU=", + "organizations_url": "https://api.github.com/users/lewis6991/orgs", + "received_events_url": "https://api.github.com/users/lewis6991/received_events", + "repos_url": "https://api.github.com/users/lewis6991/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/lewis6991/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/lewis6991/subscriptions", + "type": "User", + "url": "https://api.github.com/users/lewis6991" + } } ], "comment_regular_data": [ @@ -1694,7 +2724,7 @@ "node_id": "IC_kwDOAPphoM5jOSuA", "performed_via_github_app": null, "reactions": { - "+1": 0, + "+1": 1, "-1": 0, "confused": 0, "eyes": 0, @@ -1702,7 +2732,7 @@ "hooray": 0, "laugh": 0, "rocket": 0, - "total_count": 0, + "total_count": 1, "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1664691072/reactions" }, "updated_at": "2023-08-03T21:53:14Z", @@ -1727,6 +2757,94 @@ "type": "User", "url": "https://api.github.com/users/lewis6991" } + }, + { + "author_association": "MEMBER", + "body": "Unless anyone wants me to hold off, I'll merge this sometime tomorrow.", + "created_at": "2023-08-04T11:28:28Z", + "html_url": "https://github.com/neovim/neovim/pull/24528#issuecomment-1665458511", + "id": 1665458511, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/24528", + "node_id": "IC_kwDOAPphoM5jROFP", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1665458511/reactions" + }, + "updated_at": "2023-08-04T11:28:28Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1665458511", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/7904185?v=4", + "events_url": "https://api.github.com/users/lewis6991/events{/privacy}", + "followers_url": "https://api.github.com/users/lewis6991/followers", + "following_url": "https://api.github.com/users/lewis6991/following{/other_user}", + "gists_url": "https://api.github.com/users/lewis6991/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/lewis6991", + "id": 7904185, + "login": "lewis6991", + "node_id": "MDQ6VXNlcjc5MDQxODU=", + "organizations_url": "https://api.github.com/users/lewis6991/orgs", + "received_events_url": "https://api.github.com/users/lewis6991/received_events", + "repos_url": "https://api.github.com/users/lewis6991/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/lewis6991/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/lewis6991/subscriptions", + "type": "User", + "url": "https://api.github.com/users/lewis6991" + } + }, + { + "author_association": "MEMBER", + "body": "Needs rebase and regeneration of docs", + "created_at": "2023-08-04T13:51:02Z", + "html_url": "https://github.com/neovim/neovim/pull/24528#issuecomment-1665640583", + "id": 1665640583, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/24528", + "node_id": "IC_kwDOAPphoM5jR6iH", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1665640583/reactions" + }, + "updated_at": "2023-08-04T13:52:10Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1665640583", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/35768171?v=4", + "events_url": "https://api.github.com/users/zeertzjq/events{/privacy}", + "followers_url": "https://api.github.com/users/zeertzjq/followers", + "following_url": "https://api.github.com/users/zeertzjq/following{/other_user}", + "gists_url": "https://api.github.com/users/zeertzjq/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/zeertzjq", + "id": 35768171, + "login": "zeertzjq", + "node_id": "MDQ6VXNlcjM1NzY4MTcx", + "organizations_url": "https://api.github.com/users/zeertzjq/orgs", + "received_events_url": "https://api.github.com/users/zeertzjq/received_events", + "repos_url": "https://api.github.com/users/zeertzjq/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/zeertzjq/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/zeertzjq/subscriptions", + "type": "User", + "url": "https://api.github.com/users/zeertzjq" + } } ], "comments_url": "https://api.github.com/repos/neovim/neovim/issues/24528/comments", @@ -1822,9 +2940,9 @@ }, "private": false, "pulls_url": "https://api.github.com/repos/lewis6991/neovim/pulls{/number}", - "pushed_at": "2023-08-03T21:54:10Z", + "pushed_at": "2023-08-04T15:40:54Z", "releases_url": "https://api.github.com/repos/lewis6991/neovim/releases{/id}", - "size": 244144, + "size": 242589, "ssh_url": "git@github.com:lewis6991/neovim.git", "stargazers_count": 0, "stargazers_url": "https://api.github.com/repos/lewis6991/neovim/stargazers", @@ -1843,7 +2961,7 @@ "watchers_count": 0, "web_commit_signoff_required": false }, - "sha": "8735c361b3f2657c5ac340f75c31cdaf12cd6e59", + "sha": "fe5eadf4a3c0dd57c5a9936c4982187e3f9d082c", "user": { "avatar_url": "https://avatars.githubusercontent.com/u/7904185?v=4", "events_url": "https://api.github.com/users/lewis6991/events{/privacy}", @@ -1889,41 +3007,20 @@ } ], "locked": false, - "merge_commit_sha": "0763d84ccc1ccf99da0e764d18f86894d904c468", - "merged_at": null, + "merge_commit_sha": "6fa17da39b270bf230764859a9537124b18d3ed5", + "merged_at": "2023-08-04T20:26:53Z", "milestone": null, "node_id": "PR_kwDOAPphoM5W7ebt", "number": 24528, "patch_url": "https://github.com/neovim/neovim/pull/24528.patch", - "requested_reviewers": [ - { - "avatar_url": "https://avatars.githubusercontent.com/u/2361214?v=4", - "events_url": "https://api.github.com/users/clason/events{/privacy}", - "followers_url": "https://api.github.com/users/clason/followers", - "following_url": "https://api.github.com/users/clason/following{/other_user}", - "gists_url": "https://api.github.com/users/clason/gists{/gist_id}", - "gravatar_id": "", - "html_url": "https://github.com/clason", - "id": 2361214, - "login": "clason", - "node_id": "MDQ6VXNlcjIzNjEyMTQ=", - "organizations_url": "https://api.github.com/users/clason/orgs", - "received_events_url": "https://api.github.com/users/clason/received_events", - "repos_url": "https://api.github.com/users/clason/repos", - "site_admin": false, - "starred_url": "https://api.github.com/users/clason/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/clason/subscriptions", - "type": "User", - "url": "https://api.github.com/users/clason" - } - ], + "requested_reviewers": [], "requested_teams": [], "review_comment_url": "https://api.github.com/repos/neovim/neovim/pulls/comments{/number}", "review_comments_url": "https://api.github.com/repos/neovim/neovim/pulls/24528/comments", - "state": "open", - "statuses_url": "https://api.github.com/repos/neovim/neovim/statuses/8735c361b3f2657c5ac340f75c31cdaf12cd6e59", + "state": "closed", + "statuses_url": "https://api.github.com/repos/neovim/neovim/statuses/fe5eadf4a3c0dd57c5a9936c4982187e3f9d082c", "title": "docs(options): take ownership of options.txt", - "updated_at": "2023-08-03T21:54:22Z", + "updated_at": "2023-08-04T20:27:11Z", "url": "https://api.github.com/repos/neovim/neovim/pulls/24528", "user": { "avatar_url": "https://avatars.githubusercontent.com/u/7904185?v=4", diff --git a/repositories/neovim/pulls/24535.json b/repositories/neovim/pulls/24535.json index b7d22759..6a7fd61c 100644 --- a/repositories/neovim/pulls/24535.json +++ b/repositories/neovim/pulls/24535.json @@ -22,7 +22,7 @@ "href": "https://api.github.com/repos/neovim/neovim/pulls/24535" }, "statuses": { - "href": "https://api.github.com/repos/neovim/neovim/statuses/554361ad0a9ea3ec9cd642fec49690934ad82023" + "href": "https://api.github.com/repos/neovim/neovim/statuses/bf91331d35267951e9a883803a0fc663019c45c0" } }, "active_lock_reason": null, @@ -94,8 +94,8 @@ "name": "neovim", "node_id": "MDEwOlJlcG9zaXRvcnkxNjQwODk5Mg==", "notifications_url": "https://api.github.com/repos/neovim/neovim/notifications{?since,all,participating}", - "open_issues": 1649, - "open_issues_count": 1649, + "open_issues": 1652, + "open_issues_count": 1652, "owner": { "avatar_url": "https://avatars.githubusercontent.com/u/6471485?v=4", "events_url": "https://api.github.com/users/neovim/events{/privacy}", @@ -118,11 +118,11 @@ }, "private": false, "pulls_url": "https://api.github.com/repos/neovim/neovim/pulls{/number}", - "pushed_at": "2023-08-04T01:35:30Z", + "pushed_at": "2023-08-05T01:34:12Z", "releases_url": "https://api.github.com/repos/neovim/neovim/releases{/id}", - "size": 248467, + "size": 246884, "ssh_url": "git@github.com:neovim/neovim.git", - "stargazers_count": 67988, + "stargazers_count": 68006, "stargazers_url": "https://api.github.com/repos/neovim/neovim/stargazers", "statuses_url": "https://api.github.com/repos/neovim/neovim/statuses/{sha}", "subscribers_url": "https://api.github.com/repos/neovim/neovim/subscribers", @@ -140,14 +140,14 @@ "vim" ], "trees_url": "https://api.github.com/repos/neovim/neovim/git/trees{/sha}", - "updated_at": "2023-08-04T01:04:48Z", + "updated_at": "2023-08-04T23:49:51Z", "url": "https://api.github.com/repos/neovim/neovim", "visibility": "public", - "watchers": 67988, - "watchers_count": 67988, + "watchers": 68006, + "watchers_count": 68006, "web_commit_signoff_required": false }, - "sha": "b034378cf58bea18ea1bdb4d63692a1336b5752b", + "sha": "cc87dda31a5b5637ade7ddcfe5199f2df5fd47df", "user": { "avatar_url": "https://avatars.githubusercontent.com/u/6471485?v=4", "events_url": "https://api.github.com/users/neovim/events{/privacy}", @@ -186,7 +186,7 @@ }, "author_association": "MEMBER", "body": "There was just another PR merged that adds constants in lsp.protocol.Methods", - "commit_id": "554361ad0a9ea3ec9cd642fec49690934ad82023", + "commit_id": "bf91331d35267951e9a883803a0fc663019c45c0", "created_at": "2023-08-02T17:03:14Z", "diff_hunk": "@@ -11,6 +11,8 @@ local augroup = api.nvim_create_augroup('vim_lsp_diagnostic', {})\n \n local DEFAULT_CLIENT_ID = -1\n \n+local PULL_DIAGNOSTIC_METHOD = 'textDocument/diagnostic'", "html_url": "https://github.com/neovim/neovim/pull/24535#discussion_r1282194292", @@ -254,7 +254,7 @@ }, "author_association": "MEMBER", "body": "get_clients supports a `method` filter that can be used instead of this new method", - "commit_id": "554361ad0a9ea3ec9cd642fec49690934ad82023", + "commit_id": "bf91331d35267951e9a883803a0fc663019c45c0", "created_at": "2023-08-02T17:04:14Z", "diff_hunk": "@@ -2229,6 +2230,22 @@ function M._refresh(method, opts)\n end\n end\n \n+---@private\n+--- Get clients attached to a buffer that support a given method.\n+---\n+---@param bufnr integer buffer number\n+---@param method string LSP method\n+function M._get_clients_with_method(bufnr, method)", "html_url": "https://github.com/neovim/neovim/pull/24535#discussion_r1282195203", @@ -322,7 +322,7 @@ }, "author_association": "NONE", "body": "Yay for using the new string constants :D", - "commit_id": "554361ad0a9ea3ec9cd642fec49690934ad82023", + "commit_id": "bf91331d35267951e9a883803a0fc663019c45c0", "created_at": "2023-08-03T17:00:51Z", "diff_hunk": "@@ -11,6 +11,8 @@ local augroup = api.nvim_create_augroup('vim_lsp_diagnostic', {})\n \n local DEFAULT_CLIENT_ID = -1\n \n+local PULL_DIAGNOSTIC_METHOD = protocol.Methods.textDocument_diagnostic", "html_url": "https://github.com/neovim/neovim/pull/24535#discussion_r1283482966", @@ -375,6 +375,279 @@ "type": "User", "url": "https://api.github.com/users/MariaSolOs" } + }, + { + "_links": { + "html": { + "href": "https://github.com/neovim/neovim/pull/24535#discussion_r1284406873" + }, + "pull_request": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/24535" + }, + "self": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/comments/1284406873" + } + }, + "author_association": "MEMBER", + "body": "Can this check be added to `util._refresh` instead? Could be an option on `opts` if there is a case(?) where it makes sense to request things not supported by clients...", + "commit_id": "bf91331d35267951e9a883803a0fc663019c45c0", + "created_at": "2023-08-04T13:11:47Z", + "diff_hunk": "@@ -408,6 +408,17 @@ local function disable(bufnr)\n clear(bufnr)\n end\n \n+--- Refresh diagnostics, only if we have attached clients that support it\n+---@param bufnr (integer) buffer number\n+---@param opts table | nil Additional options to pass to util_refresh\n+---@private\n+local function _refresh(bufnr, opts)\n+ if #vim.lsp.get_clients({ bufnr = bufnr, method = ms.textDocument_diagnostic }) > 0 then", + "html_url": "https://github.com/neovim/neovim/pull/24535#discussion_r1284406873", + "id": 1284406873, + "line": null, + "node_id": "PRRC_kwDOAPphoM5Mjn5Z", + "original_commit_id": "554361ad0a9ea3ec9cd642fec49690934ad82023", + "original_line": 416, + "original_position": 9, + "original_start_line": null, + "path": "runtime/lua/vim/lsp/diagnostic.lua", + "position": null, + "pull_request_review_id": 1562845633, + "pull_request_url": "https://api.github.com/repos/neovim/neovim/pulls/24535", + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/pulls/comments/1284406873/reactions" + }, + "side": "RIGHT", + "start_line": null, + "start_side": null, + "subject_type": "line", + "updated_at": "2023-08-04T13:11:48Z", + "url": "https://api.github.com/repos/neovim/neovim/pulls/comments/1284406873", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/1359421?v=4", + "events_url": "https://api.github.com/users/justinmk/events{/privacy}", + "followers_url": "https://api.github.com/users/justinmk/followers", + "following_url": "https://api.github.com/users/justinmk/following{/other_user}", + "gists_url": "https://api.github.com/users/justinmk/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/justinmk", + "id": 1359421, + "login": "justinmk", + "node_id": "MDQ6VXNlcjEzNTk0MjE=", + "organizations_url": "https://api.github.com/users/justinmk/orgs", + "received_events_url": "https://api.github.com/users/justinmk/received_events", + "repos_url": "https://api.github.com/users/justinmk/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/justinmk/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/justinmk/subscriptions", + "type": "User", + "url": "https://api.github.com/users/justinmk" + } + }, + { + "_links": { + "html": { + "href": "https://github.com/neovim/neovim/pull/24535#discussion_r1284408233" + }, + "pull_request": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/24535" + }, + "self": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/comments/1284408233" + } + }, + "author_association": "MEMBER", + "body": "same quesiton here", + "commit_id": "bf91331d35267951e9a883803a0fc663019c45c0", + "created_at": "2023-08-04T13:13:09Z", + "diff_hunk": "@@ -131,6 +131,15 @@ local function disable(bufnr)\n end\n end\n \n+--- Refresh inlay hints, only if we have attached clients that support it\n+---@param bufnr (integer) Buffer handle, or 0 for current\n+---@private\n+local function _refresh(bufnr)\n+ if #vim.lsp.get_clients({ bufnr = bufnr, method = ms.textDocument_inlayHint }) > 0 then", + "html_url": "https://github.com/neovim/neovim/pull/24535#discussion_r1284408233", + "id": 1284408233, + "line": null, + "node_id": "PRRC_kwDOAPphoM5MjoOp", + "original_commit_id": "554361ad0a9ea3ec9cd642fec49690934ad82023", + "original_line": 138, + "original_position": 19, + "original_start_line": null, + "path": "runtime/lua/vim/lsp/inlay_hint.lua", + "position": null, + "pull_request_review_id": 1562847856, + "pull_request_url": "https://api.github.com/repos/neovim/neovim/pulls/24535", + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/pulls/comments/1284408233/reactions" + }, + "side": "RIGHT", + "start_line": null, + "start_side": null, + "subject_type": "line", + "updated_at": "2023-08-04T13:13:09Z", + "url": "https://api.github.com/repos/neovim/neovim/pulls/comments/1284408233", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/1359421?v=4", + "events_url": "https://api.github.com/users/justinmk/events{/privacy}", + "followers_url": "https://api.github.com/users/justinmk/followers", + "following_url": "https://api.github.com/users/justinmk/following{/other_user}", + "gists_url": "https://api.github.com/users/justinmk/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/justinmk", + "id": 1359421, + "login": "justinmk", + "node_id": "MDQ6VXNlcjEzNTk0MjE=", + "organizations_url": "https://api.github.com/users/justinmk/orgs", + "received_events_url": "https://api.github.com/users/justinmk/received_events", + "repos_url": "https://api.github.com/users/justinmk/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/justinmk/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/justinmk/subscriptions", + "type": "User", + "url": "https://api.github.com/users/justinmk" + } + }, + { + "_links": { + "html": { + "href": "https://github.com/neovim/neovim/pull/24535#discussion_r1284443287" + }, + "pull_request": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/24535" + }, + "self": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/comments/1284443287" + } + }, + "author_association": "CONTRIBUTOR", + "body": "yeah, good point. I'll move this check into `util._refresh`", + "commit_id": "bf91331d35267951e9a883803a0fc663019c45c0", + "created_at": "2023-08-04T13:43:15Z", + "diff_hunk": "@@ -408,6 +408,17 @@ local function disable(bufnr)\n clear(bufnr)\n end\n \n+--- Refresh diagnostics, only if we have attached clients that support it\n+---@param bufnr (integer) buffer number\n+---@param opts table | nil Additional options to pass to util_refresh\n+---@private\n+local function _refresh(bufnr, opts)\n+ if #vim.lsp.get_clients({ bufnr = bufnr, method = ms.textDocument_diagnostic }) > 0 then", + "html_url": "https://github.com/neovim/neovim/pull/24535#discussion_r1284443287", + "id": 1284443287, + "in_reply_to_id": 1284406873, + "line": null, + "node_id": "PRRC_kwDOAPphoM5MjwyX", + "original_commit_id": "554361ad0a9ea3ec9cd642fec49690934ad82023", + "original_line": 416, + "original_position": 9, + "original_start_line": null, + "path": "runtime/lua/vim/lsp/diagnostic.lua", + "position": null, + "pull_request_review_id": 1562902833, + "pull_request_url": "https://api.github.com/repos/neovim/neovim/pulls/24535", + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/pulls/comments/1284443287/reactions" + }, + "side": "RIGHT", + "start_line": null, + "start_side": null, + "subject_type": "line", + "updated_at": "2023-08-04T13:43:16Z", + "url": "https://api.github.com/repos/neovim/neovim/pulls/comments/1284443287", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/54458?v=4", + "events_url": "https://api.github.com/users/catlee/events{/privacy}", + "followers_url": "https://api.github.com/users/catlee/followers", + "following_url": "https://api.github.com/users/catlee/following{/other_user}", + "gists_url": "https://api.github.com/users/catlee/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/catlee", + "id": 54458, + "login": "catlee", + "node_id": "MDQ6VXNlcjU0NDU4", + "organizations_url": "https://api.github.com/users/catlee/orgs", + "received_events_url": "https://api.github.com/users/catlee/received_events", + "repos_url": "https://api.github.com/users/catlee/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/catlee/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/catlee/subscriptions", + "type": "User", + "url": "https://api.github.com/users/catlee" + } + }, + { + "_links": { + "html": { + "href": "https://github.com/neovim/neovim/pull/24535#discussion_r1284569561" + }, + "pull_request": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/24535" + }, + "self": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/comments/1284569561" + } + }, + "author_association": "CONTRIBUTOR", + "body": "Hmm, this doesn't always seem to happen.\r\n\r\nI think I need to check `vim.lsp.get_clients` and filter out the client that is detaching, and then see if any remain.", + "commit_id": "bf91331d35267951e9a883803a0fc663019c45c0", + "created_at": "2023-08-04T15:32:08Z", + "diff_hunk": "@@ -449,7 +460,12 @@ function M._enable(bufnr)\n api.nvim_create_autocmd('LspDetach', {\n buffer = bufnr,\n callback = function()\n- disable(bufnr)\n+ -- Only disable if there are no more clients with diagnostics attached\n+ -- LspDetach is called *before* the client disconnects, so the number of clients connected\n+ -- to this buffer that support diagnostics will be 1 if we're the last client\n+ if #vim.lsp.get_clients({ bufnr = bufnr, method = ms.textDocument_diagnostic }) == 1 then", + "html_url": "https://github.com/neovim/neovim/pull/24535#discussion_r1284569561", + "id": 1284569561, + "line": null, + "node_id": "PRRC_kwDOAPphoM5MkPnZ", + "original_commit_id": "554361ad0a9ea3ec9cd642fec49690934ad82023", + "original_line": 466, + "original_position": 44, + "original_start_line": null, + "path": "runtime/lua/vim/lsp/diagnostic.lua", + "position": null, + "pull_request_review_id": 1563113282, + "pull_request_url": "https://api.github.com/repos/neovim/neovim/pulls/24535", + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/pulls/comments/1284569561/reactions" + }, + "side": "RIGHT", + "start_line": null, + "start_side": null, + "subject_type": "line", + "updated_at": "2023-08-04T15:32:09Z", + "url": "https://api.github.com/repos/neovim/neovim/pulls/comments/1284569561", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/54458?v=4", + "events_url": "https://api.github.com/users/catlee/events{/privacy}", + "followers_url": "https://api.github.com/users/catlee/followers", + "following_url": "https://api.github.com/users/catlee/following{/other_user}", + "gists_url": "https://api.github.com/users/catlee/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/catlee", + "id": 54458, + "login": "catlee", + "node_id": "MDQ6VXNlcjU0NDU4", + "organizations_url": "https://api.github.com/users/catlee/orgs", + "received_events_url": "https://api.github.com/users/catlee/received_events", + "repos_url": "https://api.github.com/users/catlee/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/catlee/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/catlee/subscriptions", + "type": "User", + "url": "https://api.github.com/users/catlee" + } } ], "comment_regular_data": [ @@ -604,9 +877,9 @@ }, "private": false, "pulls_url": "https://api.github.com/repos/catlee/neovim/pulls{/number}", - "pushed_at": "2023-08-03T21:44:40Z", + "pushed_at": "2023-08-04T15:39:07Z", "releases_url": "https://api.github.com/repos/catlee/neovim/releases{/id}", - "size": 244106, + "size": 242115, "ssh_url": "git@github.com:catlee/neovim.git", "stargazers_count": 0, "stargazers_url": "https://api.github.com/repos/catlee/neovim/stargazers", @@ -625,7 +898,7 @@ "watchers_count": 0, "web_commit_signoff_required": false }, - "sha": "554361ad0a9ea3ec9cd642fec49690934ad82023", + "sha": "bf91331d35267951e9a883803a0fc663019c45c0", "user": { "avatar_url": "https://avatars.githubusercontent.com/u/54458?v=4", "events_url": "https://api.github.com/users/catlee/events{/privacy}", @@ -662,7 +935,7 @@ } ], "locked": false, - "merge_commit_sha": "8473c98f7ee35ef3e62e14079b4e80b9763c597a", + "merge_commit_sha": "c2703144e451b0059227fb54d9511f2b85a1af2a", "merged_at": null, "milestone": null, "node_id": "PR_kwDOAPphoM5XB-b2", @@ -734,9 +1007,9 @@ "review_comment_url": "https://api.github.com/repos/neovim/neovim/pulls/comments{/number}", "review_comments_url": "https://api.github.com/repos/neovim/neovim/pulls/24535/comments", "state": "open", - "statuses_url": "https://api.github.com/repos/neovim/neovim/statuses/554361ad0a9ea3ec9cd642fec49690934ad82023", + "statuses_url": "https://api.github.com/repos/neovim/neovim/statuses/bf91331d35267951e9a883803a0fc663019c45c0", "title": "fix(lsp): only disable inlay hints / diagnostics if no other clients are connected", - "updated_at": "2023-08-03T21:44:48Z", + "updated_at": "2023-08-04T15:39:10Z", "url": "https://api.github.com/repos/neovim/neovim/pulls/24535", "user": { "avatar_url": "https://avatars.githubusercontent.com/u/54458?v=4", diff --git a/repositories/neovim/pulls/24545.json b/repositories/neovim/pulls/24545.json index fb5f38d0..32b08ba9 100644 --- a/repositories/neovim/pulls/24545.json +++ b/repositories/neovim/pulls/24545.json @@ -22,7 +22,7 @@ "href": "https://api.github.com/repos/neovim/neovim/pulls/24545" }, "statuses": { - "href": "https://api.github.com/repos/neovim/neovim/statuses/f6c42012926b91e4e89d667ca6a8a9fc9536cfbb" + "href": "https://api.github.com/repos/neovim/neovim/statuses/76f30591b0f07e2eb1e07e866eea893cc4488c0a" } }, "active_lock_reason": null, @@ -94,8 +94,8 @@ "name": "neovim", "node_id": "MDEwOlJlcG9zaXRvcnkxNjQwODk5Mg==", "notifications_url": "https://api.github.com/repos/neovim/neovim/notifications{?since,all,participating}", - "open_issues": 1649, - "open_issues_count": 1649, + "open_issues": 1652, + "open_issues_count": 1652, "owner": { "avatar_url": "https://avatars.githubusercontent.com/u/6471485?v=4", "events_url": "https://api.github.com/users/neovim/events{/privacy}", @@ -118,11 +118,11 @@ }, "private": false, "pulls_url": "https://api.github.com/repos/neovim/neovim/pulls{/number}", - "pushed_at": "2023-08-04T01:35:30Z", + "pushed_at": "2023-08-05T01:34:12Z", "releases_url": "https://api.github.com/repos/neovim/neovim/releases{/id}", - "size": 248467, + "size": 246884, "ssh_url": "git@github.com:neovim/neovim.git", - "stargazers_count": 67988, + "stargazers_count": 68006, "stargazers_url": "https://api.github.com/repos/neovim/neovim/stargazers", "statuses_url": "https://api.github.com/repos/neovim/neovim/statuses/{sha}", "subscribers_url": "https://api.github.com/repos/neovim/neovim/subscribers", @@ -140,14 +140,14 @@ "vim" ], "trees_url": "https://api.github.com/repos/neovim/neovim/git/trees{/sha}", - "updated_at": "2023-08-04T01:04:48Z", + "updated_at": "2023-08-04T23:49:51Z", "url": "https://api.github.com/repos/neovim/neovim", "visibility": "public", - "watchers": 67988, - "watchers_count": 67988, + "watchers": 68006, + "watchers_count": 68006, "web_commit_signoff_required": false }, - "sha": "b034378cf58bea18ea1bdb4d63692a1336b5752b", + "sha": "cc87dda31a5b5637ade7ddcfe5199f2df5fd47df", "user": { "avatar_url": "https://avatars.githubusercontent.com/u/6471485?v=4", "events_url": "https://api.github.com/users/neovim/events{/privacy}", @@ -304,6 +304,94 @@ "type": "User", "url": "https://api.github.com/users/dundargoc" } + }, + { + "author_association": "MEMBER", + "body": "derp, I missed `.github/workflows/codeql.yml`. Thanks", + "created_at": "2023-08-04T13:51:40Z", + "html_url": "https://github.com/neovim/neovim/pull/24545#issuecomment-1665641423", + "id": 1665641423, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/24545", + "node_id": "IC_kwDOAPphoM5jR6vP", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1665641423/reactions" + }, + "updated_at": "2023-08-04T13:51:40Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1665641423", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/1359421?v=4", + "events_url": "https://api.github.com/users/justinmk/events{/privacy}", + "followers_url": "https://api.github.com/users/justinmk/followers", + "following_url": "https://api.github.com/users/justinmk/following{/other_user}", + "gists_url": "https://api.github.com/users/justinmk/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/justinmk", + "id": 1359421, + "login": "justinmk", + "node_id": "MDQ6VXNlcjEzNTk0MjE=", + "organizations_url": "https://api.github.com/users/justinmk/orgs", + "received_events_url": "https://api.github.com/users/justinmk/received_events", + "repos_url": "https://api.github.com/users/justinmk/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/justinmk/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/justinmk/subscriptions", + "type": "User", + "url": "https://api.github.com/users/justinmk" + } + }, + { + "author_association": "MEMBER", + "body": "codeql job took 11 minutes, that doesn't seem too bad. Any objections to enabling it for PRs? Looks like it is smart enough to only warning about new warnings, not existing ones.", + "created_at": "2023-08-04T14:14:41Z", + "html_url": "https://github.com/neovim/neovim/pull/24545#issuecomment-1665679288", + "id": 1665679288, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/24545", + "node_id": "IC_kwDOAPphoM5jSD-4", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1665679288/reactions" + }, + "updated_at": "2023-08-04T14:15:03Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1665679288", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/1359421?v=4", + "events_url": "https://api.github.com/users/justinmk/events{/privacy}", + "followers_url": "https://api.github.com/users/justinmk/followers", + "following_url": "https://api.github.com/users/justinmk/following{/other_user}", + "gists_url": "https://api.github.com/users/justinmk/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/justinmk", + "id": 1359421, + "login": "justinmk", + "node_id": "MDQ6VXNlcjEzNTk0MjE=", + "organizations_url": "https://api.github.com/users/justinmk/orgs", + "received_events_url": "https://api.github.com/users/justinmk/received_events", + "repos_url": "https://api.github.com/users/justinmk/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/justinmk/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/justinmk/subscriptions", + "type": "User", + "url": "https://api.github.com/users/justinmk" + } } ], "comments_url": "https://api.github.com/repos/neovim/neovim/issues/24545/comments", @@ -399,9 +487,9 @@ }, "private": false, "pulls_url": "https://api.github.com/repos/justinmk/neovim/pulls{/number}", - "pushed_at": "2023-08-03T15:45:43Z", + "pushed_at": "2023-08-04T13:54:40Z", "releases_url": "https://api.github.com/repos/justinmk/neovim/releases{/id}", - "size": 243697, + "size": 241958, "ssh_url": "git@github.com:justinmk/neovim.git", "stargazers_count": 1, "stargazers_url": "https://api.github.com/repos/justinmk/neovim/stargazers", @@ -420,7 +508,7 @@ "watchers_count": 1, "web_commit_signoff_required": false }, - "sha": "f6c42012926b91e4e89d667ca6a8a9fc9536cfbb", + "sha": "76f30591b0f07e2eb1e07e866eea893cc4488c0a", "user": { "avatar_url": "https://avatars.githubusercontent.com/u/1359421?v=4", "events_url": "https://api.github.com/users/justinmk/events{/privacy}", @@ -457,7 +545,7 @@ } ], "locked": false, - "merge_commit_sha": "c2267ebce49cca4a796c059b4976f6757c14634f", + "merge_commit_sha": "610275984d76de2a39239636a1db6ce24cfb30e0", "merged_at": null, "milestone": null, "node_id": "PR_kwDOAPphoM5XH6S6", @@ -509,9 +597,9 @@ "review_comment_url": "https://api.github.com/repos/neovim/neovim/pulls/comments{/number}", "review_comments_url": "https://api.github.com/repos/neovim/neovim/pulls/24545/comments", "state": "open", - "statuses_url": "https://api.github.com/repos/neovim/neovim/statuses/f6c42012926b91e4e89d667ca6a8a9fc9536cfbb", + "statuses_url": "https://api.github.com/repos/neovim/neovim/statuses/76f30591b0f07e2eb1e07e866eea893cc4488c0a", "title": "ci: codeql", - "updated_at": "2023-08-03T17:04:17Z", + "updated_at": "2023-08-04T14:15:03Z", "url": "https://api.github.com/repos/neovim/neovim/pulls/24545", "user": { "avatar_url": "https://avatars.githubusercontent.com/u/1359421?v=4", diff --git a/repositories/neovim/pulls/24547.json b/repositories/neovim/pulls/24547.json index 36f0a5e1..c6b374fb 100644 --- a/repositories/neovim/pulls/24547.json +++ b/repositories/neovim/pulls/24547.json @@ -94,8 +94,8 @@ "name": "neovim", "node_id": "MDEwOlJlcG9zaXRvcnkxNjQwODk5Mg==", "notifications_url": "https://api.github.com/repos/neovim/neovim/notifications{?since,all,participating}", - "open_issues": 1649, - "open_issues_count": 1649, + "open_issues": 1652, + "open_issues_count": 1652, "owner": { "avatar_url": "https://avatars.githubusercontent.com/u/6471485?v=4", "events_url": "https://api.github.com/users/neovim/events{/privacy}", @@ -118,11 +118,11 @@ }, "private": false, "pulls_url": "https://api.github.com/repos/neovim/neovim/pulls{/number}", - "pushed_at": "2023-08-04T01:35:30Z", + "pushed_at": "2023-08-05T01:34:12Z", "releases_url": "https://api.github.com/repos/neovim/neovim/releases{/id}", - "size": 248467, + "size": 246884, "ssh_url": "git@github.com:neovim/neovim.git", - "stargazers_count": 67988, + "stargazers_count": 68006, "stargazers_url": "https://api.github.com/repos/neovim/neovim/stargazers", "statuses_url": "https://api.github.com/repos/neovim/neovim/statuses/{sha}", "subscribers_url": "https://api.github.com/repos/neovim/neovim/subscribers", @@ -140,11 +140,11 @@ "vim" ], "trees_url": "https://api.github.com/repos/neovim/neovim/git/trees{/sha}", - "updated_at": "2023-08-04T01:04:48Z", + "updated_at": "2023-08-04T23:49:51Z", "url": "https://api.github.com/repos/neovim/neovim", "visibility": "public", - "watchers": 67988, - "watchers_count": 67988, + "watchers": 68006, + "watchers_count": 68006, "web_commit_signoff_required": false }, "sha": "b034378cf58bea18ea1bdb4d63692a1336b5752b", @@ -266,9 +266,9 @@ }, "private": false, "pulls_url": "https://api.github.com/repos/zeertzjq/neovim/pulls{/number}", - "pushed_at": "2023-08-04T01:35:24Z", + "pushed_at": "2023-08-04T23:55:51Z", "releases_url": "https://api.github.com/repos/zeertzjq/neovim/releases{/id}", - "size": 243311, + "size": 240112, "ssh_url": "git@github.com:zeertzjq/neovim.git", "stargazers_count": 0, "stargazers_url": "https://api.github.com/repos/zeertzjq/neovim/stargazers", @@ -335,7 +335,43 @@ "locked": false, "merge_commit_sha": "c4f775fa57ae4d6fdf4be962edb0a1d0c82eaf72", "merged_at": "2023-08-03T23:08:43Z", - "milestone": null, + "milestone": { + "closed_at": null, + "closed_issues": 76, + "created_at": "2023-05-26T09:57:35Z", + "creator": { + "avatar_url": "https://avatars.githubusercontent.com/u/35768171?v=4", + "events_url": "https://api.github.com/users/zeertzjq/events{/privacy}", + "followers_url": "https://api.github.com/users/zeertzjq/followers", + "following_url": "https://api.github.com/users/zeertzjq/following{/other_user}", + "gists_url": "https://api.github.com/users/zeertzjq/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/zeertzjq", + "id": 35768171, + "login": "zeertzjq", + "node_id": "MDQ6VXNlcjM1NzY4MTcx", + "organizations_url": "https://api.github.com/users/zeertzjq/orgs", + "received_events_url": "https://api.github.com/users/zeertzjq/received_events", + "repos_url": "https://api.github.com/users/zeertzjq/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/zeertzjq/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/zeertzjq/subscriptions", + "type": "User", + "url": "https://api.github.com/users/zeertzjq" + }, + "description": "", + "due_on": null, + "html_url": "https://github.com/neovim/neovim/milestone/38", + "id": 9446345, + "labels_url": "https://api.github.com/repos/neovim/neovim/milestones/38/labels", + "node_id": "MI_kwDOAPphoM4AkCPJ", + "number": 38, + "open_issues": 7, + "state": "open", + "title": "0.9.2", + "updated_at": "2023-08-04T04:32:59Z", + "url": "https://api.github.com/repos/neovim/neovim/milestones/38" + }, "node_id": "PR_kwDOAPphoM5XJf-h", "number": 24547, "patch_url": "https://github.com/neovim/neovim/pull/24547.patch", @@ -346,7 +382,7 @@ "state": "closed", "statuses_url": "https://api.github.com/repos/neovim/neovim/statuses/8805ebabeeb8da0f0f238ed519c4cf4bd31fa1a8", "title": "build(deps): bump libvterm to 0.3.3", - "updated_at": "2023-08-03T23:08:59Z", + "updated_at": "2023-08-04T03:01:23Z", "url": "https://api.github.com/repos/neovim/neovim/pulls/24547", "user": { "avatar_url": "https://avatars.githubusercontent.com/u/35768171?v=4", diff --git a/repositories/neovim/pulls/24549.json b/repositories/neovim/pulls/24549.json index a9d5fa16..e44df67c 100644 --- a/repositories/neovim/pulls/24549.json +++ b/repositories/neovim/pulls/24549.json @@ -94,8 +94,8 @@ "name": "neovim", "node_id": "MDEwOlJlcG9zaXRvcnkxNjQwODk5Mg==", "notifications_url": "https://api.github.com/repos/neovim/neovim/notifications{?since,all,participating}", - "open_issues": 1649, - "open_issues_count": 1649, + "open_issues": 1652, + "open_issues_count": 1652, "owner": { "avatar_url": "https://avatars.githubusercontent.com/u/6471485?v=4", "events_url": "https://api.github.com/users/neovim/events{/privacy}", @@ -118,11 +118,11 @@ }, "private": false, "pulls_url": "https://api.github.com/repos/neovim/neovim/pulls{/number}", - "pushed_at": "2023-08-04T01:35:30Z", + "pushed_at": "2023-08-05T01:34:12Z", "releases_url": "https://api.github.com/repos/neovim/neovim/releases{/id}", - "size": 248467, + "size": 246884, "ssh_url": "git@github.com:neovim/neovim.git", - "stargazers_count": 67988, + "stargazers_count": 68006, "stargazers_url": "https://api.github.com/repos/neovim/neovim/stargazers", "statuses_url": "https://api.github.com/repos/neovim/neovim/statuses/{sha}", "subscribers_url": "https://api.github.com/repos/neovim/neovim/subscribers", @@ -140,11 +140,11 @@ "vim" ], "trees_url": "https://api.github.com/repos/neovim/neovim/git/trees{/sha}", - "updated_at": "2023-08-04T01:04:48Z", + "updated_at": "2023-08-04T23:49:51Z", "url": "https://api.github.com/repos/neovim/neovim", "visibility": "public", - "watchers": 67988, - "watchers_count": 67988, + "watchers": 68006, + "watchers_count": 68006, "web_commit_signoff_required": false }, "sha": "c4f775fa57ae4d6fdf4be962edb0a1d0c82eaf72", @@ -216,6 +216,50 @@ "type": "Bot", "url": "https://api.github.com/users/github-actions%5Bbot%5D" } + }, + { + "author_association": "MEMBER", + "body": "Is this worth mentioning in news.txt?", + "created_at": "2023-08-04T13:15:34Z", + "html_url": "https://github.com/neovim/neovim/pull/24549#issuecomment-1665592779", + "id": 1665592779, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/24549", + "node_id": "IC_kwDOAPphoM5jRu3L", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1665592779/reactions" + }, + "updated_at": "2023-08-04T13:15:34Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1665592779", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/1359421?v=4", + "events_url": "https://api.github.com/users/justinmk/events{/privacy}", + "followers_url": "https://api.github.com/users/justinmk/followers", + "following_url": "https://api.github.com/users/justinmk/following{/other_user}", + "gists_url": "https://api.github.com/users/justinmk/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/justinmk", + "id": 1359421, + "login": "justinmk", + "node_id": "MDQ6VXNlcjEzNTk0MjE=", + "organizations_url": "https://api.github.com/users/justinmk/orgs", + "received_events_url": "https://api.github.com/users/justinmk/received_events", + "repos_url": "https://api.github.com/users/justinmk/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/justinmk/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/justinmk/subscriptions", + "type": "User", + "url": "https://api.github.com/users/justinmk" + } } ], "comments_url": "https://api.github.com/repos/neovim/neovim/issues/24549/comments", @@ -311,9 +355,9 @@ }, "private": false, "pulls_url": "https://api.github.com/repos/zeertzjq/neovim/pulls{/number}", - "pushed_at": "2023-08-04T01:35:24Z", + "pushed_at": "2023-08-04T23:55:51Z", "releases_url": "https://api.github.com/repos/zeertzjq/neovim/releases{/id}", - "size": 243311, + "size": 240112, "ssh_url": "git@github.com:zeertzjq/neovim.git", "stargazers_count": 0, "stargazers_url": "https://api.github.com/repos/zeertzjq/neovim/stargazers", @@ -382,7 +426,7 @@ "merged_at": "2023-08-04T01:34:14Z", "milestone": { "closed_at": null, - "closed_issues": 73, + "closed_issues": 76, "created_at": "2023-05-26T09:57:35Z", "creator": { "avatar_url": "https://avatars.githubusercontent.com/u/35768171?v=4", @@ -411,10 +455,10 @@ "labels_url": "https://api.github.com/repos/neovim/neovim/milestones/38/labels", "node_id": "MI_kwDOAPphoM4AkCPJ", "number": 38, - "open_issues": 8, + "open_issues": 7, "state": "open", "title": "0.9.2", - "updated_at": "2023-08-04T01:34:14Z", + "updated_at": "2023-08-04T04:32:59Z", "url": "https://api.github.com/repos/neovim/neovim/milestones/38" }, "node_id": "PR_kwDOAPphoM5XJ0xj", @@ -427,7 +471,7 @@ "state": "closed", "statuses_url": "https://api.github.com/repos/neovim/neovim/statuses/d7da1569293b7daeb5fd35469a1b3f6d331e2996", "title": "fix(terminal): include modifiers when forwarding mouse", - "updated_at": "2023-08-04T01:34:38Z", + "updated_at": "2023-08-04T13:15:34Z", "url": "https://api.github.com/repos/neovim/neovim/pulls/24549", "user": { "avatar_url": "https://avatars.githubusercontent.com/u/35768171?v=4", diff --git a/repositories/neovim/pulls/24550.json b/repositories/neovim/pulls/24550.json index 9ccaa409..8bc5b85b 100644 --- a/repositories/neovim/pulls/24550.json +++ b/repositories/neovim/pulls/24550.json @@ -22,7 +22,7 @@ "href": "https://api.github.com/repos/neovim/neovim/pulls/24550" }, "statuses": { - "href": "https://api.github.com/repos/neovim/neovim/statuses/7a4aaf0ddda77fbf803654384861e4533d3724ca" + "href": "https://api.github.com/repos/neovim/neovim/statuses/644f2e4abc830b39a838ccdd75809666899f08b4" } }, "active_lock_reason": null, @@ -94,8 +94,8 @@ "name": "neovim", "node_id": "MDEwOlJlcG9zaXRvcnkxNjQwODk5Mg==", "notifications_url": "https://api.github.com/repos/neovim/neovim/notifications{?since,all,participating}", - "open_issues": 1649, - "open_issues_count": 1649, + "open_issues": 1652, + "open_issues_count": 1652, "owner": { "avatar_url": "https://avatars.githubusercontent.com/u/6471485?v=4", "events_url": "https://api.github.com/users/neovim/events{/privacy}", @@ -118,11 +118,11 @@ }, "private": false, "pulls_url": "https://api.github.com/repos/neovim/neovim/pulls{/number}", - "pushed_at": "2023-08-04T01:35:30Z", + "pushed_at": "2023-08-05T01:34:12Z", "releases_url": "https://api.github.com/repos/neovim/neovim/releases{/id}", - "size": 248467, + "size": 246884, "ssh_url": "git@github.com:neovim/neovim.git", - "stargazers_count": 67988, + "stargazers_count": 68006, "stargazers_url": "https://api.github.com/repos/neovim/neovim/stargazers", "statuses_url": "https://api.github.com/repos/neovim/neovim/statuses/{sha}", "subscribers_url": "https://api.github.com/repos/neovim/neovim/subscribers", @@ -140,14 +140,14 @@ "vim" ], "trees_url": "https://api.github.com/repos/neovim/neovim/git/trees{/sha}", - "updated_at": "2023-08-04T01:04:48Z", + "updated_at": "2023-08-04T23:49:51Z", "url": "https://api.github.com/repos/neovim/neovim", "visibility": "public", - "watchers": 67988, - "watchers_count": 67988, + "watchers": 68006, + "watchers_count": 68006, "web_commit_signoff_required": false }, - "sha": "c4f775fa57ae4d6fdf4be962edb0a1d0c82eaf72", + "sha": "0a7fda6fa0067ee61fee60d123967c3f14431007", "user": { "avatar_url": "https://avatars.githubusercontent.com/u/6471485?v=4", "events_url": "https://api.github.com/users/neovim/events{/privacy}", @@ -169,8 +169,8 @@ "url": "https://api.github.com/users/neovim" } }, - "body": "PR #23689 assumes `client.config.capabilities.workspace.didChangeWatchedFiles` exists when checking `dynamicRegistration`, but that's true only if it was passed to `vim.lsp.start{_client}`.\r\n\r\nThis caused #23806 (still a problem in v0.9.1; needs manual backport), but #23681 fixed it by defaulting `config.capabilities` to `make_client_capabilities` if not passed to `vim.lsp.start{_client}`.\r\n\r\nHowever, the bug resurfaces on HEAD if you provide a non-nil `capabilities` to `vim.lsp.start{_client}` with missing fields (e.g: not made via `make_client_capabilities`).\r\n\r\nFrom what I see, the spec says such missing fields should be interpreted as an absence of the capability (including those indicated by missing sub-fields): https://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#clientCapabilities", - "closed_at": null, + "body": "PR https://github.com/neovim/neovim/pull/23689 assumes `client.config.capabilities.workspace.didChangeWatchedFiles`\r\nexists when checking `dynamicRegistration`, but thats's true only if it was\r\npassed to `vim.lsp.start{_client}`.\r\n\r\nThis caused https://github.com/neovim/neovim/issues/23806 (still an issue in v0.9.1; needs manual backport), but https://github.com/neovim/neovim/pull/23681\r\nfixed it by defaulting `config.capabilities` to `make_client_capabilities` if\r\nnot passed to `vim.lsp.start{_client}`.\r\n\r\nHowever, the bug resurfaces on HEAD if you provide a non-nil `capabilities` to\r\n`vim.lsp.start{_client}` with missing fields (e.g: not made via\r\n`make_client_capabilities`).\r\n\r\nFrom what I see, the spec says such missing fields should be interpreted as an\r\nabsence of the capability (including those indicated by missing sub-fields):\r\nhttps://microsoft.github.io/language-server-protocol/specifications/lsp/3.17/specification/#clientCapabilities\r\n\r\nAlso, suggest `vim.empty_dict` for an empty dict in\r\n`:h vim.lsp.start_client()` (`{[vim.type_idx]=vim.types.dictionary}`\r\nno longer works anyway, probably since the cjson switch).", + "closed_at": "2023-08-04T06:10:54Z", "comment_data": [], "comment_regular_data": [], "comments_url": "https://api.github.com/repos/neovim/neovim/issues/24550/comments", @@ -266,9 +266,9 @@ }, "private": false, "pulls_url": "https://api.github.com/repos/seandewar/neovim/pulls{/number}", - "pushed_at": "2023-08-04T01:16:12Z", + "pushed_at": "2023-08-04T09:16:58Z", "releases_url": "https://api.github.com/repos/seandewar/neovim/releases{/id}", - "size": 245118, + "size": 243499, "ssh_url": "git@github.com:seandewar/neovim.git", "stargazers_count": 2, "stargazers_url": "https://api.github.com/repos/seandewar/neovim/stargazers", @@ -287,7 +287,7 @@ "watchers_count": 2, "web_commit_signoff_required": false }, - "sha": "7a4aaf0ddda77fbf803654384861e4533d3724ca", + "sha": "644f2e4abc830b39a838ccdd75809666899f08b4", "user": { "avatar_url": "https://avatars.githubusercontent.com/u/6256228?v=4", "events_url": "https://api.github.com/users/seandewar/events{/privacy}", @@ -324,81 +324,20 @@ } ], "locked": false, - "merge_commit_sha": "fc38a54ef56456b4691bc28787f6d1d00cfa9316", - "merged_at": null, + "merge_commit_sha": "cc87dda31a5b5637ade7ddcfe5199f2df5fd47df", + "merged_at": "2023-08-04T06:10:54Z", "milestone": null, "node_id": "PR_kwDOAPphoM5XJ5_M", "number": 24550, "patch_url": "https://github.com/neovim/neovim/pull/24550.patch", - "requested_reviewers": [ - { - "avatar_url": "https://avatars.githubusercontent.com/u/38700?v=4", - "events_url": "https://api.github.com/users/mfussenegger/events{/privacy}", - "followers_url": "https://api.github.com/users/mfussenegger/followers", - "following_url": "https://api.github.com/users/mfussenegger/following{/other_user}", - "gists_url": "https://api.github.com/users/mfussenegger/gists{/gist_id}", - "gravatar_id": "", - "html_url": "https://github.com/mfussenegger", - "id": 38700, - "login": "mfussenegger", - "node_id": "MDQ6VXNlcjM4NzAw", - "organizations_url": "https://api.github.com/users/mfussenegger/orgs", - "received_events_url": "https://api.github.com/users/mfussenegger/received_events", - "repos_url": "https://api.github.com/users/mfussenegger/repos", - "site_admin": false, - "starred_url": "https://api.github.com/users/mfussenegger/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/mfussenegger/subscriptions", - "type": "User", - "url": "https://api.github.com/users/mfussenegger" - }, - { - "avatar_url": "https://avatars.githubusercontent.com/u/292349?v=4", - "events_url": "https://api.github.com/users/folke/events{/privacy}", - "followers_url": "https://api.github.com/users/folke/followers", - "following_url": "https://api.github.com/users/folke/following{/other_user}", - "gists_url": "https://api.github.com/users/folke/gists{/gist_id}", - "gravatar_id": "", - "html_url": "https://github.com/folke", - "id": 292349, - "login": "folke", - "node_id": "MDQ6VXNlcjI5MjM0OQ==", - "organizations_url": "https://api.github.com/users/folke/orgs", - "received_events_url": "https://api.github.com/users/folke/received_events", - "repos_url": "https://api.github.com/users/folke/repos", - "site_admin": false, - "starred_url": "https://api.github.com/users/folke/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/folke/subscriptions", - "type": "User", - "url": "https://api.github.com/users/folke" - }, - { - "avatar_url": "https://avatars.githubusercontent.com/u/41671631?v=4", - "events_url": "https://api.github.com/users/glepnir/events{/privacy}", - "followers_url": "https://api.github.com/users/glepnir/followers", - "following_url": "https://api.github.com/users/glepnir/following{/other_user}", - "gists_url": "https://api.github.com/users/glepnir/gists{/gist_id}", - "gravatar_id": "", - "html_url": "https://github.com/glepnir", - "id": 41671631, - "login": "glepnir", - "node_id": "MDQ6VXNlcjQxNjcxNjMx", - "organizations_url": "https://api.github.com/users/glepnir/orgs", - "received_events_url": "https://api.github.com/users/glepnir/received_events", - "repos_url": "https://api.github.com/users/glepnir/repos", - "site_admin": false, - "starred_url": "https://api.github.com/users/glepnir/starred{/owner}{/repo}", - "subscriptions_url": "https://api.github.com/users/glepnir/subscriptions", - "type": "User", - "url": "https://api.github.com/users/glepnir" - } - ], + "requested_reviewers": [], "requested_teams": [], "review_comment_url": "https://api.github.com/repos/neovim/neovim/pulls/comments{/number}", "review_comments_url": "https://api.github.com/repos/neovim/neovim/pulls/24550/comments", - "state": "open", - "statuses_url": "https://api.github.com/repos/neovim/neovim/statuses/7a4aaf0ddda77fbf803654384861e4533d3724ca", + "state": "closed", + "statuses_url": "https://api.github.com/repos/neovim/neovim/statuses/644f2e4abc830b39a838ccdd75809666899f08b4", "title": "fix(lsp): do not assume client capability exists in watchfiles check", - "updated_at": "2023-08-04T01:44:15Z", + "updated_at": "2023-08-04T08:05:37Z", "url": "https://api.github.com/repos/neovim/neovim/pulls/24550", "user": { "avatar_url": "https://avatars.githubusercontent.com/u/6256228?v=4", diff --git a/repositories/neovim/pulls/24551.json b/repositories/neovim/pulls/24551.json index 030c8435..53ebb684 100644 --- a/repositories/neovim/pulls/24551.json +++ b/repositories/neovim/pulls/24551.json @@ -94,8 +94,8 @@ "name": "neovim", "node_id": "MDEwOlJlcG9zaXRvcnkxNjQwODk5Mg==", "notifications_url": "https://api.github.com/repos/neovim/neovim/notifications{?since,all,participating}", - "open_issues": 1649, - "open_issues_count": 1649, + "open_issues": 1652, + "open_issues_count": 1652, "owner": { "avatar_url": "https://avatars.githubusercontent.com/u/6471485?v=4", "events_url": "https://api.github.com/users/neovim/events{/privacy}", @@ -118,11 +118,11 @@ }, "private": false, "pulls_url": "https://api.github.com/repos/neovim/neovim/pulls{/number}", - "pushed_at": "2023-08-04T01:35:30Z", + "pushed_at": "2023-08-05T01:34:12Z", "releases_url": "https://api.github.com/repos/neovim/neovim/releases{/id}", - "size": 248467, + "size": 246884, "ssh_url": "git@github.com:neovim/neovim.git", - "stargazers_count": 67988, + "stargazers_count": 68006, "stargazers_url": "https://api.github.com/repos/neovim/neovim/stargazers", "statuses_url": "https://api.github.com/repos/neovim/neovim/statuses/{sha}", "subscribers_url": "https://api.github.com/repos/neovim/neovim/subscribers", @@ -140,11 +140,11 @@ "vim" ], "trees_url": "https://api.github.com/repos/neovim/neovim/git/trees{/sha}", - "updated_at": "2023-08-04T01:04:48Z", + "updated_at": "2023-08-04T23:49:51Z", "url": "https://api.github.com/repos/neovim/neovim", "visibility": "public", - "watchers": 67988, - "watchers_count": 67988, + "watchers": 68006, + "watchers_count": 68006, "web_commit_signoff_required": false }, "sha": "ff689ed1a90b35e70a358c14d44dc31f7b4716dd", @@ -170,7 +170,7 @@ } }, "body": "# Description\nBackport of #24549 to `release-0.9`.", - "closed_at": null, + "closed_at": "2023-08-04T02:15:58Z", "comment_data": [], "comment_regular_data": [], "comments_url": "https://api.github.com/repos/neovim/neovim/issues/24551/comments", @@ -242,8 +242,8 @@ "name": "neovim", "node_id": "MDEwOlJlcG9zaXRvcnkxNjQwODk5Mg==", "notifications_url": "https://api.github.com/repos/neovim/neovim/notifications{?since,all,participating}", - "open_issues": 1649, - "open_issues_count": 1649, + "open_issues": 1652, + "open_issues_count": 1652, "owner": { "avatar_url": "https://avatars.githubusercontent.com/u/6471485?v=4", "events_url": "https://api.github.com/users/neovim/events{/privacy}", @@ -266,11 +266,11 @@ }, "private": false, "pulls_url": "https://api.github.com/repos/neovim/neovim/pulls{/number}", - "pushed_at": "2023-08-04T01:35:30Z", + "pushed_at": "2023-08-05T01:34:12Z", "releases_url": "https://api.github.com/repos/neovim/neovim/releases{/id}", - "size": 248467, + "size": 246884, "ssh_url": "git@github.com:neovim/neovim.git", - "stargazers_count": 67988, + "stargazers_count": 68006, "stargazers_url": "https://api.github.com/repos/neovim/neovim/stargazers", "statuses_url": "https://api.github.com/repos/neovim/neovim/statuses/{sha}", "subscribers_url": "https://api.github.com/repos/neovim/neovim/subscribers", @@ -288,11 +288,11 @@ "vim" ], "trees_url": "https://api.github.com/repos/neovim/neovim/git/trees{/sha}", - "updated_at": "2023-08-04T01:04:48Z", + "updated_at": "2023-08-04T23:49:51Z", "url": "https://api.github.com/repos/neovim/neovim", "visibility": "public", - "watchers": 67988, - "watchers_count": 67988, + "watchers": 68006, + "watchers_count": 68006, "web_commit_signoff_required": false }, "sha": "90b1a3250a9642d81fd02d92d667c1e64a6892b5", @@ -322,8 +322,8 @@ "issue_url": "https://api.github.com/repos/neovim/neovim/issues/24551", "labels": [], "locked": false, - "merge_commit_sha": "6c4aead0d3bd89b6e813285d26eaa16ed34e3692", - "merged_at": null, + "merge_commit_sha": "f237c920768be4c5b7443bc1edc5923beb7ec5a3", + "merged_at": "2023-08-04T02:15:58Z", "milestone": null, "node_id": "PR_kwDOAPphoM5XJ729", "number": 24551, @@ -332,10 +332,10 @@ "requested_teams": [], "review_comment_url": "https://api.github.com/repos/neovim/neovim/pulls/comments{/number}", "review_comments_url": "https://api.github.com/repos/neovim/neovim/pulls/24551/comments", - "state": "open", + "state": "closed", "statuses_url": "https://api.github.com/repos/neovim/neovim/statuses/90b1a3250a9642d81fd02d92d667c1e64a6892b5", "title": "[Backport release-0.9] fix(terminal): include modifiers when forwarding mouse", - "updated_at": "2023-08-04T01:34:37Z", + "updated_at": "2023-08-04T02:16:15Z", "url": "https://api.github.com/repos/neovim/neovim/pulls/24551", "user": { "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", diff --git a/repositories/neovim/pulls/24552.json b/repositories/neovim/pulls/24552.json index de544655..795c7e2a 100644 --- a/repositories/neovim/pulls/24552.json +++ b/repositories/neovim/pulls/24552.json @@ -94,8 +94,8 @@ "name": "neovim", "node_id": "MDEwOlJlcG9zaXRvcnkxNjQwODk5Mg==", "notifications_url": "https://api.github.com/repos/neovim/neovim/notifications{?since,all,participating}", - "open_issues": 1649, - "open_issues_count": 1649, + "open_issues": 1652, + "open_issues_count": 1652, "owner": { "avatar_url": "https://avatars.githubusercontent.com/u/6471485?v=4", "events_url": "https://api.github.com/users/neovim/events{/privacy}", @@ -118,11 +118,11 @@ }, "private": false, "pulls_url": "https://api.github.com/repos/neovim/neovim/pulls{/number}", - "pushed_at": "2023-08-04T01:35:30Z", + "pushed_at": "2023-08-05T01:34:12Z", "releases_url": "https://api.github.com/repos/neovim/neovim/releases{/id}", - "size": 248467, + "size": 246884, "ssh_url": "git@github.com:neovim/neovim.git", - "stargazers_count": 67988, + "stargazers_count": 68006, "stargazers_url": "https://api.github.com/repos/neovim/neovim/stargazers", "statuses_url": "https://api.github.com/repos/neovim/neovim/statuses/{sha}", "subscribers_url": "https://api.github.com/repos/neovim/neovim/subscribers", @@ -140,11 +140,11 @@ "vim" ], "trees_url": "https://api.github.com/repos/neovim/neovim/git/trees{/sha}", - "updated_at": "2023-08-04T01:04:48Z", + "updated_at": "2023-08-04T23:49:51Z", "url": "https://api.github.com/repos/neovim/neovim", "visibility": "public", - "watchers": 67988, - "watchers_count": 67988, + "watchers": 68006, + "watchers_count": 68006, "web_commit_signoff_required": false }, "sha": "0a7fda6fa0067ee61fee60d123967c3f14431007", @@ -170,7 +170,7 @@ } }, "body": null, - "closed_at": null, + "closed_at": "2023-08-04T02:24:27Z", "comment_data": [], "comment_regular_data": [], "comments_url": "https://api.github.com/repos/neovim/neovim/issues/24552/comments", @@ -266,9 +266,9 @@ }, "private": false, "pulls_url": "https://api.github.com/repos/zeertzjq/neovim/pulls{/number}", - "pushed_at": "2023-08-04T01:35:24Z", + "pushed_at": "2023-08-04T23:55:51Z", "releases_url": "https://api.github.com/repos/zeertzjq/neovim/releases{/id}", - "size": 243311, + "size": 240112, "ssh_url": "git@github.com:zeertzjq/neovim.git", "stargazers_count": 0, "stargazers_url": "https://api.github.com/repos/zeertzjq/neovim/stargazers", @@ -324,9 +324,45 @@ } ], "locked": false, - "merge_commit_sha": "df4f9f761a20dc830220addfbf6f5bc3a0d32499", - "merged_at": null, - "milestone": null, + "merge_commit_sha": "21d466c1b985bcb0b80cd71d3b33eef6c24004f1", + "merged_at": "2023-08-04T02:24:27Z", + "milestone": { + "closed_at": null, + "closed_issues": 76, + "created_at": "2023-05-26T09:57:35Z", + "creator": { + "avatar_url": "https://avatars.githubusercontent.com/u/35768171?v=4", + "events_url": "https://api.github.com/users/zeertzjq/events{/privacy}", + "followers_url": "https://api.github.com/users/zeertzjq/followers", + "following_url": "https://api.github.com/users/zeertzjq/following{/other_user}", + "gists_url": "https://api.github.com/users/zeertzjq/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/zeertzjq", + "id": 35768171, + "login": "zeertzjq", + "node_id": "MDQ6VXNlcjM1NzY4MTcx", + "organizations_url": "https://api.github.com/users/zeertzjq/orgs", + "received_events_url": "https://api.github.com/users/zeertzjq/received_events", + "repos_url": "https://api.github.com/users/zeertzjq/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/zeertzjq/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/zeertzjq/subscriptions", + "type": "User", + "url": "https://api.github.com/users/zeertzjq" + }, + "description": "", + "due_on": null, + "html_url": "https://github.com/neovim/neovim/milestone/38", + "id": 9446345, + "labels_url": "https://api.github.com/repos/neovim/neovim/milestones/38/labels", + "node_id": "MI_kwDOAPphoM4AkCPJ", + "number": 38, + "open_issues": 7, + "state": "open", + "title": "0.9.2", + "updated_at": "2023-08-04T04:32:59Z", + "url": "https://api.github.com/repos/neovim/neovim/milestones/38" + }, "node_id": "PR_kwDOAPphoM5XJ79-", "number": 24552, "patch_url": "https://github.com/neovim/neovim/pull/24552.patch", @@ -334,10 +370,10 @@ "requested_teams": [], "review_comment_url": "https://api.github.com/repos/neovim/neovim/pulls/comments{/number}", "review_comments_url": "https://api.github.com/repos/neovim/neovim/pulls/24552/comments", - "state": "open", + "state": "closed", "statuses_url": "https://api.github.com/repos/neovim/neovim/statuses/526605c98c5bd4e9a524aad3b8e20cf3fa18a51c", "title": "fix(terminal): forward horizontal mouse scrolling", - "updated_at": "2023-08-04T01:37:13Z", + "updated_at": "2023-08-04T02:52:32Z", "url": "https://api.github.com/repos/neovim/neovim/pulls/24552", "user": { "avatar_url": "https://avatars.githubusercontent.com/u/35768171?v=4", diff --git a/repositories/neovim/pulls/24553.json b/repositories/neovim/pulls/24553.json new file mode 100644 index 00000000..8d7331c2 --- /dev/null +++ b/repositories/neovim/pulls/24553.json @@ -0,0 +1,362 @@ +{ + "_links": { + "comments": { + "href": "https://api.github.com/repos/neovim/neovim/issues/24553/comments" + }, + "commits": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/24553/commits" + }, + "html": { + "href": "https://github.com/neovim/neovim/pull/24553" + }, + "issue": { + "href": "https://api.github.com/repos/neovim/neovim/issues/24553" + }, + "review_comment": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/comments{/number}" + }, + "review_comments": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/24553/comments" + }, + "self": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/24553" + }, + "statuses": { + "href": "https://api.github.com/repos/neovim/neovim/statuses/18ec61acbeff5782b4c8c822a2ad6985addca5a1" + } + }, + "active_lock_reason": null, + "assignee": null, + "assignees": [], + "author_association": "MEMBER", + "auto_merge": null, + "base": { + "label": "neovim:master", + "ref": "master", + "repo": { + "allow_forking": true, + "archive_url": "https://api.github.com/repos/neovim/neovim/{archive_format}{/ref}", + "archived": false, + "assignees_url": "https://api.github.com/repos/neovim/neovim/assignees{/user}", + "blobs_url": "https://api.github.com/repos/neovim/neovim/git/blobs{/sha}", + "branches_url": "https://api.github.com/repos/neovim/neovim/branches{/branch}", + "clone_url": "https://github.com/neovim/neovim.git", + "collaborators_url": "https://api.github.com/repos/neovim/neovim/collaborators{/collaborator}", + "comments_url": "https://api.github.com/repos/neovim/neovim/comments{/number}", + "commits_url": "https://api.github.com/repos/neovim/neovim/commits{/sha}", + "compare_url": "https://api.github.com/repos/neovim/neovim/compare/{base}...{head}", + "contents_url": "https://api.github.com/repos/neovim/neovim/contents/{+path}", + "contributors_url": "https://api.github.com/repos/neovim/neovim/contributors", + "created_at": "2014-01-31T13:39:22Z", + "default_branch": "master", + "deployments_url": "https://api.github.com/repos/neovim/neovim/deployments", + "description": "Vim-fork focused on extensibility and usability", + "disabled": false, + "downloads_url": "https://api.github.com/repos/neovim/neovim/downloads", + "events_url": "https://api.github.com/repos/neovim/neovim/events", + "fork": false, + "forks": 4789, + "forks_count": 4789, + "forks_url": "https://api.github.com/repos/neovim/neovim/forks", + "full_name": "neovim/neovim", + "git_commits_url": "https://api.github.com/repos/neovim/neovim/git/commits{/sha}", + "git_refs_url": "https://api.github.com/repos/neovim/neovim/git/refs{/sha}", + "git_tags_url": "https://api.github.com/repos/neovim/neovim/git/tags{/sha}", + "git_url": "git://github.com/neovim/neovim.git", + "has_discussions": true, + "has_downloads": true, + "has_issues": true, + "has_pages": false, + "has_projects": true, + "has_wiki": true, + "homepage": "https://neovim.io", + "hooks_url": "https://api.github.com/repos/neovim/neovim/hooks", + "html_url": "https://github.com/neovim/neovim", + "id": 16408992, + "is_template": false, + "issue_comment_url": "https://api.github.com/repos/neovim/neovim/issues/comments{/number}", + "issue_events_url": "https://api.github.com/repos/neovim/neovim/issues/events{/number}", + "issues_url": "https://api.github.com/repos/neovim/neovim/issues{/number}", + "keys_url": "https://api.github.com/repos/neovim/neovim/keys{/key_id}", + "labels_url": "https://api.github.com/repos/neovim/neovim/labels{/name}", + "language": "Vim Script", + "languages_url": "https://api.github.com/repos/neovim/neovim/languages", + "license": { + "key": "other", + "name": "Other", + "node_id": "MDc6TGljZW5zZTA=", + "spdx_id": "NOASSERTION", + "url": null + }, + "merges_url": "https://api.github.com/repos/neovim/neovim/merges", + "milestones_url": "https://api.github.com/repos/neovim/neovim/milestones{/number}", + "mirror_url": null, + "name": "neovim", + "node_id": "MDEwOlJlcG9zaXRvcnkxNjQwODk5Mg==", + "notifications_url": "https://api.github.com/repos/neovim/neovim/notifications{?since,all,participating}", + "open_issues": 1652, + "open_issues_count": 1652, + "owner": { + "avatar_url": "https://avatars.githubusercontent.com/u/6471485?v=4", + "events_url": "https://api.github.com/users/neovim/events{/privacy}", + "followers_url": "https://api.github.com/users/neovim/followers", + "following_url": "https://api.github.com/users/neovim/following{/other_user}", + "gists_url": "https://api.github.com/users/neovim/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/neovim", + "id": 6471485, + "login": "neovim", + "node_id": "MDEyOk9yZ2FuaXphdGlvbjY0NzE0ODU=", + "organizations_url": "https://api.github.com/users/neovim/orgs", + "received_events_url": "https://api.github.com/users/neovim/received_events", + "repos_url": "https://api.github.com/users/neovim/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/neovim/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/neovim/subscriptions", + "type": "Organization", + "url": "https://api.github.com/users/neovim" + }, + "private": false, + "pulls_url": "https://api.github.com/repos/neovim/neovim/pulls{/number}", + "pushed_at": "2023-08-05T01:34:12Z", + "releases_url": "https://api.github.com/repos/neovim/neovim/releases{/id}", + "size": 246884, + "ssh_url": "git@github.com:neovim/neovim.git", + "stargazers_count": 68006, + "stargazers_url": "https://api.github.com/repos/neovim/neovim/stargazers", + "statuses_url": "https://api.github.com/repos/neovim/neovim/statuses/{sha}", + "subscribers_url": "https://api.github.com/repos/neovim/neovim/subscribers", + "subscription_url": "https://api.github.com/repos/neovim/neovim/subscription", + "svn_url": "https://github.com/neovim/neovim", + "tags_url": "https://api.github.com/repos/neovim/neovim/tags", + "teams_url": "https://api.github.com/repos/neovim/neovim/teams", + "topics": [ + "api", + "c", + "lua", + "neovim", + "nvim", + "text-editor", + "vim" + ], + "trees_url": "https://api.github.com/repos/neovim/neovim/git/trees{/sha}", + "updated_at": "2023-08-04T23:49:51Z", + "url": "https://api.github.com/repos/neovim/neovim", + "visibility": "public", + "watchers": 68006, + "watchers_count": 68006, + "web_commit_signoff_required": false + }, + "sha": "0a7fda6fa0067ee61fee60d123967c3f14431007", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/6471485?v=4", + "events_url": "https://api.github.com/users/neovim/events{/privacy}", + "followers_url": "https://api.github.com/users/neovim/followers", + "following_url": "https://api.github.com/users/neovim/following{/other_user}", + "gists_url": "https://api.github.com/users/neovim/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/neovim", + "id": 6471485, + "login": "neovim", + "node_id": "MDEyOk9yZ2FuaXphdGlvbjY0NzE0ODU=", + "organizations_url": "https://api.github.com/users/neovim/orgs", + "received_events_url": "https://api.github.com/users/neovim/received_events", + "repos_url": "https://api.github.com/users/neovim/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/neovim/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/neovim/subscriptions", + "type": "Organization", + "url": "https://api.github.com/users/neovim" + } + }, + "body": "Also avoid leaving directories behind.\n", + "closed_at": "2023-08-04T02:37:47Z", + "comment_data": [], + "comment_regular_data": [], + "comments_url": "https://api.github.com/repos/neovim/neovim/issues/24553/comments", + "commits_url": "https://api.github.com/repos/neovim/neovim/pulls/24553/commits", + "created_at": "2023-08-04T02:13:39Z", + "diff_url": "https://github.com/neovim/neovim/pull/24553.diff", + "draft": false, + "head": { + "label": "zeertzjq:test-defaults", + "ref": "test-defaults", + "repo": { + "allow_forking": true, + "archive_url": "https://api.github.com/repos/zeertzjq/neovim/{archive_format}{/ref}", + "archived": false, + "assignees_url": "https://api.github.com/repos/zeertzjq/neovim/assignees{/user}", + "blobs_url": "https://api.github.com/repos/zeertzjq/neovim/git/blobs{/sha}", + "branches_url": "https://api.github.com/repos/zeertzjq/neovim/branches{/branch}", + "clone_url": "https://github.com/zeertzjq/neovim.git", + "collaborators_url": "https://api.github.com/repos/zeertzjq/neovim/collaborators{/collaborator}", + "comments_url": "https://api.github.com/repos/zeertzjq/neovim/comments{/number}", + "commits_url": "https://api.github.com/repos/zeertzjq/neovim/commits{/sha}", + "compare_url": "https://api.github.com/repos/zeertzjq/neovim/compare/{base}...{head}", + "contents_url": "https://api.github.com/repos/zeertzjq/neovim/contents/{+path}", + "contributors_url": "https://api.github.com/repos/zeertzjq/neovim/contributors", + "created_at": "2021-09-27T02:22:45Z", + "default_branch": "master", + "deployments_url": "https://api.github.com/repos/zeertzjq/neovim/deployments", + "description": null, + "disabled": false, + "downloads_url": "https://api.github.com/repos/zeertzjq/neovim/downloads", + "events_url": "https://api.github.com/repos/zeertzjq/neovim/events", + "fork": true, + "forks": 0, + "forks_count": 0, + "forks_url": "https://api.github.com/repos/zeertzjq/neovim/forks", + "full_name": "zeertzjq/neovim", + "git_commits_url": "https://api.github.com/repos/zeertzjq/neovim/git/commits{/sha}", + "git_refs_url": "https://api.github.com/repos/zeertzjq/neovim/git/refs{/sha}", + "git_tags_url": "https://api.github.com/repos/zeertzjq/neovim/git/tags{/sha}", + "git_url": "git://github.com/zeertzjq/neovim.git", + "has_discussions": false, + "has_downloads": true, + "has_issues": false, + "has_pages": false, + "has_projects": true, + "has_wiki": true, + "homepage": "", + "hooks_url": "https://api.github.com/repos/zeertzjq/neovim/hooks", + "html_url": "https://github.com/zeertzjq/neovim", + "id": 410715915, + "is_template": false, + "issue_comment_url": "https://api.github.com/repos/zeertzjq/neovim/issues/comments{/number}", + "issue_events_url": "https://api.github.com/repos/zeertzjq/neovim/issues/events{/number}", + "issues_url": "https://api.github.com/repos/zeertzjq/neovim/issues{/number}", + "keys_url": "https://api.github.com/repos/zeertzjq/neovim/keys{/key_id}", + "labels_url": "https://api.github.com/repos/zeertzjq/neovim/labels{/name}", + "language": "Vim Script", + "languages_url": "https://api.github.com/repos/zeertzjq/neovim/languages", + "license": { + "key": "other", + "name": "Other", + "node_id": "MDc6TGljZW5zZTA=", + "spdx_id": "NOASSERTION", + "url": null + }, + "merges_url": "https://api.github.com/repos/zeertzjq/neovim/merges", + "milestones_url": "https://api.github.com/repos/zeertzjq/neovim/milestones{/number}", + "mirror_url": null, + "name": "neovim", + "node_id": "R_kgDOGHsHCw", + "notifications_url": "https://api.github.com/repos/zeertzjq/neovim/notifications{?since,all,participating}", + "open_issues": 0, + "open_issues_count": 0, + "owner": { + "avatar_url": "https://avatars.githubusercontent.com/u/35768171?v=4", + "events_url": "https://api.github.com/users/zeertzjq/events{/privacy}", + "followers_url": "https://api.github.com/users/zeertzjq/followers", + "following_url": "https://api.github.com/users/zeertzjq/following{/other_user}", + "gists_url": "https://api.github.com/users/zeertzjq/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/zeertzjq", + "id": 35768171, + "login": "zeertzjq", + "node_id": "MDQ6VXNlcjM1NzY4MTcx", + "organizations_url": "https://api.github.com/users/zeertzjq/orgs", + "received_events_url": "https://api.github.com/users/zeertzjq/received_events", + "repos_url": "https://api.github.com/users/zeertzjq/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/zeertzjq/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/zeertzjq/subscriptions", + "type": "User", + "url": "https://api.github.com/users/zeertzjq" + }, + "private": false, + "pulls_url": "https://api.github.com/repos/zeertzjq/neovim/pulls{/number}", + "pushed_at": "2023-08-04T23:55:51Z", + "releases_url": "https://api.github.com/repos/zeertzjq/neovim/releases{/id}", + "size": 240112, + "ssh_url": "git@github.com:zeertzjq/neovim.git", + "stargazers_count": 0, + "stargazers_url": "https://api.github.com/repos/zeertzjq/neovim/stargazers", + "statuses_url": "https://api.github.com/repos/zeertzjq/neovim/statuses/{sha}", + "subscribers_url": "https://api.github.com/repos/zeertzjq/neovim/subscribers", + "subscription_url": "https://api.github.com/repos/zeertzjq/neovim/subscription", + "svn_url": "https://github.com/zeertzjq/neovim", + "tags_url": "https://api.github.com/repos/zeertzjq/neovim/tags", + "teams_url": "https://api.github.com/repos/zeertzjq/neovim/teams", + "topics": [], + "trees_url": "https://api.github.com/repos/zeertzjq/neovim/git/trees{/sha}", + "updated_at": "2023-02-18T11:19:39Z", + "url": "https://api.github.com/repos/zeertzjq/neovim", + "visibility": "public", + "watchers": 0, + "watchers_count": 0, + "web_commit_signoff_required": false + }, + "sha": "18ec61acbeff5782b4c8c822a2ad6985addca5a1", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/35768171?v=4", + "events_url": "https://api.github.com/users/zeertzjq/events{/privacy}", + "followers_url": "https://api.github.com/users/zeertzjq/followers", + "following_url": "https://api.github.com/users/zeertzjq/following{/other_user}", + "gists_url": "https://api.github.com/users/zeertzjq/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/zeertzjq", + "id": 35768171, + "login": "zeertzjq", + "node_id": "MDQ6VXNlcjM1NzY4MTcx", + "organizations_url": "https://api.github.com/users/zeertzjq/orgs", + "received_events_url": "https://api.github.com/users/zeertzjq/received_events", + "repos_url": "https://api.github.com/users/zeertzjq/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/zeertzjq/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/zeertzjq/subscriptions", + "type": "User", + "url": "https://api.github.com/users/zeertzjq" + } + }, + "html_url": "https://github.com/neovim/neovim/pull/24553", + "id": 1462243152, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/24553", + "labels": [ + { + "color": "c5def5", + "default": false, + "description": "", + "id": 110418643, + "name": "test", + "node_id": "MDU6TGFiZWwxMTA0MTg2NDM=", + "url": "https://api.github.com/repos/neovim/neovim/labels/test" + } + ], + "locked": false, + "merge_commit_sha": "3d3ec27d51e1608306c9bd78425e3138f293ae69", + "merged_at": "2023-08-04T02:37:47Z", + "milestone": null, + "node_id": "PR_kwDOAPphoM5XKA9Q", + "number": 24553, + "patch_url": "https://github.com/neovim/neovim/pull/24553.patch", + "requested_reviewers": [], + "requested_teams": [], + "review_comment_url": "https://api.github.com/repos/neovim/neovim/pulls/comments{/number}", + "review_comments_url": "https://api.github.com/repos/neovim/neovim/pulls/24553/comments", + "state": "closed", + "statuses_url": "https://api.github.com/repos/neovim/neovim/statuses/18ec61acbeff5782b4c8c822a2ad6985addca5a1", + "title": "test(options/defaults_spec): fix NVIM_APPNAME test flakiness", + "updated_at": "2023-08-04T02:38:02Z", + "url": "https://api.github.com/repos/neovim/neovim/pulls/24553", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/35768171?v=4", + "events_url": "https://api.github.com/users/zeertzjq/events{/privacy}", + "followers_url": "https://api.github.com/users/zeertzjq/followers", + "following_url": "https://api.github.com/users/zeertzjq/following{/other_user}", + "gists_url": "https://api.github.com/users/zeertzjq/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/zeertzjq", + "id": 35768171, + "login": "zeertzjq", + "node_id": "MDQ6VXNlcjM1NzY4MTcx", + "organizations_url": "https://api.github.com/users/zeertzjq/orgs", + "received_events_url": "https://api.github.com/users/zeertzjq/received_events", + "repos_url": "https://api.github.com/users/zeertzjq/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/zeertzjq/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/zeertzjq/subscriptions", + "type": "User", + "url": "https://api.github.com/users/zeertzjq" + } +} \ No newline at end of file diff --git a/repositories/neovim/pulls/24554.json b/repositories/neovim/pulls/24554.json new file mode 100644 index 00000000..62e6a33c --- /dev/null +++ b/repositories/neovim/pulls/24554.json @@ -0,0 +1,352 @@ +{ + "_links": { + "comments": { + "href": "https://api.github.com/repos/neovim/neovim/issues/24554/comments" + }, + "commits": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/24554/commits" + }, + "html": { + "href": "https://github.com/neovim/neovim/pull/24554" + }, + "issue": { + "href": "https://api.github.com/repos/neovim/neovim/issues/24554" + }, + "review_comment": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/comments{/number}" + }, + "review_comments": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/24554/comments" + }, + "self": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/24554" + }, + "statuses": { + "href": "https://api.github.com/repos/neovim/neovim/statuses/060886e16cea711a2f4e9f94de301f1b27a77981" + } + }, + "active_lock_reason": null, + "assignee": null, + "assignees": [], + "author_association": "MEMBER", + "auto_merge": null, + "base": { + "label": "neovim:release-0.9", + "ref": "release-0.9", + "repo": { + "allow_forking": true, + "archive_url": "https://api.github.com/repos/neovim/neovim/{archive_format}{/ref}", + "archived": false, + "assignees_url": "https://api.github.com/repos/neovim/neovim/assignees{/user}", + "blobs_url": "https://api.github.com/repos/neovim/neovim/git/blobs{/sha}", + "branches_url": "https://api.github.com/repos/neovim/neovim/branches{/branch}", + "clone_url": "https://github.com/neovim/neovim.git", + "collaborators_url": "https://api.github.com/repos/neovim/neovim/collaborators{/collaborator}", + "comments_url": "https://api.github.com/repos/neovim/neovim/comments{/number}", + "commits_url": "https://api.github.com/repos/neovim/neovim/commits{/sha}", + "compare_url": "https://api.github.com/repos/neovim/neovim/compare/{base}...{head}", + "contents_url": "https://api.github.com/repos/neovim/neovim/contents/{+path}", + "contributors_url": "https://api.github.com/repos/neovim/neovim/contributors", + "created_at": "2014-01-31T13:39:22Z", + "default_branch": "master", + "deployments_url": "https://api.github.com/repos/neovim/neovim/deployments", + "description": "Vim-fork focused on extensibility and usability", + "disabled": false, + "downloads_url": "https://api.github.com/repos/neovim/neovim/downloads", + "events_url": "https://api.github.com/repos/neovim/neovim/events", + "fork": false, + "forks": 4789, + "forks_count": 4789, + "forks_url": "https://api.github.com/repos/neovim/neovim/forks", + "full_name": "neovim/neovim", + "git_commits_url": "https://api.github.com/repos/neovim/neovim/git/commits{/sha}", + "git_refs_url": "https://api.github.com/repos/neovim/neovim/git/refs{/sha}", + "git_tags_url": "https://api.github.com/repos/neovim/neovim/git/tags{/sha}", + "git_url": "git://github.com/neovim/neovim.git", + "has_discussions": true, + "has_downloads": true, + "has_issues": true, + "has_pages": false, + "has_projects": true, + "has_wiki": true, + "homepage": "https://neovim.io", + "hooks_url": "https://api.github.com/repos/neovim/neovim/hooks", + "html_url": "https://github.com/neovim/neovim", + "id": 16408992, + "is_template": false, + "issue_comment_url": "https://api.github.com/repos/neovim/neovim/issues/comments{/number}", + "issue_events_url": "https://api.github.com/repos/neovim/neovim/issues/events{/number}", + "issues_url": "https://api.github.com/repos/neovim/neovim/issues{/number}", + "keys_url": "https://api.github.com/repos/neovim/neovim/keys{/key_id}", + "labels_url": "https://api.github.com/repos/neovim/neovim/labels{/name}", + "language": "Vim Script", + "languages_url": "https://api.github.com/repos/neovim/neovim/languages", + "license": { + "key": "other", + "name": "Other", + "node_id": "MDc6TGljZW5zZTA=", + "spdx_id": "NOASSERTION", + "url": null + }, + "merges_url": "https://api.github.com/repos/neovim/neovim/merges", + "milestones_url": "https://api.github.com/repos/neovim/neovim/milestones{/number}", + "mirror_url": null, + "name": "neovim", + "node_id": "MDEwOlJlcG9zaXRvcnkxNjQwODk5Mg==", + "notifications_url": "https://api.github.com/repos/neovim/neovim/notifications{?since,all,participating}", + "open_issues": 1652, + "open_issues_count": 1652, + "owner": { + "avatar_url": "https://avatars.githubusercontent.com/u/6471485?v=4", + "events_url": "https://api.github.com/users/neovim/events{/privacy}", + "followers_url": "https://api.github.com/users/neovim/followers", + "following_url": "https://api.github.com/users/neovim/following{/other_user}", + "gists_url": "https://api.github.com/users/neovim/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/neovim", + "id": 6471485, + "login": "neovim", + "node_id": "MDEyOk9yZ2FuaXphdGlvbjY0NzE0ODU=", + "organizations_url": "https://api.github.com/users/neovim/orgs", + "received_events_url": "https://api.github.com/users/neovim/received_events", + "repos_url": "https://api.github.com/users/neovim/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/neovim/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/neovim/subscriptions", + "type": "Organization", + "url": "https://api.github.com/users/neovim" + }, + "private": false, + "pulls_url": "https://api.github.com/repos/neovim/neovim/pulls{/number}", + "pushed_at": "2023-08-05T01:34:12Z", + "releases_url": "https://api.github.com/repos/neovim/neovim/releases{/id}", + "size": 246884, + "ssh_url": "git@github.com:neovim/neovim.git", + "stargazers_count": 68006, + "stargazers_url": "https://api.github.com/repos/neovim/neovim/stargazers", + "statuses_url": "https://api.github.com/repos/neovim/neovim/statuses/{sha}", + "subscribers_url": "https://api.github.com/repos/neovim/neovim/subscribers", + "subscription_url": "https://api.github.com/repos/neovim/neovim/subscription", + "svn_url": "https://github.com/neovim/neovim", + "tags_url": "https://api.github.com/repos/neovim/neovim/tags", + "teams_url": "https://api.github.com/repos/neovim/neovim/teams", + "topics": [ + "api", + "c", + "lua", + "neovim", + "nvim", + "text-editor", + "vim" + ], + "trees_url": "https://api.github.com/repos/neovim/neovim/git/trees{/sha}", + "updated_at": "2023-08-04T23:49:51Z", + "url": "https://api.github.com/repos/neovim/neovim", + "visibility": "public", + "watchers": 68006, + "watchers_count": 68006, + "web_commit_signoff_required": false + }, + "sha": "f237c920768be4c5b7443bc1edc5923beb7ec5a3", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/6471485?v=4", + "events_url": "https://api.github.com/users/neovim/events{/privacy}", + "followers_url": "https://api.github.com/users/neovim/followers", + "following_url": "https://api.github.com/users/neovim/following{/other_user}", + "gists_url": "https://api.github.com/users/neovim/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/neovim", + "id": 6471485, + "login": "neovim", + "node_id": "MDEyOk9yZ2FuaXphdGlvbjY0NzE0ODU=", + "organizations_url": "https://api.github.com/users/neovim/orgs", + "received_events_url": "https://api.github.com/users/neovim/received_events", + "repos_url": "https://api.github.com/users/neovim/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/neovim/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/neovim/subscriptions", + "type": "Organization", + "url": "https://api.github.com/users/neovim" + } + }, + "body": null, + "closed_at": "2023-08-04T02:57:24Z", + "comment_data": [], + "comment_regular_data": [], + "comments_url": "https://api.github.com/repos/neovim/neovim/issues/24554/comments", + "commits_url": "https://api.github.com/repos/neovim/neovim/pulls/24554/commits", + "created_at": "2023-08-04T02:36:15Z", + "diff_url": "https://github.com/neovim/neovim/pull/24554.diff", + "draft": false, + "head": { + "label": "zeertzjq:backport", + "ref": "backport", + "repo": { + "allow_forking": true, + "archive_url": "https://api.github.com/repos/zeertzjq/neovim/{archive_format}{/ref}", + "archived": false, + "assignees_url": "https://api.github.com/repos/zeertzjq/neovim/assignees{/user}", + "blobs_url": "https://api.github.com/repos/zeertzjq/neovim/git/blobs{/sha}", + "branches_url": "https://api.github.com/repos/zeertzjq/neovim/branches{/branch}", + "clone_url": "https://github.com/zeertzjq/neovim.git", + "collaborators_url": "https://api.github.com/repos/zeertzjq/neovim/collaborators{/collaborator}", + "comments_url": "https://api.github.com/repos/zeertzjq/neovim/comments{/number}", + "commits_url": "https://api.github.com/repos/zeertzjq/neovim/commits{/sha}", + "compare_url": "https://api.github.com/repos/zeertzjq/neovim/compare/{base}...{head}", + "contents_url": "https://api.github.com/repos/zeertzjq/neovim/contents/{+path}", + "contributors_url": "https://api.github.com/repos/zeertzjq/neovim/contributors", + "created_at": "2021-09-27T02:22:45Z", + "default_branch": "master", + "deployments_url": "https://api.github.com/repos/zeertzjq/neovim/deployments", + "description": null, + "disabled": false, + "downloads_url": "https://api.github.com/repos/zeertzjq/neovim/downloads", + "events_url": "https://api.github.com/repos/zeertzjq/neovim/events", + "fork": true, + "forks": 0, + "forks_count": 0, + "forks_url": "https://api.github.com/repos/zeertzjq/neovim/forks", + "full_name": "zeertzjq/neovim", + "git_commits_url": "https://api.github.com/repos/zeertzjq/neovim/git/commits{/sha}", + "git_refs_url": "https://api.github.com/repos/zeertzjq/neovim/git/refs{/sha}", + "git_tags_url": "https://api.github.com/repos/zeertzjq/neovim/git/tags{/sha}", + "git_url": "git://github.com/zeertzjq/neovim.git", + "has_discussions": false, + "has_downloads": true, + "has_issues": false, + "has_pages": false, + "has_projects": true, + "has_wiki": true, + "homepage": "", + "hooks_url": "https://api.github.com/repos/zeertzjq/neovim/hooks", + "html_url": "https://github.com/zeertzjq/neovim", + "id": 410715915, + "is_template": false, + "issue_comment_url": "https://api.github.com/repos/zeertzjq/neovim/issues/comments{/number}", + "issue_events_url": "https://api.github.com/repos/zeertzjq/neovim/issues/events{/number}", + "issues_url": "https://api.github.com/repos/zeertzjq/neovim/issues{/number}", + "keys_url": "https://api.github.com/repos/zeertzjq/neovim/keys{/key_id}", + "labels_url": "https://api.github.com/repos/zeertzjq/neovim/labels{/name}", + "language": "Vim Script", + "languages_url": "https://api.github.com/repos/zeertzjq/neovim/languages", + "license": { + "key": "other", + "name": "Other", + "node_id": "MDc6TGljZW5zZTA=", + "spdx_id": "NOASSERTION", + "url": null + }, + "merges_url": "https://api.github.com/repos/zeertzjq/neovim/merges", + "milestones_url": "https://api.github.com/repos/zeertzjq/neovim/milestones{/number}", + "mirror_url": null, + "name": "neovim", + "node_id": "R_kgDOGHsHCw", + "notifications_url": "https://api.github.com/repos/zeertzjq/neovim/notifications{?since,all,participating}", + "open_issues": 0, + "open_issues_count": 0, + "owner": { + "avatar_url": "https://avatars.githubusercontent.com/u/35768171?v=4", + "events_url": "https://api.github.com/users/zeertzjq/events{/privacy}", + "followers_url": "https://api.github.com/users/zeertzjq/followers", + "following_url": "https://api.github.com/users/zeertzjq/following{/other_user}", + "gists_url": "https://api.github.com/users/zeertzjq/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/zeertzjq", + "id": 35768171, + "login": "zeertzjq", + "node_id": "MDQ6VXNlcjM1NzY4MTcx", + "organizations_url": "https://api.github.com/users/zeertzjq/orgs", + "received_events_url": "https://api.github.com/users/zeertzjq/received_events", + "repos_url": "https://api.github.com/users/zeertzjq/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/zeertzjq/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/zeertzjq/subscriptions", + "type": "User", + "url": "https://api.github.com/users/zeertzjq" + }, + "private": false, + "pulls_url": "https://api.github.com/repos/zeertzjq/neovim/pulls{/number}", + "pushed_at": "2023-08-04T23:55:51Z", + "releases_url": "https://api.github.com/repos/zeertzjq/neovim/releases{/id}", + "size": 240112, + "ssh_url": "git@github.com:zeertzjq/neovim.git", + "stargazers_count": 0, + "stargazers_url": "https://api.github.com/repos/zeertzjq/neovim/stargazers", + "statuses_url": "https://api.github.com/repos/zeertzjq/neovim/statuses/{sha}", + "subscribers_url": "https://api.github.com/repos/zeertzjq/neovim/subscribers", + "subscription_url": "https://api.github.com/repos/zeertzjq/neovim/subscription", + "svn_url": "https://github.com/zeertzjq/neovim", + "tags_url": "https://api.github.com/repos/zeertzjq/neovim/tags", + "teams_url": "https://api.github.com/repos/zeertzjq/neovim/teams", + "topics": [], + "trees_url": "https://api.github.com/repos/zeertzjq/neovim/git/trees{/sha}", + "updated_at": "2023-02-18T11:19:39Z", + "url": "https://api.github.com/repos/zeertzjq/neovim", + "visibility": "public", + "watchers": 0, + "watchers_count": 0, + "web_commit_signoff_required": false + }, + "sha": "060886e16cea711a2f4e9f94de301f1b27a77981", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/35768171?v=4", + "events_url": "https://api.github.com/users/zeertzjq/events{/privacy}", + "followers_url": "https://api.github.com/users/zeertzjq/followers", + "following_url": "https://api.github.com/users/zeertzjq/following{/other_user}", + "gists_url": "https://api.github.com/users/zeertzjq/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/zeertzjq", + "id": 35768171, + "login": "zeertzjq", + "node_id": "MDQ6VXNlcjM1NzY4MTcx", + "organizations_url": "https://api.github.com/users/zeertzjq/orgs", + "received_events_url": "https://api.github.com/users/zeertzjq/received_events", + "repos_url": "https://api.github.com/users/zeertzjq/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/zeertzjq/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/zeertzjq/subscriptions", + "type": "User", + "url": "https://api.github.com/users/zeertzjq" + } + }, + "html_url": "https://github.com/neovim/neovim/pull/24554", + "id": 1462255455, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/24554", + "labels": [], + "locked": false, + "merge_commit_sha": "5e6c8b338551a6c82cce55c136e68146e277eeeb", + "merged_at": "2023-08-04T02:57:24Z", + "milestone": null, + "node_id": "PR_kwDOAPphoM5XKD9f", + "number": 24554, + "patch_url": "https://github.com/neovim/neovim/pull/24554.patch", + "requested_reviewers": [], + "requested_teams": [], + "review_comment_url": "https://api.github.com/repos/neovim/neovim/pulls/comments{/number}", + "review_comments_url": "https://api.github.com/repos/neovim/neovim/pulls/24554/comments", + "state": "closed", + "statuses_url": "https://api.github.com/repos/neovim/neovim/statuses/060886e16cea711a2f4e9f94de301f1b27a77981", + "title": "Backport libvterm bump to release-0.9", + "updated_at": "2023-08-04T02:57:42Z", + "url": "https://api.github.com/repos/neovim/neovim/pulls/24554", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/35768171?v=4", + "events_url": "https://api.github.com/users/zeertzjq/events{/privacy}", + "followers_url": "https://api.github.com/users/zeertzjq/followers", + "following_url": "https://api.github.com/users/zeertzjq/following{/other_user}", + "gists_url": "https://api.github.com/users/zeertzjq/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/zeertzjq", + "id": 35768171, + "login": "zeertzjq", + "node_id": "MDQ6VXNlcjM1NzY4MTcx", + "organizations_url": "https://api.github.com/users/zeertzjq/orgs", + "received_events_url": "https://api.github.com/users/zeertzjq/received_events", + "repos_url": "https://api.github.com/users/zeertzjq/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/zeertzjq/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/zeertzjq/subscriptions", + "type": "User", + "url": "https://api.github.com/users/zeertzjq" + } +} \ No newline at end of file diff --git a/repositories/neovim/pulls/24555.json b/repositories/neovim/pulls/24555.json new file mode 100644 index 00000000..a687a0f8 --- /dev/null +++ b/repositories/neovim/pulls/24555.json @@ -0,0 +1,360 @@ +{ + "_links": { + "comments": { + "href": "https://api.github.com/repos/neovim/neovim/issues/24555/comments" + }, + "commits": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/24555/commits" + }, + "html": { + "href": "https://github.com/neovim/neovim/pull/24555" + }, + "issue": { + "href": "https://api.github.com/repos/neovim/neovim/issues/24555" + }, + "review_comment": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/comments{/number}" + }, + "review_comments": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/24555/comments" + }, + "self": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/24555" + }, + "statuses": { + "href": "https://api.github.com/repos/neovim/neovim/statuses/e977f3dd4f1777074197693512c91f6dead0ebec" + } + }, + "active_lock_reason": null, + "assignee": null, + "assignees": [], + "author_association": "CONTRIBUTOR", + "auto_merge": null, + "base": { + "label": "neovim:release-0.9", + "ref": "release-0.9", + "repo": { + "allow_forking": true, + "archive_url": "https://api.github.com/repos/neovim/neovim/{archive_format}{/ref}", + "archived": false, + "assignees_url": "https://api.github.com/repos/neovim/neovim/assignees{/user}", + "blobs_url": "https://api.github.com/repos/neovim/neovim/git/blobs{/sha}", + "branches_url": "https://api.github.com/repos/neovim/neovim/branches{/branch}", + "clone_url": "https://github.com/neovim/neovim.git", + "collaborators_url": "https://api.github.com/repos/neovim/neovim/collaborators{/collaborator}", + "comments_url": "https://api.github.com/repos/neovim/neovim/comments{/number}", + "commits_url": "https://api.github.com/repos/neovim/neovim/commits{/sha}", + "compare_url": "https://api.github.com/repos/neovim/neovim/compare/{base}...{head}", + "contents_url": "https://api.github.com/repos/neovim/neovim/contents/{+path}", + "contributors_url": "https://api.github.com/repos/neovim/neovim/contributors", + "created_at": "2014-01-31T13:39:22Z", + "default_branch": "master", + "deployments_url": "https://api.github.com/repos/neovim/neovim/deployments", + "description": "Vim-fork focused on extensibility and usability", + "disabled": false, + "downloads_url": "https://api.github.com/repos/neovim/neovim/downloads", + "events_url": "https://api.github.com/repos/neovim/neovim/events", + "fork": false, + "forks": 4789, + "forks_count": 4789, + "forks_url": "https://api.github.com/repos/neovim/neovim/forks", + "full_name": "neovim/neovim", + "git_commits_url": "https://api.github.com/repos/neovim/neovim/git/commits{/sha}", + "git_refs_url": "https://api.github.com/repos/neovim/neovim/git/refs{/sha}", + "git_tags_url": "https://api.github.com/repos/neovim/neovim/git/tags{/sha}", + "git_url": "git://github.com/neovim/neovim.git", + "has_discussions": true, + "has_downloads": true, + "has_issues": true, + "has_pages": false, + "has_projects": true, + "has_wiki": true, + "homepage": "https://neovim.io", + "hooks_url": "https://api.github.com/repos/neovim/neovim/hooks", + "html_url": "https://github.com/neovim/neovim", + "id": 16408992, + "is_template": false, + "issue_comment_url": "https://api.github.com/repos/neovim/neovim/issues/comments{/number}", + "issue_events_url": "https://api.github.com/repos/neovim/neovim/issues/events{/number}", + "issues_url": "https://api.github.com/repos/neovim/neovim/issues{/number}", + "keys_url": "https://api.github.com/repos/neovim/neovim/keys{/key_id}", + "labels_url": "https://api.github.com/repos/neovim/neovim/labels{/name}", + "language": "Vim Script", + "languages_url": "https://api.github.com/repos/neovim/neovim/languages", + "license": { + "key": "other", + "name": "Other", + "node_id": "MDc6TGljZW5zZTA=", + "spdx_id": "NOASSERTION", + "url": null + }, + "merges_url": "https://api.github.com/repos/neovim/neovim/merges", + "milestones_url": "https://api.github.com/repos/neovim/neovim/milestones{/number}", + "mirror_url": null, + "name": "neovim", + "node_id": "MDEwOlJlcG9zaXRvcnkxNjQwODk5Mg==", + "notifications_url": "https://api.github.com/repos/neovim/neovim/notifications{?since,all,participating}", + "open_issues": 1652, + "open_issues_count": 1652, + "owner": { + "avatar_url": "https://avatars.githubusercontent.com/u/6471485?v=4", + "events_url": "https://api.github.com/users/neovim/events{/privacy}", + "followers_url": "https://api.github.com/users/neovim/followers", + "following_url": "https://api.github.com/users/neovim/following{/other_user}", + "gists_url": "https://api.github.com/users/neovim/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/neovim", + "id": 6471485, + "login": "neovim", + "node_id": "MDEyOk9yZ2FuaXphdGlvbjY0NzE0ODU=", + "organizations_url": "https://api.github.com/users/neovim/orgs", + "received_events_url": "https://api.github.com/users/neovim/received_events", + "repos_url": "https://api.github.com/users/neovim/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/neovim/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/neovim/subscriptions", + "type": "Organization", + "url": "https://api.github.com/users/neovim" + }, + "private": false, + "pulls_url": "https://api.github.com/repos/neovim/neovim/pulls{/number}", + "pushed_at": "2023-08-05T01:34:12Z", + "releases_url": "https://api.github.com/repos/neovim/neovim/releases{/id}", + "size": 246884, + "ssh_url": "git@github.com:neovim/neovim.git", + "stargazers_count": 68006, + "stargazers_url": "https://api.github.com/repos/neovim/neovim/stargazers", + "statuses_url": "https://api.github.com/repos/neovim/neovim/statuses/{sha}", + "subscribers_url": "https://api.github.com/repos/neovim/neovim/subscribers", + "subscription_url": "https://api.github.com/repos/neovim/neovim/subscription", + "svn_url": "https://github.com/neovim/neovim", + "tags_url": "https://api.github.com/repos/neovim/neovim/tags", + "teams_url": "https://api.github.com/repos/neovim/neovim/teams", + "topics": [ + "api", + "c", + "lua", + "neovim", + "nvim", + "text-editor", + "vim" + ], + "trees_url": "https://api.github.com/repos/neovim/neovim/git/trees{/sha}", + "updated_at": "2023-08-04T23:49:51Z", + "url": "https://api.github.com/repos/neovim/neovim", + "visibility": "public", + "watchers": 68006, + "watchers_count": 68006, + "web_commit_signoff_required": false + }, + "sha": "f237c920768be4c5b7443bc1edc5923beb7ec5a3", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/6471485?v=4", + "events_url": "https://api.github.com/users/neovim/events{/privacy}", + "followers_url": "https://api.github.com/users/neovim/followers", + "following_url": "https://api.github.com/users/neovim/following{/other_user}", + "gists_url": "https://api.github.com/users/neovim/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/neovim", + "id": 6471485, + "login": "neovim", + "node_id": "MDEyOk9yZ2FuaXphdGlvbjY0NzE0ODU=", + "organizations_url": "https://api.github.com/users/neovim/orgs", + "received_events_url": "https://api.github.com/users/neovim/received_events", + "repos_url": "https://api.github.com/users/neovim/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/neovim/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/neovim/subscriptions", + "type": "Organization", + "url": "https://api.github.com/users/neovim" + } + }, + "body": "# Description\nBackport of #23224 to `release-0.9`.", + "closed_at": "2023-08-04T02:51:41Z", + "comment_data": [], + "comment_regular_data": [], + "comments_url": "https://api.github.com/repos/neovim/neovim/issues/24555/comments", + "commits_url": "https://api.github.com/repos/neovim/neovim/pulls/24555/commits", + "created_at": "2023-08-04T02:41:56Z", + "diff_url": "https://github.com/neovim/neovim/pull/24555.diff", + "draft": false, + "head": { + "label": "neovim:backport-23224-to-release-0.9", + "ref": "backport-23224-to-release-0.9", + "repo": { + "allow_forking": true, + "archive_url": "https://api.github.com/repos/neovim/neovim/{archive_format}{/ref}", + "archived": false, + "assignees_url": "https://api.github.com/repos/neovim/neovim/assignees{/user}", + "blobs_url": "https://api.github.com/repos/neovim/neovim/git/blobs{/sha}", + "branches_url": "https://api.github.com/repos/neovim/neovim/branches{/branch}", + "clone_url": "https://github.com/neovim/neovim.git", + "collaborators_url": "https://api.github.com/repos/neovim/neovim/collaborators{/collaborator}", + "comments_url": "https://api.github.com/repos/neovim/neovim/comments{/number}", + "commits_url": "https://api.github.com/repos/neovim/neovim/commits{/sha}", + "compare_url": "https://api.github.com/repos/neovim/neovim/compare/{base}...{head}", + "contents_url": "https://api.github.com/repos/neovim/neovim/contents/{+path}", + "contributors_url": "https://api.github.com/repos/neovim/neovim/contributors", + "created_at": "2014-01-31T13:39:22Z", + "default_branch": "master", + "deployments_url": "https://api.github.com/repos/neovim/neovim/deployments", + "description": "Vim-fork focused on extensibility and usability", + "disabled": false, + "downloads_url": "https://api.github.com/repos/neovim/neovim/downloads", + "events_url": "https://api.github.com/repos/neovim/neovim/events", + "fork": false, + "forks": 4789, + "forks_count": 4789, + "forks_url": "https://api.github.com/repos/neovim/neovim/forks", + "full_name": "neovim/neovim", + "git_commits_url": "https://api.github.com/repos/neovim/neovim/git/commits{/sha}", + "git_refs_url": "https://api.github.com/repos/neovim/neovim/git/refs{/sha}", + "git_tags_url": "https://api.github.com/repos/neovim/neovim/git/tags{/sha}", + "git_url": "git://github.com/neovim/neovim.git", + "has_discussions": true, + "has_downloads": true, + "has_issues": true, + "has_pages": false, + "has_projects": true, + "has_wiki": true, + "homepage": "https://neovim.io", + "hooks_url": "https://api.github.com/repos/neovim/neovim/hooks", + "html_url": "https://github.com/neovim/neovim", + "id": 16408992, + "is_template": false, + "issue_comment_url": "https://api.github.com/repos/neovim/neovim/issues/comments{/number}", + "issue_events_url": "https://api.github.com/repos/neovim/neovim/issues/events{/number}", + "issues_url": "https://api.github.com/repos/neovim/neovim/issues{/number}", + "keys_url": "https://api.github.com/repos/neovim/neovim/keys{/key_id}", + "labels_url": "https://api.github.com/repos/neovim/neovim/labels{/name}", + "language": "Vim Script", + "languages_url": "https://api.github.com/repos/neovim/neovim/languages", + "license": { + "key": "other", + "name": "Other", + "node_id": "MDc6TGljZW5zZTA=", + "spdx_id": "NOASSERTION", + "url": null + }, + "merges_url": "https://api.github.com/repos/neovim/neovim/merges", + "milestones_url": "https://api.github.com/repos/neovim/neovim/milestones{/number}", + "mirror_url": null, + "name": "neovim", + "node_id": "MDEwOlJlcG9zaXRvcnkxNjQwODk5Mg==", + "notifications_url": "https://api.github.com/repos/neovim/neovim/notifications{?since,all,participating}", + "open_issues": 1652, + "open_issues_count": 1652, + "owner": { + "avatar_url": "https://avatars.githubusercontent.com/u/6471485?v=4", + "events_url": "https://api.github.com/users/neovim/events{/privacy}", + "followers_url": "https://api.github.com/users/neovim/followers", + "following_url": "https://api.github.com/users/neovim/following{/other_user}", + "gists_url": "https://api.github.com/users/neovim/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/neovim", + "id": 6471485, + "login": "neovim", + "node_id": "MDEyOk9yZ2FuaXphdGlvbjY0NzE0ODU=", + "organizations_url": "https://api.github.com/users/neovim/orgs", + "received_events_url": "https://api.github.com/users/neovim/received_events", + "repos_url": "https://api.github.com/users/neovim/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/neovim/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/neovim/subscriptions", + "type": "Organization", + "url": "https://api.github.com/users/neovim" + }, + "private": false, + "pulls_url": "https://api.github.com/repos/neovim/neovim/pulls{/number}", + "pushed_at": "2023-08-05T01:34:12Z", + "releases_url": "https://api.github.com/repos/neovim/neovim/releases{/id}", + "size": 246884, + "ssh_url": "git@github.com:neovim/neovim.git", + "stargazers_count": 68006, + "stargazers_url": "https://api.github.com/repos/neovim/neovim/stargazers", + "statuses_url": "https://api.github.com/repos/neovim/neovim/statuses/{sha}", + "subscribers_url": "https://api.github.com/repos/neovim/neovim/subscribers", + "subscription_url": "https://api.github.com/repos/neovim/neovim/subscription", + "svn_url": "https://github.com/neovim/neovim", + "tags_url": "https://api.github.com/repos/neovim/neovim/tags", + "teams_url": "https://api.github.com/repos/neovim/neovim/teams", + "topics": [ + "api", + "c", + "lua", + "neovim", + "nvim", + "text-editor", + "vim" + ], + "trees_url": "https://api.github.com/repos/neovim/neovim/git/trees{/sha}", + "updated_at": "2023-08-04T23:49:51Z", + "url": "https://api.github.com/repos/neovim/neovim", + "visibility": "public", + "watchers": 68006, + "watchers_count": 68006, + "web_commit_signoff_required": false + }, + "sha": "e977f3dd4f1777074197693512c91f6dead0ebec", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/6471485?v=4", + "events_url": "https://api.github.com/users/neovim/events{/privacy}", + "followers_url": "https://api.github.com/users/neovim/followers", + "following_url": "https://api.github.com/users/neovim/following{/other_user}", + "gists_url": "https://api.github.com/users/neovim/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/neovim", + "id": 6471485, + "login": "neovim", + "node_id": "MDEyOk9yZ2FuaXphdGlvbjY0NzE0ODU=", + "organizations_url": "https://api.github.com/users/neovim/orgs", + "received_events_url": "https://api.github.com/users/neovim/received_events", + "repos_url": "https://api.github.com/users/neovim/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/neovim/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/neovim/subscriptions", + "type": "Organization", + "url": "https://api.github.com/users/neovim" + } + }, + "html_url": "https://github.com/neovim/neovim/pull/24555", + "id": 1462258334, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/24555", + "labels": [], + "locked": false, + "merge_commit_sha": "9d1c8bc5c0ea7b85aeff3ff3da00f60d4da7d52c", + "merged_at": "2023-08-04T02:51:41Z", + "milestone": null, + "node_id": "PR_kwDOAPphoM5XKEqe", + "number": 24555, + "patch_url": "https://github.com/neovim/neovim/pull/24555.patch", + "requested_reviewers": [], + "requested_teams": [], + "review_comment_url": "https://api.github.com/repos/neovim/neovim/pulls/comments{/number}", + "review_comments_url": "https://api.github.com/repos/neovim/neovim/pulls/24555/comments", + "state": "closed", + "statuses_url": "https://api.github.com/repos/neovim/neovim/statuses/e977f3dd4f1777074197693512c91f6dead0ebec", + "title": "[Backport release-0.9] refactor(env): remove unused mutex", + "updated_at": "2023-08-04T02:51:56Z", + "url": "https://api.github.com/repos/neovim/neovim/pulls/24555", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/in/15368?v=4", + "events_url": "https://api.github.com/users/github-actions%5Bbot%5D/events{/privacy}", + "followers_url": "https://api.github.com/users/github-actions%5Bbot%5D/followers", + "following_url": "https://api.github.com/users/github-actions%5Bbot%5D/following{/other_user}", + "gists_url": "https://api.github.com/users/github-actions%5Bbot%5D/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/apps/github-actions", + "id": 41898282, + "login": "github-actions[bot]", + "node_id": "MDM6Qm90NDE4OTgyODI=", + "organizations_url": "https://api.github.com/users/github-actions%5Bbot%5D/orgs", + "received_events_url": "https://api.github.com/users/github-actions%5Bbot%5D/received_events", + "repos_url": "https://api.github.com/users/github-actions%5Bbot%5D/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/github-actions%5Bbot%5D/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/github-actions%5Bbot%5D/subscriptions", + "type": "Bot", + "url": "https://api.github.com/users/github-actions%5Bbot%5D" + } +} \ No newline at end of file diff --git a/repositories/neovim/pulls/24558.json b/repositories/neovim/pulls/24558.json new file mode 100644 index 00000000..abe9b369 --- /dev/null +++ b/repositories/neovim/pulls/24558.json @@ -0,0 +1,362 @@ +{ + "_links": { + "comments": { + "href": "https://api.github.com/repos/neovim/neovim/issues/24558/comments" + }, + "commits": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/24558/commits" + }, + "html": { + "href": "https://github.com/neovim/neovim/pull/24558" + }, + "issue": { + "href": "https://api.github.com/repos/neovim/neovim/issues/24558" + }, + "review_comment": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/comments{/number}" + }, + "review_comments": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/24558/comments" + }, + "self": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/24558" + }, + "statuses": { + "href": "https://api.github.com/repos/neovim/neovim/statuses/d20ecef5737f19923dec0ebe710839407a837197" + } + }, + "active_lock_reason": null, + "assignee": null, + "assignees": [], + "author_association": "MEMBER", + "auto_merge": null, + "base": { + "label": "neovim:release-0.9", + "ref": "release-0.9", + "repo": { + "allow_forking": true, + "archive_url": "https://api.github.com/repos/neovim/neovim/{archive_format}{/ref}", + "archived": false, + "assignees_url": "https://api.github.com/repos/neovim/neovim/assignees{/user}", + "blobs_url": "https://api.github.com/repos/neovim/neovim/git/blobs{/sha}", + "branches_url": "https://api.github.com/repos/neovim/neovim/branches{/branch}", + "clone_url": "https://github.com/neovim/neovim.git", + "collaborators_url": "https://api.github.com/repos/neovim/neovim/collaborators{/collaborator}", + "comments_url": "https://api.github.com/repos/neovim/neovim/comments{/number}", + "commits_url": "https://api.github.com/repos/neovim/neovim/commits{/sha}", + "compare_url": "https://api.github.com/repos/neovim/neovim/compare/{base}...{head}", + "contents_url": "https://api.github.com/repos/neovim/neovim/contents/{+path}", + "contributors_url": "https://api.github.com/repos/neovim/neovim/contributors", + "created_at": "2014-01-31T13:39:22Z", + "default_branch": "master", + "deployments_url": "https://api.github.com/repos/neovim/neovim/deployments", + "description": "Vim-fork focused on extensibility and usability", + "disabled": false, + "downloads_url": "https://api.github.com/repos/neovim/neovim/downloads", + "events_url": "https://api.github.com/repos/neovim/neovim/events", + "fork": false, + "forks": 4789, + "forks_count": 4789, + "forks_url": "https://api.github.com/repos/neovim/neovim/forks", + "full_name": "neovim/neovim", + "git_commits_url": "https://api.github.com/repos/neovim/neovim/git/commits{/sha}", + "git_refs_url": "https://api.github.com/repos/neovim/neovim/git/refs{/sha}", + "git_tags_url": "https://api.github.com/repos/neovim/neovim/git/tags{/sha}", + "git_url": "git://github.com/neovim/neovim.git", + "has_discussions": true, + "has_downloads": true, + "has_issues": true, + "has_pages": false, + "has_projects": true, + "has_wiki": true, + "homepage": "https://neovim.io", + "hooks_url": "https://api.github.com/repos/neovim/neovim/hooks", + "html_url": "https://github.com/neovim/neovim", + "id": 16408992, + "is_template": false, + "issue_comment_url": "https://api.github.com/repos/neovim/neovim/issues/comments{/number}", + "issue_events_url": "https://api.github.com/repos/neovim/neovim/issues/events{/number}", + "issues_url": "https://api.github.com/repos/neovim/neovim/issues{/number}", + "keys_url": "https://api.github.com/repos/neovim/neovim/keys{/key_id}", + "labels_url": "https://api.github.com/repos/neovim/neovim/labels{/name}", + "language": "Vim Script", + "languages_url": "https://api.github.com/repos/neovim/neovim/languages", + "license": { + "key": "other", + "name": "Other", + "node_id": "MDc6TGljZW5zZTA=", + "spdx_id": "NOASSERTION", + "url": null + }, + "merges_url": "https://api.github.com/repos/neovim/neovim/merges", + "milestones_url": "https://api.github.com/repos/neovim/neovim/milestones{/number}", + "mirror_url": null, + "name": "neovim", + "node_id": "MDEwOlJlcG9zaXRvcnkxNjQwODk5Mg==", + "notifications_url": "https://api.github.com/repos/neovim/neovim/notifications{?since,all,participating}", + "open_issues": 1652, + "open_issues_count": 1652, + "owner": { + "avatar_url": "https://avatars.githubusercontent.com/u/6471485?v=4", + "events_url": "https://api.github.com/users/neovim/events{/privacy}", + "followers_url": "https://api.github.com/users/neovim/followers", + "following_url": "https://api.github.com/users/neovim/following{/other_user}", + "gists_url": "https://api.github.com/users/neovim/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/neovim", + "id": 6471485, + "login": "neovim", + "node_id": "MDEyOk9yZ2FuaXphdGlvbjY0NzE0ODU=", + "organizations_url": "https://api.github.com/users/neovim/orgs", + "received_events_url": "https://api.github.com/users/neovim/received_events", + "repos_url": "https://api.github.com/users/neovim/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/neovim/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/neovim/subscriptions", + "type": "Organization", + "url": "https://api.github.com/users/neovim" + }, + "private": false, + "pulls_url": "https://api.github.com/repos/neovim/neovim/pulls{/number}", + "pushed_at": "2023-08-05T01:34:12Z", + "releases_url": "https://api.github.com/repos/neovim/neovim/releases{/id}", + "size": 246884, + "ssh_url": "git@github.com:neovim/neovim.git", + "stargazers_count": 68006, + "stargazers_url": "https://api.github.com/repos/neovim/neovim/stargazers", + "statuses_url": "https://api.github.com/repos/neovim/neovim/statuses/{sha}", + "subscribers_url": "https://api.github.com/repos/neovim/neovim/subscribers", + "subscription_url": "https://api.github.com/repos/neovim/neovim/subscription", + "svn_url": "https://github.com/neovim/neovim", + "tags_url": "https://api.github.com/repos/neovim/neovim/tags", + "teams_url": "https://api.github.com/repos/neovim/neovim/teams", + "topics": [ + "api", + "c", + "lua", + "neovim", + "nvim", + "text-editor", + "vim" + ], + "trees_url": "https://api.github.com/repos/neovim/neovim/git/trees{/sha}", + "updated_at": "2023-08-04T23:49:51Z", + "url": "https://api.github.com/repos/neovim/neovim", + "visibility": "public", + "watchers": 68006, + "watchers_count": 68006, + "web_commit_signoff_required": false + }, + "sha": "5e6c8b338551a6c82cce55c136e68146e277eeeb", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/6471485?v=4", + "events_url": "https://api.github.com/users/neovim/events{/privacy}", + "followers_url": "https://api.github.com/users/neovim/followers", + "following_url": "https://api.github.com/users/neovim/following{/other_user}", + "gists_url": "https://api.github.com/users/neovim/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/neovim", + "id": 6471485, + "login": "neovim", + "node_id": "MDEyOk9yZ2FuaXphdGlvbjY0NzE0ODU=", + "organizations_url": "https://api.github.com/users/neovim/orgs", + "received_events_url": "https://api.github.com/users/neovim/received_events", + "repos_url": "https://api.github.com/users/neovim/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/neovim/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/neovim/subscriptions", + "type": "Organization", + "url": "https://api.github.com/users/neovim" + } + }, + "body": "Backports #24550.\r\n\r\nAdjusts test to expect that didChangeWatchedFiles is *not* registered if client `capabilities` is nil (as not enabled by default for v0.9).", + "closed_at": "2023-08-04T09:16:54Z", + "comment_data": [], + "comment_regular_data": [], + "comments_url": "https://api.github.com/repos/neovim/neovim/issues/24558/comments", + "commits_url": "https://api.github.com/repos/neovim/neovim/pulls/24558/commits", + "created_at": "2023-08-04T08:51:42Z", + "diff_url": "https://github.com/neovim/neovim/pull/24558.diff", + "draft": false, + "head": { + "label": "seandewar:backport-24550", + "ref": "backport-24550", + "repo": { + "allow_forking": true, + "archive_url": "https://api.github.com/repos/seandewar/neovim/{archive_format}{/ref}", + "archived": false, + "assignees_url": "https://api.github.com/repos/seandewar/neovim/assignees{/user}", + "blobs_url": "https://api.github.com/repos/seandewar/neovim/git/blobs{/sha}", + "branches_url": "https://api.github.com/repos/seandewar/neovim/branches{/branch}", + "clone_url": "https://github.com/seandewar/neovim.git", + "collaborators_url": "https://api.github.com/repos/seandewar/neovim/collaborators{/collaborator}", + "comments_url": "https://api.github.com/repos/seandewar/neovim/comments{/number}", + "commits_url": "https://api.github.com/repos/seandewar/neovim/commits{/sha}", + "compare_url": "https://api.github.com/repos/seandewar/neovim/compare/{base}...{head}", + "contents_url": "https://api.github.com/repos/seandewar/neovim/contents/{+path}", + "contributors_url": "https://api.github.com/repos/seandewar/neovim/contributors", + "created_at": "2020-10-20T16:45:01Z", + "default_branch": "master", + "deployments_url": "https://api.github.com/repos/seandewar/neovim/deployments", + "description": "[Contribution Fork] Vim-fork focused on extensibility and usability", + "disabled": false, + "downloads_url": "https://api.github.com/repos/seandewar/neovim/downloads", + "events_url": "https://api.github.com/repos/seandewar/neovim/events", + "fork": true, + "forks": 0, + "forks_count": 0, + "forks_url": "https://api.github.com/repos/seandewar/neovim/forks", + "full_name": "seandewar/neovim", + "git_commits_url": "https://api.github.com/repos/seandewar/neovim/git/commits{/sha}", + "git_refs_url": "https://api.github.com/repos/seandewar/neovim/git/refs{/sha}", + "git_tags_url": "https://api.github.com/repos/seandewar/neovim/git/tags{/sha}", + "git_url": "git://github.com/seandewar/neovim.git", + "has_discussions": false, + "has_downloads": true, + "has_issues": false, + "has_pages": false, + "has_projects": true, + "has_wiki": true, + "homepage": "https://neovim.io", + "hooks_url": "https://api.github.com/repos/seandewar/neovim/hooks", + "html_url": "https://github.com/seandewar/neovim", + "id": 305773353, + "is_template": false, + "issue_comment_url": "https://api.github.com/repos/seandewar/neovim/issues/comments{/number}", + "issue_events_url": "https://api.github.com/repos/seandewar/neovim/issues/events{/number}", + "issues_url": "https://api.github.com/repos/seandewar/neovim/issues{/number}", + "keys_url": "https://api.github.com/repos/seandewar/neovim/keys{/key_id}", + "labels_url": "https://api.github.com/repos/seandewar/neovim/labels{/name}", + "language": "Vim Script", + "languages_url": "https://api.github.com/repos/seandewar/neovim/languages", + "license": { + "key": "other", + "name": "Other", + "node_id": "MDc6TGljZW5zZTA=", + "spdx_id": "NOASSERTION", + "url": null + }, + "merges_url": "https://api.github.com/repos/seandewar/neovim/merges", + "milestones_url": "https://api.github.com/repos/seandewar/neovim/milestones{/number}", + "mirror_url": null, + "name": "neovim", + "node_id": "MDEwOlJlcG9zaXRvcnkzMDU3NzMzNTM=", + "notifications_url": "https://api.github.com/repos/seandewar/neovim/notifications{?since,all,participating}", + "open_issues": 0, + "open_issues_count": 0, + "owner": { + "avatar_url": "https://avatars.githubusercontent.com/u/6256228?v=4", + "events_url": "https://api.github.com/users/seandewar/events{/privacy}", + "followers_url": "https://api.github.com/users/seandewar/followers", + "following_url": "https://api.github.com/users/seandewar/following{/other_user}", + "gists_url": "https://api.github.com/users/seandewar/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/seandewar", + "id": 6256228, + "login": "seandewar", + "node_id": "MDQ6VXNlcjYyNTYyMjg=", + "organizations_url": "https://api.github.com/users/seandewar/orgs", + "received_events_url": "https://api.github.com/users/seandewar/received_events", + "repos_url": "https://api.github.com/users/seandewar/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/seandewar/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/seandewar/subscriptions", + "type": "User", + "url": "https://api.github.com/users/seandewar" + }, + "private": false, + "pulls_url": "https://api.github.com/repos/seandewar/neovim/pulls{/number}", + "pushed_at": "2023-08-04T09:16:58Z", + "releases_url": "https://api.github.com/repos/seandewar/neovim/releases{/id}", + "size": 243499, + "ssh_url": "git@github.com:seandewar/neovim.git", + "stargazers_count": 2, + "stargazers_url": "https://api.github.com/repos/seandewar/neovim/stargazers", + "statuses_url": "https://api.github.com/repos/seandewar/neovim/statuses/{sha}", + "subscribers_url": "https://api.github.com/repos/seandewar/neovim/subscribers", + "subscription_url": "https://api.github.com/repos/seandewar/neovim/subscription", + "svn_url": "https://github.com/seandewar/neovim", + "tags_url": "https://api.github.com/repos/seandewar/neovim/tags", + "teams_url": "https://api.github.com/repos/seandewar/neovim/teams", + "topics": [], + "trees_url": "https://api.github.com/repos/seandewar/neovim/git/trees{/sha}", + "updated_at": "2023-01-12T23:27:58Z", + "url": "https://api.github.com/repos/seandewar/neovim", + "visibility": "public", + "watchers": 2, + "watchers_count": 2, + "web_commit_signoff_required": false + }, + "sha": "d20ecef5737f19923dec0ebe710839407a837197", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/6256228?v=4", + "events_url": "https://api.github.com/users/seandewar/events{/privacy}", + "followers_url": "https://api.github.com/users/seandewar/followers", + "following_url": "https://api.github.com/users/seandewar/following{/other_user}", + "gists_url": "https://api.github.com/users/seandewar/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/seandewar", + "id": 6256228, + "login": "seandewar", + "node_id": "MDQ6VXNlcjYyNTYyMjg=", + "organizations_url": "https://api.github.com/users/seandewar/orgs", + "received_events_url": "https://api.github.com/users/seandewar/received_events", + "repos_url": "https://api.github.com/users/seandewar/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/seandewar/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/seandewar/subscriptions", + "type": "User", + "url": "https://api.github.com/users/seandewar" + } + }, + "html_url": "https://github.com/neovim/neovim/pull/24558", + "id": 1462573086, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/24558", + "labels": [ + { + "color": "c5def5", + "default": false, + "description": null, + "id": 662566370, + "name": "lsp", + "node_id": "MDU6TGFiZWw2NjI1NjYzNzA=", + "url": "https://api.github.com/repos/neovim/neovim/labels/lsp" + } + ], + "locked": false, + "merge_commit_sha": "df63474930c7009157eb601cf2c7968ffdd13770", + "merged_at": "2023-08-04T09:16:54Z", + "milestone": null, + "node_id": "PR_kwDOAPphoM5XLRge", + "number": 24558, + "patch_url": "https://github.com/neovim/neovim/pull/24558.patch", + "requested_reviewers": [], + "requested_teams": [], + "review_comment_url": "https://api.github.com/repos/neovim/neovim/pulls/comments{/number}", + "review_comments_url": "https://api.github.com/repos/neovim/neovim/pulls/24558/comments", + "state": "closed", + "statuses_url": "https://api.github.com/repos/neovim/neovim/statuses/d20ecef5737f19923dec0ebe710839407a837197", + "title": "fix(lsp): do not assume client capability exists in watchfiles check", + "updated_at": "2023-08-04T09:17:11Z", + "url": "https://api.github.com/repos/neovim/neovim/pulls/24558", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/6256228?v=4", + "events_url": "https://api.github.com/users/seandewar/events{/privacy}", + "followers_url": "https://api.github.com/users/seandewar/followers", + "following_url": "https://api.github.com/users/seandewar/following{/other_user}", + "gists_url": "https://api.github.com/users/seandewar/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/seandewar", + "id": 6256228, + "login": "seandewar", + "node_id": "MDQ6VXNlcjYyNTYyMjg=", + "organizations_url": "https://api.github.com/users/seandewar/orgs", + "received_events_url": "https://api.github.com/users/seandewar/received_events", + "repos_url": "https://api.github.com/users/seandewar/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/seandewar/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/seandewar/subscriptions", + "type": "User", + "url": "https://api.github.com/users/seandewar" + } +} \ No newline at end of file diff --git a/repositories/neovim/pulls/24559.json b/repositories/neovim/pulls/24559.json new file mode 100644 index 00000000..d62580c3 --- /dev/null +++ b/repositories/neovim/pulls/24559.json @@ -0,0 +1,362 @@ +{ + "_links": { + "comments": { + "href": "https://api.github.com/repos/neovim/neovim/issues/24559/comments" + }, + "commits": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/24559/commits" + }, + "html": { + "href": "https://github.com/neovim/neovim/pull/24559" + }, + "issue": { + "href": "https://api.github.com/repos/neovim/neovim/issues/24559" + }, + "review_comment": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/comments{/number}" + }, + "review_comments": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/24559/comments" + }, + "self": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/24559" + }, + "statuses": { + "href": "https://api.github.com/repos/neovim/neovim/statuses/17c1016021d7945c2f0c8a2cdafa85c25b1e15ad" + } + }, + "active_lock_reason": null, + "assignee": null, + "assignees": [], + "author_association": "MEMBER", + "auto_merge": null, + "base": { + "label": "neovim:master", + "ref": "master", + "repo": { + "allow_forking": true, + "archive_url": "https://api.github.com/repos/neovim/neovim/{archive_format}{/ref}", + "archived": false, + "assignees_url": "https://api.github.com/repos/neovim/neovim/assignees{/user}", + "blobs_url": "https://api.github.com/repos/neovim/neovim/git/blobs{/sha}", + "branches_url": "https://api.github.com/repos/neovim/neovim/branches{/branch}", + "clone_url": "https://github.com/neovim/neovim.git", + "collaborators_url": "https://api.github.com/repos/neovim/neovim/collaborators{/collaborator}", + "comments_url": "https://api.github.com/repos/neovim/neovim/comments{/number}", + "commits_url": "https://api.github.com/repos/neovim/neovim/commits{/sha}", + "compare_url": "https://api.github.com/repos/neovim/neovim/compare/{base}...{head}", + "contents_url": "https://api.github.com/repos/neovim/neovim/contents/{+path}", + "contributors_url": "https://api.github.com/repos/neovim/neovim/contributors", + "created_at": "2014-01-31T13:39:22Z", + "default_branch": "master", + "deployments_url": "https://api.github.com/repos/neovim/neovim/deployments", + "description": "Vim-fork focused on extensibility and usability", + "disabled": false, + "downloads_url": "https://api.github.com/repos/neovim/neovim/downloads", + "events_url": "https://api.github.com/repos/neovim/neovim/events", + "fork": false, + "forks": 4789, + "forks_count": 4789, + "forks_url": "https://api.github.com/repos/neovim/neovim/forks", + "full_name": "neovim/neovim", + "git_commits_url": "https://api.github.com/repos/neovim/neovim/git/commits{/sha}", + "git_refs_url": "https://api.github.com/repos/neovim/neovim/git/refs{/sha}", + "git_tags_url": "https://api.github.com/repos/neovim/neovim/git/tags{/sha}", + "git_url": "git://github.com/neovim/neovim.git", + "has_discussions": true, + "has_downloads": true, + "has_issues": true, + "has_pages": false, + "has_projects": true, + "has_wiki": true, + "homepage": "https://neovim.io", + "hooks_url": "https://api.github.com/repos/neovim/neovim/hooks", + "html_url": "https://github.com/neovim/neovim", + "id": 16408992, + "is_template": false, + "issue_comment_url": "https://api.github.com/repos/neovim/neovim/issues/comments{/number}", + "issue_events_url": "https://api.github.com/repos/neovim/neovim/issues/events{/number}", + "issues_url": "https://api.github.com/repos/neovim/neovim/issues{/number}", + "keys_url": "https://api.github.com/repos/neovim/neovim/keys{/key_id}", + "labels_url": "https://api.github.com/repos/neovim/neovim/labels{/name}", + "language": "Vim Script", + "languages_url": "https://api.github.com/repos/neovim/neovim/languages", + "license": { + "key": "other", + "name": "Other", + "node_id": "MDc6TGljZW5zZTA=", + "spdx_id": "NOASSERTION", + "url": null + }, + "merges_url": "https://api.github.com/repos/neovim/neovim/merges", + "milestones_url": "https://api.github.com/repos/neovim/neovim/milestones{/number}", + "mirror_url": null, + "name": "neovim", + "node_id": "MDEwOlJlcG9zaXRvcnkxNjQwODk5Mg==", + "notifications_url": "https://api.github.com/repos/neovim/neovim/notifications{?since,all,participating}", + "open_issues": 1652, + "open_issues_count": 1652, + "owner": { + "avatar_url": "https://avatars.githubusercontent.com/u/6471485?v=4", + "events_url": "https://api.github.com/users/neovim/events{/privacy}", + "followers_url": "https://api.github.com/users/neovim/followers", + "following_url": "https://api.github.com/users/neovim/following{/other_user}", + "gists_url": "https://api.github.com/users/neovim/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/neovim", + "id": 6471485, + "login": "neovim", + "node_id": "MDEyOk9yZ2FuaXphdGlvbjY0NzE0ODU=", + "organizations_url": "https://api.github.com/users/neovim/orgs", + "received_events_url": "https://api.github.com/users/neovim/received_events", + "repos_url": "https://api.github.com/users/neovim/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/neovim/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/neovim/subscriptions", + "type": "Organization", + "url": "https://api.github.com/users/neovim" + }, + "private": false, + "pulls_url": "https://api.github.com/repos/neovim/neovim/pulls{/number}", + "pushed_at": "2023-08-05T01:34:12Z", + "releases_url": "https://api.github.com/repos/neovim/neovim/releases{/id}", + "size": 246884, + "ssh_url": "git@github.com:neovim/neovim.git", + "stargazers_count": 68006, + "stargazers_url": "https://api.github.com/repos/neovim/neovim/stargazers", + "statuses_url": "https://api.github.com/repos/neovim/neovim/statuses/{sha}", + "subscribers_url": "https://api.github.com/repos/neovim/neovim/subscribers", + "subscription_url": "https://api.github.com/repos/neovim/neovim/subscription", + "svn_url": "https://github.com/neovim/neovim", + "tags_url": "https://api.github.com/repos/neovim/neovim/tags", + "teams_url": "https://api.github.com/repos/neovim/neovim/teams", + "topics": [ + "api", + "c", + "lua", + "neovim", + "nvim", + "text-editor", + "vim" + ], + "trees_url": "https://api.github.com/repos/neovim/neovim/git/trees{/sha}", + "updated_at": "2023-08-04T23:49:51Z", + "url": "https://api.github.com/repos/neovim/neovim", + "visibility": "public", + "watchers": 68006, + "watchers_count": 68006, + "web_commit_signoff_required": false + }, + "sha": "cc87dda31a5b5637ade7ddcfe5199f2df5fd47df", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/6471485?v=4", + "events_url": "https://api.github.com/users/neovim/events{/privacy}", + "followers_url": "https://api.github.com/users/neovim/followers", + "following_url": "https://api.github.com/users/neovim/following{/other_user}", + "gists_url": "https://api.github.com/users/neovim/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/neovim", + "id": 6471485, + "login": "neovim", + "node_id": "MDEyOk9yZ2FuaXphdGlvbjY0NzE0ODU=", + "organizations_url": "https://api.github.com/users/neovim/orgs", + "received_events_url": "https://api.github.com/users/neovim/received_events", + "repos_url": "https://api.github.com/users/neovim/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/neovim/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/neovim/subscriptions", + "type": "Organization", + "url": "https://api.github.com/users/neovim" + } + }, + "body": "`settagstck` after press enter in location list which create by `location_handler`\r\n\r\nFix #24540", + "closed_at": "2023-08-04T09:53:41Z", + "comment_data": [], + "comment_regular_data": [], + "comments_url": "https://api.github.com/repos/neovim/neovim/issues/24559/comments", + "commits_url": "https://api.github.com/repos/neovim/neovim/pulls/24559/commits", + "created_at": "2023-08-04T08:53:39Z", + "diff_url": "https://github.com/neovim/neovim/pull/24559.diff", + "draft": true, + "head": { + "label": "glepnir:fix_lsp", + "ref": "fix_lsp", + "repo": { + "allow_forking": true, + "archive_url": "https://api.github.com/repos/glepnir/neovim/{archive_format}{/ref}", + "archived": false, + "assignees_url": "https://api.github.com/repos/glepnir/neovim/assignees{/user}", + "blobs_url": "https://api.github.com/repos/glepnir/neovim/git/blobs{/sha}", + "branches_url": "https://api.github.com/repos/glepnir/neovim/branches{/branch}", + "clone_url": "https://github.com/glepnir/neovim.git", + "collaborators_url": "https://api.github.com/repos/glepnir/neovim/collaborators{/collaborator}", + "comments_url": "https://api.github.com/repos/glepnir/neovim/comments{/number}", + "commits_url": "https://api.github.com/repos/glepnir/neovim/commits{/sha}", + "compare_url": "https://api.github.com/repos/glepnir/neovim/compare/{base}...{head}", + "contents_url": "https://api.github.com/repos/glepnir/neovim/contents/{+path}", + "contributors_url": "https://api.github.com/repos/glepnir/neovim/contributors", + "created_at": "2022-07-17T05:15:58Z", + "default_branch": "master", + "deployments_url": "https://api.github.com/repos/glepnir/neovim/deployments", + "description": "Vim-fork focused on extensibility and usability", + "disabled": false, + "downloads_url": "https://api.github.com/repos/glepnir/neovim/downloads", + "events_url": "https://api.github.com/repos/glepnir/neovim/events", + "fork": true, + "forks": 0, + "forks_count": 0, + "forks_url": "https://api.github.com/repos/glepnir/neovim/forks", + "full_name": "glepnir/neovim", + "git_commits_url": "https://api.github.com/repos/glepnir/neovim/git/commits{/sha}", + "git_refs_url": "https://api.github.com/repos/glepnir/neovim/git/refs{/sha}", + "git_tags_url": "https://api.github.com/repos/glepnir/neovim/git/tags{/sha}", + "git_url": "git://github.com/glepnir/neovim.git", + "has_discussions": false, + "has_downloads": true, + "has_issues": false, + "has_pages": false, + "has_projects": true, + "has_wiki": true, + "homepage": "https://neovim.io", + "hooks_url": "https://api.github.com/repos/glepnir/neovim/hooks", + "html_url": "https://github.com/glepnir/neovim", + "id": 514752985, + "is_template": false, + "issue_comment_url": "https://api.github.com/repos/glepnir/neovim/issues/comments{/number}", + "issue_events_url": "https://api.github.com/repos/glepnir/neovim/issues/events{/number}", + "issues_url": "https://api.github.com/repos/glepnir/neovim/issues{/number}", + "keys_url": "https://api.github.com/repos/glepnir/neovim/keys{/key_id}", + "labels_url": "https://api.github.com/repos/glepnir/neovim/labels{/name}", + "language": "Vim Script", + "languages_url": "https://api.github.com/repos/glepnir/neovim/languages", + "license": { + "key": "other", + "name": "Other", + "node_id": "MDc6TGljZW5zZTA=", + "spdx_id": "NOASSERTION", + "url": null + }, + "merges_url": "https://api.github.com/repos/glepnir/neovim/merges", + "milestones_url": "https://api.github.com/repos/glepnir/neovim/milestones{/number}", + "mirror_url": null, + "name": "neovim", + "node_id": "R_kgDOHq6B2Q", + "notifications_url": "https://api.github.com/repos/glepnir/neovim/notifications{?since,all,participating}", + "open_issues": 0, + "open_issues_count": 0, + "owner": { + "avatar_url": "https://avatars.githubusercontent.com/u/41671631?v=4", + "events_url": "https://api.github.com/users/glepnir/events{/privacy}", + "followers_url": "https://api.github.com/users/glepnir/followers", + "following_url": "https://api.github.com/users/glepnir/following{/other_user}", + "gists_url": "https://api.github.com/users/glepnir/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/glepnir", + "id": 41671631, + "login": "glepnir", + "node_id": "MDQ6VXNlcjQxNjcxNjMx", + "organizations_url": "https://api.github.com/users/glepnir/orgs", + "received_events_url": "https://api.github.com/users/glepnir/received_events", + "repos_url": "https://api.github.com/users/glepnir/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/glepnir/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/glepnir/subscriptions", + "type": "User", + "url": "https://api.github.com/users/glepnir" + }, + "private": false, + "pulls_url": "https://api.github.com/repos/glepnir/neovim/pulls{/number}", + "pushed_at": "2023-08-05T01:33:46Z", + "releases_url": "https://api.github.com/repos/glepnir/neovim/releases{/id}", + "size": 243496, + "ssh_url": "git@github.com:glepnir/neovim.git", + "stargazers_count": 1, + "stargazers_url": "https://api.github.com/repos/glepnir/neovim/stargazers", + "statuses_url": "https://api.github.com/repos/glepnir/neovim/statuses/{sha}", + "subscribers_url": "https://api.github.com/repos/glepnir/neovim/subscribers", + "subscription_url": "https://api.github.com/repos/glepnir/neovim/subscription", + "svn_url": "https://github.com/glepnir/neovim", + "tags_url": "https://api.github.com/repos/glepnir/neovim/tags", + "teams_url": "https://api.github.com/repos/glepnir/neovim/teams", + "topics": [], + "trees_url": "https://api.github.com/repos/glepnir/neovim/git/trees{/sha}", + "updated_at": "2023-06-29T15:12:56Z", + "url": "https://api.github.com/repos/glepnir/neovim", + "visibility": "public", + "watchers": 1, + "watchers_count": 1, + "web_commit_signoff_required": false + }, + "sha": "17c1016021d7945c2f0c8a2cdafa85c25b1e15ad", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/41671631?v=4", + "events_url": "https://api.github.com/users/glepnir/events{/privacy}", + "followers_url": "https://api.github.com/users/glepnir/followers", + "following_url": "https://api.github.com/users/glepnir/following{/other_user}", + "gists_url": "https://api.github.com/users/glepnir/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/glepnir", + "id": 41671631, + "login": "glepnir", + "node_id": "MDQ6VXNlcjQxNjcxNjMx", + "organizations_url": "https://api.github.com/users/glepnir/orgs", + "received_events_url": "https://api.github.com/users/glepnir/received_events", + "repos_url": "https://api.github.com/users/glepnir/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/glepnir/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/glepnir/subscriptions", + "type": "User", + "url": "https://api.github.com/users/glepnir" + } + }, + "html_url": "https://github.com/neovim/neovim/pull/24559", + "id": 1462575444, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/24559", + "labels": [ + { + "color": "c5def5", + "default": false, + "description": null, + "id": 662566370, + "name": "lsp", + "node_id": "MDU6TGFiZWw2NjI1NjYzNzA=", + "url": "https://api.github.com/repos/neovim/neovim/labels/lsp" + } + ], + "locked": false, + "merge_commit_sha": "c9ec52afcbff20e90dbc0fd5149abe5cdeb8bcbf", + "merged_at": null, + "milestone": null, + "node_id": "PR_kwDOAPphoM5XLSFU", + "number": 24559, + "patch_url": "https://github.com/neovim/neovim/pull/24559.patch", + "requested_reviewers": [], + "requested_teams": [], + "review_comment_url": "https://api.github.com/repos/neovim/neovim/pulls/comments{/number}", + "review_comments_url": "https://api.github.com/repos/neovim/neovim/pulls/24559/comments", + "state": "closed", + "statuses_url": "https://api.github.com/repos/neovim/neovim/statuses/17c1016021d7945c2f0c8a2cdafa85c25b1e15ad", + "title": "feat(lsp): settagstack in location handler", + "updated_at": "2023-08-04T09:53:58Z", + "url": "https://api.github.com/repos/neovim/neovim/pulls/24559", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/41671631?v=4", + "events_url": "https://api.github.com/users/glepnir/events{/privacy}", + "followers_url": "https://api.github.com/users/glepnir/followers", + "following_url": "https://api.github.com/users/glepnir/following{/other_user}", + "gists_url": "https://api.github.com/users/glepnir/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/glepnir", + "id": 41671631, + "login": "glepnir", + "node_id": "MDQ6VXNlcjQxNjcxNjMx", + "organizations_url": "https://api.github.com/users/glepnir/orgs", + "received_events_url": "https://api.github.com/users/glepnir/received_events", + "repos_url": "https://api.github.com/users/glepnir/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/glepnir/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/glepnir/subscriptions", + "type": "User", + "url": "https://api.github.com/users/glepnir" + } +} \ No newline at end of file diff --git a/repositories/neovim/pulls/24560.json b/repositories/neovim/pulls/24560.json new file mode 100644 index 00000000..9420a52d --- /dev/null +++ b/repositories/neovim/pulls/24560.json @@ -0,0 +1,508 @@ +{ + "_links": { + "comments": { + "href": "https://api.github.com/repos/neovim/neovim/issues/24560/comments" + }, + "commits": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/24560/commits" + }, + "html": { + "href": "https://github.com/neovim/neovim/pull/24560" + }, + "issue": { + "href": "https://api.github.com/repos/neovim/neovim/issues/24560" + }, + "review_comment": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/comments{/number}" + }, + "review_comments": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/24560/comments" + }, + "self": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/24560" + }, + "statuses": { + "href": "https://api.github.com/repos/neovim/neovim/statuses/38beca2af922d4b4f089037c058160566f35cd7c" + } + }, + "active_lock_reason": null, + "assignee": null, + "assignees": [], + "author_association": "MEMBER", + "auto_merge": null, + "base": { + "label": "neovim:master", + "ref": "master", + "repo": { + "allow_forking": true, + "archive_url": "https://api.github.com/repos/neovim/neovim/{archive_format}{/ref}", + "archived": false, + "assignees_url": "https://api.github.com/repos/neovim/neovim/assignees{/user}", + "blobs_url": "https://api.github.com/repos/neovim/neovim/git/blobs{/sha}", + "branches_url": "https://api.github.com/repos/neovim/neovim/branches{/branch}", + "clone_url": "https://github.com/neovim/neovim.git", + "collaborators_url": "https://api.github.com/repos/neovim/neovim/collaborators{/collaborator}", + "comments_url": "https://api.github.com/repos/neovim/neovim/comments{/number}", + "commits_url": "https://api.github.com/repos/neovim/neovim/commits{/sha}", + "compare_url": "https://api.github.com/repos/neovim/neovim/compare/{base}...{head}", + "contents_url": "https://api.github.com/repos/neovim/neovim/contents/{+path}", + "contributors_url": "https://api.github.com/repos/neovim/neovim/contributors", + "created_at": "2014-01-31T13:39:22Z", + "default_branch": "master", + "deployments_url": "https://api.github.com/repos/neovim/neovim/deployments", + "description": "Vim-fork focused on extensibility and usability", + "disabled": false, + "downloads_url": "https://api.github.com/repos/neovim/neovim/downloads", + "events_url": "https://api.github.com/repos/neovim/neovim/events", + "fork": false, + "forks": 4789, + "forks_count": 4789, + "forks_url": "https://api.github.com/repos/neovim/neovim/forks", + "full_name": "neovim/neovim", + "git_commits_url": "https://api.github.com/repos/neovim/neovim/git/commits{/sha}", + "git_refs_url": "https://api.github.com/repos/neovim/neovim/git/refs{/sha}", + "git_tags_url": "https://api.github.com/repos/neovim/neovim/git/tags{/sha}", + "git_url": "git://github.com/neovim/neovim.git", + "has_discussions": true, + "has_downloads": true, + "has_issues": true, + "has_pages": false, + "has_projects": true, + "has_wiki": true, + "homepage": "https://neovim.io", + "hooks_url": "https://api.github.com/repos/neovim/neovim/hooks", + "html_url": "https://github.com/neovim/neovim", + "id": 16408992, + "is_template": false, + "issue_comment_url": "https://api.github.com/repos/neovim/neovim/issues/comments{/number}", + "issue_events_url": "https://api.github.com/repos/neovim/neovim/issues/events{/number}", + "issues_url": "https://api.github.com/repos/neovim/neovim/issues{/number}", + "keys_url": "https://api.github.com/repos/neovim/neovim/keys{/key_id}", + "labels_url": "https://api.github.com/repos/neovim/neovim/labels{/name}", + "language": "Vim Script", + "languages_url": "https://api.github.com/repos/neovim/neovim/languages", + "license": { + "key": "other", + "name": "Other", + "node_id": "MDc6TGljZW5zZTA=", + "spdx_id": "NOASSERTION", + "url": null + }, + "merges_url": "https://api.github.com/repos/neovim/neovim/merges", + "milestones_url": "https://api.github.com/repos/neovim/neovim/milestones{/number}", + "mirror_url": null, + "name": "neovim", + "node_id": "MDEwOlJlcG9zaXRvcnkxNjQwODk5Mg==", + "notifications_url": "https://api.github.com/repos/neovim/neovim/notifications{?since,all,participating}", + "open_issues": 1652, + "open_issues_count": 1652, + "owner": { + "avatar_url": "https://avatars.githubusercontent.com/u/6471485?v=4", + "events_url": "https://api.github.com/users/neovim/events{/privacy}", + "followers_url": "https://api.github.com/users/neovim/followers", + "following_url": "https://api.github.com/users/neovim/following{/other_user}", + "gists_url": "https://api.github.com/users/neovim/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/neovim", + "id": 6471485, + "login": "neovim", + "node_id": "MDEyOk9yZ2FuaXphdGlvbjY0NzE0ODU=", + "organizations_url": "https://api.github.com/users/neovim/orgs", + "received_events_url": "https://api.github.com/users/neovim/received_events", + "repos_url": "https://api.github.com/users/neovim/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/neovim/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/neovim/subscriptions", + "type": "Organization", + "url": "https://api.github.com/users/neovim" + }, + "private": false, + "pulls_url": "https://api.github.com/repos/neovim/neovim/pulls{/number}", + "pushed_at": "2023-08-05T01:34:12Z", + "releases_url": "https://api.github.com/repos/neovim/neovim/releases{/id}", + "size": 246884, + "ssh_url": "git@github.com:neovim/neovim.git", + "stargazers_count": 68006, + "stargazers_url": "https://api.github.com/repos/neovim/neovim/stargazers", + "statuses_url": "https://api.github.com/repos/neovim/neovim/statuses/{sha}", + "subscribers_url": "https://api.github.com/repos/neovim/neovim/subscribers", + "subscription_url": "https://api.github.com/repos/neovim/neovim/subscription", + "svn_url": "https://github.com/neovim/neovim", + "tags_url": "https://api.github.com/repos/neovim/neovim/tags", + "teams_url": "https://api.github.com/repos/neovim/neovim/teams", + "topics": [ + "api", + "c", + "lua", + "neovim", + "nvim", + "text-editor", + "vim" + ], + "trees_url": "https://api.github.com/repos/neovim/neovim/git/trees{/sha}", + "updated_at": "2023-08-04T23:49:51Z", + "url": "https://api.github.com/repos/neovim/neovim", + "visibility": "public", + "watchers": 68006, + "watchers_count": 68006, + "web_commit_signoff_required": false + }, + "sha": "cc87dda31a5b5637ade7ddcfe5199f2df5fd47df", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/6471485?v=4", + "events_url": "https://api.github.com/users/neovim/events{/privacy}", + "followers_url": "https://api.github.com/users/neovim/followers", + "following_url": "https://api.github.com/users/neovim/following{/other_user}", + "gists_url": "https://api.github.com/users/neovim/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/neovim", + "id": 6471485, + "login": "neovim", + "node_id": "MDEyOk9yZ2FuaXphdGlvbjY0NzE0ODU=", + "organizations_url": "https://api.github.com/users/neovim/orgs", + "received_events_url": "https://api.github.com/users/neovim/received_events", + "repos_url": "https://api.github.com/users/neovim/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/neovim/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/neovim/subscriptions", + "type": "Organization", + "url": "https://api.github.com/users/neovim" + } + }, + "body": null, + "closed_at": "2023-08-04T11:38:33Z", + "comment_data": [ + { + "_links": { + "html": { + "href": "https://github.com/neovim/neovim/pull/24560#discussion_r1284356941" + }, + "pull_request": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/24560" + }, + "self": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/comments/1284356941" + } + }, + "author_association": "MEMBER", + "body": "To be clear, this comment is about `:help for-in`. But I think this comment should be removed, it's not relevant for pairs()-like iteration. Fixed in https://github.com/neovim/neovim/pull/24561", + "commit_id": "38beca2af922d4b4f089037c058160566f35cd7c", + "created_at": "2023-08-04T12:22:26Z", + "diff_hunk": "@@ -544,14 +544,9 @@ function vim.spairs(t)\n end\n table.sort(keys)\n \n- -- Return the iterator function.\n- -- TODO(justinmk): Return \"iterator function, table {t}, and nil\", like pairs()?", + "html_url": "https://github.com/neovim/neovim/pull/24560#discussion_r1284356941", + "id": 1284356941, + "line": 548, + "node_id": "PRRC_kwDOAPphoM5MjbtN", + "original_commit_id": "38beca2af922d4b4f089037c058160566f35cd7c", + "original_line": 548, + "original_position": 5, + "original_start_line": null, + "path": "runtime/lua/vim/shared.lua", + "position": 5, + "pull_request_review_id": 1562767260, + "pull_request_url": "https://api.github.com/repos/neovim/neovim/pulls/24560", + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/pulls/comments/1284356941/reactions" + }, + "side": "LEFT", + "start_line": null, + "start_side": null, + "subject_type": "line", + "updated_at": "2023-08-04T12:22:26Z", + "url": "https://api.github.com/repos/neovim/neovim/pulls/comments/1284356941", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/1359421?v=4", + "events_url": "https://api.github.com/users/justinmk/events{/privacy}", + "followers_url": "https://api.github.com/users/justinmk/followers", + "following_url": "https://api.github.com/users/justinmk/following{/other_user}", + "gists_url": "https://api.github.com/users/justinmk/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/justinmk", + "id": 1359421, + "login": "justinmk", + "node_id": "MDQ6VXNlcjEzNTk0MjE=", + "organizations_url": "https://api.github.com/users/justinmk/orgs", + "received_events_url": "https://api.github.com/users/justinmk/received_events", + "repos_url": "https://api.github.com/users/justinmk/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/justinmk/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/justinmk/subscriptions", + "type": "User", + "url": "https://api.github.com/users/justinmk" + } + }, + { + "_links": { + "html": { + "href": "https://github.com/neovim/neovim/pull/24560#discussion_r1284413615" + }, + "pull_request": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/24560" + }, + "self": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/comments/1284413615" + } + }, + "author_association": "MEMBER", + "body": "I realize this is closed, but just want to mention that it's not necessary to return\r\n\r\n```lua\r\nfunction()\r\n return it:next()\r\nend\r\n```\r\n\r\nYou can simply return `it`, since the `Iter` metatable has a `__call` metamethod (which calls `:next()`).", + "commit_id": "38beca2af922d4b4f089037c058160566f35cd7c", + "created_at": "2023-08-04T13:18:13Z", + "diff_hunk": "@@ -544,14 +544,9 @@ function vim.spairs(t)\n end\n table.sort(keys)\n \n- -- Return the iterator function.\n- -- TODO(justinmk): Return \"iterator function, table {t}, and nil\", like pairs()?\n- local i = 0\n+ local it = vim.iter(t)\n return function()\n- i = i + 1\n- if keys[i] then\n- return keys[i], t[keys[i]]\n- end\n+ return it:next()", + "html_url": "https://github.com/neovim/neovim/pull/24560#discussion_r1284413615", + "id": 1284413615, + "line": 549, + "node_id": "PRRC_kwDOAPphoM5Mjpiv", + "original_commit_id": "38beca2af922d4b4f089037c058160566f35cd7c", + "original_line": 549, + "original_position": 13, + "original_start_line": 547, + "path": "runtime/lua/vim/shared.lua", + "position": 13, + "pull_request_review_id": 1562857480, + "pull_request_url": "https://api.github.com/repos/neovim/neovim/pulls/24560", + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/pulls/comments/1284413615/reactions" + }, + "side": "RIGHT", + "start_line": 547, + "start_side": "RIGHT", + "subject_type": "line", + "updated_at": "2023-08-04T13:18:14Z", + "url": "https://api.github.com/repos/neovim/neovim/pulls/comments/1284413615", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/8965202?v=4", + "events_url": "https://api.github.com/users/gpanders/events{/privacy}", + "followers_url": "https://api.github.com/users/gpanders/followers", + "following_url": "https://api.github.com/users/gpanders/following{/other_user}", + "gists_url": "https://api.github.com/users/gpanders/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/gpanders", + "id": 8965202, + "login": "gpanders", + "node_id": "MDQ6VXNlcjg5NjUyMDI=", + "organizations_url": "https://api.github.com/users/gpanders/orgs", + "received_events_url": "https://api.github.com/users/gpanders/received_events", + "repos_url": "https://api.github.com/users/gpanders/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/gpanders/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/gpanders/subscriptions", + "type": "User", + "url": "https://api.github.com/users/gpanders" + } + } + ], + "comment_regular_data": [], + "comments_url": "https://api.github.com/repos/neovim/neovim/issues/24560/comments", + "commits_url": "https://api.github.com/repos/neovim/neovim/pulls/24560/commits", + "created_at": "2023-08-04T11:26:32Z", + "diff_url": "https://github.com/neovim/neovim/pull/24560.diff", + "draft": true, + "head": { + "label": "glepnir:spairs", + "ref": "spairs", + "repo": { + "allow_forking": true, + "archive_url": "https://api.github.com/repos/glepnir/neovim/{archive_format}{/ref}", + "archived": false, + "assignees_url": "https://api.github.com/repos/glepnir/neovim/assignees{/user}", + "blobs_url": "https://api.github.com/repos/glepnir/neovim/git/blobs{/sha}", + "branches_url": "https://api.github.com/repos/glepnir/neovim/branches{/branch}", + "clone_url": "https://github.com/glepnir/neovim.git", + "collaborators_url": "https://api.github.com/repos/glepnir/neovim/collaborators{/collaborator}", + "comments_url": "https://api.github.com/repos/glepnir/neovim/comments{/number}", + "commits_url": "https://api.github.com/repos/glepnir/neovim/commits{/sha}", + "compare_url": "https://api.github.com/repos/glepnir/neovim/compare/{base}...{head}", + "contents_url": "https://api.github.com/repos/glepnir/neovim/contents/{+path}", + "contributors_url": "https://api.github.com/repos/glepnir/neovim/contributors", + "created_at": "2022-07-17T05:15:58Z", + "default_branch": "master", + "deployments_url": "https://api.github.com/repos/glepnir/neovim/deployments", + "description": "Vim-fork focused on extensibility and usability", + "disabled": false, + "downloads_url": "https://api.github.com/repos/glepnir/neovim/downloads", + "events_url": "https://api.github.com/repos/glepnir/neovim/events", + "fork": true, + "forks": 0, + "forks_count": 0, + "forks_url": "https://api.github.com/repos/glepnir/neovim/forks", + "full_name": "glepnir/neovim", + "git_commits_url": "https://api.github.com/repos/glepnir/neovim/git/commits{/sha}", + "git_refs_url": "https://api.github.com/repos/glepnir/neovim/git/refs{/sha}", + "git_tags_url": "https://api.github.com/repos/glepnir/neovim/git/tags{/sha}", + "git_url": "git://github.com/glepnir/neovim.git", + "has_discussions": false, + "has_downloads": true, + "has_issues": false, + "has_pages": false, + "has_projects": true, + "has_wiki": true, + "homepage": "https://neovim.io", + "hooks_url": "https://api.github.com/repos/glepnir/neovim/hooks", + "html_url": "https://github.com/glepnir/neovim", + "id": 514752985, + "is_template": false, + "issue_comment_url": "https://api.github.com/repos/glepnir/neovim/issues/comments{/number}", + "issue_events_url": "https://api.github.com/repos/glepnir/neovim/issues/events{/number}", + "issues_url": "https://api.github.com/repos/glepnir/neovim/issues{/number}", + "keys_url": "https://api.github.com/repos/glepnir/neovim/keys{/key_id}", + "labels_url": "https://api.github.com/repos/glepnir/neovim/labels{/name}", + "language": "Vim Script", + "languages_url": "https://api.github.com/repos/glepnir/neovim/languages", + "license": { + "key": "other", + "name": "Other", + "node_id": "MDc6TGljZW5zZTA=", + "spdx_id": "NOASSERTION", + "url": null + }, + "merges_url": "https://api.github.com/repos/glepnir/neovim/merges", + "milestones_url": "https://api.github.com/repos/glepnir/neovim/milestones{/number}", + "mirror_url": null, + "name": "neovim", + "node_id": "R_kgDOHq6B2Q", + "notifications_url": "https://api.github.com/repos/glepnir/neovim/notifications{?since,all,participating}", + "open_issues": 0, + "open_issues_count": 0, + "owner": { + "avatar_url": "https://avatars.githubusercontent.com/u/41671631?v=4", + "events_url": "https://api.github.com/users/glepnir/events{/privacy}", + "followers_url": "https://api.github.com/users/glepnir/followers", + "following_url": "https://api.github.com/users/glepnir/following{/other_user}", + "gists_url": "https://api.github.com/users/glepnir/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/glepnir", + "id": 41671631, + "login": "glepnir", + "node_id": "MDQ6VXNlcjQxNjcxNjMx", + "organizations_url": "https://api.github.com/users/glepnir/orgs", + "received_events_url": "https://api.github.com/users/glepnir/received_events", + "repos_url": "https://api.github.com/users/glepnir/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/glepnir/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/glepnir/subscriptions", + "type": "User", + "url": "https://api.github.com/users/glepnir" + }, + "private": false, + "pulls_url": "https://api.github.com/repos/glepnir/neovim/pulls{/number}", + "pushed_at": "2023-08-05T01:33:46Z", + "releases_url": "https://api.github.com/repos/glepnir/neovim/releases{/id}", + "size": 243496, + "ssh_url": "git@github.com:glepnir/neovim.git", + "stargazers_count": 1, + "stargazers_url": "https://api.github.com/repos/glepnir/neovim/stargazers", + "statuses_url": "https://api.github.com/repos/glepnir/neovim/statuses/{sha}", + "subscribers_url": "https://api.github.com/repos/glepnir/neovim/subscribers", + "subscription_url": "https://api.github.com/repos/glepnir/neovim/subscription", + "svn_url": "https://github.com/glepnir/neovim", + "tags_url": "https://api.github.com/repos/glepnir/neovim/tags", + "teams_url": "https://api.github.com/repos/glepnir/neovim/teams", + "topics": [], + "trees_url": "https://api.github.com/repos/glepnir/neovim/git/trees{/sha}", + "updated_at": "2023-06-29T15:12:56Z", + "url": "https://api.github.com/repos/glepnir/neovim", + "visibility": "public", + "watchers": 1, + "watchers_count": 1, + "web_commit_signoff_required": false + }, + "sha": "38beca2af922d4b4f089037c058160566f35cd7c", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/41671631?v=4", + "events_url": "https://api.github.com/users/glepnir/events{/privacy}", + "followers_url": "https://api.github.com/users/glepnir/followers", + "following_url": "https://api.github.com/users/glepnir/following{/other_user}", + "gists_url": "https://api.github.com/users/glepnir/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/glepnir", + "id": 41671631, + "login": "glepnir", + "node_id": "MDQ6VXNlcjQxNjcxNjMx", + "organizations_url": "https://api.github.com/users/glepnir/orgs", + "received_events_url": "https://api.github.com/users/glepnir/received_events", + "repos_url": "https://api.github.com/users/glepnir/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/glepnir/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/glepnir/subscriptions", + "type": "User", + "url": "https://api.github.com/users/glepnir" + } + }, + "html_url": "https://github.com/neovim/neovim/pull/24560", + "id": 1462776950, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/24560", + "labels": [ + { + "color": "C5DEF5", + "default": false, + "description": "changes that are not features or bugfixes", + "id": 106949155, + "name": "refactor", + "node_id": "MDU6TGFiZWwxMDY5NDkxNTU=", + "url": "https://api.github.com/repos/neovim/neovim/labels/refactor" + }, + { + "color": "c5def5", + "default": false, + "description": null, + "id": 573222693, + "name": "lua", + "node_id": "MDU6TGFiZWw1NzMyMjI2OTM=", + "url": "https://api.github.com/repos/neovim/neovim/labels/lua" + } + ], + "locked": false, + "merge_commit_sha": "8e00d27dac25cb44912d5018b51fb591d4110d85", + "merged_at": null, + "milestone": null, + "node_id": "PR_kwDOAPphoM5XMDR2", + "number": 24560, + "patch_url": "https://github.com/neovim/neovim/pull/24560.patch", + "requested_reviewers": [], + "requested_teams": [], + "review_comment_url": "https://api.github.com/repos/neovim/neovim/pulls/comments{/number}", + "review_comments_url": "https://api.github.com/repos/neovim/neovim/pulls/24560/comments", + "state": "closed", + "statuses_url": "https://api.github.com/repos/neovim/neovim/statuses/38beca2af922d4b4f089037c058160566f35cd7c", + "title": "refactor(lua): use iter in spairs", + "updated_at": "2023-08-04T13:18:14Z", + "url": "https://api.github.com/repos/neovim/neovim/pulls/24560", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/41671631?v=4", + "events_url": "https://api.github.com/users/glepnir/events{/privacy}", + "followers_url": "https://api.github.com/users/glepnir/followers", + "following_url": "https://api.github.com/users/glepnir/following{/other_user}", + "gists_url": "https://api.github.com/users/glepnir/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/glepnir", + "id": 41671631, + "login": "glepnir", + "node_id": "MDQ6VXNlcjQxNjcxNjMx", + "organizations_url": "https://api.github.com/users/glepnir/orgs", + "received_events_url": "https://api.github.com/users/glepnir/received_events", + "repos_url": "https://api.github.com/users/glepnir/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/glepnir/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/glepnir/subscriptions", + "type": "User", + "url": "https://api.github.com/users/glepnir" + } +} \ No newline at end of file diff --git a/repositories/neovim/pulls/24561.json b/repositories/neovim/pulls/24561.json new file mode 100644 index 00000000..77ccfb62 --- /dev/null +++ b/repositories/neovim/pulls/24561.json @@ -0,0 +1,352 @@ +{ + "_links": { + "comments": { + "href": "https://api.github.com/repos/neovim/neovim/issues/24561/comments" + }, + "commits": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/24561/commits" + }, + "html": { + "href": "https://github.com/neovim/neovim/pull/24561" + }, + "issue": { + "href": "https://api.github.com/repos/neovim/neovim/issues/24561" + }, + "review_comment": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/comments{/number}" + }, + "review_comments": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/24561/comments" + }, + "self": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/24561" + }, + "statuses": { + "href": "https://api.github.com/repos/neovim/neovim/statuses/57e1fc43181c2983f9836cdb1d503172912961f8" + } + }, + "active_lock_reason": null, + "assignee": null, + "assignees": [], + "author_association": "MEMBER", + "auto_merge": null, + "base": { + "label": "neovim:master", + "ref": "master", + "repo": { + "allow_forking": true, + "archive_url": "https://api.github.com/repos/neovim/neovim/{archive_format}{/ref}", + "archived": false, + "assignees_url": "https://api.github.com/repos/neovim/neovim/assignees{/user}", + "blobs_url": "https://api.github.com/repos/neovim/neovim/git/blobs{/sha}", + "branches_url": "https://api.github.com/repos/neovim/neovim/branches{/branch}", + "clone_url": "https://github.com/neovim/neovim.git", + "collaborators_url": "https://api.github.com/repos/neovim/neovim/collaborators{/collaborator}", + "comments_url": "https://api.github.com/repos/neovim/neovim/comments{/number}", + "commits_url": "https://api.github.com/repos/neovim/neovim/commits{/sha}", + "compare_url": "https://api.github.com/repos/neovim/neovim/compare/{base}...{head}", + "contents_url": "https://api.github.com/repos/neovim/neovim/contents/{+path}", + "contributors_url": "https://api.github.com/repos/neovim/neovim/contributors", + "created_at": "2014-01-31T13:39:22Z", + "default_branch": "master", + "deployments_url": "https://api.github.com/repos/neovim/neovim/deployments", + "description": "Vim-fork focused on extensibility and usability", + "disabled": false, + "downloads_url": "https://api.github.com/repos/neovim/neovim/downloads", + "events_url": "https://api.github.com/repos/neovim/neovim/events", + "fork": false, + "forks": 4789, + "forks_count": 4789, + "forks_url": "https://api.github.com/repos/neovim/neovim/forks", + "full_name": "neovim/neovim", + "git_commits_url": "https://api.github.com/repos/neovim/neovim/git/commits{/sha}", + "git_refs_url": "https://api.github.com/repos/neovim/neovim/git/refs{/sha}", + "git_tags_url": "https://api.github.com/repos/neovim/neovim/git/tags{/sha}", + "git_url": "git://github.com/neovim/neovim.git", + "has_discussions": true, + "has_downloads": true, + "has_issues": true, + "has_pages": false, + "has_projects": true, + "has_wiki": true, + "homepage": "https://neovim.io", + "hooks_url": "https://api.github.com/repos/neovim/neovim/hooks", + "html_url": "https://github.com/neovim/neovim", + "id": 16408992, + "is_template": false, + "issue_comment_url": "https://api.github.com/repos/neovim/neovim/issues/comments{/number}", + "issue_events_url": "https://api.github.com/repos/neovim/neovim/issues/events{/number}", + "issues_url": "https://api.github.com/repos/neovim/neovim/issues{/number}", + "keys_url": "https://api.github.com/repos/neovim/neovim/keys{/key_id}", + "labels_url": "https://api.github.com/repos/neovim/neovim/labels{/name}", + "language": "Vim Script", + "languages_url": "https://api.github.com/repos/neovim/neovim/languages", + "license": { + "key": "other", + "name": "Other", + "node_id": "MDc6TGljZW5zZTA=", + "spdx_id": "NOASSERTION", + "url": null + }, + "merges_url": "https://api.github.com/repos/neovim/neovim/merges", + "milestones_url": "https://api.github.com/repos/neovim/neovim/milestones{/number}", + "mirror_url": null, + "name": "neovim", + "node_id": "MDEwOlJlcG9zaXRvcnkxNjQwODk5Mg==", + "notifications_url": "https://api.github.com/repos/neovim/neovim/notifications{?since,all,participating}", + "open_issues": 1652, + "open_issues_count": 1652, + "owner": { + "avatar_url": "https://avatars.githubusercontent.com/u/6471485?v=4", + "events_url": "https://api.github.com/users/neovim/events{/privacy}", + "followers_url": "https://api.github.com/users/neovim/followers", + "following_url": "https://api.github.com/users/neovim/following{/other_user}", + "gists_url": "https://api.github.com/users/neovim/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/neovim", + "id": 6471485, + "login": "neovim", + "node_id": "MDEyOk9yZ2FuaXphdGlvbjY0NzE0ODU=", + "organizations_url": "https://api.github.com/users/neovim/orgs", + "received_events_url": "https://api.github.com/users/neovim/received_events", + "repos_url": "https://api.github.com/users/neovim/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/neovim/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/neovim/subscriptions", + "type": "Organization", + "url": "https://api.github.com/users/neovim" + }, + "private": false, + "pulls_url": "https://api.github.com/repos/neovim/neovim/pulls{/number}", + "pushed_at": "2023-08-05T01:34:12Z", + "releases_url": "https://api.github.com/repos/neovim/neovim/releases{/id}", + "size": 246884, + "ssh_url": "git@github.com:neovim/neovim.git", + "stargazers_count": 68006, + "stargazers_url": "https://api.github.com/repos/neovim/neovim/stargazers", + "statuses_url": "https://api.github.com/repos/neovim/neovim/statuses/{sha}", + "subscribers_url": "https://api.github.com/repos/neovim/neovim/subscribers", + "subscription_url": "https://api.github.com/repos/neovim/neovim/subscription", + "svn_url": "https://github.com/neovim/neovim", + "tags_url": "https://api.github.com/repos/neovim/neovim/tags", + "teams_url": "https://api.github.com/repos/neovim/neovim/teams", + "topics": [ + "api", + "c", + "lua", + "neovim", + "nvim", + "text-editor", + "vim" + ], + "trees_url": "https://api.github.com/repos/neovim/neovim/git/trees{/sha}", + "updated_at": "2023-08-04T23:49:51Z", + "url": "https://api.github.com/repos/neovim/neovim", + "visibility": "public", + "watchers": 68006, + "watchers_count": 68006, + "web_commit_signoff_required": false + }, + "sha": "cc87dda31a5b5637ade7ddcfe5199f2df5fd47df", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/6471485?v=4", + "events_url": "https://api.github.com/users/neovim/events{/privacy}", + "followers_url": "https://api.github.com/users/neovim/followers", + "following_url": "https://api.github.com/users/neovim/following{/other_user}", + "gists_url": "https://api.github.com/users/neovim/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/neovim", + "id": 6471485, + "login": "neovim", + "node_id": "MDEyOk9yZ2FuaXphdGlvbjY0NzE0ODU=", + "organizations_url": "https://api.github.com/users/neovim/orgs", + "received_events_url": "https://api.github.com/users/neovim/received_events", + "repos_url": "https://api.github.com/users/neovim/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/neovim/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/neovim/subscriptions", + "type": "Organization", + "url": "https://api.github.com/users/neovim" + } + }, + "body": null, + "closed_at": null, + "comment_data": [], + "comment_regular_data": [], + "comments_url": "https://api.github.com/repos/neovim/neovim/issues/24561/comments", + "commits_url": "https://api.github.com/repos/neovim/neovim/pulls/24561/commits", + "created_at": "2023-08-04T12:21:41Z", + "diff_url": "https://github.com/neovim/neovim/pull/24561.diff", + "draft": true, + "head": { + "label": "justinmk:doc2", + "ref": "doc2", + "repo": { + "allow_forking": true, + "archive_url": "https://api.github.com/repos/justinmk/neovim/{archive_format}{/ref}", + "archived": false, + "assignees_url": "https://api.github.com/repos/justinmk/neovim/assignees{/user}", + "blobs_url": "https://api.github.com/repos/justinmk/neovim/git/blobs{/sha}", + "branches_url": "https://api.github.com/repos/justinmk/neovim/branches{/branch}", + "clone_url": "https://github.com/justinmk/neovim.git", + "collaborators_url": "https://api.github.com/repos/justinmk/neovim/collaborators{/collaborator}", + "comments_url": "https://api.github.com/repos/justinmk/neovim/comments{/number}", + "commits_url": "https://api.github.com/repos/justinmk/neovim/commits{/sha}", + "compare_url": "https://api.github.com/repos/justinmk/neovim/compare/{base}...{head}", + "contents_url": "https://api.github.com/repos/justinmk/neovim/contents/{+path}", + "contributors_url": "https://api.github.com/repos/justinmk/neovim/contributors", + "created_at": "2014-02-28T23:17:54Z", + "default_branch": "master", + "deployments_url": "https://api.github.com/repos/justinmk/neovim/deployments", + "description": "somewhere in todo.txt", + "disabled": false, + "downloads_url": "https://api.github.com/repos/justinmk/neovim/downloads", + "events_url": "https://api.github.com/repos/justinmk/neovim/events", + "fork": true, + "forks": 1, + "forks_count": 1, + "forks_url": "https://api.github.com/repos/justinmk/neovim/forks", + "full_name": "justinmk/neovim", + "git_commits_url": "https://api.github.com/repos/justinmk/neovim/git/commits{/sha}", + "git_refs_url": "https://api.github.com/repos/justinmk/neovim/git/refs{/sha}", + "git_tags_url": "https://api.github.com/repos/justinmk/neovim/git/tags{/sha}", + "git_url": "git://github.com/justinmk/neovim.git", + "has_discussions": false, + "has_downloads": true, + "has_issues": false, + "has_pages": false, + "has_projects": false, + "has_wiki": false, + "homepage": "http://neovim.io", + "hooks_url": "https://api.github.com/repos/justinmk/neovim/hooks", + "html_url": "https://github.com/justinmk/neovim", + "id": 17302877, + "is_template": false, + "issue_comment_url": "https://api.github.com/repos/justinmk/neovim/issues/comments{/number}", + "issue_events_url": "https://api.github.com/repos/justinmk/neovim/issues/events{/number}", + "issues_url": "https://api.github.com/repos/justinmk/neovim/issues{/number}", + "keys_url": "https://api.github.com/repos/justinmk/neovim/keys{/key_id}", + "labels_url": "https://api.github.com/repos/justinmk/neovim/labels{/name}", + "language": "Vim Script", + "languages_url": "https://api.github.com/repos/justinmk/neovim/languages", + "license": { + "key": "other", + "name": "Other", + "node_id": "MDc6TGljZW5zZTA=", + "spdx_id": "NOASSERTION", + "url": null + }, + "merges_url": "https://api.github.com/repos/justinmk/neovim/merges", + "milestones_url": "https://api.github.com/repos/justinmk/neovim/milestones{/number}", + "mirror_url": null, + "name": "neovim", + "node_id": "MDEwOlJlcG9zaXRvcnkxNzMwMjg3Nw==", + "notifications_url": "https://api.github.com/repos/justinmk/neovim/notifications{?since,all,participating}", + "open_issues": 0, + "open_issues_count": 0, + "owner": { + "avatar_url": "https://avatars.githubusercontent.com/u/1359421?v=4", + "events_url": "https://api.github.com/users/justinmk/events{/privacy}", + "followers_url": "https://api.github.com/users/justinmk/followers", + "following_url": "https://api.github.com/users/justinmk/following{/other_user}", + "gists_url": "https://api.github.com/users/justinmk/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/justinmk", + "id": 1359421, + "login": "justinmk", + "node_id": "MDQ6VXNlcjEzNTk0MjE=", + "organizations_url": "https://api.github.com/users/justinmk/orgs", + "received_events_url": "https://api.github.com/users/justinmk/received_events", + "repos_url": "https://api.github.com/users/justinmk/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/justinmk/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/justinmk/subscriptions", + "type": "User", + "url": "https://api.github.com/users/justinmk" + }, + "private": false, + "pulls_url": "https://api.github.com/repos/justinmk/neovim/pulls{/number}", + "pushed_at": "2023-08-04T13:54:40Z", + "releases_url": "https://api.github.com/repos/justinmk/neovim/releases{/id}", + "size": 241958, + "ssh_url": "git@github.com:justinmk/neovim.git", + "stargazers_count": 1, + "stargazers_url": "https://api.github.com/repos/justinmk/neovim/stargazers", + "statuses_url": "https://api.github.com/repos/justinmk/neovim/statuses/{sha}", + "subscribers_url": "https://api.github.com/repos/justinmk/neovim/subscribers", + "subscription_url": "https://api.github.com/repos/justinmk/neovim/subscription", + "svn_url": "https://github.com/justinmk/neovim", + "tags_url": "https://api.github.com/repos/justinmk/neovim/tags", + "teams_url": "https://api.github.com/repos/justinmk/neovim/teams", + "topics": [], + "trees_url": "https://api.github.com/repos/justinmk/neovim/git/trees{/sha}", + "updated_at": "2023-07-25T13:51:02Z", + "url": "https://api.github.com/repos/justinmk/neovim", + "visibility": "public", + "watchers": 1, + "watchers_count": 1, + "web_commit_signoff_required": false + }, + "sha": "57e1fc43181c2983f9836cdb1d503172912961f8", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/1359421?v=4", + "events_url": "https://api.github.com/users/justinmk/events{/privacy}", + "followers_url": "https://api.github.com/users/justinmk/followers", + "following_url": "https://api.github.com/users/justinmk/following{/other_user}", + "gists_url": "https://api.github.com/users/justinmk/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/justinmk", + "id": 1359421, + "login": "justinmk", + "node_id": "MDQ6VXNlcjEzNTk0MjE=", + "organizations_url": "https://api.github.com/users/justinmk/orgs", + "received_events_url": "https://api.github.com/users/justinmk/received_events", + "repos_url": "https://api.github.com/users/justinmk/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/justinmk/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/justinmk/subscriptions", + "type": "User", + "url": "https://api.github.com/users/justinmk" + } + }, + "html_url": "https://github.com/neovim/neovim/pull/24561", + "id": 1462846792, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/24561", + "labels": [], + "locked": false, + "merge_commit_sha": "aaa01c3d8d1da3b429185778ec568fe53fc81927", + "merged_at": null, + "milestone": null, + "node_id": "PR_kwDOAPphoM5XMUVI", + "number": 24561, + "patch_url": "https://github.com/neovim/neovim/pull/24561.patch", + "requested_reviewers": [], + "requested_teams": [], + "review_comment_url": "https://api.github.com/repos/neovim/neovim/pulls/comments{/number}", + "review_comments_url": "https://api.github.com/repos/neovim/neovim/pulls/24561/comments", + "state": "open", + "statuses_url": "https://api.github.com/repos/neovim/neovim/statuses/57e1fc43181c2983f9836cdb1d503172912961f8", + "title": "docs: misc", + "updated_at": "2023-08-04T12:21:41Z", + "url": "https://api.github.com/repos/neovim/neovim/pulls/24561", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/1359421?v=4", + "events_url": "https://api.github.com/users/justinmk/events{/privacy}", + "followers_url": "https://api.github.com/users/justinmk/followers", + "following_url": "https://api.github.com/users/justinmk/following{/other_user}", + "gists_url": "https://api.github.com/users/justinmk/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/justinmk", + "id": 1359421, + "login": "justinmk", + "node_id": "MDQ6VXNlcjEzNTk0MjE=", + "organizations_url": "https://api.github.com/users/justinmk/orgs", + "received_events_url": "https://api.github.com/users/justinmk/received_events", + "repos_url": "https://api.github.com/users/justinmk/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/justinmk/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/justinmk/subscriptions", + "type": "User", + "url": "https://api.github.com/users/justinmk" + } +} \ No newline at end of file diff --git a/repositories/neovim/pulls/24564.json b/repositories/neovim/pulls/24564.json new file mode 100644 index 00000000..c65e0fcf --- /dev/null +++ b/repositories/neovim/pulls/24564.json @@ -0,0 +1,635 @@ +{ + "_links": { + "comments": { + "href": "https://api.github.com/repos/neovim/neovim/issues/24564/comments" + }, + "commits": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/24564/commits" + }, + "html": { + "href": "https://github.com/neovim/neovim/pull/24564" + }, + "issue": { + "href": "https://api.github.com/repos/neovim/neovim/issues/24564" + }, + "review_comment": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/comments{/number}" + }, + "review_comments": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/24564/comments" + }, + "self": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/24564" + }, + "statuses": { + "href": "https://api.github.com/repos/neovim/neovim/statuses/c7b93105bb211e03947c5f6b2c1820cd9739e521" + } + }, + "active_lock_reason": null, + "assignee": null, + "assignees": [], + "author_association": "MEMBER", + "auto_merge": null, + "base": { + "label": "neovim:master", + "ref": "master", + "repo": { + "allow_forking": true, + "archive_url": "https://api.github.com/repos/neovim/neovim/{archive_format}{/ref}", + "archived": false, + "assignees_url": "https://api.github.com/repos/neovim/neovim/assignees{/user}", + "blobs_url": "https://api.github.com/repos/neovim/neovim/git/blobs{/sha}", + "branches_url": "https://api.github.com/repos/neovim/neovim/branches{/branch}", + "clone_url": "https://github.com/neovim/neovim.git", + "collaborators_url": "https://api.github.com/repos/neovim/neovim/collaborators{/collaborator}", + "comments_url": "https://api.github.com/repos/neovim/neovim/comments{/number}", + "commits_url": "https://api.github.com/repos/neovim/neovim/commits{/sha}", + "compare_url": "https://api.github.com/repos/neovim/neovim/compare/{base}...{head}", + "contents_url": "https://api.github.com/repos/neovim/neovim/contents/{+path}", + "contributors_url": "https://api.github.com/repos/neovim/neovim/contributors", + "created_at": "2014-01-31T13:39:22Z", + "default_branch": "master", + "deployments_url": "https://api.github.com/repos/neovim/neovim/deployments", + "description": "Vim-fork focused on extensibility and usability", + "disabled": false, + "downloads_url": "https://api.github.com/repos/neovim/neovim/downloads", + "events_url": "https://api.github.com/repos/neovim/neovim/events", + "fork": false, + "forks": 4789, + "forks_count": 4789, + "forks_url": "https://api.github.com/repos/neovim/neovim/forks", + "full_name": "neovim/neovim", + "git_commits_url": "https://api.github.com/repos/neovim/neovim/git/commits{/sha}", + "git_refs_url": "https://api.github.com/repos/neovim/neovim/git/refs{/sha}", + "git_tags_url": "https://api.github.com/repos/neovim/neovim/git/tags{/sha}", + "git_url": "git://github.com/neovim/neovim.git", + "has_discussions": true, + "has_downloads": true, + "has_issues": true, + "has_pages": false, + "has_projects": true, + "has_wiki": true, + "homepage": "https://neovim.io", + "hooks_url": "https://api.github.com/repos/neovim/neovim/hooks", + "html_url": "https://github.com/neovim/neovim", + "id": 16408992, + "is_template": false, + "issue_comment_url": "https://api.github.com/repos/neovim/neovim/issues/comments{/number}", + "issue_events_url": "https://api.github.com/repos/neovim/neovim/issues/events{/number}", + "issues_url": "https://api.github.com/repos/neovim/neovim/issues{/number}", + "keys_url": "https://api.github.com/repos/neovim/neovim/keys{/key_id}", + "labels_url": "https://api.github.com/repos/neovim/neovim/labels{/name}", + "language": "Vim Script", + "languages_url": "https://api.github.com/repos/neovim/neovim/languages", + "license": { + "key": "other", + "name": "Other", + "node_id": "MDc6TGljZW5zZTA=", + "spdx_id": "NOASSERTION", + "url": null + }, + "merges_url": "https://api.github.com/repos/neovim/neovim/merges", + "milestones_url": "https://api.github.com/repos/neovim/neovim/milestones{/number}", + "mirror_url": null, + "name": "neovim", + "node_id": "MDEwOlJlcG9zaXRvcnkxNjQwODk5Mg==", + "notifications_url": "https://api.github.com/repos/neovim/neovim/notifications{?since,all,participating}", + "open_issues": 1652, + "open_issues_count": 1652, + "owner": { + "avatar_url": "https://avatars.githubusercontent.com/u/6471485?v=4", + "events_url": "https://api.github.com/users/neovim/events{/privacy}", + "followers_url": "https://api.github.com/users/neovim/followers", + "following_url": "https://api.github.com/users/neovim/following{/other_user}", + "gists_url": "https://api.github.com/users/neovim/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/neovim", + "id": 6471485, + "login": "neovim", + "node_id": "MDEyOk9yZ2FuaXphdGlvbjY0NzE0ODU=", + "organizations_url": "https://api.github.com/users/neovim/orgs", + "received_events_url": "https://api.github.com/users/neovim/received_events", + "repos_url": "https://api.github.com/users/neovim/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/neovim/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/neovim/subscriptions", + "type": "Organization", + "url": "https://api.github.com/users/neovim" + }, + "private": false, + "pulls_url": "https://api.github.com/repos/neovim/neovim/pulls{/number}", + "pushed_at": "2023-08-05T01:34:12Z", + "releases_url": "https://api.github.com/repos/neovim/neovim/releases{/id}", + "size": 246884, + "ssh_url": "git@github.com:neovim/neovim.git", + "stargazers_count": 68006, + "stargazers_url": "https://api.github.com/repos/neovim/neovim/stargazers", + "statuses_url": "https://api.github.com/repos/neovim/neovim/statuses/{sha}", + "subscribers_url": "https://api.github.com/repos/neovim/neovim/subscribers", + "subscription_url": "https://api.github.com/repos/neovim/neovim/subscription", + "svn_url": "https://github.com/neovim/neovim", + "tags_url": "https://api.github.com/repos/neovim/neovim/tags", + "teams_url": "https://api.github.com/repos/neovim/neovim/teams", + "topics": [ + "api", + "c", + "lua", + "neovim", + "nvim", + "text-editor", + "vim" + ], + "trees_url": "https://api.github.com/repos/neovim/neovim/git/trees{/sha}", + "updated_at": "2023-08-04T23:49:51Z", + "url": "https://api.github.com/repos/neovim/neovim", + "visibility": "public", + "watchers": 68006, + "watchers_count": 68006, + "web_commit_signoff_required": false + }, + "sha": "cc87dda31a5b5637ade7ddcfe5199f2df5fd47df", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/6471485?v=4", + "events_url": "https://api.github.com/users/neovim/events{/privacy}", + "followers_url": "https://api.github.com/users/neovim/followers", + "following_url": "https://api.github.com/users/neovim/following{/other_user}", + "gists_url": "https://api.github.com/users/neovim/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/neovim", + "id": 6471485, + "login": "neovim", + "node_id": "MDEyOk9yZ2FuaXphdGlvbjY0NzE0ODU=", + "organizations_url": "https://api.github.com/users/neovim/orgs", + "received_events_url": "https://api.github.com/users/neovim/received_events", + "repos_url": "https://api.github.com/users/neovim/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/neovim/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/neovim/subscriptions", + "type": "Organization", + "url": "https://api.github.com/users/neovim" + } + }, + "body": "This function isn't type safe and is almost impossible for an LSP to\nanalyze properly, since it is not a union type, and hence causes lots\nof diagnostics. It also just generally makes thing more confusing since\nit blurs both sides of the mapping.\n\nA better alternative would be to keep the lookup separate via something\nlike vim.tbl_reverse and do something like:\n\n```lua\nlocal value = tbl[key] or tbl_rev[key]\n```\n", + "closed_at": null, + "comment_data": [ + { + "_links": { + "html": { + "href": "https://github.com/neovim/neovim/pull/24564#discussion_r1284528431" + }, + "pull_request": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/24564" + }, + "self": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/comments/1284528431" + } + }, + "author_association": "MEMBER", + "body": "I'd slap a vim.deprecate() on it", + "commit_id": "c7b93105bb211e03947c5f6b2c1820cd9739e521", + "created_at": "2023-08-04T14:54:38Z", + "diff_hunk": "@@ -425,6 +425,7 @@ function vim.deep_equal(a, b)\n return false\n end\n \n+--- @deprecated", + "html_url": "https://github.com/neovim/neovim/pull/24564#discussion_r1284528431", + "id": 1284528431, + "line": 428, + "node_id": "PRRC_kwDOAPphoM5MkFkv", + "original_commit_id": "0d7b322ff0f9156067c5ae5518832fbb79f947ae", + "original_line": 428, + "original_position": 4, + "original_start_line": null, + "path": "runtime/lua/vim/shared.lua", + "position": 4, + "pull_request_review_id": 1563049295, + "pull_request_url": "https://api.github.com/repos/neovim/neovim/pulls/24564", + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/pulls/comments/1284528431/reactions" + }, + "side": "RIGHT", + "start_line": null, + "start_side": null, + "subject_type": "line", + "updated_at": "2023-08-04T14:54:38Z", + "url": "https://api.github.com/repos/neovim/neovim/pulls/comments/1284528431", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/1359421?v=4", + "events_url": "https://api.github.com/users/justinmk/events{/privacy}", + "followers_url": "https://api.github.com/users/justinmk/followers", + "following_url": "https://api.github.com/users/justinmk/following{/other_user}", + "gists_url": "https://api.github.com/users/justinmk/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/justinmk", + "id": 1359421, + "login": "justinmk", + "node_id": "MDQ6VXNlcjEzNTk0MjE=", + "organizations_url": "https://api.github.com/users/justinmk/orgs", + "received_events_url": "https://api.github.com/users/justinmk/received_events", + "repos_url": "https://api.github.com/users/justinmk/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/justinmk/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/justinmk/subscriptions", + "type": "User", + "url": "https://api.github.com/users/justinmk" + } + } + ], + "comment_regular_data": [ + { + "author_association": "MEMBER", + "body": "+100.\r\n\r\n> something like vim.tbl_reverse\r\n\r\nInstead of a new `vim.tbl_x` function let's see if whatever is needed makes sense in `vim.iter`, or `vim.func`, or `table` itself.\r\n\r\nI think `vim.iter():reverse()` makes sense because \"streaming\" a reversal makes sense. It's not specific to tables.", + "created_at": "2023-08-04T14:55:47Z", + "html_url": "https://github.com/neovim/neovim/pull/24564#issuecomment-1665744776", + "id": 1665744776, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/24564", + "node_id": "IC_kwDOAPphoM5jST-I", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1665744776/reactions" + }, + "updated_at": "2023-08-04T16:10:44Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1665744776", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/1359421?v=4", + "events_url": "https://api.github.com/users/justinmk/events{/privacy}", + "followers_url": "https://api.github.com/users/justinmk/followers", + "following_url": "https://api.github.com/users/justinmk/following{/other_user}", + "gists_url": "https://api.github.com/users/justinmk/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/justinmk", + "id": 1359421, + "login": "justinmk", + "node_id": "MDQ6VXNlcjEzNTk0MjE=", + "organizations_url": "https://api.github.com/users/justinmk/orgs", + "received_events_url": "https://api.github.com/users/justinmk/received_events", + "repos_url": "https://api.github.com/users/justinmk/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/justinmk/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/justinmk/subscriptions", + "type": "User", + "url": "https://api.github.com/users/justinmk" + } + }, + { + "author_association": "MEMBER", + "body": "For list like tables reverse means something else though?", + "created_at": "2023-08-04T16:11:56Z", + "html_url": "https://github.com/neovim/neovim/pull/24564#issuecomment-1665862464", + "id": 1665862464, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/24564", + "node_id": "IC_kwDOAPphoM5jSwtA", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1665862464/reactions" + }, + "updated_at": "2023-08-04T16:11:56Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1665862464", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/7904185?v=4", + "events_url": "https://api.github.com/users/lewis6991/events{/privacy}", + "followers_url": "https://api.github.com/users/lewis6991/followers", + "following_url": "https://api.github.com/users/lewis6991/following{/other_user}", + "gists_url": "https://api.github.com/users/lewis6991/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/lewis6991", + "id": 7904185, + "login": "lewis6991", + "node_id": "MDQ6VXNlcjc5MDQxODU=", + "organizations_url": "https://api.github.com/users/lewis6991/orgs", + "received_events_url": "https://api.github.com/users/lewis6991/received_events", + "repos_url": "https://api.github.com/users/lewis6991/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/lewis6991/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/lewis6991/subscriptions", + "type": "User", + "url": "https://api.github.com/users/lewis6991" + } + }, + { + "author_association": "MEMBER", + "body": ":D I got tunnel vision when I saw `tbl_reverse`.\r\n\r\n`tbl_add_reverse_lookup` is a strange function, \r\n\r\n- it assumes that none of the values will conflict with the keys\r\n- a better name for the operation is \"swap\" not reverse...\r\n\r\nin python you can swap keys/values with zip():\r\n\r\n dict(zip(my_dict.values(), my_dict.keys()))\r\n\r\nWe need `zip()` anyway (unless iter() has some synonym for it already?). I don't see why we need a function that crams \"both directions\" into the same table?", + "created_at": "2023-08-04T16:21:02Z", + "html_url": "https://github.com/neovim/neovim/pull/24564#issuecomment-1665873837", + "id": 1665873837, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/24564", + "node_id": "IC_kwDOAPphoM5jSzet", + "performed_via_github_app": null, + "reactions": { + "+1": 1, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 1, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1665873837/reactions" + }, + "updated_at": "2023-08-04T16:21:02Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1665873837", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/1359421?v=4", + "events_url": "https://api.github.com/users/justinmk/events{/privacy}", + "followers_url": "https://api.github.com/users/justinmk/followers", + "following_url": "https://api.github.com/users/justinmk/following{/other_user}", + "gists_url": "https://api.github.com/users/justinmk/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/justinmk", + "id": 1359421, + "login": "justinmk", + "node_id": "MDQ6VXNlcjEzNTk0MjE=", + "organizations_url": "https://api.github.com/users/justinmk/orgs", + "received_events_url": "https://api.github.com/users/justinmk/received_events", + "repos_url": "https://api.github.com/users/justinmk/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/justinmk/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/justinmk/subscriptions", + "type": "User", + "url": "https://api.github.com/users/justinmk" + } + }, + { + "author_association": "MEMBER", + "body": "> it assumes that none of the values will conflict with the keys\r\n\r\nIn its defence, it does error if there is a conflict.\r\n\r\nBut yeah, cramming this into the same table is just generally a bad idea.", + "created_at": "2023-08-04T16:27:52Z", + "html_url": "https://github.com/neovim/neovim/pull/24564#issuecomment-1665884308", + "id": 1665884308, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/24564", + "node_id": "IC_kwDOAPphoM5jS2CU", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1665884308/reactions" + }, + "updated_at": "2023-08-04T16:27:52Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1665884308", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/7904185?v=4", + "events_url": "https://api.github.com/users/lewis6991/events{/privacy}", + "followers_url": "https://api.github.com/users/lewis6991/followers", + "following_url": "https://api.github.com/users/lewis6991/following{/other_user}", + "gists_url": "https://api.github.com/users/lewis6991/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/lewis6991", + "id": 7904185, + "login": "lewis6991", + "node_id": "MDQ6VXNlcjc5MDQxODU=", + "organizations_url": "https://api.github.com/users/lewis6991/orgs", + "received_events_url": "https://api.github.com/users/lewis6991/received_events", + "repos_url": "https://api.github.com/users/lewis6991/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/lewis6991/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/lewis6991/subscriptions", + "type": "User", + "url": "https://api.github.com/users/lewis6991" + } + } + ], + "comments_url": "https://api.github.com/repos/neovim/neovim/issues/24564/comments", + "commits_url": "https://api.github.com/repos/neovim/neovim/pulls/24564/commits", + "created_at": "2023-08-04T14:21:38Z", + "diff_url": "https://github.com/neovim/neovim/pull/24564.diff", + "draft": true, + "head": { + "label": "lewis6991:fix/depre_rev_lookup", + "ref": "fix/depre_rev_lookup", + "repo": { + "allow_forking": true, + "archive_url": "https://api.github.com/repos/lewis6991/neovim/{archive_format}{/ref}", + "archived": false, + "assignees_url": "https://api.github.com/repos/lewis6991/neovim/assignees{/user}", + "blobs_url": "https://api.github.com/repos/lewis6991/neovim/git/blobs{/sha}", + "branches_url": "https://api.github.com/repos/lewis6991/neovim/branches{/branch}", + "clone_url": "https://github.com/lewis6991/neovim.git", + "collaborators_url": "https://api.github.com/repos/lewis6991/neovim/collaborators{/collaborator}", + "comments_url": "https://api.github.com/repos/lewis6991/neovim/comments{/number}", + "commits_url": "https://api.github.com/repos/lewis6991/neovim/commits{/sha}", + "compare_url": "https://api.github.com/repos/lewis6991/neovim/compare/{base}...{head}", + "contents_url": "https://api.github.com/repos/lewis6991/neovim/contents/{+path}", + "contributors_url": "https://api.github.com/repos/lewis6991/neovim/contributors", + "created_at": "2020-11-24T21:47:43Z", + "default_branch": "master", + "deployments_url": "https://api.github.com/repos/lewis6991/neovim/deployments", + "description": "Vim-fork focused on extensibility and usability", + "disabled": false, + "downloads_url": "https://api.github.com/repos/lewis6991/neovim/downloads", + "events_url": "https://api.github.com/repos/lewis6991/neovim/events", + "fork": true, + "forks": 0, + "forks_count": 0, + "forks_url": "https://api.github.com/repos/lewis6991/neovim/forks", + "full_name": "lewis6991/neovim", + "git_commits_url": "https://api.github.com/repos/lewis6991/neovim/git/commits{/sha}", + "git_refs_url": "https://api.github.com/repos/lewis6991/neovim/git/refs{/sha}", + "git_tags_url": "https://api.github.com/repos/lewis6991/neovim/git/tags{/sha}", + "git_url": "git://github.com/lewis6991/neovim.git", + "has_discussions": false, + "has_downloads": true, + "has_issues": false, + "has_pages": false, + "has_projects": true, + "has_wiki": true, + "homepage": "https://neovim.io", + "hooks_url": "https://api.github.com/repos/lewis6991/neovim/hooks", + "html_url": "https://github.com/lewis6991/neovim", + "id": 315760150, + "is_template": false, + "issue_comment_url": "https://api.github.com/repos/lewis6991/neovim/issues/comments{/number}", + "issue_events_url": "https://api.github.com/repos/lewis6991/neovim/issues/events{/number}", + "issues_url": "https://api.github.com/repos/lewis6991/neovim/issues{/number}", + "keys_url": "https://api.github.com/repos/lewis6991/neovim/keys{/key_id}", + "labels_url": "https://api.github.com/repos/lewis6991/neovim/labels{/name}", + "language": "Vim script", + "languages_url": "https://api.github.com/repos/lewis6991/neovim/languages", + "license": { + "key": "other", + "name": "Other", + "node_id": "MDc6TGljZW5zZTA=", + "spdx_id": "NOASSERTION", + "url": null + }, + "merges_url": "https://api.github.com/repos/lewis6991/neovim/merges", + "milestones_url": "https://api.github.com/repos/lewis6991/neovim/milestones{/number}", + "mirror_url": null, + "name": "neovim", + "node_id": "MDEwOlJlcG9zaXRvcnkzMTU3NjAxNTA=", + "notifications_url": "https://api.github.com/repos/lewis6991/neovim/notifications{?since,all,participating}", + "open_issues": 0, + "open_issues_count": 0, + "owner": { + "avatar_url": "https://avatars.githubusercontent.com/u/7904185?v=4", + "events_url": "https://api.github.com/users/lewis6991/events{/privacy}", + "followers_url": "https://api.github.com/users/lewis6991/followers", + "following_url": "https://api.github.com/users/lewis6991/following{/other_user}", + "gists_url": "https://api.github.com/users/lewis6991/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/lewis6991", + "id": 7904185, + "login": "lewis6991", + "node_id": "MDQ6VXNlcjc5MDQxODU=", + "organizations_url": "https://api.github.com/users/lewis6991/orgs", + "received_events_url": "https://api.github.com/users/lewis6991/received_events", + "repos_url": "https://api.github.com/users/lewis6991/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/lewis6991/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/lewis6991/subscriptions", + "type": "User", + "url": "https://api.github.com/users/lewis6991" + }, + "private": false, + "pulls_url": "https://api.github.com/repos/lewis6991/neovim/pulls{/number}", + "pushed_at": "2023-08-04T15:40:54Z", + "releases_url": "https://api.github.com/repos/lewis6991/neovim/releases{/id}", + "size": 242589, + "ssh_url": "git@github.com:lewis6991/neovim.git", + "stargazers_count": 0, + "stargazers_url": "https://api.github.com/repos/lewis6991/neovim/stargazers", + "statuses_url": "https://api.github.com/repos/lewis6991/neovim/statuses/{sha}", + "subscribers_url": "https://api.github.com/repos/lewis6991/neovim/subscribers", + "subscription_url": "https://api.github.com/repos/lewis6991/neovim/subscription", + "svn_url": "https://github.com/lewis6991/neovim", + "tags_url": "https://api.github.com/repos/lewis6991/neovim/tags", + "teams_url": "https://api.github.com/repos/lewis6991/neovim/teams", + "topics": [], + "trees_url": "https://api.github.com/repos/lewis6991/neovim/git/trees{/sha}", + "updated_at": "2023-01-31T18:36:52Z", + "url": "https://api.github.com/repos/lewis6991/neovim", + "visibility": "public", + "watchers": 0, + "watchers_count": 0, + "web_commit_signoff_required": false + }, + "sha": "c7b93105bb211e03947c5f6b2c1820cd9739e521", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/7904185?v=4", + "events_url": "https://api.github.com/users/lewis6991/events{/privacy}", + "followers_url": "https://api.github.com/users/lewis6991/followers", + "following_url": "https://api.github.com/users/lewis6991/following{/other_user}", + "gists_url": "https://api.github.com/users/lewis6991/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/lewis6991", + "id": 7904185, + "login": "lewis6991", + "node_id": "MDQ6VXNlcjc5MDQxODU=", + "organizations_url": "https://api.github.com/users/lewis6991/orgs", + "received_events_url": "https://api.github.com/users/lewis6991/received_events", + "repos_url": "https://api.github.com/users/lewis6991/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/lewis6991/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/lewis6991/subscriptions", + "type": "User", + "url": "https://api.github.com/users/lewis6991" + } + }, + "html_url": "https://github.com/neovim/neovim/pull/24564", + "id": 1463019291, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/24564", + "labels": [ + { + "color": "c5def5", + "default": false, + "description": null, + "id": 573222693, + "name": "lua", + "node_id": "MDU6TGFiZWw1NzMyMjI2OTM=", + "url": "https://api.github.com/repos/neovim/neovim/labels/lua" + }, + { + "color": "c5def5", + "default": false, + "description": null, + "id": 662566370, + "name": "lsp", + "node_id": "MDU6TGFiZWw2NjI1NjYzNzA=", + "url": "https://api.github.com/repos/neovim/neovim/labels/lsp" + }, + { + "color": "C5DEF5", + "default": false, + "description": "", + "id": 3361645105, + "name": "diagnostic", + "node_id": "MDU6TGFiZWwzMzYxNjQ1MTA1", + "url": "https://api.github.com/repos/neovim/neovim/labels/diagnostic" + }, + { + "color": "F9D0C4", + "default": false, + "description": "", + "id": 3968935075, + "name": "breaking-change", + "node_id": "LA_kwDOAPphoM7skSSj", + "url": "https://api.github.com/repos/neovim/neovim/labels/breaking-change" + } + ], + "locked": false, + "merge_commit_sha": "43cb797edc1358b4b1d9d0b3f01a49d07dbe0572", + "merged_at": null, + "milestone": null, + "node_id": "PR_kwDOAPphoM5XM-cb", + "number": 24564, + "patch_url": "https://github.com/neovim/neovim/pull/24564.patch", + "requested_reviewers": [], + "requested_teams": [], + "review_comment_url": "https://api.github.com/repos/neovim/neovim/pulls/comments{/number}", + "review_comments_url": "https://api.github.com/repos/neovim/neovim/pulls/24564/comments", + "state": "open", + "statuses_url": "https://api.github.com/repos/neovim/neovim/statuses/c7b93105bb211e03947c5f6b2c1820cd9739e521", + "title": "fix(lua)!: deprecate vim.tbl_add_reverse_lookup", + "updated_at": "2023-08-04T16:27:52Z", + "url": "https://api.github.com/repos/neovim/neovim/pulls/24564", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/7904185?v=4", + "events_url": "https://api.github.com/users/lewis6991/events{/privacy}", + "followers_url": "https://api.github.com/users/lewis6991/followers", + "following_url": "https://api.github.com/users/lewis6991/following{/other_user}", + "gists_url": "https://api.github.com/users/lewis6991/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/lewis6991", + "id": 7904185, + "login": "lewis6991", + "node_id": "MDQ6VXNlcjc5MDQxODU=", + "organizations_url": "https://api.github.com/users/lewis6991/orgs", + "received_events_url": "https://api.github.com/users/lewis6991/received_events", + "repos_url": "https://api.github.com/users/lewis6991/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/lewis6991/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/lewis6991/subscriptions", + "type": "User", + "url": "https://api.github.com/users/lewis6991" + } +} \ No newline at end of file diff --git a/repositories/neovim/pulls/24565.json b/repositories/neovim/pulls/24565.json new file mode 100644 index 00000000..025e0f02 --- /dev/null +++ b/repositories/neovim/pulls/24565.json @@ -0,0 +1,589 @@ +{ + "_links": { + "comments": { + "href": "https://api.github.com/repos/neovim/neovim/issues/24565/comments" + }, + "commits": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/24565/commits" + }, + "html": { + "href": "https://github.com/neovim/neovim/pull/24565" + }, + "issue": { + "href": "https://api.github.com/repos/neovim/neovim/issues/24565" + }, + "review_comment": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/comments{/number}" + }, + "review_comments": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/24565/comments" + }, + "self": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/24565" + }, + "statuses": { + "href": "https://api.github.com/repos/neovim/neovim/statuses/07e046c167f74b890b5a04c24c87f50213c06906" + } + }, + "active_lock_reason": null, + "assignee": null, + "assignees": [], + "author_association": "CONTRIBUTOR", + "auto_merge": null, + "base": { + "label": "neovim:master", + "ref": "master", + "repo": { + "allow_forking": true, + "archive_url": "https://api.github.com/repos/neovim/neovim/{archive_format}{/ref}", + "archived": false, + "assignees_url": "https://api.github.com/repos/neovim/neovim/assignees{/user}", + "blobs_url": "https://api.github.com/repos/neovim/neovim/git/blobs{/sha}", + "branches_url": "https://api.github.com/repos/neovim/neovim/branches{/branch}", + "clone_url": "https://github.com/neovim/neovim.git", + "collaborators_url": "https://api.github.com/repos/neovim/neovim/collaborators{/collaborator}", + "comments_url": "https://api.github.com/repos/neovim/neovim/comments{/number}", + "commits_url": "https://api.github.com/repos/neovim/neovim/commits{/sha}", + "compare_url": "https://api.github.com/repos/neovim/neovim/compare/{base}...{head}", + "contents_url": "https://api.github.com/repos/neovim/neovim/contents/{+path}", + "contributors_url": "https://api.github.com/repos/neovim/neovim/contributors", + "created_at": "2014-01-31T13:39:22Z", + "default_branch": "master", + "deployments_url": "https://api.github.com/repos/neovim/neovim/deployments", + "description": "Vim-fork focused on extensibility and usability", + "disabled": false, + "downloads_url": "https://api.github.com/repos/neovim/neovim/downloads", + "events_url": "https://api.github.com/repos/neovim/neovim/events", + "fork": false, + "forks": 4789, + "forks_count": 4789, + "forks_url": "https://api.github.com/repos/neovim/neovim/forks", + "full_name": "neovim/neovim", + "git_commits_url": "https://api.github.com/repos/neovim/neovim/git/commits{/sha}", + "git_refs_url": "https://api.github.com/repos/neovim/neovim/git/refs{/sha}", + "git_tags_url": "https://api.github.com/repos/neovim/neovim/git/tags{/sha}", + "git_url": "git://github.com/neovim/neovim.git", + "has_discussions": true, + "has_downloads": true, + "has_issues": true, + "has_pages": false, + "has_projects": true, + "has_wiki": true, + "homepage": "https://neovim.io", + "hooks_url": "https://api.github.com/repos/neovim/neovim/hooks", + "html_url": "https://github.com/neovim/neovim", + "id": 16408992, + "is_template": false, + "issue_comment_url": "https://api.github.com/repos/neovim/neovim/issues/comments{/number}", + "issue_events_url": "https://api.github.com/repos/neovim/neovim/issues/events{/number}", + "issues_url": "https://api.github.com/repos/neovim/neovim/issues{/number}", + "keys_url": "https://api.github.com/repos/neovim/neovim/keys{/key_id}", + "labels_url": "https://api.github.com/repos/neovim/neovim/labels{/name}", + "language": "Vim Script", + "languages_url": "https://api.github.com/repos/neovim/neovim/languages", + "license": { + "key": "other", + "name": "Other", + "node_id": "MDc6TGljZW5zZTA=", + "spdx_id": "NOASSERTION", + "url": null + }, + "merges_url": "https://api.github.com/repos/neovim/neovim/merges", + "milestones_url": "https://api.github.com/repos/neovim/neovim/milestones{/number}", + "mirror_url": null, + "name": "neovim", + "node_id": "MDEwOlJlcG9zaXRvcnkxNjQwODk5Mg==", + "notifications_url": "https://api.github.com/repos/neovim/neovim/notifications{?since,all,participating}", + "open_issues": 1652, + "open_issues_count": 1652, + "owner": { + "avatar_url": "https://avatars.githubusercontent.com/u/6471485?v=4", + "events_url": "https://api.github.com/users/neovim/events{/privacy}", + "followers_url": "https://api.github.com/users/neovim/followers", + "following_url": "https://api.github.com/users/neovim/following{/other_user}", + "gists_url": "https://api.github.com/users/neovim/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/neovim", + "id": 6471485, + "login": "neovim", + "node_id": "MDEyOk9yZ2FuaXphdGlvbjY0NzE0ODU=", + "organizations_url": "https://api.github.com/users/neovim/orgs", + "received_events_url": "https://api.github.com/users/neovim/received_events", + "repos_url": "https://api.github.com/users/neovim/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/neovim/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/neovim/subscriptions", + "type": "Organization", + "url": "https://api.github.com/users/neovim" + }, + "private": false, + "pulls_url": "https://api.github.com/repos/neovim/neovim/pulls{/number}", + "pushed_at": "2023-08-05T01:34:12Z", + "releases_url": "https://api.github.com/repos/neovim/neovim/releases{/id}", + "size": 246884, + "ssh_url": "git@github.com:neovim/neovim.git", + "stargazers_count": 68006, + "stargazers_url": "https://api.github.com/repos/neovim/neovim/stargazers", + "statuses_url": "https://api.github.com/repos/neovim/neovim/statuses/{sha}", + "subscribers_url": "https://api.github.com/repos/neovim/neovim/subscribers", + "subscription_url": "https://api.github.com/repos/neovim/neovim/subscription", + "svn_url": "https://github.com/neovim/neovim", + "tags_url": "https://api.github.com/repos/neovim/neovim/tags", + "teams_url": "https://api.github.com/repos/neovim/neovim/teams", + "topics": [ + "api", + "c", + "lua", + "neovim", + "nvim", + "text-editor", + "vim" + ], + "trees_url": "https://api.github.com/repos/neovim/neovim/git/trees{/sha}", + "updated_at": "2023-08-04T23:49:51Z", + "url": "https://api.github.com/repos/neovim/neovim", + "visibility": "public", + "watchers": 68006, + "watchers_count": 68006, + "web_commit_signoff_required": false + }, + "sha": "cc87dda31a5b5637ade7ddcfe5199f2df5fd47df", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/6471485?v=4", + "events_url": "https://api.github.com/users/neovim/events{/privacy}", + "followers_url": "https://api.github.com/users/neovim/followers", + "following_url": "https://api.github.com/users/neovim/following{/other_user}", + "gists_url": "https://api.github.com/users/neovim/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/neovim", + "id": 6471485, + "login": "neovim", + "node_id": "MDEyOk9yZ2FuaXphdGlvbjY0NzE0ODU=", + "organizations_url": "https://api.github.com/users/neovim/orgs", + "received_events_url": "https://api.github.com/users/neovim/received_events", + "repos_url": "https://api.github.com/users/neovim/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/neovim/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/neovim/subscriptions", + "type": "Organization", + "url": "https://api.github.com/users/neovim" + } + }, + "body": "Problem: There are no events for start and end of macro replaying, although there are ones for recording.\r\n\r\nUsing `reg_executing()` to condition code on whether something is being executed inside a macro is not always possible. For example, if that code is executed inside a mapping which should not be executed inside a macro in the first place. Having that mapping deleted on new `ReplayingEnter` and restored on `ReplayingLeave` solves this issue.\r\n\r\n------\r\n\r\nSolution: Add `ReplayingEnter` and `ReplayingLeave`.", + "closed_at": null, + "comment_data": [ + { + "_links": { + "html": { + "href": "https://github.com/neovim/neovim/pull/24565#discussion_r1284629057" + }, + "pull_request": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/24565" + }, + "self": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/comments/1284629057" + } + }, + "author_association": "MEMBER", + "body": "```suggestion\r\n ReplayEnter=true,\r\n ReplayLeave=true,\r\n```\r\n", + "commit_id": "07e046c167f74b890b5a04c24c87f50213c06906", + "created_at": "2023-08-04T16:25:51Z", + "diff_hunk": "@@ -161,6 +163,8 @@ return {\n LspTokenUpdate=true,\n RecordingEnter=true,\n RecordingLeave=true,\n+ ReplayingEnter=true,\n+ ReplayingLeave=true,", + "html_url": "https://github.com/neovim/neovim/pull/24565#discussion_r1284629057", + "id": 1284629057, + "line": null, + "node_id": "PRRC_kwDOAPphoM5MkeJB", + "original_commit_id": "27c6e6919e439b62681a099e5936d3438ea2ba5a", + "original_line": 167, + "original_position": 14, + "original_start_line": 166, + "path": "src/nvim/auevents.lua", + "position": null, + "pull_request_review_id": 1563210979, + "pull_request_url": "https://api.github.com/repos/neovim/neovim/pulls/24565", + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/pulls/comments/1284629057/reactions" + }, + "side": "RIGHT", + "start_line": null, + "start_side": "RIGHT", + "subject_type": "line", + "updated_at": "2023-08-04T16:25:51Z", + "url": "https://api.github.com/repos/neovim/neovim/pulls/comments/1284629057", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/1359421?v=4", + "events_url": "https://api.github.com/users/justinmk/events{/privacy}", + "followers_url": "https://api.github.com/users/justinmk/followers", + "following_url": "https://api.github.com/users/justinmk/following{/other_user}", + "gists_url": "https://api.github.com/users/justinmk/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/justinmk", + "id": 1359421, + "login": "justinmk", + "node_id": "MDQ6VXNlcjEzNTk0MjE=", + "organizations_url": "https://api.github.com/users/justinmk/orgs", + "received_events_url": "https://api.github.com/users/justinmk/received_events", + "repos_url": "https://api.github.com/users/justinmk/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/justinmk/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/justinmk/subscriptions", + "type": "User", + "url": "https://api.github.com/users/justinmk" + } + }, + { + "_links": { + "html": { + "href": "https://github.com/neovim/neovim/pull/24565#discussion_r1284644289" + }, + "pull_request": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/24565" + }, + "self": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/comments/1284644289" + } + }, + "author_association": "CONTRIBUTOR", + "body": "Sure, I'll change that. I've just went for the symmetry with `RecordingEnter` and `RecordingLeave`.", + "commit_id": "07e046c167f74b890b5a04c24c87f50213c06906", + "created_at": "2023-08-04T16:42:24Z", + "diff_hunk": "@@ -161,6 +163,8 @@ return {\n LspTokenUpdate=true,\n RecordingEnter=true,\n RecordingLeave=true,\n+ ReplayingEnter=true,\n+ ReplayingLeave=true,", + "html_url": "https://github.com/neovim/neovim/pull/24565#discussion_r1284644289", + "id": 1284644289, + "in_reply_to_id": 1284629057, + "line": null, + "node_id": "PRRC_kwDOAPphoM5Mkh3B", + "original_commit_id": "27c6e6919e439b62681a099e5936d3438ea2ba5a", + "original_line": 167, + "original_position": 14, + "original_start_line": 166, + "path": "src/nvim/auevents.lua", + "position": null, + "pull_request_review_id": 1563235737, + "pull_request_url": "https://api.github.com/repos/neovim/neovim/pulls/24565", + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/pulls/comments/1284644289/reactions" + }, + "side": "RIGHT", + "start_line": null, + "start_side": "RIGHT", + "subject_type": "line", + "updated_at": "2023-08-04T16:42:25Z", + "url": "https://api.github.com/repos/neovim/neovim/pulls/comments/1284644289", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/24854248?v=4", + "events_url": "https://api.github.com/users/echasnovski/events{/privacy}", + "followers_url": "https://api.github.com/users/echasnovski/followers", + "following_url": "https://api.github.com/users/echasnovski/following{/other_user}", + "gists_url": "https://api.github.com/users/echasnovski/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/echasnovski", + "id": 24854248, + "login": "echasnovski", + "node_id": "MDQ6VXNlcjI0ODU0MjQ4", + "organizations_url": "https://api.github.com/users/echasnovski/orgs", + "received_events_url": "https://api.github.com/users/echasnovski/received_events", + "repos_url": "https://api.github.com/users/echasnovski/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/echasnovski/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/echasnovski/subscriptions", + "type": "User", + "url": "https://api.github.com/users/echasnovski" + } + } + ], + "comment_regular_data": [ + { + "author_association": "MEMBER", + "body": "Not sure about this, but\r\n\r\n- Should be mentioned at `:help q` and related places.\r\n- closes https://github.com/neovim/neovim/issues/24475\r\n", + "created_at": "2023-08-04T16:26:51Z", + "html_url": "https://github.com/neovim/neovim/pull/24565#issuecomment-1665883269", + "id": 1665883269, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/24565", + "node_id": "IC_kwDOAPphoM5jS1yF", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1665883269/reactions" + }, + "updated_at": "2023-08-04T16:26:51Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1665883269", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/1359421?v=4", + "events_url": "https://api.github.com/users/justinmk/events{/privacy}", + "followers_url": "https://api.github.com/users/justinmk/followers", + "following_url": "https://api.github.com/users/justinmk/following{/other_user}", + "gists_url": "https://api.github.com/users/justinmk/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/justinmk", + "id": 1359421, + "login": "justinmk", + "node_id": "MDQ6VXNlcjEzNTk0MjE=", + "organizations_url": "https://api.github.com/users/justinmk/orgs", + "received_events_url": "https://api.github.com/users/justinmk/received_events", + "repos_url": "https://api.github.com/users/justinmk/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/justinmk/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/justinmk/subscriptions", + "type": "User", + "url": "https://api.github.com/users/justinmk" + } + }, + { + "author_association": "CONTRIBUTOR", + "body": "@justinmk, updated names to be `ReplayEnter` and `ReplayLeave`; added \"See also\" to `q` and `@`.", + "created_at": "2023-08-04T16:54:47Z", + "html_url": "https://github.com/neovim/neovim/pull/24565#issuecomment-1665918622", + "id": 1665918622, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/24565", + "node_id": "IC_kwDOAPphoM5jS-ae", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1665918622/reactions" + }, + "updated_at": "2023-08-04T16:54:47Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/1665918622", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/24854248?v=4", + "events_url": "https://api.github.com/users/echasnovski/events{/privacy}", + "followers_url": "https://api.github.com/users/echasnovski/followers", + "following_url": "https://api.github.com/users/echasnovski/following{/other_user}", + "gists_url": "https://api.github.com/users/echasnovski/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/echasnovski", + "id": 24854248, + "login": "echasnovski", + "node_id": "MDQ6VXNlcjI0ODU0MjQ4", + "organizations_url": "https://api.github.com/users/echasnovski/orgs", + "received_events_url": "https://api.github.com/users/echasnovski/received_events", + "repos_url": "https://api.github.com/users/echasnovski/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/echasnovski/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/echasnovski/subscriptions", + "type": "User", + "url": "https://api.github.com/users/echasnovski" + } + } + ], + "comments_url": "https://api.github.com/repos/neovim/neovim/issues/24565/comments", + "commits_url": "https://api.github.com/repos/neovim/neovim/pulls/24565/commits", + "created_at": "2023-08-04T14:43:37Z", + "diff_url": "https://github.com/neovim/neovim/pull/24565.diff", + "draft": false, + "head": { + "label": "echasnovski:macro-replaying-events", + "ref": "macro-replaying-events", + "repo": { + "allow_forking": true, + "archive_url": "https://api.github.com/repos/echasnovski/neovim/{archive_format}{/ref}", + "archived": false, + "assignees_url": "https://api.github.com/repos/echasnovski/neovim/assignees{/user}", + "blobs_url": "https://api.github.com/repos/echasnovski/neovim/git/blobs{/sha}", + "branches_url": "https://api.github.com/repos/echasnovski/neovim/branches{/branch}", + "clone_url": "https://github.com/echasnovski/neovim.git", + "collaborators_url": "https://api.github.com/repos/echasnovski/neovim/collaborators{/collaborator}", + "comments_url": "https://api.github.com/repos/echasnovski/neovim/comments{/number}", + "commits_url": "https://api.github.com/repos/echasnovski/neovim/commits{/sha}", + "compare_url": "https://api.github.com/repos/echasnovski/neovim/compare/{base}...{head}", + "contents_url": "https://api.github.com/repos/echasnovski/neovim/contents/{+path}", + "contributors_url": "https://api.github.com/repos/echasnovski/neovim/contributors", + "created_at": "2021-12-02T09:43:59Z", + "default_branch": "master", + "deployments_url": "https://api.github.com/repos/echasnovski/neovim/deployments", + "description": "Vim-fork focused on extensibility and usability", + "disabled": false, + "downloads_url": "https://api.github.com/repos/echasnovski/neovim/downloads", + "events_url": "https://api.github.com/repos/echasnovski/neovim/events", + "fork": true, + "forks": 0, + "forks_count": 0, + "forks_url": "https://api.github.com/repos/echasnovski/neovim/forks", + "full_name": "echasnovski/neovim", + "git_commits_url": "https://api.github.com/repos/echasnovski/neovim/git/commits{/sha}", + "git_refs_url": "https://api.github.com/repos/echasnovski/neovim/git/refs{/sha}", + "git_tags_url": "https://api.github.com/repos/echasnovski/neovim/git/tags{/sha}", + "git_url": "git://github.com/echasnovski/neovim.git", + "has_discussions": false, + "has_downloads": true, + "has_issues": false, + "has_pages": false, + "has_projects": true, + "has_wiki": true, + "homepage": "https://neovim.io", + "hooks_url": "https://api.github.com/repos/echasnovski/neovim/hooks", + "html_url": "https://github.com/echasnovski/neovim", + "id": 434162461, + "is_template": false, + "issue_comment_url": "https://api.github.com/repos/echasnovski/neovim/issues/comments{/number}", + "issue_events_url": "https://api.github.com/repos/echasnovski/neovim/issues/events{/number}", + "issues_url": "https://api.github.com/repos/echasnovski/neovim/issues{/number}", + "keys_url": "https://api.github.com/repos/echasnovski/neovim/keys{/key_id}", + "labels_url": "https://api.github.com/repos/echasnovski/neovim/labels{/name}", + "language": "Vim Script", + "languages_url": "https://api.github.com/repos/echasnovski/neovim/languages", + "license": { + "key": "other", + "name": "Other", + "node_id": "MDc6TGljZW5zZTA=", + "spdx_id": "NOASSERTION", + "url": null + }, + "merges_url": "https://api.github.com/repos/echasnovski/neovim/merges", + "milestones_url": "https://api.github.com/repos/echasnovski/neovim/milestones{/number}", + "mirror_url": null, + "name": "neovim", + "node_id": "R_kgDOGeDLHQ", + "notifications_url": "https://api.github.com/repos/echasnovski/neovim/notifications{?since,all,participating}", + "open_issues": 0, + "open_issues_count": 0, + "owner": { + "avatar_url": "https://avatars.githubusercontent.com/u/24854248?v=4", + "events_url": "https://api.github.com/users/echasnovski/events{/privacy}", + "followers_url": "https://api.github.com/users/echasnovski/followers", + "following_url": "https://api.github.com/users/echasnovski/following{/other_user}", + "gists_url": "https://api.github.com/users/echasnovski/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/echasnovski", + "id": 24854248, + "login": "echasnovski", + "node_id": "MDQ6VXNlcjI0ODU0MjQ4", + "organizations_url": "https://api.github.com/users/echasnovski/orgs", + "received_events_url": "https://api.github.com/users/echasnovski/received_events", + "repos_url": "https://api.github.com/users/echasnovski/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/echasnovski/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/echasnovski/subscriptions", + "type": "User", + "url": "https://api.github.com/users/echasnovski" + }, + "private": false, + "pulls_url": "https://api.github.com/repos/echasnovski/neovim/pulls{/number}", + "pushed_at": "2023-08-04T16:53:30Z", + "releases_url": "https://api.github.com/repos/echasnovski/neovim/releases{/id}", + "size": 242381, + "ssh_url": "git@github.com:echasnovski/neovim.git", + "stargazers_count": 0, + "stargazers_url": "https://api.github.com/repos/echasnovski/neovim/stargazers", + "statuses_url": "https://api.github.com/repos/echasnovski/neovim/statuses/{sha}", + "subscribers_url": "https://api.github.com/repos/echasnovski/neovim/subscribers", + "subscription_url": "https://api.github.com/repos/echasnovski/neovim/subscription", + "svn_url": "https://github.com/echasnovski/neovim", + "tags_url": "https://api.github.com/repos/echasnovski/neovim/tags", + "teams_url": "https://api.github.com/repos/echasnovski/neovim/teams", + "topics": [], + "trees_url": "https://api.github.com/repos/echasnovski/neovim/git/trees{/sha}", + "updated_at": "2022-10-17T11:26:13Z", + "url": "https://api.github.com/repos/echasnovski/neovim", + "visibility": "public", + "watchers": 0, + "watchers_count": 0, + "web_commit_signoff_required": false + }, + "sha": "07e046c167f74b890b5a04c24c87f50213c06906", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/24854248?v=4", + "events_url": "https://api.github.com/users/echasnovski/events{/privacy}", + "followers_url": "https://api.github.com/users/echasnovski/followers", + "following_url": "https://api.github.com/users/echasnovski/following{/other_user}", + "gists_url": "https://api.github.com/users/echasnovski/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/echasnovski", + "id": 24854248, + "login": "echasnovski", + "node_id": "MDQ6VXNlcjI0ODU0MjQ4", + "organizations_url": "https://api.github.com/users/echasnovski/orgs", + "received_events_url": "https://api.github.com/users/echasnovski/received_events", + "repos_url": "https://api.github.com/users/echasnovski/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/echasnovski/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/echasnovski/subscriptions", + "type": "User", + "url": "https://api.github.com/users/echasnovski" + } + }, + "html_url": "https://github.com/neovim/neovim/pull/24565", + "id": 1463061798, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/24565", + "labels": [ + { + "color": "C5DEF5", + "default": false, + "description": "events, autocommands", + "id": 3341085842, + "name": "events", + "node_id": "MDU6TGFiZWwzMzQxMDg1ODQy", + "url": "https://api.github.com/repos/neovim/neovim/labels/events" + } + ], + "locked": false, + "merge_commit_sha": "229a3d61477ee521fb8618a81541ccc305f71d6a", + "merged_at": null, + "milestone": null, + "node_id": "PR_kwDOAPphoM5XNI0m", + "number": 24565, + "patch_url": "https://github.com/neovim/neovim/pull/24565.patch", + "requested_reviewers": [], + "requested_teams": [], + "review_comment_url": "https://api.github.com/repos/neovim/neovim/pulls/comments{/number}", + "review_comments_url": "https://api.github.com/repos/neovim/neovim/pulls/24565/comments", + "state": "open", + "statuses_url": "https://api.github.com/repos/neovim/neovim/statuses/07e046c167f74b890b5a04c24c87f50213c06906", + "title": "feat(events): add `ReplayEnter` and `ReplayLeave` events", + "updated_at": "2023-08-04T16:54:58Z", + "url": "https://api.github.com/repos/neovim/neovim/pulls/24565", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/24854248?v=4", + "events_url": "https://api.github.com/users/echasnovski/events{/privacy}", + "followers_url": "https://api.github.com/users/echasnovski/followers", + "following_url": "https://api.github.com/users/echasnovski/following{/other_user}", + "gists_url": "https://api.github.com/users/echasnovski/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/echasnovski", + "id": 24854248, + "login": "echasnovski", + "node_id": "MDQ6VXNlcjI0ODU0MjQ4", + "organizations_url": "https://api.github.com/users/echasnovski/orgs", + "received_events_url": "https://api.github.com/users/echasnovski/received_events", + "repos_url": "https://api.github.com/users/echasnovski/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/echasnovski/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/echasnovski/subscriptions", + "type": "User", + "url": "https://api.github.com/users/echasnovski" + } +} \ No newline at end of file diff --git a/repositories/neovim/pulls/24568.json b/repositories/neovim/pulls/24568.json new file mode 100644 index 00000000..12a20040 --- /dev/null +++ b/repositories/neovim/pulls/24568.json @@ -0,0 +1,371 @@ +{ + "_links": { + "comments": { + "href": "https://api.github.com/repos/neovim/neovim/issues/24568/comments" + }, + "commits": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/24568/commits" + }, + "html": { + "href": "https://github.com/neovim/neovim/pull/24568" + }, + "issue": { + "href": "https://api.github.com/repos/neovim/neovim/issues/24568" + }, + "review_comment": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/comments{/number}" + }, + "review_comments": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/24568/comments" + }, + "self": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/24568" + }, + "statuses": { + "href": "https://api.github.com/repos/neovim/neovim/statuses/74ee820d2fd0de392d44d721a5e197adff6a786e" + } + }, + "active_lock_reason": null, + "assignee": null, + "assignees": [], + "author_association": "MEMBER", + "auto_merge": null, + "base": { + "label": "neovim:master", + "ref": "master", + "repo": { + "allow_forking": true, + "archive_url": "https://api.github.com/repos/neovim/neovim/{archive_format}{/ref}", + "archived": false, + "assignees_url": "https://api.github.com/repos/neovim/neovim/assignees{/user}", + "blobs_url": "https://api.github.com/repos/neovim/neovim/git/blobs{/sha}", + "branches_url": "https://api.github.com/repos/neovim/neovim/branches{/branch}", + "clone_url": "https://github.com/neovim/neovim.git", + "collaborators_url": "https://api.github.com/repos/neovim/neovim/collaborators{/collaborator}", + "comments_url": "https://api.github.com/repos/neovim/neovim/comments{/number}", + "commits_url": "https://api.github.com/repos/neovim/neovim/commits{/sha}", + "compare_url": "https://api.github.com/repos/neovim/neovim/compare/{base}...{head}", + "contents_url": "https://api.github.com/repos/neovim/neovim/contents/{+path}", + "contributors_url": "https://api.github.com/repos/neovim/neovim/contributors", + "created_at": "2014-01-31T13:39:22Z", + "default_branch": "master", + "deployments_url": "https://api.github.com/repos/neovim/neovim/deployments", + "description": "Vim-fork focused on extensibility and usability", + "disabled": false, + "downloads_url": "https://api.github.com/repos/neovim/neovim/downloads", + "events_url": "https://api.github.com/repos/neovim/neovim/events", + "fork": false, + "forks": 4789, + "forks_count": 4789, + "forks_url": "https://api.github.com/repos/neovim/neovim/forks", + "full_name": "neovim/neovim", + "git_commits_url": "https://api.github.com/repos/neovim/neovim/git/commits{/sha}", + "git_refs_url": "https://api.github.com/repos/neovim/neovim/git/refs{/sha}", + "git_tags_url": "https://api.github.com/repos/neovim/neovim/git/tags{/sha}", + "git_url": "git://github.com/neovim/neovim.git", + "has_discussions": true, + "has_downloads": true, + "has_issues": true, + "has_pages": false, + "has_projects": true, + "has_wiki": true, + "homepage": "https://neovim.io", + "hooks_url": "https://api.github.com/repos/neovim/neovim/hooks", + "html_url": "https://github.com/neovim/neovim", + "id": 16408992, + "is_template": false, + "issue_comment_url": "https://api.github.com/repos/neovim/neovim/issues/comments{/number}", + "issue_events_url": "https://api.github.com/repos/neovim/neovim/issues/events{/number}", + "issues_url": "https://api.github.com/repos/neovim/neovim/issues{/number}", + "keys_url": "https://api.github.com/repos/neovim/neovim/keys{/key_id}", + "labels_url": "https://api.github.com/repos/neovim/neovim/labels{/name}", + "language": "Vim Script", + "languages_url": "https://api.github.com/repos/neovim/neovim/languages", + "license": { + "key": "other", + "name": "Other", + "node_id": "MDc6TGljZW5zZTA=", + "spdx_id": "NOASSERTION", + "url": null + }, + "merges_url": "https://api.github.com/repos/neovim/neovim/merges", + "milestones_url": "https://api.github.com/repos/neovim/neovim/milestones{/number}", + "mirror_url": null, + "name": "neovim", + "node_id": "MDEwOlJlcG9zaXRvcnkxNjQwODk5Mg==", + "notifications_url": "https://api.github.com/repos/neovim/neovim/notifications{?since,all,participating}", + "open_issues": 1652, + "open_issues_count": 1652, + "owner": { + "avatar_url": "https://avatars.githubusercontent.com/u/6471485?v=4", + "events_url": "https://api.github.com/users/neovim/events{/privacy}", + "followers_url": "https://api.github.com/users/neovim/followers", + "following_url": "https://api.github.com/users/neovim/following{/other_user}", + "gists_url": "https://api.github.com/users/neovim/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/neovim", + "id": 6471485, + "login": "neovim", + "node_id": "MDEyOk9yZ2FuaXphdGlvbjY0NzE0ODU=", + "organizations_url": "https://api.github.com/users/neovim/orgs", + "received_events_url": "https://api.github.com/users/neovim/received_events", + "repos_url": "https://api.github.com/users/neovim/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/neovim/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/neovim/subscriptions", + "type": "Organization", + "url": "https://api.github.com/users/neovim" + }, + "private": false, + "pulls_url": "https://api.github.com/repos/neovim/neovim/pulls{/number}", + "pushed_at": "2023-08-05T01:34:12Z", + "releases_url": "https://api.github.com/repos/neovim/neovim/releases{/id}", + "size": 246884, + "ssh_url": "git@github.com:neovim/neovim.git", + "stargazers_count": 68006, + "stargazers_url": "https://api.github.com/repos/neovim/neovim/stargazers", + "statuses_url": "https://api.github.com/repos/neovim/neovim/statuses/{sha}", + "subscribers_url": "https://api.github.com/repos/neovim/neovim/subscribers", + "subscription_url": "https://api.github.com/repos/neovim/neovim/subscription", + "svn_url": "https://github.com/neovim/neovim", + "tags_url": "https://api.github.com/repos/neovim/neovim/tags", + "teams_url": "https://api.github.com/repos/neovim/neovim/teams", + "topics": [ + "api", + "c", + "lua", + "neovim", + "nvim", + "text-editor", + "vim" + ], + "trees_url": "https://api.github.com/repos/neovim/neovim/git/trees{/sha}", + "updated_at": "2023-08-04T23:49:51Z", + "url": "https://api.github.com/repos/neovim/neovim", + "visibility": "public", + "watchers": 68006, + "watchers_count": 68006, + "web_commit_signoff_required": false + }, + "sha": "6fa17da39b270bf230764859a9537124b18d3ed5", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/6471485?v=4", + "events_url": "https://api.github.com/users/neovim/events{/privacy}", + "followers_url": "https://api.github.com/users/neovim/followers", + "following_url": "https://api.github.com/users/neovim/following{/other_user}", + "gists_url": "https://api.github.com/users/neovim/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/neovim", + "id": 6471485, + "login": "neovim", + "node_id": "MDEyOk9yZ2FuaXphdGlvbjY0NzE0ODU=", + "organizations_url": "https://api.github.com/users/neovim/orgs", + "received_events_url": "https://api.github.com/users/neovim/received_events", + "repos_url": "https://api.github.com/users/neovim/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/neovim/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/neovim/subscriptions", + "type": "Organization", + "url": "https://api.github.com/users/neovim" + } + }, + "body": null, + "closed_at": "2023-08-04T23:55:45Z", + "comment_data": [], + "comment_regular_data": [], + "comments_url": "https://api.github.com/repos/neovim/neovim/issues/24568/comments", + "commits_url": "https://api.github.com/repos/neovim/neovim/pulls/24568/commits", + "created_at": "2023-08-04T23:22:21Z", + "diff_url": "https://github.com/neovim/neovim/pull/24568.diff", + "draft": false, + "head": { + "label": "zeertzjq:docs-options", + "ref": "docs-options", + "repo": { + "allow_forking": true, + "archive_url": "https://api.github.com/repos/zeertzjq/neovim/{archive_format}{/ref}", + "archived": false, + "assignees_url": "https://api.github.com/repos/zeertzjq/neovim/assignees{/user}", + "blobs_url": "https://api.github.com/repos/zeertzjq/neovim/git/blobs{/sha}", + "branches_url": "https://api.github.com/repos/zeertzjq/neovim/branches{/branch}", + "clone_url": "https://github.com/zeertzjq/neovim.git", + "collaborators_url": "https://api.github.com/repos/zeertzjq/neovim/collaborators{/collaborator}", + "comments_url": "https://api.github.com/repos/zeertzjq/neovim/comments{/number}", + "commits_url": "https://api.github.com/repos/zeertzjq/neovim/commits{/sha}", + "compare_url": "https://api.github.com/repos/zeertzjq/neovim/compare/{base}...{head}", + "contents_url": "https://api.github.com/repos/zeertzjq/neovim/contents/{+path}", + "contributors_url": "https://api.github.com/repos/zeertzjq/neovim/contributors", + "created_at": "2021-09-27T02:22:45Z", + "default_branch": "master", + "deployments_url": "https://api.github.com/repos/zeertzjq/neovim/deployments", + "description": null, + "disabled": false, + "downloads_url": "https://api.github.com/repos/zeertzjq/neovim/downloads", + "events_url": "https://api.github.com/repos/zeertzjq/neovim/events", + "fork": true, + "forks": 0, + "forks_count": 0, + "forks_url": "https://api.github.com/repos/zeertzjq/neovim/forks", + "full_name": "zeertzjq/neovim", + "git_commits_url": "https://api.github.com/repos/zeertzjq/neovim/git/commits{/sha}", + "git_refs_url": "https://api.github.com/repos/zeertzjq/neovim/git/refs{/sha}", + "git_tags_url": "https://api.github.com/repos/zeertzjq/neovim/git/tags{/sha}", + "git_url": "git://github.com/zeertzjq/neovim.git", + "has_discussions": false, + "has_downloads": true, + "has_issues": false, + "has_pages": false, + "has_projects": true, + "has_wiki": true, + "homepage": "", + "hooks_url": "https://api.github.com/repos/zeertzjq/neovim/hooks", + "html_url": "https://github.com/zeertzjq/neovim", + "id": 410715915, + "is_template": false, + "issue_comment_url": "https://api.github.com/repos/zeertzjq/neovim/issues/comments{/number}", + "issue_events_url": "https://api.github.com/repos/zeertzjq/neovim/issues/events{/number}", + "issues_url": "https://api.github.com/repos/zeertzjq/neovim/issues{/number}", + "keys_url": "https://api.github.com/repos/zeertzjq/neovim/keys{/key_id}", + "labels_url": "https://api.github.com/repos/zeertzjq/neovim/labels{/name}", + "language": "Vim Script", + "languages_url": "https://api.github.com/repos/zeertzjq/neovim/languages", + "license": { + "key": "other", + "name": "Other", + "node_id": "MDc6TGljZW5zZTA=", + "spdx_id": "NOASSERTION", + "url": null + }, + "merges_url": "https://api.github.com/repos/zeertzjq/neovim/merges", + "milestones_url": "https://api.github.com/repos/zeertzjq/neovim/milestones{/number}", + "mirror_url": null, + "name": "neovim", + "node_id": "R_kgDOGHsHCw", + "notifications_url": "https://api.github.com/repos/zeertzjq/neovim/notifications{?since,all,participating}", + "open_issues": 0, + "open_issues_count": 0, + "owner": { + "avatar_url": "https://avatars.githubusercontent.com/u/35768171?v=4", + "events_url": "https://api.github.com/users/zeertzjq/events{/privacy}", + "followers_url": "https://api.github.com/users/zeertzjq/followers", + "following_url": "https://api.github.com/users/zeertzjq/following{/other_user}", + "gists_url": "https://api.github.com/users/zeertzjq/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/zeertzjq", + "id": 35768171, + "login": "zeertzjq", + "node_id": "MDQ6VXNlcjM1NzY4MTcx", + "organizations_url": "https://api.github.com/users/zeertzjq/orgs", + "received_events_url": "https://api.github.com/users/zeertzjq/received_events", + "repos_url": "https://api.github.com/users/zeertzjq/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/zeertzjq/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/zeertzjq/subscriptions", + "type": "User", + "url": "https://api.github.com/users/zeertzjq" + }, + "private": false, + "pulls_url": "https://api.github.com/repos/zeertzjq/neovim/pulls{/number}", + "pushed_at": "2023-08-04T23:55:51Z", + "releases_url": "https://api.github.com/repos/zeertzjq/neovim/releases{/id}", + "size": 240112, + "ssh_url": "git@github.com:zeertzjq/neovim.git", + "stargazers_count": 0, + "stargazers_url": "https://api.github.com/repos/zeertzjq/neovim/stargazers", + "statuses_url": "https://api.github.com/repos/zeertzjq/neovim/statuses/{sha}", + "subscribers_url": "https://api.github.com/repos/zeertzjq/neovim/subscribers", + "subscription_url": "https://api.github.com/repos/zeertzjq/neovim/subscription", + "svn_url": "https://github.com/zeertzjq/neovim", + "tags_url": "https://api.github.com/repos/zeertzjq/neovim/tags", + "teams_url": "https://api.github.com/repos/zeertzjq/neovim/teams", + "topics": [], + "trees_url": "https://api.github.com/repos/zeertzjq/neovim/git/trees{/sha}", + "updated_at": "2023-02-18T11:19:39Z", + "url": "https://api.github.com/repos/zeertzjq/neovim", + "visibility": "public", + "watchers": 0, + "watchers_count": 0, + "web_commit_signoff_required": false + }, + "sha": "74ee820d2fd0de392d44d721a5e197adff6a786e", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/35768171?v=4", + "events_url": "https://api.github.com/users/zeertzjq/events{/privacy}", + "followers_url": "https://api.github.com/users/zeertzjq/followers", + "following_url": "https://api.github.com/users/zeertzjq/following{/other_user}", + "gists_url": "https://api.github.com/users/zeertzjq/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/zeertzjq", + "id": 35768171, + "login": "zeertzjq", + "node_id": "MDQ6VXNlcjM1NzY4MTcx", + "organizations_url": "https://api.github.com/users/zeertzjq/orgs", + "received_events_url": "https://api.github.com/users/zeertzjq/received_events", + "repos_url": "https://api.github.com/users/zeertzjq/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/zeertzjq/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/zeertzjq/subscriptions", + "type": "User", + "url": "https://api.github.com/users/zeertzjq" + } + }, + "html_url": "https://github.com/neovim/neovim/pull/24568", + "id": 1463548864, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/24568", + "labels": [ + { + "color": "c5def5", + "default": true, + "description": "", + "id": 84744038, + "name": "documentation", + "node_id": "MDU6TGFiZWw4NDc0NDAzOA==", + "url": "https://api.github.com/repos/neovim/neovim/labels/documentation" + }, + { + "color": "C5DEF5", + "default": false, + "description": "", + "id": 4242493821, + "name": "options", + "node_id": "LA_kwDOAPphoM7831F9", + "url": "https://api.github.com/repos/neovim/neovim/labels/options" + } + ], + "locked": false, + "merge_commit_sha": "1f252a8ac0d1ca23777978fcef07bd7fab309494", + "merged_at": "2023-08-04T23:55:45Z", + "milestone": null, + "node_id": "PR_kwDOAPphoM5XO_vA", + "number": 24568, + "patch_url": "https://github.com/neovim/neovim/pull/24568.patch", + "requested_reviewers": [], + "requested_teams": [], + "review_comment_url": "https://api.github.com/repos/neovim/neovim/pulls/comments{/number}", + "review_comments_url": "https://api.github.com/repos/neovim/neovim/pulls/24568/comments", + "state": "closed", + "statuses_url": "https://api.github.com/repos/neovim/neovim/statuses/74ee820d2fd0de392d44d721a5e197adff6a786e", + "title": "docs(options): fix mistakes", + "updated_at": "2023-08-04T23:56:03Z", + "url": "https://api.github.com/repos/neovim/neovim/pulls/24568", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/35768171?v=4", + "events_url": "https://api.github.com/users/zeertzjq/events{/privacy}", + "followers_url": "https://api.github.com/users/zeertzjq/followers", + "following_url": "https://api.github.com/users/zeertzjq/following{/other_user}", + "gists_url": "https://api.github.com/users/zeertzjq/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/zeertzjq", + "id": 35768171, + "login": "zeertzjq", + "node_id": "MDQ6VXNlcjM1NzY4MTcx", + "organizations_url": "https://api.github.com/users/zeertzjq/orgs", + "received_events_url": "https://api.github.com/users/zeertzjq/received_events", + "repos_url": "https://api.github.com/users/zeertzjq/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/zeertzjq/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/zeertzjq/subscriptions", + "type": "User", + "url": "https://api.github.com/users/zeertzjq" + } +} \ No newline at end of file diff --git a/repositories/neovim/pulls/24570.json b/repositories/neovim/pulls/24570.json new file mode 100644 index 00000000..3d232e8e --- /dev/null +++ b/repositories/neovim/pulls/24570.json @@ -0,0 +1,412 @@ +{ + "_links": { + "comments": { + "href": "https://api.github.com/repos/neovim/neovim/issues/24570/comments" + }, + "commits": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/24570/commits" + }, + "html": { + "href": "https://github.com/neovim/neovim/pull/24570" + }, + "issue": { + "href": "https://api.github.com/repos/neovim/neovim/issues/24570" + }, + "review_comment": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/comments{/number}" + }, + "review_comments": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/24570/comments" + }, + "self": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/24570" + }, + "statuses": { + "href": "https://api.github.com/repos/neovim/neovim/statuses/fe5fe9a07466cbb45a46c86697aed07abcceda50" + } + }, + "active_lock_reason": null, + "assignee": null, + "assignees": [], + "author_association": "MEMBER", + "auto_merge": null, + "base": { + "label": "neovim:master", + "ref": "master", + "repo": { + "allow_forking": true, + "archive_url": "https://api.github.com/repos/neovim/neovim/{archive_format}{/ref}", + "archived": false, + "assignees_url": "https://api.github.com/repos/neovim/neovim/assignees{/user}", + "blobs_url": "https://api.github.com/repos/neovim/neovim/git/blobs{/sha}", + "branches_url": "https://api.github.com/repos/neovim/neovim/branches{/branch}", + "clone_url": "https://github.com/neovim/neovim.git", + "collaborators_url": "https://api.github.com/repos/neovim/neovim/collaborators{/collaborator}", + "comments_url": "https://api.github.com/repos/neovim/neovim/comments{/number}", + "commits_url": "https://api.github.com/repos/neovim/neovim/commits{/sha}", + "compare_url": "https://api.github.com/repos/neovim/neovim/compare/{base}...{head}", + "contents_url": "https://api.github.com/repos/neovim/neovim/contents/{+path}", + "contributors_url": "https://api.github.com/repos/neovim/neovim/contributors", + "created_at": "2014-01-31T13:39:22Z", + "default_branch": "master", + "deployments_url": "https://api.github.com/repos/neovim/neovim/deployments", + "description": "Vim-fork focused on extensibility and usability", + "disabled": false, + "downloads_url": "https://api.github.com/repos/neovim/neovim/downloads", + "events_url": "https://api.github.com/repos/neovim/neovim/events", + "fork": false, + "forks": 4789, + "forks_count": 4789, + "forks_url": "https://api.github.com/repos/neovim/neovim/forks", + "full_name": "neovim/neovim", + "git_commits_url": "https://api.github.com/repos/neovim/neovim/git/commits{/sha}", + "git_refs_url": "https://api.github.com/repos/neovim/neovim/git/refs{/sha}", + "git_tags_url": "https://api.github.com/repos/neovim/neovim/git/tags{/sha}", + "git_url": "git://github.com/neovim/neovim.git", + "has_discussions": true, + "has_downloads": true, + "has_issues": true, + "has_pages": false, + "has_projects": true, + "has_wiki": true, + "homepage": "https://neovim.io", + "hooks_url": "https://api.github.com/repos/neovim/neovim/hooks", + "html_url": "https://github.com/neovim/neovim", + "id": 16408992, + "is_template": false, + "issue_comment_url": "https://api.github.com/repos/neovim/neovim/issues/comments{/number}", + "issue_events_url": "https://api.github.com/repos/neovim/neovim/issues/events{/number}", + "issues_url": "https://api.github.com/repos/neovim/neovim/issues{/number}", + "keys_url": "https://api.github.com/repos/neovim/neovim/keys{/key_id}", + "labels_url": "https://api.github.com/repos/neovim/neovim/labels{/name}", + "language": "Vim Script", + "languages_url": "https://api.github.com/repos/neovim/neovim/languages", + "license": { + "key": "other", + "name": "Other", + "node_id": "MDc6TGljZW5zZTA=", + "spdx_id": "NOASSERTION", + "url": null + }, + "merges_url": "https://api.github.com/repos/neovim/neovim/merges", + "milestones_url": "https://api.github.com/repos/neovim/neovim/milestones{/number}", + "mirror_url": null, + "name": "neovim", + "node_id": "MDEwOlJlcG9zaXRvcnkxNjQwODk5Mg==", + "notifications_url": "https://api.github.com/repos/neovim/neovim/notifications{?since,all,participating}", + "open_issues": 1652, + "open_issues_count": 1652, + "owner": { + "avatar_url": "https://avatars.githubusercontent.com/u/6471485?v=4", + "events_url": "https://api.github.com/users/neovim/events{/privacy}", + "followers_url": "https://api.github.com/users/neovim/followers", + "following_url": "https://api.github.com/users/neovim/following{/other_user}", + "gists_url": "https://api.github.com/users/neovim/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/neovim", + "id": 6471485, + "login": "neovim", + "node_id": "MDEyOk9yZ2FuaXphdGlvbjY0NzE0ODU=", + "organizations_url": "https://api.github.com/users/neovim/orgs", + "received_events_url": "https://api.github.com/users/neovim/received_events", + "repos_url": "https://api.github.com/users/neovim/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/neovim/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/neovim/subscriptions", + "type": "Organization", + "url": "https://api.github.com/users/neovim" + }, + "private": false, + "pulls_url": "https://api.github.com/repos/neovim/neovim/pulls{/number}", + "pushed_at": "2023-08-05T01:34:12Z", + "releases_url": "https://api.github.com/repos/neovim/neovim/releases{/id}", + "size": 246884, + "ssh_url": "git@github.com:neovim/neovim.git", + "stargazers_count": 68006, + "stargazers_url": "https://api.github.com/repos/neovim/neovim/stargazers", + "statuses_url": "https://api.github.com/repos/neovim/neovim/statuses/{sha}", + "subscribers_url": "https://api.github.com/repos/neovim/neovim/subscribers", + "subscription_url": "https://api.github.com/repos/neovim/neovim/subscription", + "svn_url": "https://github.com/neovim/neovim", + "tags_url": "https://api.github.com/repos/neovim/neovim/tags", + "teams_url": "https://api.github.com/repos/neovim/neovim/teams", + "topics": [ + "api", + "c", + "lua", + "neovim", + "nvim", + "text-editor", + "vim" + ], + "trees_url": "https://api.github.com/repos/neovim/neovim/git/trees{/sha}", + "updated_at": "2023-08-04T23:49:51Z", + "url": "https://api.github.com/repos/neovim/neovim", + "visibility": "public", + "watchers": 68006, + "watchers_count": 68006, + "web_commit_signoff_required": false + }, + "sha": "1f252a8ac0d1ca23777978fcef07bd7fab309494", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/6471485?v=4", + "events_url": "https://api.github.com/users/neovim/events{/privacy}", + "followers_url": "https://api.github.com/users/neovim/followers", + "following_url": "https://api.github.com/users/neovim/following{/other_user}", + "gists_url": "https://api.github.com/users/neovim/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/neovim", + "id": 6471485, + "login": "neovim", + "node_id": "MDEyOk9yZ2FuaXphdGlvbjY0NzE0ODU=", + "organizations_url": "https://api.github.com/users/neovim/orgs", + "received_events_url": "https://api.github.com/users/neovim/received_events", + "repos_url": "https://api.github.com/users/neovim/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/neovim/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/neovim/subscriptions", + "type": "Organization", + "url": "https://api.github.com/users/neovim" + } + }, + "body": "follow up #24537 ", + "closed_at": null, + "comment_data": [], + "comment_regular_data": [], + "comments_url": "https://api.github.com/repos/neovim/neovim/issues/24570/comments", + "commits_url": "https://api.github.com/repos/neovim/neovim/pulls/24570/commits", + "created_at": "2023-08-05T01:34:11Z", + "diff_url": "https://github.com/neovim/neovim/pull/24570.diff", + "draft": false, + "head": { + "label": "glepnir:fixup", + "ref": "fixup", + "repo": { + "allow_forking": true, + "archive_url": "https://api.github.com/repos/glepnir/neovim/{archive_format}{/ref}", + "archived": false, + "assignees_url": "https://api.github.com/repos/glepnir/neovim/assignees{/user}", + "blobs_url": "https://api.github.com/repos/glepnir/neovim/git/blobs{/sha}", + "branches_url": "https://api.github.com/repos/glepnir/neovim/branches{/branch}", + "clone_url": "https://github.com/glepnir/neovim.git", + "collaborators_url": "https://api.github.com/repos/glepnir/neovim/collaborators{/collaborator}", + "comments_url": "https://api.github.com/repos/glepnir/neovim/comments{/number}", + "commits_url": "https://api.github.com/repos/glepnir/neovim/commits{/sha}", + "compare_url": "https://api.github.com/repos/glepnir/neovim/compare/{base}...{head}", + "contents_url": "https://api.github.com/repos/glepnir/neovim/contents/{+path}", + "contributors_url": "https://api.github.com/repos/glepnir/neovim/contributors", + "created_at": "2022-07-17T05:15:58Z", + "default_branch": "master", + "deployments_url": "https://api.github.com/repos/glepnir/neovim/deployments", + "description": "Vim-fork focused on extensibility and usability", + "disabled": false, + "downloads_url": "https://api.github.com/repos/glepnir/neovim/downloads", + "events_url": "https://api.github.com/repos/glepnir/neovim/events", + "fork": true, + "forks": 0, + "forks_count": 0, + "forks_url": "https://api.github.com/repos/glepnir/neovim/forks", + "full_name": "glepnir/neovim", + "git_commits_url": "https://api.github.com/repos/glepnir/neovim/git/commits{/sha}", + "git_refs_url": "https://api.github.com/repos/glepnir/neovim/git/refs{/sha}", + "git_tags_url": "https://api.github.com/repos/glepnir/neovim/git/tags{/sha}", + "git_url": "git://github.com/glepnir/neovim.git", + "has_discussions": false, + "has_downloads": true, + "has_issues": false, + "has_pages": false, + "has_projects": true, + "has_wiki": true, + "homepage": "https://neovim.io", + "hooks_url": "https://api.github.com/repos/glepnir/neovim/hooks", + "html_url": "https://github.com/glepnir/neovim", + "id": 514752985, + "is_template": false, + "issue_comment_url": "https://api.github.com/repos/glepnir/neovim/issues/comments{/number}", + "issue_events_url": "https://api.github.com/repos/glepnir/neovim/issues/events{/number}", + "issues_url": "https://api.github.com/repos/glepnir/neovim/issues{/number}", + "keys_url": "https://api.github.com/repos/glepnir/neovim/keys{/key_id}", + "labels_url": "https://api.github.com/repos/glepnir/neovim/labels{/name}", + "language": "Vim Script", + "languages_url": "https://api.github.com/repos/glepnir/neovim/languages", + "license": { + "key": "other", + "name": "Other", + "node_id": "MDc6TGljZW5zZTA=", + "spdx_id": "NOASSERTION", + "url": null + }, + "merges_url": "https://api.github.com/repos/glepnir/neovim/merges", + "milestones_url": "https://api.github.com/repos/glepnir/neovim/milestones{/number}", + "mirror_url": null, + "name": "neovim", + "node_id": "R_kgDOHq6B2Q", + "notifications_url": "https://api.github.com/repos/glepnir/neovim/notifications{?since,all,participating}", + "open_issues": 0, + "open_issues_count": 0, + "owner": { + "avatar_url": "https://avatars.githubusercontent.com/u/41671631?v=4", + "events_url": "https://api.github.com/users/glepnir/events{/privacy}", + "followers_url": "https://api.github.com/users/glepnir/followers", + "following_url": "https://api.github.com/users/glepnir/following{/other_user}", + "gists_url": "https://api.github.com/users/glepnir/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/glepnir", + "id": 41671631, + "login": "glepnir", + "node_id": "MDQ6VXNlcjQxNjcxNjMx", + "organizations_url": "https://api.github.com/users/glepnir/orgs", + "received_events_url": "https://api.github.com/users/glepnir/received_events", + "repos_url": "https://api.github.com/users/glepnir/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/glepnir/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/glepnir/subscriptions", + "type": "User", + "url": "https://api.github.com/users/glepnir" + }, + "private": false, + "pulls_url": "https://api.github.com/repos/glepnir/neovim/pulls{/number}", + "pushed_at": "2023-08-05T01:33:46Z", + "releases_url": "https://api.github.com/repos/glepnir/neovim/releases{/id}", + "size": 243496, + "ssh_url": "git@github.com:glepnir/neovim.git", + "stargazers_count": 1, + "stargazers_url": "https://api.github.com/repos/glepnir/neovim/stargazers", + "statuses_url": "https://api.github.com/repos/glepnir/neovim/statuses/{sha}", + "subscribers_url": "https://api.github.com/repos/glepnir/neovim/subscribers", + "subscription_url": "https://api.github.com/repos/glepnir/neovim/subscription", + "svn_url": "https://github.com/glepnir/neovim", + "tags_url": "https://api.github.com/repos/glepnir/neovim/tags", + "teams_url": "https://api.github.com/repos/glepnir/neovim/teams", + "topics": [], + "trees_url": "https://api.github.com/repos/glepnir/neovim/git/trees{/sha}", + "updated_at": "2023-06-29T15:12:56Z", + "url": "https://api.github.com/repos/glepnir/neovim", + "visibility": "public", + "watchers": 1, + "watchers_count": 1, + "web_commit_signoff_required": false + }, + "sha": "fe5fe9a07466cbb45a46c86697aed07abcceda50", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/41671631?v=4", + "events_url": "https://api.github.com/users/glepnir/events{/privacy}", + "followers_url": "https://api.github.com/users/glepnir/followers", + "following_url": "https://api.github.com/users/glepnir/following{/other_user}", + "gists_url": "https://api.github.com/users/glepnir/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/glepnir", + "id": 41671631, + "login": "glepnir", + "node_id": "MDQ6VXNlcjQxNjcxNjMx", + "organizations_url": "https://api.github.com/users/glepnir/orgs", + "received_events_url": "https://api.github.com/users/glepnir/received_events", + "repos_url": "https://api.github.com/users/glepnir/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/glepnir/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/glepnir/subscriptions", + "type": "User", + "url": "https://api.github.com/users/glepnir" + } + }, + "html_url": "https://github.com/neovim/neovim/pull/24570", + "id": 1463604094, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/24570", + "labels": [ + { + "color": "C5DEF5", + "default": false, + "description": "changes that are not features or bugfixes", + "id": 106949155, + "name": "refactor", + "node_id": "MDU6TGFiZWwxMDY5NDkxNTU=", + "url": "https://api.github.com/repos/neovim/neovim/labels/refactor" + }, + { + "color": "c5def5", + "default": false, + "description": null, + "id": 662566370, + "name": "lsp", + "node_id": "MDU6TGFiZWw2NjI1NjYzNzA=", + "url": "https://api.github.com/repos/neovim/neovim/labels/lsp" + } + ], + "locked": false, + "merge_commit_sha": "b12c0d2c5d6527bea2b24779c3043859dc72512a", + "merged_at": null, + "milestone": null, + "node_id": "PR_kwDOAPphoM5XPNN-", + "number": 24570, + "patch_url": "https://github.com/neovim/neovim/pull/24570.patch", + "requested_reviewers": [ + { + "avatar_url": "https://avatars.githubusercontent.com/u/38700?v=4", + "events_url": "https://api.github.com/users/mfussenegger/events{/privacy}", + "followers_url": "https://api.github.com/users/mfussenegger/followers", + "following_url": "https://api.github.com/users/mfussenegger/following{/other_user}", + "gists_url": "https://api.github.com/users/mfussenegger/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/mfussenegger", + "id": 38700, + "login": "mfussenegger", + "node_id": "MDQ6VXNlcjM4NzAw", + "organizations_url": "https://api.github.com/users/mfussenegger/orgs", + "received_events_url": "https://api.github.com/users/mfussenegger/received_events", + "repos_url": "https://api.github.com/users/mfussenegger/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/mfussenegger/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/mfussenegger/subscriptions", + "type": "User", + "url": "https://api.github.com/users/mfussenegger" + }, + { + "avatar_url": "https://avatars.githubusercontent.com/u/292349?v=4", + "events_url": "https://api.github.com/users/folke/events{/privacy}", + "followers_url": "https://api.github.com/users/folke/followers", + "following_url": "https://api.github.com/users/folke/following{/other_user}", + "gists_url": "https://api.github.com/users/folke/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/folke", + "id": 292349, + "login": "folke", + "node_id": "MDQ6VXNlcjI5MjM0OQ==", + "organizations_url": "https://api.github.com/users/folke/orgs", + "received_events_url": "https://api.github.com/users/folke/received_events", + "repos_url": "https://api.github.com/users/folke/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/folke/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/folke/subscriptions", + "type": "User", + "url": "https://api.github.com/users/folke" + } + ], + "requested_teams": [], + "review_comment_url": "https://api.github.com/repos/neovim/neovim/pulls/comments{/number}", + "review_comments_url": "https://api.github.com/repos/neovim/neovim/pulls/24570/comments", + "state": "open", + "statuses_url": "https://api.github.com/repos/neovim/neovim/statuses/fe5fe9a07466cbb45a46c86697aed07abcceda50", + "title": "refactor(lsp): use protocol.Methods instead of strings", + "updated_at": "2023-08-05T01:34:43Z", + "url": "https://api.github.com/repos/neovim/neovim/pulls/24570", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/41671631?v=4", + "events_url": "https://api.github.com/users/glepnir/events{/privacy}", + "followers_url": "https://api.github.com/users/glepnir/followers", + "following_url": "https://api.github.com/users/glepnir/following{/other_user}", + "gists_url": "https://api.github.com/users/glepnir/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/glepnir", + "id": 41671631, + "login": "glepnir", + "node_id": "MDQ6VXNlcjQxNjcxNjMx", + "organizations_url": "https://api.github.com/users/glepnir/orgs", + "received_events_url": "https://api.github.com/users/glepnir/received_events", + "repos_url": "https://api.github.com/users/glepnir/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/glepnir/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/glepnir/subscriptions", + "type": "User", + "url": "https://api.github.com/users/glepnir" + } +} \ No newline at end of file diff --git a/repositories/neovim/pulls/8107.json b/repositories/neovim/pulls/8107.json new file mode 100644 index 00000000..d7ccb44e --- /dev/null +++ b/repositories/neovim/pulls/8107.json @@ -0,0 +1,1764 @@ +{ + "_links": { + "comments": { + "href": "https://api.github.com/repos/neovim/neovim/issues/8107/comments" + }, + "commits": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/8107/commits" + }, + "html": { + "href": "https://github.com/neovim/neovim/pull/8107" + }, + "issue": { + "href": "https://api.github.com/repos/neovim/neovim/issues/8107" + }, + "review_comment": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/comments{/number}" + }, + "review_comments": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/8107/comments" + }, + "self": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/8107" + }, + "statuses": { + "href": "https://api.github.com/repos/neovim/neovim/statuses/ae409b5042abdbec67305a063cf921ddffcce0c8" + } + }, + "active_lock_reason": null, + "assignee": null, + "assignees": [], + "author_association": "MEMBER", + "auto_merge": null, + "base": { + "label": "neovim:master", + "ref": "master", + "repo": { + "allow_forking": true, + "archive_url": "https://api.github.com/repos/neovim/neovim/{archive_format}{/ref}", + "archived": false, + "assignees_url": "https://api.github.com/repos/neovim/neovim/assignees{/user}", + "blobs_url": "https://api.github.com/repos/neovim/neovim/git/blobs{/sha}", + "branches_url": "https://api.github.com/repos/neovim/neovim/branches{/branch}", + "clone_url": "https://github.com/neovim/neovim.git", + "collaborators_url": "https://api.github.com/repos/neovim/neovim/collaborators{/collaborator}", + "comments_url": "https://api.github.com/repos/neovim/neovim/comments{/number}", + "commits_url": "https://api.github.com/repos/neovim/neovim/commits{/sha}", + "compare_url": "https://api.github.com/repos/neovim/neovim/compare/{base}...{head}", + "contents_url": "https://api.github.com/repos/neovim/neovim/contents/{+path}", + "contributors_url": "https://api.github.com/repos/neovim/neovim/contributors", + "created_at": "2014-01-31T13:39:22Z", + "default_branch": "master", + "deployments_url": "https://api.github.com/repos/neovim/neovim/deployments", + "description": "Vim-fork focused on extensibility and usability", + "disabled": false, + "downloads_url": "https://api.github.com/repos/neovim/neovim/downloads", + "events_url": "https://api.github.com/repos/neovim/neovim/events", + "fork": false, + "forks": 4789, + "forks_count": 4789, + "forks_url": "https://api.github.com/repos/neovim/neovim/forks", + "full_name": "neovim/neovim", + "git_commits_url": "https://api.github.com/repos/neovim/neovim/git/commits{/sha}", + "git_refs_url": "https://api.github.com/repos/neovim/neovim/git/refs{/sha}", + "git_tags_url": "https://api.github.com/repos/neovim/neovim/git/tags{/sha}", + "git_url": "git://github.com/neovim/neovim.git", + "has_discussions": true, + "has_downloads": true, + "has_issues": true, + "has_pages": false, + "has_projects": true, + "has_wiki": true, + "homepage": "https://neovim.io", + "hooks_url": "https://api.github.com/repos/neovim/neovim/hooks", + "html_url": "https://github.com/neovim/neovim", + "id": 16408992, + "is_template": false, + "issue_comment_url": "https://api.github.com/repos/neovim/neovim/issues/comments{/number}", + "issue_events_url": "https://api.github.com/repos/neovim/neovim/issues/events{/number}", + "issues_url": "https://api.github.com/repos/neovim/neovim/issues{/number}", + "keys_url": "https://api.github.com/repos/neovim/neovim/keys{/key_id}", + "labels_url": "https://api.github.com/repos/neovim/neovim/labels{/name}", + "language": "Vim Script", + "languages_url": "https://api.github.com/repos/neovim/neovim/languages", + "license": { + "key": "other", + "name": "Other", + "node_id": "MDc6TGljZW5zZTA=", + "spdx_id": "NOASSERTION", + "url": null + }, + "merges_url": "https://api.github.com/repos/neovim/neovim/merges", + "milestones_url": "https://api.github.com/repos/neovim/neovim/milestones{/number}", + "mirror_url": null, + "name": "neovim", + "node_id": "MDEwOlJlcG9zaXRvcnkxNjQwODk5Mg==", + "notifications_url": "https://api.github.com/repos/neovim/neovim/notifications{?since,all,participating}", + "open_issues": 1652, + "open_issues_count": 1652, + "owner": { + "avatar_url": "https://avatars.githubusercontent.com/u/6471485?v=4", + "events_url": "https://api.github.com/users/neovim/events{/privacy}", + "followers_url": "https://api.github.com/users/neovim/followers", + "following_url": "https://api.github.com/users/neovim/following{/other_user}", + "gists_url": "https://api.github.com/users/neovim/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/neovim", + "id": 6471485, + "login": "neovim", + "node_id": "MDEyOk9yZ2FuaXphdGlvbjY0NzE0ODU=", + "organizations_url": "https://api.github.com/users/neovim/orgs", + "received_events_url": "https://api.github.com/users/neovim/received_events", + "repos_url": "https://api.github.com/users/neovim/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/neovim/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/neovim/subscriptions", + "type": "Organization", + "url": "https://api.github.com/users/neovim" + }, + "private": false, + "pulls_url": "https://api.github.com/repos/neovim/neovim/pulls{/number}", + "pushed_at": "2023-08-05T01:34:12Z", + "releases_url": "https://api.github.com/repos/neovim/neovim/releases{/id}", + "size": 246884, + "ssh_url": "git@github.com:neovim/neovim.git", + "stargazers_count": 68006, + "stargazers_url": "https://api.github.com/repos/neovim/neovim/stargazers", + "statuses_url": "https://api.github.com/repos/neovim/neovim/statuses/{sha}", + "subscribers_url": "https://api.github.com/repos/neovim/neovim/subscribers", + "subscription_url": "https://api.github.com/repos/neovim/neovim/subscription", + "svn_url": "https://github.com/neovim/neovim", + "tags_url": "https://api.github.com/repos/neovim/neovim/tags", + "teams_url": "https://api.github.com/repos/neovim/neovim/teams", + "topics": [ + "api", + "c", + "lua", + "neovim", + "nvim", + "text-editor", + "vim" + ], + "trees_url": "https://api.github.com/repos/neovim/neovim/git/trees{/sha}", + "updated_at": "2023-08-04T23:49:51Z", + "url": "https://api.github.com/repos/neovim/neovim", + "visibility": "public", + "watchers": 68006, + "watchers_count": 68006, + "web_commit_signoff_required": false + }, + "sha": "72e4c9d8e776790e40b2a5911bb702de897fbd12", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/6471485?v=4", + "events_url": "https://api.github.com/users/neovim/events{/privacy}", + "followers_url": "https://api.github.com/users/neovim/followers", + "following_url": "https://api.github.com/users/neovim/following{/other_user}", + "gists_url": "https://api.github.com/users/neovim/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/neovim", + "id": 6471485, + "login": "neovim", + "node_id": "MDEyOk9yZ2FuaXphdGlvbjY0NzE0ODU=", + "organizations_url": "https://api.github.com/users/neovim/orgs", + "received_events_url": "https://api.github.com/users/neovim/received_events", + "repos_url": "https://api.github.com/users/neovim/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/neovim/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/neovim/subscriptions", + "type": "Organization", + "url": "https://api.github.com/users/neovim" + } + }, + "body": "closes #6530 \r\n\r\n- are PTY jobs being killed correctly?\r\n- ~~is #6891 related?~~\r\n- [x] win: iterate through children (`os_proc_tree_kill()`)\r\n- [x] implement new API function: `nvim_get_proc_children()`\r\n- [x] implement new API function: `nvim_get_proc()`\r\n- [x] tests\r\n\r\nDidn't fix this common test failure (maybe #7376 ?):\r\n\r\n```\r\nTermClose event reports the correct : -- Output to stderr:\r\nVim: Caught deadly signal 'SIGHUP'\r\nVim: Finished.\r\nCMake Error at /home/travis/build/neovim/neovim/cmake/RunTests.cmake:53 (message):\r\n Running functional tests failed with error: 1.\r\n...\r\n===============================================================================\r\nNVIM_LOG_FILE: /home/travis/build/neovim/neovim/build/.nvimlog\r\n2018/03/06 08:57:28 ERROR 11479 loop_close:133: uv_loop_close() hang?\r\n[--I] signal 0xa310e8\r\n[-AI] async 0xa30f30\r\n[R--] signal 0xa2a620\r\n```\r\n\r\nquickbuild failure is unrelated, `spell_spec.lua` #8102", + "closed_at": "2018-03-18T17:36:03Z", + "comment_data": [ + { + "_links": { + "html": { + "href": "https://github.com/neovim/neovim/pull/8107#discussion_r172695881" + }, + "pull_request": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/8107" + }, + "self": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/comments/172695881" + } + }, + "author_association": "MEMBER", + "body": "Why a new session instead of a new process group? Would `setpgid(0,0);` also do the job?\r\n", + "commit_id": "ae409b5042abdbec67305a063cf921ddffcce0c8", + "created_at": "2018-03-06T23:28:06Z", + "diff_hunk": "@@ -145,8 +145,12 @@ void pty_process_teardown(Loop *loop)\n uv_signal_stop(&loop->children_watcher);\n }\n \n-static void init_child(PtyProcess *ptyproc) FUNC_ATTR_NONNULL_ALL\n+static void init_child(PtyProcess *ptyproc)\n+ FUNC_ATTR_NONNULL_ALL // FUNC_ATTR_NORETURN ?\n {\n+ // New session and progress-group. #6530\n+ setsid();", + "html_url": "https://github.com/neovim/neovim/pull/8107#discussion_r172695881", + "id": 172695881, + "line": null, + "node_id": "MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDE3MjY5NTg4MQ==", + "original_commit_id": "d6a45daaaa63a68812e4b652916c226cb2d49b07", + "original_line": 152, + "original_position": 9, + "original_start_line": null, + "path": "src/nvim/os/pty_process_unix.c", + "position": null, + "pull_request_review_id": 101757797, + "pull_request_url": "https://api.github.com/repos/neovim/neovim/pulls/8107", + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/pulls/comments/172695881/reactions" + }, + "side": "RIGHT", + "start_line": null, + "start_side": null, + "subject_type": "line", + "updated_at": "2018-03-18T16:16:44Z", + "url": "https://api.github.com/repos/neovim/neovim/pulls/comments/172695881", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/2077655?v=4", + "events_url": "https://api.github.com/users/oni-link/events{/privacy}", + "followers_url": "https://api.github.com/users/oni-link/followers", + "following_url": "https://api.github.com/users/oni-link/following{/other_user}", + "gists_url": "https://api.github.com/users/oni-link/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/oni-link", + "id": 2077655, + "login": "oni-link", + "node_id": "MDQ6VXNlcjIwNzc2NTU=", + "organizations_url": "https://api.github.com/users/oni-link/orgs", + "received_events_url": "https://api.github.com/users/oni-link/received_events", + "repos_url": "https://api.github.com/users/oni-link/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/oni-link/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/oni-link/subscriptions", + "type": "User", + "url": "https://api.github.com/users/oni-link" + } + }, + { + "_links": { + "html": { + "href": "https://github.com/neovim/neovim/pull/8107#discussion_r172919511" + }, + "pull_request": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/8107" + }, + "self": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/comments/172919511" + } + }, + "author_association": "MEMBER", + "body": "Isn't a new session customary in a terminal emulator?", + "commit_id": "ae409b5042abdbec67305a063cf921ddffcce0c8", + "created_at": "2018-03-07T17:23:30Z", + "diff_hunk": "@@ -145,8 +145,12 @@ void pty_process_teardown(Loop *loop)\n uv_signal_stop(&loop->children_watcher);\n }\n \n-static void init_child(PtyProcess *ptyproc) FUNC_ATTR_NONNULL_ALL\n+static void init_child(PtyProcess *ptyproc)\n+ FUNC_ATTR_NONNULL_ALL // FUNC_ATTR_NORETURN ?\n {\n+ // New session and progress-group. #6530\n+ setsid();", + "html_url": "https://github.com/neovim/neovim/pull/8107#discussion_r172919511", + "id": 172919511, + "in_reply_to_id": 172695881, + "line": null, + "node_id": "MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDE3MjkxOTUxMQ==", + "original_commit_id": "d6a45daaaa63a68812e4b652916c226cb2d49b07", + "original_line": 152, + "original_position": 9, + "original_start_line": null, + "path": "src/nvim/os/pty_process_unix.c", + "position": null, + "pull_request_review_id": 102020715, + "pull_request_url": "https://api.github.com/repos/neovim/neovim/pulls/8107", + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/pulls/comments/172919511/reactions" + }, + "side": "RIGHT", + "start_line": null, + "start_side": null, + "subject_type": "line", + "updated_at": "2018-03-18T16:16:44Z", + "url": "https://api.github.com/repos/neovim/neovim/pulls/comments/172919511", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/1363104?v=4", + "events_url": "https://api.github.com/users/bfredl/events{/privacy}", + "followers_url": "https://api.github.com/users/bfredl/followers", + "following_url": "https://api.github.com/users/bfredl/following{/other_user}", + "gists_url": "https://api.github.com/users/bfredl/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/bfredl", + "id": 1363104, + "login": "bfredl", + "node_id": "MDQ6VXNlcjEzNjMxMDQ=", + "organizations_url": "https://api.github.com/users/bfredl/orgs", + "received_events_url": "https://api.github.com/users/bfredl/received_events", + "repos_url": "https://api.github.com/users/bfredl/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/bfredl/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/bfredl/subscriptions", + "type": "User", + "url": "https://api.github.com/users/bfredl" + } + }, + { + "_links": { + "html": { + "href": "https://github.com/neovim/neovim/pull/8107#discussion_r173648354" + }, + "pull_request": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/8107" + }, + "self": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/comments/173648354" + } + }, + "author_association": "MEMBER", + "body": "pid -> pgid and `-pid`?", + "commit_id": "ae409b5042abdbec67305a063cf921ddffcce0c8", + "created_at": "2018-03-11T09:23:40Z", + "diff_hunk": "@@ -249,15 +250,15 @@ static void children_kill_cb(uv_timer_t *handle)\n if (!proc->stopped_time) {\n continue;\n }\n+ int pid = -getpgid(proc->pid);\n uint64_t elapsed = (now - proc->stopped_time) / 1000000 + 1;\n \n if (elapsed >= KILL_TIMEOUT_MS) {\n int sig = proc->type == kProcessTypePty && elapsed < KILL_TIMEOUT_MS * 2\n ? SIGTERM\n : SIGKILL;\n- ILOG(\"Sending %s to pid %d\", sig == SIGTERM ? \"SIGTERM\" : \"SIGKILL\",\n- proc->pid);\n- uv_kill(proc->pid, sig);\n+ ILOG(\"sending %s to pid %d\", sig == SIGTERM ? \"SIGTERM\" : \"SIGKILL\", pid);", + "html_url": "https://github.com/neovim/neovim/pull/8107#discussion_r173648354", + "id": 173648354, + "line": null, + "node_id": "MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDE3MzY0ODM1NA==", + "original_commit_id": "d6a45daaaa63a68812e4b652916c226cb2d49b07", + "original_line": 260, + "original_position": 26, + "original_start_line": null, + "path": "src/nvim/event/process.c", + "position": null, + "pull_request_review_id": 102875928, + "pull_request_url": "https://api.github.com/repos/neovim/neovim/pulls/8107", + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/pulls/comments/173648354/reactions" + }, + "side": "RIGHT", + "start_line": null, + "start_side": null, + "subject_type": "line", + "updated_at": "2018-03-18T16:16:44Z", + "url": "https://api.github.com/repos/neovim/neovim/pulls/comments/173648354", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/2077655?v=4", + "events_url": "https://api.github.com/users/oni-link/events{/privacy}", + "followers_url": "https://api.github.com/users/oni-link/followers", + "following_url": "https://api.github.com/users/oni-link/following{/other_user}", + "gists_url": "https://api.github.com/users/oni-link/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/oni-link", + "id": 2077655, + "login": "oni-link", + "node_id": "MDQ6VXNlcjIwNzc2NTU=", + "organizations_url": "https://api.github.com/users/oni-link/orgs", + "received_events_url": "https://api.github.com/users/oni-link/received_events", + "repos_url": "https://api.github.com/users/oni-link/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/oni-link/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/oni-link/subscriptions", + "type": "User", + "url": "https://api.github.com/users/oni-link" + } + }, + { + "_links": { + "html": { + "href": "https://github.com/neovim/neovim/pull/8107#discussion_r174321094" + }, + "pull_request": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/8107" + }, + "self": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/comments/174321094" + } + }, + "author_association": "MEMBER", + "body": "Shouldn't this be\r\n\r\n```c\r\nexists ||= (p_list[i].ki_pid == ppid);\r\nif (p_list[i].ki_ppid == ppid) {\r\n temp = xrealloc(temp, (*proc_count + 1) * sizeof(*temp));\r\n temp[*proc_count] = p_list[i].ki_pid;\r\n```", + "commit_id": "ae409b5042abdbec67305a063cf921ddffcce0c8", + "created_at": "2018-03-14T00:03:36Z", + "diff_hunk": "@@ -0,0 +1,168 @@\n+// This is an open source non-commercial project. Dear PVS-Studio, please check\n+// it. PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com\n+\n+#include \n+#ifdef WIN32\n+# include // for CreateToolhelp32Snapshot\n+#endif\n+\n+#if defined(__FreeBSD__)\n+# include \n+# include \n+# include \n+#endif\n+\n+#if defined(__APPLE__) || defined(BSD)\n+# include // kinfo_proc on OpenBSD, NetBSD\n+# include \n+#endif\n+\n+#include \"nvim/log.h\"\n+#include \"nvim/os/process.h\"\n+#include \"nvim/os/os.h\"\n+#include \"nvim/os/os_defs.h\"\n+\n+#ifdef INCLUDE_GENERATED_DECLARATIONS\n+# include \"os/process.c.generated.h\"\n+#endif\n+\n+#ifdef WIN32\n+static bool os_proc_tree_kill_rec(HANDLE process, int sig)\n+{\n+ if (process == NULL) {\n+ return false;\n+ }\n+ PROCESSENTRY32 pe;\n+ DWORD pid = GetProcessId(process);\n+\n+ if (pid != 0) {\n+ HANDLE h = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);\n+ if (h != INVALID_HANDLE_VALUE) {\n+ pe.dwSize = sizeof(PROCESSENTRY32);\n+ if (!Process32First(h, &pe)) {\n+ goto theend;\n+ }\n+\n+ do {\n+ if (pe.th32ParentProcessID == pid) {\n+ HANDLE ph = OpenProcess(PROCESS_ALL_ACCESS, false, pe.th32ProcessID);\n+ if (ph != NULL) {\n+ os_proc_tree_kill_rec(ph, sig);\n+ CloseHandle(ph);\n+ }\n+ }\n+ } while (Process32Next(h, &pe));\n+\n+ CloseHandle(h);\n+ }\n+ }\n+\n+theend:\n+ return (bool)TerminateProcess(process, (unsigned int)sig);\n+}\n+/// Kills process `pid` and its descendants recursively.\n+bool os_proc_tree_kill(int pid, int sig)\n+{\n+ assert(sig >= 0);\n+ assert(sig == SIGTERM || sig == SIGKILL);\n+ if (pid > 0) {\n+ ILOG(\"terminating process tree: %d\", pid);\n+ HANDLE h = OpenProcess(PROCESS_ALL_ACCESS, false, (DWORD)pid);\n+ return os_proc_tree_kill_rec(h, sig);\n+ } else {\n+ ELOG(\"invalid pid: %d\", pid);\n+ }\n+ return false;\n+}\n+#else\n+/// Kills process group where `pid` is the process group leader.\n+bool os_proc_tree_kill(int pid, int sig)\n+{\n+ assert(sig == SIGTERM || sig == SIGKILL);\n+ int pgid = getpgid(pid);\n+ if (pgid > 0) { // Ignore error. Never kill self (pid=0).\n+ if (pgid == pid) {\n+ ILOG(\"sending %s to process group: -%d\",\n+ sig == SIGTERM ? \"SIGTERM\" : \"SIGKILL\", pgid);\n+ int rv = uv_kill(-pgid, sig);\n+ return rv == 0;\n+ } else {\n+ // Should never happen, because process_spawn() did setsid() in the child.\n+ ELOG(\"pgid %d != pid %d\", pgid, pid);\n+ }\n+ } else {\n+ ELOG(\"getpgid(%d) returned %d\", pid, pgid);\n+ }\n+ return false;\n+}\n+#endif\n+\n+/// Gets the process ids of the immediate children of process `ppid`.\n+///\n+/// @param ppid Process to inspect.\n+/// @param[out,allocated] proc_list Child process ids.\n+/// @param[out] proc_count Number of child processes.\n+/// @return 0 on success, or error code.\n+int os_proc_children(int ppid, int **proc_list, size_t *proc_count)\n+{\n+ int *temp = NULL;\n+ *proc_list = NULL;\n+ *proc_count = 0;\n+\n+#if defined(__APPLE__) || defined(BSD)\n+ // ref: http://unix.superglobalmegacorp.com/Net2/newsrc/sys/kinfo_proc.h.html\n+ static int name[] = { CTL_KERN, KERN_PROC, KERN_PROC_ALL, 0 };\n+\n+ // Get total process count.\n+ size_t len = 0;\n+ int rv = sysctl(name, ARRAY_SIZE(name), NULL, &len, NULL, 0);\n+ if (rv) {\n+ return 1;\n+ }\n+\n+ // Get ALL processes.\n+ struct kinfo_proc *p_list = xmalloc(len);\n+ rv = sysctl(name, ARRAY_SIZE(name), p_list, &len, NULL, 0);\n+ if (rv) {\n+ xfree(p_list);\n+ return 1;\n+ }\n+\n+ // Collect processes whose parent matches `ppid`.\n+ bool exists = false;\n+ size_t p_count = len / sizeof(*p_list);\n+ for (size_t i = 0; i < p_count; i++) {\n+ exists |= (p_list[i].kp_proc.p_pid == ppid);", + "html_url": "https://github.com/neovim/neovim/pull/8107#discussion_r174321094", + "id": 174321094, + "line": null, + "node_id": "MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDE3NDMyMTA5NA==", + "original_commit_id": "2ad7eda4d7c7d6cefb58b197ec125da2abea2162", + "original_line": 135, + "original_position": 135, + "original_start_line": null, + "path": "src/nvim/os/process.c", + "position": null, + "pull_request_review_id": 103655764, + "pull_request_url": "https://api.github.com/repos/neovim/neovim/pulls/8107", + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/pulls/comments/174321094/reactions" + }, + "side": "RIGHT", + "start_line": null, + "start_side": null, + "subject_type": "line", + "updated_at": "2018-03-18T16:16:44Z", + "url": "https://api.github.com/repos/neovim/neovim/pulls/comments/174321094", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/112971?v=4", + "events_url": "https://api.github.com/users/jamessan/events{/privacy}", + "followers_url": "https://api.github.com/users/jamessan/followers", + "following_url": "https://api.github.com/users/jamessan/following{/other_user}", + "gists_url": "https://api.github.com/users/jamessan/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/jamessan", + "id": 112971, + "login": "jamessan", + "node_id": "MDQ6VXNlcjExMjk3MQ==", + "organizations_url": "https://api.github.com/users/jamessan/orgs", + "received_events_url": "https://api.github.com/users/jamessan/received_events", + "repos_url": "https://api.github.com/users/jamessan/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/jamessan/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/jamessan/subscriptions", + "type": "User", + "url": "https://api.github.com/users/jamessan" + } + }, + { + "_links": { + "html": { + "href": "https://github.com/neovim/neovim/pull/8107#discussion_r174430334" + }, + "pull_request": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/8107" + }, + "self": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/comments/174430334" + } + }, + "author_association": "MEMBER", + "body": "I'm missing the `children` entry under `proc`, because of an unset kernel option. Could one fallback to `pgrep -P ppid` or `ps --ppid ppid` in this case?", + "commit_id": "ae409b5042abdbec67305a063cf921ddffcce0c8", + "created_at": "2018-03-14T11:38:19Z", + "diff_hunk": "@@ -0,0 +1,178 @@\n+// This is an open source non-commercial project. Dear PVS-Studio, please check\n+// it. PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com\n+\n+#include \n+#ifdef WIN32\n+# include // for CreateToolhelp32Snapshot\n+#endif\n+\n+#if defined(__FreeBSD__)\n+# include \n+# include \n+# include \n+#endif\n+\n+#if defined(__APPLE__) || defined(BSD)\n+# include // kinfo_proc on OpenBSD, NetBSD\n+# include \n+#endif\n+\n+#include \"nvim/log.h\"\n+#include \"nvim/os/process.h\"\n+#include \"nvim/os/os.h\"\n+#include \"nvim/os/os_defs.h\"\n+\n+#ifdef INCLUDE_GENERATED_DECLARATIONS\n+# include \"os/process.c.generated.h\"\n+#endif\n+\n+#ifdef WIN32\n+static bool os_proc_tree_kill_rec(HANDLE process, int sig)\n+{\n+ if (process == NULL) {\n+ return false;\n+ }\n+ PROCESSENTRY32 pe;\n+ DWORD pid = GetProcessId(process);\n+\n+ if (pid != 0) {\n+ HANDLE h = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);\n+ if (h != INVALID_HANDLE_VALUE) {\n+ pe.dwSize = sizeof(PROCESSENTRY32);\n+ if (!Process32First(h, &pe)) {\n+ goto theend;\n+ }\n+\n+ do {\n+ if (pe.th32ParentProcessID == pid) {\n+ HANDLE ph = OpenProcess(PROCESS_ALL_ACCESS, false, pe.th32ProcessID);\n+ if (ph != NULL) {\n+ os_proc_tree_kill_rec(ph, sig);\n+ CloseHandle(ph);\n+ }\n+ }\n+ } while (Process32Next(h, &pe));\n+\n+ CloseHandle(h);\n+ }\n+ }\n+\n+theend:\n+ return (bool)TerminateProcess(process, (unsigned int)sig);\n+}\n+/// Kills process `pid` and its descendants recursively.\n+bool os_proc_tree_kill(int pid, int sig)\n+{\n+ assert(sig >= 0);\n+ assert(sig == SIGTERM || sig == SIGKILL);\n+ if (pid > 0) {\n+ ILOG(\"terminating process tree: %d\", pid);\n+ HANDLE h = OpenProcess(PROCESS_ALL_ACCESS, false, (DWORD)pid);\n+ return os_proc_tree_kill_rec(h, sig);\n+ } else {\n+ ELOG(\"invalid pid: %d\", pid);\n+ }\n+ return false;\n+}\n+#else\n+/// Kills process group where `pid` is the process group leader.\n+bool os_proc_tree_kill(int pid, int sig)\n+{\n+ assert(sig == SIGTERM || sig == SIGKILL);\n+ int pgid = getpgid(pid);\n+ if (pgid > 0) { // Ignore error. Never kill self (pid=0).\n+ if (pgid == pid) {\n+ ILOG(\"sending %s to process group: -%d\",\n+ sig == SIGTERM ? \"SIGTERM\" : \"SIGKILL\", pgid);\n+ int rv = uv_kill(-pgid, sig);\n+ return rv == 0;\n+ } else {\n+ // Should never happen, because process_spawn() did setsid() in the child.\n+ ELOG(\"pgid %d != pid %d\", pgid, pid);\n+ }\n+ } else {\n+ ELOG(\"getpgid(%d) returned %d\", pid, pgid);\n+ }\n+ return false;\n+}\n+#endif\n+\n+/// Gets the process ids of the immediate children of process `ppid`.\n+///\n+/// @param ppid Process to inspect.\n+/// @param[out,allocated] proc_list Child process ids.\n+/// @param[out] proc_count Number of child processes.\n+/// @return 0 on success, 1 if process not found, 2 on other error.\n+int os_proc_children(int ppid, int **proc_list, size_t *proc_count)\n+{\n+ int *temp = NULL;\n+ *proc_list = NULL;\n+ *proc_count = 0;\n+\n+#if defined(__APPLE__) || defined(BSD)\n+# if defined(__APPLE__)\n+# define KP_PID(o) o.kp_proc.p_pid\n+# define KP_PPID(o) o.kp_eproc.e_ppid\n+# elif defined(__FreeBSD__)\n+# define KP_PID(o) o.ki_pid\n+# define KP_PPID(o) o.ki_ppid\n+# else\n+# define KP_PID(o) o.p_pid\n+# define KP_PPID(o) o.p_ppid\n+# endif\n+ // ref: http://unix.superglobalmegacorp.com/Net2/newsrc/sys/kinfo_proc.h.html\n+ static int name[] = { CTL_KERN, KERN_PROC, KERN_PROC_ALL, 0 };\n+\n+ // Get total process count.\n+ size_t len = 0;\n+ int rv = sysctl(name, ARRAY_SIZE(name), NULL, &len, NULL, 0);\n+ if (rv) {\n+ return 2;\n+ }\n+\n+ // Get ALL processes.\n+ struct kinfo_proc *p_list = xmalloc(len);\n+ rv = sysctl(name, ARRAY_SIZE(name), p_list, &len, NULL, 0);\n+ if (rv) {\n+ xfree(p_list);\n+ return 2;\n+ }\n+\n+ // Collect processes whose parent matches `ppid`.\n+ bool exists = false;\n+ size_t p_count = len / sizeof(*p_list);\n+ for (size_t i = 0; i < p_count; i++) {\n+ exists = exists || KP_PID(p_list[i]) == ppid;\n+ if (KP_PPID(p_list[i]) == ppid) {\n+ temp = xrealloc(temp, (*proc_count + 1) * sizeof(*temp));\n+ temp[*proc_count] = KP_PID(p_list[i]);\n+ (*proc_count)++;\n+ }\n+ }\n+ xfree(p_list);\n+ if (!exists) {\n+ return 1; // Process not found.\n+ }\n+\n+#elif defined(__linux__)\n+ char proc_p[256] = { 0 };\n+ // Collect processes whose parent matches `ppid`.\n+ // Rationale: children are defined in thread with same ID of process.\n+ snprintf(proc_p, sizeof(proc_p), \"/proc/%d/task/%d/children\", ppid, ppid);\n+ FILE *fp = fopen(proc_p, \"r\");\n+ if (fp == NULL) {\n+ return 1; // Process not found.", + "html_url": "https://github.com/neovim/neovim/pull/8107#discussion_r174430334", + "id": 174430334, + "line": null, + "node_id": "MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDE3NDQzMDMzNA==", + "original_commit_id": "9e89b4f2e3f6fd83999d893183885eb1b1bdc7d7", + "original_line": 164, + "original_position": 164, + "original_start_line": null, + "path": "src/nvim/os/process.c", + "position": null, + "pull_request_review_id": 103781876, + "pull_request_url": "https://api.github.com/repos/neovim/neovim/pulls/8107", + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/pulls/comments/174430334/reactions" + }, + "side": "RIGHT", + "start_line": null, + "start_side": null, + "subject_type": "line", + "updated_at": "2018-03-18T16:16:44Z", + "url": "https://api.github.com/repos/neovim/neovim/pulls/comments/174430334", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/2077655?v=4", + "events_url": "https://api.github.com/users/oni-link/events{/privacy}", + "followers_url": "https://api.github.com/users/oni-link/followers", + "following_url": "https://api.github.com/users/oni-link/following{/other_user}", + "gists_url": "https://api.github.com/users/oni-link/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/oni-link", + "id": 2077655, + "login": "oni-link", + "node_id": "MDQ6VXNlcjIwNzc2NTU=", + "organizations_url": "https://api.github.com/users/oni-link/orgs", + "received_events_url": "https://api.github.com/users/oni-link/received_events", + "repos_url": "https://api.github.com/users/oni-link/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/oni-link/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/oni-link/subscriptions", + "type": "User", + "url": "https://api.github.com/users/oni-link" + } + }, + { + "_links": { + "html": { + "href": "https://github.com/neovim/neovim/pull/8107#discussion_r174435872" + }, + "pull_request": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/8107" + }, + "self": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/comments/174435872" + } + }, + "author_association": "MEMBER", + "body": "@oni-link How does `ps` get this info without the kernel providing an API?", + "commit_id": "ae409b5042abdbec67305a063cf921ddffcce0c8", + "created_at": "2018-03-14T12:02:14Z", + "diff_hunk": "@@ -0,0 +1,178 @@\n+// This is an open source non-commercial project. Dear PVS-Studio, please check\n+// it. PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com\n+\n+#include \n+#ifdef WIN32\n+# include // for CreateToolhelp32Snapshot\n+#endif\n+\n+#if defined(__FreeBSD__)\n+# include \n+# include \n+# include \n+#endif\n+\n+#if defined(__APPLE__) || defined(BSD)\n+# include // kinfo_proc on OpenBSD, NetBSD\n+# include \n+#endif\n+\n+#include \"nvim/log.h\"\n+#include \"nvim/os/process.h\"\n+#include \"nvim/os/os.h\"\n+#include \"nvim/os/os_defs.h\"\n+\n+#ifdef INCLUDE_GENERATED_DECLARATIONS\n+# include \"os/process.c.generated.h\"\n+#endif\n+\n+#ifdef WIN32\n+static bool os_proc_tree_kill_rec(HANDLE process, int sig)\n+{\n+ if (process == NULL) {\n+ return false;\n+ }\n+ PROCESSENTRY32 pe;\n+ DWORD pid = GetProcessId(process);\n+\n+ if (pid != 0) {\n+ HANDLE h = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);\n+ if (h != INVALID_HANDLE_VALUE) {\n+ pe.dwSize = sizeof(PROCESSENTRY32);\n+ if (!Process32First(h, &pe)) {\n+ goto theend;\n+ }\n+\n+ do {\n+ if (pe.th32ParentProcessID == pid) {\n+ HANDLE ph = OpenProcess(PROCESS_ALL_ACCESS, false, pe.th32ProcessID);\n+ if (ph != NULL) {\n+ os_proc_tree_kill_rec(ph, sig);\n+ CloseHandle(ph);\n+ }\n+ }\n+ } while (Process32Next(h, &pe));\n+\n+ CloseHandle(h);\n+ }\n+ }\n+\n+theend:\n+ return (bool)TerminateProcess(process, (unsigned int)sig);\n+}\n+/// Kills process `pid` and its descendants recursively.\n+bool os_proc_tree_kill(int pid, int sig)\n+{\n+ assert(sig >= 0);\n+ assert(sig == SIGTERM || sig == SIGKILL);\n+ if (pid > 0) {\n+ ILOG(\"terminating process tree: %d\", pid);\n+ HANDLE h = OpenProcess(PROCESS_ALL_ACCESS, false, (DWORD)pid);\n+ return os_proc_tree_kill_rec(h, sig);\n+ } else {\n+ ELOG(\"invalid pid: %d\", pid);\n+ }\n+ return false;\n+}\n+#else\n+/// Kills process group where `pid` is the process group leader.\n+bool os_proc_tree_kill(int pid, int sig)\n+{\n+ assert(sig == SIGTERM || sig == SIGKILL);\n+ int pgid = getpgid(pid);\n+ if (pgid > 0) { // Ignore error. Never kill self (pid=0).\n+ if (pgid == pid) {\n+ ILOG(\"sending %s to process group: -%d\",\n+ sig == SIGTERM ? \"SIGTERM\" : \"SIGKILL\", pgid);\n+ int rv = uv_kill(-pgid, sig);\n+ return rv == 0;\n+ } else {\n+ // Should never happen, because process_spawn() did setsid() in the child.\n+ ELOG(\"pgid %d != pid %d\", pgid, pid);\n+ }\n+ } else {\n+ ELOG(\"getpgid(%d) returned %d\", pid, pgid);\n+ }\n+ return false;\n+}\n+#endif\n+\n+/// Gets the process ids of the immediate children of process `ppid`.\n+///\n+/// @param ppid Process to inspect.\n+/// @param[out,allocated] proc_list Child process ids.\n+/// @param[out] proc_count Number of child processes.\n+/// @return 0 on success, 1 if process not found, 2 on other error.\n+int os_proc_children(int ppid, int **proc_list, size_t *proc_count)\n+{\n+ int *temp = NULL;\n+ *proc_list = NULL;\n+ *proc_count = 0;\n+\n+#if defined(__APPLE__) || defined(BSD)\n+# if defined(__APPLE__)\n+# define KP_PID(o) o.kp_proc.p_pid\n+# define KP_PPID(o) o.kp_eproc.e_ppid\n+# elif defined(__FreeBSD__)\n+# define KP_PID(o) o.ki_pid\n+# define KP_PPID(o) o.ki_ppid\n+# else\n+# define KP_PID(o) o.p_pid\n+# define KP_PPID(o) o.p_ppid\n+# endif\n+ // ref: http://unix.superglobalmegacorp.com/Net2/newsrc/sys/kinfo_proc.h.html\n+ static int name[] = { CTL_KERN, KERN_PROC, KERN_PROC_ALL, 0 };\n+\n+ // Get total process count.\n+ size_t len = 0;\n+ int rv = sysctl(name, ARRAY_SIZE(name), NULL, &len, NULL, 0);\n+ if (rv) {\n+ return 2;\n+ }\n+\n+ // Get ALL processes.\n+ struct kinfo_proc *p_list = xmalloc(len);\n+ rv = sysctl(name, ARRAY_SIZE(name), p_list, &len, NULL, 0);\n+ if (rv) {\n+ xfree(p_list);\n+ return 2;\n+ }\n+\n+ // Collect processes whose parent matches `ppid`.\n+ bool exists = false;\n+ size_t p_count = len / sizeof(*p_list);\n+ for (size_t i = 0; i < p_count; i++) {\n+ exists = exists || KP_PID(p_list[i]) == ppid;\n+ if (KP_PPID(p_list[i]) == ppid) {\n+ temp = xrealloc(temp, (*proc_count + 1) * sizeof(*temp));\n+ temp[*proc_count] = KP_PID(p_list[i]);\n+ (*proc_count)++;\n+ }\n+ }\n+ xfree(p_list);\n+ if (!exists) {\n+ return 1; // Process not found.\n+ }\n+\n+#elif defined(__linux__)\n+ char proc_p[256] = { 0 };\n+ // Collect processes whose parent matches `ppid`.\n+ // Rationale: children are defined in thread with same ID of process.\n+ snprintf(proc_p, sizeof(proc_p), \"/proc/%d/task/%d/children\", ppid, ppid);\n+ FILE *fp = fopen(proc_p, \"r\");\n+ if (fp == NULL) {\n+ return 1; // Process not found.", + "html_url": "https://github.com/neovim/neovim/pull/8107#discussion_r174435872", + "id": 174435872, + "in_reply_to_id": 174430334, + "line": null, + "node_id": "MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDE3NDQzNTg3Mg==", + "original_commit_id": "9e89b4f2e3f6fd83999d893183885eb1b1bdc7d7", + "original_line": 164, + "original_position": 164, + "original_start_line": null, + "path": "src/nvim/os/process.c", + "position": null, + "pull_request_review_id": 103788646, + "pull_request_url": "https://api.github.com/repos/neovim/neovim/pulls/8107", + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/pulls/comments/174435872/reactions" + }, + "side": "RIGHT", + "start_line": null, + "start_side": null, + "subject_type": "line", + "updated_at": "2018-03-18T16:16:44Z", + "url": "https://api.github.com/repos/neovim/neovim/pulls/comments/174435872", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/1359421?v=4", + "events_url": "https://api.github.com/users/justinmk/events{/privacy}", + "followers_url": "https://api.github.com/users/justinmk/followers", + "following_url": "https://api.github.com/users/justinmk/following{/other_user}", + "gists_url": "https://api.github.com/users/justinmk/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/justinmk", + "id": 1359421, + "login": "justinmk", + "node_id": "MDQ6VXNlcjEzNTk0MjE=", + "organizations_url": "https://api.github.com/users/justinmk/orgs", + "received_events_url": "https://api.github.com/users/justinmk/received_events", + "repos_url": "https://api.github.com/users/justinmk/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/justinmk/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/justinmk/subscriptions", + "type": "User", + "url": "https://api.github.com/users/justinmk" + } + }, + { + "_links": { + "html": { + "href": "https://github.com/neovim/neovim/pull/8107#discussion_r174443631" + }, + "pull_request": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/8107" + }, + "self": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/comments/174443631" + } + }, + "author_association": "MEMBER", + "body": "Perhaps iterating through the entries (processes) under `/proc` and evaluating each entry `status` for `ppid`?", + "commit_id": "ae409b5042abdbec67305a063cf921ddffcce0c8", + "created_at": "2018-03-14T12:35:25Z", + "diff_hunk": "@@ -0,0 +1,178 @@\n+// This is an open source non-commercial project. Dear PVS-Studio, please check\n+// it. PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com\n+\n+#include \n+#ifdef WIN32\n+# include // for CreateToolhelp32Snapshot\n+#endif\n+\n+#if defined(__FreeBSD__)\n+# include \n+# include \n+# include \n+#endif\n+\n+#if defined(__APPLE__) || defined(BSD)\n+# include // kinfo_proc on OpenBSD, NetBSD\n+# include \n+#endif\n+\n+#include \"nvim/log.h\"\n+#include \"nvim/os/process.h\"\n+#include \"nvim/os/os.h\"\n+#include \"nvim/os/os_defs.h\"\n+\n+#ifdef INCLUDE_GENERATED_DECLARATIONS\n+# include \"os/process.c.generated.h\"\n+#endif\n+\n+#ifdef WIN32\n+static bool os_proc_tree_kill_rec(HANDLE process, int sig)\n+{\n+ if (process == NULL) {\n+ return false;\n+ }\n+ PROCESSENTRY32 pe;\n+ DWORD pid = GetProcessId(process);\n+\n+ if (pid != 0) {\n+ HANDLE h = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);\n+ if (h != INVALID_HANDLE_VALUE) {\n+ pe.dwSize = sizeof(PROCESSENTRY32);\n+ if (!Process32First(h, &pe)) {\n+ goto theend;\n+ }\n+\n+ do {\n+ if (pe.th32ParentProcessID == pid) {\n+ HANDLE ph = OpenProcess(PROCESS_ALL_ACCESS, false, pe.th32ProcessID);\n+ if (ph != NULL) {\n+ os_proc_tree_kill_rec(ph, sig);\n+ CloseHandle(ph);\n+ }\n+ }\n+ } while (Process32Next(h, &pe));\n+\n+ CloseHandle(h);\n+ }\n+ }\n+\n+theend:\n+ return (bool)TerminateProcess(process, (unsigned int)sig);\n+}\n+/// Kills process `pid` and its descendants recursively.\n+bool os_proc_tree_kill(int pid, int sig)\n+{\n+ assert(sig >= 0);\n+ assert(sig == SIGTERM || sig == SIGKILL);\n+ if (pid > 0) {\n+ ILOG(\"terminating process tree: %d\", pid);\n+ HANDLE h = OpenProcess(PROCESS_ALL_ACCESS, false, (DWORD)pid);\n+ return os_proc_tree_kill_rec(h, sig);\n+ } else {\n+ ELOG(\"invalid pid: %d\", pid);\n+ }\n+ return false;\n+}\n+#else\n+/// Kills process group where `pid` is the process group leader.\n+bool os_proc_tree_kill(int pid, int sig)\n+{\n+ assert(sig == SIGTERM || sig == SIGKILL);\n+ int pgid = getpgid(pid);\n+ if (pgid > 0) { // Ignore error. Never kill self (pid=0).\n+ if (pgid == pid) {\n+ ILOG(\"sending %s to process group: -%d\",\n+ sig == SIGTERM ? \"SIGTERM\" : \"SIGKILL\", pgid);\n+ int rv = uv_kill(-pgid, sig);\n+ return rv == 0;\n+ } else {\n+ // Should never happen, because process_spawn() did setsid() in the child.\n+ ELOG(\"pgid %d != pid %d\", pgid, pid);\n+ }\n+ } else {\n+ ELOG(\"getpgid(%d) returned %d\", pid, pgid);\n+ }\n+ return false;\n+}\n+#endif\n+\n+/// Gets the process ids of the immediate children of process `ppid`.\n+///\n+/// @param ppid Process to inspect.\n+/// @param[out,allocated] proc_list Child process ids.\n+/// @param[out] proc_count Number of child processes.\n+/// @return 0 on success, 1 if process not found, 2 on other error.\n+int os_proc_children(int ppid, int **proc_list, size_t *proc_count)\n+{\n+ int *temp = NULL;\n+ *proc_list = NULL;\n+ *proc_count = 0;\n+\n+#if defined(__APPLE__) || defined(BSD)\n+# if defined(__APPLE__)\n+# define KP_PID(o) o.kp_proc.p_pid\n+# define KP_PPID(o) o.kp_eproc.e_ppid\n+# elif defined(__FreeBSD__)\n+# define KP_PID(o) o.ki_pid\n+# define KP_PPID(o) o.ki_ppid\n+# else\n+# define KP_PID(o) o.p_pid\n+# define KP_PPID(o) o.p_ppid\n+# endif\n+ // ref: http://unix.superglobalmegacorp.com/Net2/newsrc/sys/kinfo_proc.h.html\n+ static int name[] = { CTL_KERN, KERN_PROC, KERN_PROC_ALL, 0 };\n+\n+ // Get total process count.\n+ size_t len = 0;\n+ int rv = sysctl(name, ARRAY_SIZE(name), NULL, &len, NULL, 0);\n+ if (rv) {\n+ return 2;\n+ }\n+\n+ // Get ALL processes.\n+ struct kinfo_proc *p_list = xmalloc(len);\n+ rv = sysctl(name, ARRAY_SIZE(name), p_list, &len, NULL, 0);\n+ if (rv) {\n+ xfree(p_list);\n+ return 2;\n+ }\n+\n+ // Collect processes whose parent matches `ppid`.\n+ bool exists = false;\n+ size_t p_count = len / sizeof(*p_list);\n+ for (size_t i = 0; i < p_count; i++) {\n+ exists = exists || KP_PID(p_list[i]) == ppid;\n+ if (KP_PPID(p_list[i]) == ppid) {\n+ temp = xrealloc(temp, (*proc_count + 1) * sizeof(*temp));\n+ temp[*proc_count] = KP_PID(p_list[i]);\n+ (*proc_count)++;\n+ }\n+ }\n+ xfree(p_list);\n+ if (!exists) {\n+ return 1; // Process not found.\n+ }\n+\n+#elif defined(__linux__)\n+ char proc_p[256] = { 0 };\n+ // Collect processes whose parent matches `ppid`.\n+ // Rationale: children are defined in thread with same ID of process.\n+ snprintf(proc_p, sizeof(proc_p), \"/proc/%d/task/%d/children\", ppid, ppid);\n+ FILE *fp = fopen(proc_p, \"r\");\n+ if (fp == NULL) {\n+ return 1; // Process not found.", + "html_url": "https://github.com/neovim/neovim/pull/8107#discussion_r174443631", + "id": 174443631, + "in_reply_to_id": 174430334, + "line": null, + "node_id": "MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDE3NDQ0MzYzMQ==", + "original_commit_id": "9e89b4f2e3f6fd83999d893183885eb1b1bdc7d7", + "original_line": 164, + "original_position": 164, + "original_start_line": null, + "path": "src/nvim/os/process.c", + "position": null, + "pull_request_review_id": 103798131, + "pull_request_url": "https://api.github.com/repos/neovim/neovim/pulls/8107", + "reactions": { + "+1": 1, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 1, + "url": "https://api.github.com/repos/neovim/neovim/pulls/comments/174443631/reactions" + }, + "side": "RIGHT", + "start_line": null, + "start_side": null, + "subject_type": "line", + "updated_at": "2018-03-18T16:16:44Z", + "url": "https://api.github.com/repos/neovim/neovim/pulls/comments/174443631", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/2077655?v=4", + "events_url": "https://api.github.com/users/oni-link/events{/privacy}", + "followers_url": "https://api.github.com/users/oni-link/followers", + "following_url": "https://api.github.com/users/oni-link/following{/other_user}", + "gists_url": "https://api.github.com/users/oni-link/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/oni-link", + "id": 2077655, + "login": "oni-link", + "node_id": "MDQ6VXNlcjIwNzc2NTU=", + "organizations_url": "https://api.github.com/users/oni-link/orgs", + "received_events_url": "https://api.github.com/users/oni-link/received_events", + "repos_url": "https://api.github.com/users/oni-link/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/oni-link/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/oni-link/subscriptions", + "type": "User", + "url": "https://api.github.com/users/oni-link" + } + }, + { + "_links": { + "html": { + "href": "https://github.com/neovim/neovim/pull/8107#discussion_r174629710" + }, + "pull_request": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/8107" + }, + "self": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/comments/174629710" + } + }, + "author_association": "MEMBER", + "body": "@oni-link Added a fallback for `pgrep` since it seems to be available on linux/macOS/BSD.", + "commit_id": "ae409b5042abdbec67305a063cf921ddffcce0c8", + "created_at": "2018-03-14T22:28:29Z", + "diff_hunk": "@@ -0,0 +1,178 @@\n+// This is an open source non-commercial project. Dear PVS-Studio, please check\n+// it. PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com\n+\n+#include \n+#ifdef WIN32\n+# include // for CreateToolhelp32Snapshot\n+#endif\n+\n+#if defined(__FreeBSD__)\n+# include \n+# include \n+# include \n+#endif\n+\n+#if defined(__APPLE__) || defined(BSD)\n+# include // kinfo_proc on OpenBSD, NetBSD\n+# include \n+#endif\n+\n+#include \"nvim/log.h\"\n+#include \"nvim/os/process.h\"\n+#include \"nvim/os/os.h\"\n+#include \"nvim/os/os_defs.h\"\n+\n+#ifdef INCLUDE_GENERATED_DECLARATIONS\n+# include \"os/process.c.generated.h\"\n+#endif\n+\n+#ifdef WIN32\n+static bool os_proc_tree_kill_rec(HANDLE process, int sig)\n+{\n+ if (process == NULL) {\n+ return false;\n+ }\n+ PROCESSENTRY32 pe;\n+ DWORD pid = GetProcessId(process);\n+\n+ if (pid != 0) {\n+ HANDLE h = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);\n+ if (h != INVALID_HANDLE_VALUE) {\n+ pe.dwSize = sizeof(PROCESSENTRY32);\n+ if (!Process32First(h, &pe)) {\n+ goto theend;\n+ }\n+\n+ do {\n+ if (pe.th32ParentProcessID == pid) {\n+ HANDLE ph = OpenProcess(PROCESS_ALL_ACCESS, false, pe.th32ProcessID);\n+ if (ph != NULL) {\n+ os_proc_tree_kill_rec(ph, sig);\n+ CloseHandle(ph);\n+ }\n+ }\n+ } while (Process32Next(h, &pe));\n+\n+ CloseHandle(h);\n+ }\n+ }\n+\n+theend:\n+ return (bool)TerminateProcess(process, (unsigned int)sig);\n+}\n+/// Kills process `pid` and its descendants recursively.\n+bool os_proc_tree_kill(int pid, int sig)\n+{\n+ assert(sig >= 0);\n+ assert(sig == SIGTERM || sig == SIGKILL);\n+ if (pid > 0) {\n+ ILOG(\"terminating process tree: %d\", pid);\n+ HANDLE h = OpenProcess(PROCESS_ALL_ACCESS, false, (DWORD)pid);\n+ return os_proc_tree_kill_rec(h, sig);\n+ } else {\n+ ELOG(\"invalid pid: %d\", pid);\n+ }\n+ return false;\n+}\n+#else\n+/// Kills process group where `pid` is the process group leader.\n+bool os_proc_tree_kill(int pid, int sig)\n+{\n+ assert(sig == SIGTERM || sig == SIGKILL);\n+ int pgid = getpgid(pid);\n+ if (pgid > 0) { // Ignore error. Never kill self (pid=0).\n+ if (pgid == pid) {\n+ ILOG(\"sending %s to process group: -%d\",\n+ sig == SIGTERM ? \"SIGTERM\" : \"SIGKILL\", pgid);\n+ int rv = uv_kill(-pgid, sig);\n+ return rv == 0;\n+ } else {\n+ // Should never happen, because process_spawn() did setsid() in the child.\n+ ELOG(\"pgid %d != pid %d\", pgid, pid);\n+ }\n+ } else {\n+ ELOG(\"getpgid(%d) returned %d\", pid, pgid);\n+ }\n+ return false;\n+}\n+#endif\n+\n+/// Gets the process ids of the immediate children of process `ppid`.\n+///\n+/// @param ppid Process to inspect.\n+/// @param[out,allocated] proc_list Child process ids.\n+/// @param[out] proc_count Number of child processes.\n+/// @return 0 on success, 1 if process not found, 2 on other error.\n+int os_proc_children(int ppid, int **proc_list, size_t *proc_count)\n+{\n+ int *temp = NULL;\n+ *proc_list = NULL;\n+ *proc_count = 0;\n+\n+#if defined(__APPLE__) || defined(BSD)\n+# if defined(__APPLE__)\n+# define KP_PID(o) o.kp_proc.p_pid\n+# define KP_PPID(o) o.kp_eproc.e_ppid\n+# elif defined(__FreeBSD__)\n+# define KP_PID(o) o.ki_pid\n+# define KP_PPID(o) o.ki_ppid\n+# else\n+# define KP_PID(o) o.p_pid\n+# define KP_PPID(o) o.p_ppid\n+# endif\n+ // ref: http://unix.superglobalmegacorp.com/Net2/newsrc/sys/kinfo_proc.h.html\n+ static int name[] = { CTL_KERN, KERN_PROC, KERN_PROC_ALL, 0 };\n+\n+ // Get total process count.\n+ size_t len = 0;\n+ int rv = sysctl(name, ARRAY_SIZE(name), NULL, &len, NULL, 0);\n+ if (rv) {\n+ return 2;\n+ }\n+\n+ // Get ALL processes.\n+ struct kinfo_proc *p_list = xmalloc(len);\n+ rv = sysctl(name, ARRAY_SIZE(name), p_list, &len, NULL, 0);\n+ if (rv) {\n+ xfree(p_list);\n+ return 2;\n+ }\n+\n+ // Collect processes whose parent matches `ppid`.\n+ bool exists = false;\n+ size_t p_count = len / sizeof(*p_list);\n+ for (size_t i = 0; i < p_count; i++) {\n+ exists = exists || KP_PID(p_list[i]) == ppid;\n+ if (KP_PPID(p_list[i]) == ppid) {\n+ temp = xrealloc(temp, (*proc_count + 1) * sizeof(*temp));\n+ temp[*proc_count] = KP_PID(p_list[i]);\n+ (*proc_count)++;\n+ }\n+ }\n+ xfree(p_list);\n+ if (!exists) {\n+ return 1; // Process not found.\n+ }\n+\n+#elif defined(__linux__)\n+ char proc_p[256] = { 0 };\n+ // Collect processes whose parent matches `ppid`.\n+ // Rationale: children are defined in thread with same ID of process.\n+ snprintf(proc_p, sizeof(proc_p), \"/proc/%d/task/%d/children\", ppid, ppid);\n+ FILE *fp = fopen(proc_p, \"r\");\n+ if (fp == NULL) {\n+ return 1; // Process not found.", + "html_url": "https://github.com/neovim/neovim/pull/8107#discussion_r174629710", + "id": 174629710, + "in_reply_to_id": 174430334, + "line": null, + "node_id": "MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDE3NDYyOTcxMA==", + "original_commit_id": "9e89b4f2e3f6fd83999d893183885eb1b1bdc7d7", + "original_line": 164, + "original_position": 164, + "original_start_line": null, + "path": "src/nvim/os/process.c", + "position": null, + "pull_request_review_id": 104021810, + "pull_request_url": "https://api.github.com/repos/neovim/neovim/pulls/8107", + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/pulls/comments/174629710/reactions" + }, + "side": "RIGHT", + "start_line": null, + "start_side": null, + "subject_type": "line", + "updated_at": "2018-03-18T16:16:44Z", + "url": "https://api.github.com/repos/neovim/neovim/pulls/comments/174629710", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/1359421?v=4", + "events_url": "https://api.github.com/users/justinmk/events{/privacy}", + "followers_url": "https://api.github.com/users/justinmk/followers", + "following_url": "https://api.github.com/users/justinmk/following{/other_user}", + "gists_url": "https://api.github.com/users/justinmk/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/justinmk", + "id": 1359421, + "login": "justinmk", + "node_id": "MDQ6VXNlcjEzNTk0MjE=", + "organizations_url": "https://api.github.com/users/justinmk/orgs", + "received_events_url": "https://api.github.com/users/justinmk/received_events", + "repos_url": "https://api.github.com/users/justinmk/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/justinmk/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/justinmk/subscriptions", + "type": "User", + "url": "https://api.github.com/users/justinmk" + } + }, + { + "_links": { + "html": { + "href": "https://github.com/neovim/neovim/pull/8107#discussion_r175252714" + }, + "pull_request": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/8107" + }, + "self": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/comments/175252714" + } + }, + "author_association": "MEMBER", + "body": "@neovim/core I'm considering documenting these Lua-flavored `systemlist()` and `system()` variants in `:help lua` as part of the `vim` module. The normal Lua idiom would be to return `status, rv` pair, where `status=false` on failure. But I think it's really useful to show the failed command with `error()`. Thoughts?", + "commit_id": "ae409b5042abdbec67305a063cf921ddffcce0c8", + "created_at": "2018-03-17T09:17:09Z", + "diff_hunk": "@@ -1,3 +1,46 @@\n+local function system(cmd)\n+ local out = vim.api.nvim_call_function('system', { cmd })\n+ local err = vim.api.nvim_get_vvar('shell_error')\n+ local args_str = vim.api.nvim_call_function('string', { cmd })\n+ if 0 ~= err then\n+ error('command failed: '..args_str)\n+ end\n+ return out\n+end\n+\n+local function systemlist(...)", + "html_url": "https://github.com/neovim/neovim/pull/8107#discussion_r175252714", + "id": 175252714, + "line": null, + "node_id": "MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDE3NTI1MjcxNA==", + "original_commit_id": "8566bd1bb2564ae1939c2bb55a41a634a2a2b571", + "original_line": 11, + "original_position": 11, + "original_start_line": null, + "path": "src/nvim/lua/vim.lua", + "position": null, + "pull_request_review_id": 104761220, + "pull_request_url": "https://api.github.com/repos/neovim/neovim/pulls/8107", + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/pulls/comments/175252714/reactions" + }, + "side": "RIGHT", + "start_line": null, + "start_side": null, + "subject_type": "line", + "updated_at": "2018-03-18T16:16:44Z", + "url": "https://api.github.com/repos/neovim/neovim/pulls/comments/175252714", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/1359421?v=4", + "events_url": "https://api.github.com/users/justinmk/events{/privacy}", + "followers_url": "https://api.github.com/users/justinmk/followers", + "following_url": "https://api.github.com/users/justinmk/following{/other_user}", + "gists_url": "https://api.github.com/users/justinmk/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/justinmk", + "id": 1359421, + "login": "justinmk", + "node_id": "MDQ6VXNlcjEzNTk0MjE=", + "organizations_url": "https://api.github.com/users/justinmk/orgs", + "received_events_url": "https://api.github.com/users/justinmk/received_events", + "repos_url": "https://api.github.com/users/justinmk/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/justinmk/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/justinmk/subscriptions", + "type": "User", + "url": "https://api.github.com/users/justinmk" + } + }, + { + "_links": { + "html": { + "href": "https://github.com/neovim/neovim/pull/8107#discussion_r175254868" + }, + "pull_request": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/8107" + }, + "self": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/comments/175254868" + } + }, + "author_association": "MEMBER", + "body": "Do we really want to commit a new system interface that mixes `stdout` and `stderr` togheter per default?", + "commit_id": "ae409b5042abdbec67305a063cf921ddffcce0c8", + "created_at": "2018-03-17T10:59:01Z", + "diff_hunk": "@@ -1,3 +1,65 @@\n+local function system(cmd)\n+ local out = vim.api.nvim_call_function('system', { cmd })\n+ local err = vim.api.nvim_get_vvar('shell_error')\n+ local args_str = vim.api.nvim_call_function('string', { cmd })\n+ if 0 ~= err then\n+ error('command failed: '..args_str)\n+ end\n+ return out\n+end\n+\n+local function systemlist(cmd)", + "html_url": "https://github.com/neovim/neovim/pull/8107#discussion_r175254868", + "id": 175254868, + "line": null, + "node_id": "MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDE3NTI1NDg2OA==", + "original_commit_id": "5969f1a392fa86284c1fd56534e8bdb7226f9df5", + "original_line": 11, + "original_position": 11, + "original_start_line": null, + "path": "src/nvim/lua/vim.lua", + "position": null, + "pull_request_review_id": 104763306, + "pull_request_url": "https://api.github.com/repos/neovim/neovim/pulls/8107", + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/pulls/comments/175254868/reactions" + }, + "side": "RIGHT", + "start_line": null, + "start_side": null, + "subject_type": "line", + "updated_at": "2018-03-18T16:16:44Z", + "url": "https://api.github.com/repos/neovim/neovim/pulls/comments/175254868", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/1363104?v=4", + "events_url": "https://api.github.com/users/bfredl/events{/privacy}", + "followers_url": "https://api.github.com/users/bfredl/followers", + "following_url": "https://api.github.com/users/bfredl/following{/other_user}", + "gists_url": "https://api.github.com/users/bfredl/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/bfredl", + "id": 1363104, + "login": "bfredl", + "node_id": "MDQ6VXNlcjEzNjMxMDQ=", + "organizations_url": "https://api.github.com/users/bfredl/orgs", + "received_events_url": "https://api.github.com/users/bfredl/received_events", + "repos_url": "https://api.github.com/users/bfredl/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/bfredl/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/bfredl/subscriptions", + "type": "User", + "url": "https://api.github.com/users/bfredl" + } + }, + { + "_links": { + "html": { + "href": "https://github.com/neovim/neovim/pull/8107#discussion_r175254916" + }, + "pull_request": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/8107" + }, + "self": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/comments/175254916" + } + }, + "author_association": "MEMBER", + "body": "Until we have lua native job control this should probably use `systemlist` (or even better viml job control to distinguish stderr) internally and do a safe conversion to lua binary string, so that this function handles binary data correctly (unlike vimL `system()` where this is impossible)", + "commit_id": "ae409b5042abdbec67305a063cf921ddffcce0c8", + "created_at": "2018-03-17T11:01:05Z", + "diff_hunk": "@@ -1,3 +1,65 @@\n+local function system(cmd)", + "html_url": "https://github.com/neovim/neovim/pull/8107#discussion_r175254916", + "id": 175254916, + "line": null, + "node_id": "MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDE3NTI1NDkxNg==", + "original_commit_id": "5969f1a392fa86284c1fd56534e8bdb7226f9df5", + "original_line": 1, + "original_position": 1, + "original_start_line": null, + "path": "src/nvim/lua/vim.lua", + "position": null, + "pull_request_review_id": 104763344, + "pull_request_url": "https://api.github.com/repos/neovim/neovim/pulls/8107", + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/pulls/comments/175254916/reactions" + }, + "side": "RIGHT", + "start_line": null, + "start_side": null, + "subject_type": "line", + "updated_at": "2018-03-18T16:16:44Z", + "url": "https://api.github.com/repos/neovim/neovim/pulls/comments/175254916", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/1363104?v=4", + "events_url": "https://api.github.com/users/bfredl/events{/privacy}", + "followers_url": "https://api.github.com/users/bfredl/followers", + "following_url": "https://api.github.com/users/bfredl/following{/other_user}", + "gists_url": "https://api.github.com/users/bfredl/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/bfredl", + "id": 1363104, + "login": "bfredl", + "node_id": "MDQ6VXNlcjEzNjMxMDQ=", + "organizations_url": "https://api.github.com/users/bfredl/orgs", + "received_events_url": "https://api.github.com/users/bfredl/received_events", + "repos_url": "https://api.github.com/users/bfredl/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/bfredl/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/bfredl/subscriptions", + "type": "User", + "url": "https://api.github.com/users/bfredl" + } + }, + { + "_links": { + "html": { + "href": "https://github.com/neovim/neovim/pull/8107#discussion_r175254950" + }, + "pull_request": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/8107" + }, + "self": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/comments/175254950" + } + }, + "author_association": "MEMBER", + "body": "@bfredl Thanks. I'll keep this internal for now, and revisit your comments later.", + "commit_id": "ae409b5042abdbec67305a063cf921ddffcce0c8", + "created_at": "2018-03-17T11:02:29Z", + "diff_hunk": "@@ -1,3 +1,65 @@\n+local function system(cmd)\n+ local out = vim.api.nvim_call_function('system', { cmd })\n+ local err = vim.api.nvim_get_vvar('shell_error')\n+ local args_str = vim.api.nvim_call_function('string', { cmd })\n+ if 0 ~= err then\n+ error('command failed: '..args_str)\n+ end\n+ return out\n+end\n+\n+local function systemlist(cmd)", + "html_url": "https://github.com/neovim/neovim/pull/8107#discussion_r175254950", + "id": 175254950, + "in_reply_to_id": 175254868, + "line": null, + "node_id": "MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDE3NTI1NDk1MA==", + "original_commit_id": "5969f1a392fa86284c1fd56534e8bdb7226f9df5", + "original_line": 11, + "original_position": 11, + "original_start_line": null, + "path": "src/nvim/lua/vim.lua", + "position": null, + "pull_request_review_id": 104763368, + "pull_request_url": "https://api.github.com/repos/neovim/neovim/pulls/8107", + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/pulls/comments/175254950/reactions" + }, + "side": "RIGHT", + "start_line": null, + "start_side": null, + "subject_type": "line", + "updated_at": "2018-03-18T16:16:44Z", + "url": "https://api.github.com/repos/neovim/neovim/pulls/comments/175254950", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/1359421?v=4", + "events_url": "https://api.github.com/users/justinmk/events{/privacy}", + "followers_url": "https://api.github.com/users/justinmk/followers", + "following_url": "https://api.github.com/users/justinmk/following{/other_user}", + "gists_url": "https://api.github.com/users/justinmk/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/justinmk", + "id": 1359421, + "login": "justinmk", + "node_id": "MDQ6VXNlcjEzNTk0MjE=", + "organizations_url": "https://api.github.com/users/justinmk/orgs", + "received_events_url": "https://api.github.com/users/justinmk/received_events", + "repos_url": "https://api.github.com/users/justinmk/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/justinmk/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/justinmk/subscriptions", + "type": "User", + "url": "https://api.github.com/users/justinmk" + } + }, + { + "_links": { + "html": { + "href": "https://github.com/neovim/neovim/pull/8107#discussion_r175254959" + }, + "pull_request": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/8107" + }, + "self": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/comments/175254959" + } + }, + "author_association": "MEMBER", + "body": "or even remove the function to force using systemlist which is better in every way.", + "commit_id": "ae409b5042abdbec67305a063cf921ddffcce0c8", + "created_at": "2018-03-17T11:02:47Z", + "diff_hunk": "@@ -1,3 +1,65 @@\n+local function system(cmd)", + "html_url": "https://github.com/neovim/neovim/pull/8107#discussion_r175254959", + "id": 175254959, + "in_reply_to_id": 175254916, + "line": null, + "node_id": "MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDE3NTI1NDk1OQ==", + "original_commit_id": "5969f1a392fa86284c1fd56534e8bdb7226f9df5", + "original_line": 1, + "original_position": 1, + "original_start_line": null, + "path": "src/nvim/lua/vim.lua", + "position": null, + "pull_request_review_id": 104763378, + "pull_request_url": "https://api.github.com/repos/neovim/neovim/pulls/8107", + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/pulls/comments/175254959/reactions" + }, + "side": "RIGHT", + "start_line": null, + "start_side": null, + "subject_type": "line", + "updated_at": "2018-03-18T16:16:44Z", + "url": "https://api.github.com/repos/neovim/neovim/pulls/comments/175254959", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/886074?v=4", + "events_url": "https://api.github.com/users/teto/events{/privacy}", + "followers_url": "https://api.github.com/users/teto/followers", + "following_url": "https://api.github.com/users/teto/following{/other_user}", + "gists_url": "https://api.github.com/users/teto/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/teto", + "id": 886074, + "login": "teto", + "node_id": "MDQ6VXNlcjg4NjA3NA==", + "organizations_url": "https://api.github.com/users/teto/orgs", + "received_events_url": "https://api.github.com/users/teto/received_events", + "repos_url": "https://api.github.com/users/teto/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/teto/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/teto/subscriptions", + "type": "User", + "url": "https://api.github.com/users/teto" + } + }, + { + "_links": { + "html": { + "href": "https://github.com/neovim/neovim/pull/8107#discussion_r175255085" + }, + "pull_request": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/8107" + }, + "self": { + "href": "https://api.github.com/repos/neovim/neovim/pulls/comments/175255085" + } + }, + "author_association": "MEMBER", + "body": "@teto this is not really true in Lua, the issue is just that vimL system() should not be used to define Lua system()", + "commit_id": "ae409b5042abdbec67305a063cf921ddffcce0c8", + "created_at": "2018-03-17T11:07:36Z", + "diff_hunk": "@@ -1,3 +1,65 @@\n+local function system(cmd)", + "html_url": "https://github.com/neovim/neovim/pull/8107#discussion_r175255085", + "id": 175255085, + "in_reply_to_id": 175254916, + "line": null, + "node_id": "MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDE3NTI1NTA4NQ==", + "original_commit_id": "5969f1a392fa86284c1fd56534e8bdb7226f9df5", + "original_line": 1, + "original_position": 1, + "original_start_line": null, + "path": "src/nvim/lua/vim.lua", + "position": null, + "pull_request_review_id": 104763482, + "pull_request_url": "https://api.github.com/repos/neovim/neovim/pulls/8107", + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/pulls/comments/175255085/reactions" + }, + "side": "RIGHT", + "start_line": null, + "start_side": null, + "subject_type": "line", + "updated_at": "2018-03-18T16:16:44Z", + "url": "https://api.github.com/repos/neovim/neovim/pulls/comments/175255085", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/1363104?v=4", + "events_url": "https://api.github.com/users/bfredl/events{/privacy}", + "followers_url": "https://api.github.com/users/bfredl/followers", + "following_url": "https://api.github.com/users/bfredl/following{/other_user}", + "gists_url": "https://api.github.com/users/bfredl/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/bfredl", + "id": 1363104, + "login": "bfredl", + "node_id": "MDQ6VXNlcjEzNjMxMDQ=", + "organizations_url": "https://api.github.com/users/bfredl/orgs", + "received_events_url": "https://api.github.com/users/bfredl/received_events", + "repos_url": "https://api.github.com/users/bfredl/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/bfredl/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/bfredl/subscriptions", + "type": "User", + "url": "https://api.github.com/users/bfredl" + } + } + ], + "comment_regular_data": [ + { + "author_association": "MEMBER", + "body": "```vim\r\n:let id = jobstart('sleep 30 | sleep 30 | sleep 30')\r\n:call jobstop(id)\r\n```\r\n\r\n..finally works as expected after this patch. :+1:", + "created_at": "2018-03-06T12:27:46Z", + "html_url": "https://github.com/neovim/neovim/pull/8107#issuecomment-370765726", + "id": 370765726, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/8107", + "node_id": "MDEyOklzc3VlQ29tbWVudDM3MDc2NTcyNg==", + "performed_via_github_app": null, + "reactions": { + "+1": 1, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 1, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/370765726/reactions" + }, + "updated_at": "2018-03-06T12:27:46Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/370765726", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/972014?v=4", + "events_url": "https://api.github.com/users/mhinz/events{/privacy}", + "followers_url": "https://api.github.com/users/mhinz/followers", + "following_url": "https://api.github.com/users/mhinz/following{/other_user}", + "gists_url": "https://api.github.com/users/mhinz/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/mhinz", + "id": 972014, + "login": "mhinz", + "node_id": "MDQ6VXNlcjk3MjAxNA==", + "organizations_url": "https://api.github.com/users/mhinz/orgs", + "received_events_url": "https://api.github.com/users/mhinz/received_events", + "repos_url": "https://api.github.com/users/mhinz/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/mhinz/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/mhinz/subscriptions", + "type": "User", + "url": "https://api.github.com/users/mhinz" + } + }, + { + "author_association": "MEMBER", + "body": "Will this fix the `invalid channel id` or the exit code for job tests for cat.exe on Windows?\r\nI'm using jobclose to get exit code 0 because jobstop can cause exit code 1.", + "created_at": "2018-03-13T21:53:26Z", + "html_url": "https://github.com/neovim/neovim/pull/8107#issuecomment-372831527", + "id": 372831527, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/8107", + "node_id": "MDEyOklzc3VlQ29tbWVudDM3MjgzMTUyNw==", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/372831527/reactions" + }, + "updated_at": "2018-03-13T21:55:21Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/372831527", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/8740057?v=4", + "events_url": "https://api.github.com/users/janlazo/events{/privacy}", + "followers_url": "https://api.github.com/users/janlazo/followers", + "following_url": "https://api.github.com/users/janlazo/following{/other_user}", + "gists_url": "https://api.github.com/users/janlazo/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/janlazo", + "id": 8740057, + "login": "janlazo", + "node_id": "MDQ6VXNlcjg3NDAwNTc=", + "organizations_url": "https://api.github.com/users/janlazo/orgs", + "received_events_url": "https://api.github.com/users/janlazo/received_events", + "repos_url": "https://api.github.com/users/janlazo/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/janlazo/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/janlazo/subscriptions", + "type": "User", + "url": "https://api.github.com/users/janlazo" + } + }, + { + "author_association": "MEMBER", + "body": "> Will this fix the invalid channel id or the exit code for job tests for cat.exe on Windows?\r\n\r\nI wouldn't expect this to fix \"invalid channel id\". And, I don't think it will change behavior of cat.exe unless cat.exe was running in a shell.\r\n\r\n> I'm using jobclose to get exit code 0 because jobstop can cause exit code 1.\r\n\r\nWe should probably keep that test \"pending\" then :)", + "created_at": "2018-03-13T22:04:40Z", + "html_url": "https://github.com/neovim/neovim/pull/8107#issuecomment-372834560", + "id": 372834560, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/8107", + "node_id": "MDEyOklzc3VlQ29tbWVudDM3MjgzNDU2MA==", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/372834560/reactions" + }, + "updated_at": "2018-03-13T22:04:40Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/372834560", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/1359421?v=4", + "events_url": "https://api.github.com/users/justinmk/events{/privacy}", + "followers_url": "https://api.github.com/users/justinmk/followers", + "following_url": "https://api.github.com/users/justinmk/following{/other_user}", + "gists_url": "https://api.github.com/users/justinmk/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/justinmk", + "id": 1359421, + "login": "justinmk", + "node_id": "MDQ6VXNlcjEzNTk0MjE=", + "organizations_url": "https://api.github.com/users/justinmk/orgs", + "received_events_url": "https://api.github.com/users/justinmk/received_events", + "repos_url": "https://api.github.com/users/justinmk/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/justinmk/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/justinmk/subscriptions", + "type": "User", + "url": "https://api.github.com/users/justinmk" + } + }, + { + "author_association": "MEMBER", + "body": "## todo / future reference\r\n\r\nDiscussion of `vim.system[list]()` in public Lua module:\r\n\r\n- https://github.com/neovim/neovim/pull/8107#discussion_r175254868\r\n- https://github.com/neovim/neovim/pull/8107#discussion_r175254916", + "created_at": "2018-03-17T13:29:34Z", + "html_url": "https://github.com/neovim/neovim/pull/8107#issuecomment-373920220", + "id": 373920220, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/8107", + "node_id": "MDEyOklzc3VlQ29tbWVudDM3MzkyMDIyMA==", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/373920220/reactions" + }, + "updated_at": "2023-08-04T22:27:13Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/373920220", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/1359421?v=4", + "events_url": "https://api.github.com/users/justinmk/events{/privacy}", + "followers_url": "https://api.github.com/users/justinmk/followers", + "following_url": "https://api.github.com/users/justinmk/following{/other_user}", + "gists_url": "https://api.github.com/users/justinmk/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/justinmk", + "id": 1359421, + "login": "justinmk", + "node_id": "MDQ6VXNlcjEzNTk0MjE=", + "organizations_url": "https://api.github.com/users/justinmk/orgs", + "received_events_url": "https://api.github.com/users/justinmk/received_events", + "repos_url": "https://api.github.com/users/justinmk/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/justinmk/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/justinmk/subscriptions", + "type": "User", + "url": "https://api.github.com/users/justinmk" + } + }, + { + "author_association": "MEMBER", + "body": "Which `ps` is os_proc_info using on Windows?\r\nI'm using tasklist to check for pid in https://github.com/neovim/neovim/pull/8120/commits/ca7d284a74df396fa599f34353bf2cd8950e61b1", + "created_at": "2018-03-17T18:26:06Z", + "html_url": "https://github.com/neovim/neovim/pull/8107#issuecomment-373941944", + "id": 373941944, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/8107", + "node_id": "MDEyOklzc3VlQ29tbWVudDM3Mzk0MTk0NA==", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/373941944/reactions" + }, + "updated_at": "2018-03-17T18:27:36Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/373941944", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/8740057?v=4", + "events_url": "https://api.github.com/users/janlazo/events{/privacy}", + "followers_url": "https://api.github.com/users/janlazo/followers", + "following_url": "https://api.github.com/users/janlazo/following{/other_user}", + "gists_url": "https://api.github.com/users/janlazo/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/janlazo", + "id": 8740057, + "login": "janlazo", + "node_id": "MDQ6VXNlcjg3NDAwNTc=", + "organizations_url": "https://api.github.com/users/janlazo/orgs", + "received_events_url": "https://api.github.com/users/janlazo/received_events", + "repos_url": "https://api.github.com/users/janlazo/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/janlazo/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/janlazo/subscriptions", + "type": "User", + "url": "https://api.github.com/users/janlazo" + } + }, + { + "author_association": "MEMBER", + "body": "> Which ps is os_proc_info using on Windows?\r\n\r\nOn WIN32 it [uses the WIN32 API](https://github.com/neovim/neovim/pull/8107/commits/a034d4b69d6032b3431c10b8a11c998551700fc2#diff-043c9e95b8f25dfb8a404eaca0a1678eR218). No ps, no tasklist. ", + "created_at": "2018-03-17T18:55:59Z", + "html_url": "https://github.com/neovim/neovim/pull/8107#issuecomment-373944158", + "id": 373944158, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/8107", + "node_id": "MDEyOklzc3VlQ29tbWVudDM3Mzk0NDE1OA==", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/373944158/reactions" + }, + "updated_at": "2018-03-17T23:14:05Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/373944158", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/1359421?v=4", + "events_url": "https://api.github.com/users/justinmk/events{/privacy}", + "followers_url": "https://api.github.com/users/justinmk/followers", + "following_url": "https://api.github.com/users/justinmk/following{/other_user}", + "gists_url": "https://api.github.com/users/justinmk/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/justinmk", + "id": 1359421, + "login": "justinmk", + "node_id": "MDQ6VXNlcjEzNTk0MjE=", + "organizations_url": "https://api.github.com/users/justinmk/orgs", + "received_events_url": "https://api.github.com/users/justinmk/received_events", + "repos_url": "https://api.github.com/users/justinmk/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/justinmk/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/justinmk/subscriptions", + "type": "User", + "url": "https://api.github.com/users/justinmk" + } + }, + { + "author_association": "MEMBER", + "body": "@justinmk `ping -n 1 -w 30000` exits within a second.", + "created_at": "2018-03-18T19:55:34Z", + "html_url": "https://github.com/neovim/neovim/pull/8107#issuecomment-374039224", + "id": 374039224, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/8107", + "node_id": "MDEyOklzc3VlQ29tbWVudDM3NDAzOTIyNA==", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/374039224/reactions" + }, + "updated_at": "2018-03-18T19:55:34Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/374039224", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/8740057?v=4", + "events_url": "https://api.github.com/users/janlazo/events{/privacy}", + "followers_url": "https://api.github.com/users/janlazo/followers", + "following_url": "https://api.github.com/users/janlazo/following{/other_user}", + "gists_url": "https://api.github.com/users/janlazo/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/janlazo", + "id": 8740057, + "login": "janlazo", + "node_id": "MDQ6VXNlcjg3NDAwNTc=", + "organizations_url": "https://api.github.com/users/janlazo/orgs", + "received_events_url": "https://api.github.com/users/janlazo/received_events", + "repos_url": "https://api.github.com/users/janlazo/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/janlazo/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/janlazo/subscriptions", + "type": "User", + "url": "https://api.github.com/users/janlazo" + } + }, + { + "author_association": "MEMBER", + "body": "@janlazo Gah, I changed that at the last minute to match https://github.com/neovim/neovim/blob/3bf57c117120327930fb39935d1672558f58d148/test/functional/terminal/ex_terminal_spec.lua#L51\r\n\r\nI will fix after #8120 , when https://github.com/neovim/neovim/pull/8107/commits/ae409b5042abdbec67305a063cf921ddffcce0c8 can be reverted.", + "created_at": "2018-03-18T20:21:57Z", + "html_url": "https://github.com/neovim/neovim/pull/8107#issuecomment-374041724", + "id": 374041724, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/8107", + "node_id": "MDEyOklzc3VlQ29tbWVudDM3NDA0MTcyNA==", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/374041724/reactions" + }, + "updated_at": "2018-03-18T20:21:57Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/374041724", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/1359421?v=4", + "events_url": "https://api.github.com/users/justinmk/events{/privacy}", + "followers_url": "https://api.github.com/users/justinmk/followers", + "following_url": "https://api.github.com/users/justinmk/following{/other_user}", + "gists_url": "https://api.github.com/users/justinmk/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/justinmk", + "id": 1359421, + "login": "justinmk", + "node_id": "MDQ6VXNlcjEzNTk0MjE=", + "organizations_url": "https://api.github.com/users/justinmk/orgs", + "received_events_url": "https://api.github.com/users/justinmk/received_events", + "repos_url": "https://api.github.com/users/justinmk/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/justinmk/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/justinmk/subscriptions", + "type": "User", + "url": "https://api.github.com/users/justinmk" + } + }, + { + "author_association": "MEMBER", + "body": "My bad on that commit. I used ping for <= 1 sec. timeout but any program that exits quickly would have sufficed because of how for loops work on cmd.exe. Powershell has a long startup (2-3 sec. to run `exit 4` for `jobwait()` test) so I couldn't use `Start-Sleep -Milliseconds 100`.", + "created_at": "2018-03-18T23:41:42Z", + "html_url": "https://github.com/neovim/neovim/pull/8107#issuecomment-374067396", + "id": 374067396, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/8107", + "node_id": "MDEyOklzc3VlQ29tbWVudDM3NDA2NzM5Ng==", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/374067396/reactions" + }, + "updated_at": "2018-03-18T23:41:42Z", + "url": "https://api.github.com/repos/neovim/neovim/issues/comments/374067396", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/8740057?v=4", + "events_url": "https://api.github.com/users/janlazo/events{/privacy}", + "followers_url": "https://api.github.com/users/janlazo/followers", + "following_url": "https://api.github.com/users/janlazo/following{/other_user}", + "gists_url": "https://api.github.com/users/janlazo/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/janlazo", + "id": 8740057, + "login": "janlazo", + "node_id": "MDQ6VXNlcjg3NDAwNTc=", + "organizations_url": "https://api.github.com/users/janlazo/orgs", + "received_events_url": "https://api.github.com/users/janlazo/received_events", + "repos_url": "https://api.github.com/users/janlazo/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/janlazo/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/janlazo/subscriptions", + "type": "User", + "url": "https://api.github.com/users/janlazo" + } + } + ], + "comments_url": "https://api.github.com/repos/neovim/neovim/issues/8107/comments", + "commits_url": "https://api.github.com/repos/neovim/neovim/pulls/8107/commits", + "created_at": "2018-03-06T08:54:05Z", + "diff_url": "https://github.com/neovim/neovim/pull/8107.diff", + "draft": false, + "head": { + "label": "justinmk:job-setsid", + "ref": "job-setsid", + "repo": { + "allow_forking": true, + "archive_url": "https://api.github.com/repos/justinmk/neovim/{archive_format}{/ref}", + "archived": false, + "assignees_url": "https://api.github.com/repos/justinmk/neovim/assignees{/user}", + "blobs_url": "https://api.github.com/repos/justinmk/neovim/git/blobs{/sha}", + "branches_url": "https://api.github.com/repos/justinmk/neovim/branches{/branch}", + "clone_url": "https://github.com/justinmk/neovim.git", + "collaborators_url": "https://api.github.com/repos/justinmk/neovim/collaborators{/collaborator}", + "comments_url": "https://api.github.com/repos/justinmk/neovim/comments{/number}", + "commits_url": "https://api.github.com/repos/justinmk/neovim/commits{/sha}", + "compare_url": "https://api.github.com/repos/justinmk/neovim/compare/{base}...{head}", + "contents_url": "https://api.github.com/repos/justinmk/neovim/contents/{+path}", + "contributors_url": "https://api.github.com/repos/justinmk/neovim/contributors", + "created_at": "2014-02-28T23:17:54Z", + "default_branch": "master", + "deployments_url": "https://api.github.com/repos/justinmk/neovim/deployments", + "description": "somewhere in todo.txt", + "disabled": false, + "downloads_url": "https://api.github.com/repos/justinmk/neovim/downloads", + "events_url": "https://api.github.com/repos/justinmk/neovim/events", + "fork": true, + "forks": 1, + "forks_count": 1, + "forks_url": "https://api.github.com/repos/justinmk/neovim/forks", + "full_name": "justinmk/neovim", + "git_commits_url": "https://api.github.com/repos/justinmk/neovim/git/commits{/sha}", + "git_refs_url": "https://api.github.com/repos/justinmk/neovim/git/refs{/sha}", + "git_tags_url": "https://api.github.com/repos/justinmk/neovim/git/tags{/sha}", + "git_url": "git://github.com/justinmk/neovim.git", + "has_discussions": false, + "has_downloads": true, + "has_issues": false, + "has_pages": false, + "has_projects": false, + "has_wiki": false, + "homepage": "http://neovim.io", + "hooks_url": "https://api.github.com/repos/justinmk/neovim/hooks", + "html_url": "https://github.com/justinmk/neovim", + "id": 17302877, + "is_template": false, + "issue_comment_url": "https://api.github.com/repos/justinmk/neovim/issues/comments{/number}", + "issue_events_url": "https://api.github.com/repos/justinmk/neovim/issues/events{/number}", + "issues_url": "https://api.github.com/repos/justinmk/neovim/issues{/number}", + "keys_url": "https://api.github.com/repos/justinmk/neovim/keys{/key_id}", + "labels_url": "https://api.github.com/repos/justinmk/neovim/labels{/name}", + "language": "Vim Script", + "languages_url": "https://api.github.com/repos/justinmk/neovim/languages", + "license": { + "key": "other", + "name": "Other", + "node_id": "MDc6TGljZW5zZTA=", + "spdx_id": "NOASSERTION", + "url": null + }, + "merges_url": "https://api.github.com/repos/justinmk/neovim/merges", + "milestones_url": "https://api.github.com/repos/justinmk/neovim/milestones{/number}", + "mirror_url": null, + "name": "neovim", + "node_id": "MDEwOlJlcG9zaXRvcnkxNzMwMjg3Nw==", + "notifications_url": "https://api.github.com/repos/justinmk/neovim/notifications{?since,all,participating}", + "open_issues": 0, + "open_issues_count": 0, + "owner": { + "avatar_url": "https://avatars.githubusercontent.com/u/1359421?v=4", + "events_url": "https://api.github.com/users/justinmk/events{/privacy}", + "followers_url": "https://api.github.com/users/justinmk/followers", + "following_url": "https://api.github.com/users/justinmk/following{/other_user}", + "gists_url": "https://api.github.com/users/justinmk/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/justinmk", + "id": 1359421, + "login": "justinmk", + "node_id": "MDQ6VXNlcjEzNTk0MjE=", + "organizations_url": "https://api.github.com/users/justinmk/orgs", + "received_events_url": "https://api.github.com/users/justinmk/received_events", + "repos_url": "https://api.github.com/users/justinmk/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/justinmk/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/justinmk/subscriptions", + "type": "User", + "url": "https://api.github.com/users/justinmk" + }, + "private": false, + "pulls_url": "https://api.github.com/repos/justinmk/neovim/pulls{/number}", + "pushed_at": "2023-08-04T13:54:40Z", + "releases_url": "https://api.github.com/repos/justinmk/neovim/releases{/id}", + "size": 241958, + "ssh_url": "git@github.com:justinmk/neovim.git", + "stargazers_count": 1, + "stargazers_url": "https://api.github.com/repos/justinmk/neovim/stargazers", + "statuses_url": "https://api.github.com/repos/justinmk/neovim/statuses/{sha}", + "subscribers_url": "https://api.github.com/repos/justinmk/neovim/subscribers", + "subscription_url": "https://api.github.com/repos/justinmk/neovim/subscription", + "svn_url": "https://github.com/justinmk/neovim", + "tags_url": "https://api.github.com/repos/justinmk/neovim/tags", + "teams_url": "https://api.github.com/repos/justinmk/neovim/teams", + "topics": [], + "trees_url": "https://api.github.com/repos/justinmk/neovim/git/trees{/sha}", + "updated_at": "2023-07-25T13:51:02Z", + "url": "https://api.github.com/repos/justinmk/neovim", + "visibility": "public", + "watchers": 1, + "watchers_count": 1, + "web_commit_signoff_required": false + }, + "sha": "ae409b5042abdbec67305a063cf921ddffcce0c8", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/1359421?v=4", + "events_url": "https://api.github.com/users/justinmk/events{/privacy}", + "followers_url": "https://api.github.com/users/justinmk/followers", + "following_url": "https://api.github.com/users/justinmk/following{/other_user}", + "gists_url": "https://api.github.com/users/justinmk/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/justinmk", + "id": 1359421, + "login": "justinmk", + "node_id": "MDQ6VXNlcjEzNTk0MjE=", + "organizations_url": "https://api.github.com/users/justinmk/orgs", + "received_events_url": "https://api.github.com/users/justinmk/received_events", + "repos_url": "https://api.github.com/users/justinmk/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/justinmk/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/justinmk/subscriptions", + "type": "User", + "url": "https://api.github.com/users/justinmk" + } + }, + "html_url": "https://github.com/neovim/neovim/pull/8107", + "id": 173092880, + "issue_url": "https://api.github.com/repos/neovim/neovim/issues/8107", + "labels": [ + { + "color": "c5def5", + "default": false, + "description": "libnvim, Nvim RPC API", + "id": 103819671, + "name": "api", + "node_id": "MDU6TGFiZWwxMDM4MTk2NzE=", + "url": "https://api.github.com/repos/neovim/neovim/labels/api" + }, + { + "color": "c5def5", + "default": false, + "description": "", + "id": 182884815, + "name": "job-control", + "node_id": "MDU6TGFiZWwxODI4ODQ4MTU=", + "url": "https://api.github.com/repos/neovim/neovim/labels/job-control" + } + ], + "locked": false, + "merge_commit_sha": "4e02f1ab871f30d80250537877924d522497493b", + "merged_at": "2018-03-18T17:36:02Z", + "milestone": { + "closed_at": "2018-06-16T19:59:43Z", + "closed_issues": 119, + "created_at": "2017-11-13T01:08:52Z", + "creator": { + "avatar_url": "https://avatars.githubusercontent.com/u/1359421?v=4", + "events_url": "https://api.github.com/users/justinmk/events{/privacy}", + "followers_url": "https://api.github.com/users/justinmk/followers", + "following_url": "https://api.github.com/users/justinmk/following{/other_user}", + "gists_url": "https://api.github.com/users/justinmk/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/justinmk", + "id": 1359421, + "login": "justinmk", + "node_id": "MDQ6VXNlcjEzNTk0MjE=", + "organizations_url": "https://api.github.com/users/justinmk/orgs", + "received_events_url": "https://api.github.com/users/justinmk/received_events", + "repos_url": "https://api.github.com/users/justinmk/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/justinmk/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/justinmk/subscriptions", + "type": "User", + "url": "https://api.github.com/users/justinmk" + }, + "description": "", + "due_on": "2018-06-10T07:00:00Z", + "html_url": "https://github.com/neovim/neovim/milestone/18", + "id": 2906664, + "labels_url": "https://api.github.com/repos/neovim/neovim/milestones/18/labels", + "node_id": "MDk6TWlsZXN0b25lMjkwNjY2NA==", + "number": 18, + "open_issues": 0, + "state": "closed", + "title": "0.3", + "updated_at": "2018-06-26T14:51:16Z", + "url": "https://api.github.com/repos/neovim/neovim/milestones/18" + }, + "node_id": "MDExOlB1bGxSZXF1ZXN0MTczMDkyODgw", + "number": 8107, + "patch_url": "https://github.com/neovim/neovim/pull/8107.patch", + "requested_reviewers": [], + "requested_teams": [], + "review_comment_url": "https://api.github.com/repos/neovim/neovim/pulls/comments{/number}", + "review_comments_url": "https://api.github.com/repos/neovim/neovim/pulls/8107/comments", + "state": "closed", + "statuses_url": "https://api.github.com/repos/neovim/neovim/statuses/ae409b5042abdbec67305a063cf921ddffcce0c8", + "title": "jobs: child proc must have a separate process-group", + "updated_at": "2023-08-04T22:27:13Z", + "url": "https://api.github.com/repos/neovim/neovim/pulls/8107", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/1359421?v=4", + "events_url": "https://api.github.com/users/justinmk/events{/privacy}", + "followers_url": "https://api.github.com/users/justinmk/followers", + "following_url": "https://api.github.com/users/justinmk/following{/other_user}", + "gists_url": "https://api.github.com/users/justinmk/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/justinmk", + "id": 1359421, + "login": "justinmk", + "node_id": "MDQ6VXNlcjEzNTk0MjE=", + "organizations_url": "https://api.github.com/users/justinmk/orgs", + "received_events_url": "https://api.github.com/users/justinmk/received_events", + "repos_url": "https://api.github.com/users/justinmk/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/justinmk/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/justinmk/subscriptions", + "type": "User", + "url": "https://api.github.com/users/justinmk" + } +} \ No newline at end of file diff --git a/repositories/nvim-lspconfig/issues/2465.json b/repositories/nvim-lspconfig/issues/2465.json index 527e96e3..24712f29 100644 --- a/repositories/nvim-lspconfig/issues/2465.json +++ b/repositories/nvim-lspconfig/issues/2465.json @@ -401,9 +401,53 @@ "type": "User", "url": "https://api.github.com/users/rudesome" } + }, + { + "author_association": "NONE", + "body": "@MoaidHathot, @rudesome did either of you get this working? I'm fairly sure I'm running into the same problem (Win 11 corp device)", + "created_at": "2023-08-04T08:21:12Z", + "html_url": "https://github.com/neovim/nvim-lspconfig/issues/2465#issuecomment-1665208486", + "id": 1665208486, + "issue_url": "https://api.github.com/repos/neovim/nvim-lspconfig/issues/2465", + "node_id": "IC_kwDODTQC185jQRCm", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/nvim-lspconfig/issues/comments/1665208486/reactions" + }, + "updated_at": "2023-08-04T08:21:12Z", + "url": "https://api.github.com/repos/neovim/nvim-lspconfig/issues/comments/1665208486", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/39483124?v=4", + "events_url": "https://api.github.com/users/scottmckendry/events{/privacy}", + "followers_url": "https://api.github.com/users/scottmckendry/followers", + "following_url": "https://api.github.com/users/scottmckendry/following{/other_user}", + "gists_url": "https://api.github.com/users/scottmckendry/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/scottmckendry", + "id": 39483124, + "login": "scottmckendry", + "node_id": "MDQ6VXNlcjM5NDgzMTI0", + "organizations_url": "https://api.github.com/users/scottmckendry/orgs", + "received_events_url": "https://api.github.com/users/scottmckendry/received_events", + "repos_url": "https://api.github.com/users/scottmckendry/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/scottmckendry/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/scottmckendry/subscriptions", + "type": "User", + "url": "https://api.github.com/users/scottmckendry" + } } ], - "comments": 9, + "comments": 10, "comments_url": "https://api.github.com/repos/neovim/nvim-lspconfig/issues/2465/comments", "created_at": "2023-02-15T05:30:22Z", "events_url": "https://api.github.com/repos/neovim/nvim-lspconfig/issues/2465/events", @@ -443,7 +487,7 @@ "state_reason": "completed", "timeline_url": "https://api.github.com/repos/neovim/nvim-lspconfig/issues/2465/timeline", "title": "Powershell_es process its started but Neovim never attaches a buffer to it", - "updated_at": "2023-06-27T07:49:27Z", + "updated_at": "2023-08-04T08:21:13Z", "url": "https://api.github.com/repos/neovim/nvim-lspconfig/issues/2465", "user": { "avatar_url": "https://avatars.githubusercontent.com/u/53507599?v=4", diff --git a/repositories/nvim-lspconfig/issues/2733.json b/repositories/nvim-lspconfig/issues/2733.json index 38827965..c16bf469 100644 --- a/repositories/nvim-lspconfig/issues/2733.json +++ b/repositories/nvim-lspconfig/issues/2733.json @@ -401,9 +401,53 @@ "type": "User", "url": "https://api.github.com/users/giladsher" } + }, + { + "author_association": "NONE", + "body": "I was using [Window Terminal](https://apps.microsoft.com/store/detail/windows-terminal/9N0DX20HK701) with [Git Bash](https://gitforwindows.org/), and I was getting the same error. If I keep using Windows Terminal but use PowerShell instead of Bash, the error goes away.", + "created_at": "2023-08-04T15:01:27Z", + "html_url": "https://github.com/neovim/nvim-lspconfig/issues/2733#issuecomment-1665752217", + "id": 1665752217, + "issue_url": "https://api.github.com/repos/neovim/nvim-lspconfig/issues/2733", + "node_id": "IC_kwDODTQC185jSVyZ", + "performed_via_github_app": null, + "reactions": { + "+1": 0, + "-1": 0, + "confused": 0, + "eyes": 0, + "heart": 0, + "hooray": 0, + "laugh": 0, + "rocket": 0, + "total_count": 0, + "url": "https://api.github.com/repos/neovim/nvim-lspconfig/issues/comments/1665752217/reactions" + }, + "updated_at": "2023-08-04T15:01:27Z", + "url": "https://api.github.com/repos/neovim/nvim-lspconfig/issues/comments/1665752217", + "user": { + "avatar_url": "https://avatars.githubusercontent.com/u/45417674?v=4", + "events_url": "https://api.github.com/users/CalebJohnHunt/events{/privacy}", + "followers_url": "https://api.github.com/users/CalebJohnHunt/followers", + "following_url": "https://api.github.com/users/CalebJohnHunt/following{/other_user}", + "gists_url": "https://api.github.com/users/CalebJohnHunt/gists{/gist_id}", + "gravatar_id": "", + "html_url": "https://github.com/CalebJohnHunt", + "id": 45417674, + "login": "CalebJohnHunt", + "node_id": "MDQ6VXNlcjQ1NDE3Njc0", + "organizations_url": "https://api.github.com/users/CalebJohnHunt/orgs", + "received_events_url": "https://api.github.com/users/CalebJohnHunt/received_events", + "repos_url": "https://api.github.com/users/CalebJohnHunt/repos", + "site_admin": false, + "starred_url": "https://api.github.com/users/CalebJohnHunt/starred{/owner}{/repo}", + "subscriptions_url": "https://api.github.com/users/CalebJohnHunt/subscriptions", + "type": "User", + "url": "https://api.github.com/users/CalebJohnHunt" + } } ], - "comments": 9, + "comments": 10, "comments_url": "https://api.github.com/repos/neovim/nvim-lspconfig/issues/2733/comments", "created_at": "2023-07-25T06:46:19Z", "events_url": "https://api.github.com/repos/neovim/nvim-lspconfig/issues/2733/events", @@ -443,7 +487,7 @@ "state_reason": null, "timeline_url": "https://api.github.com/repos/neovim/nvim-lspconfig/issues/2733/timeline", "title": "#2673 Breaks golsp", - "updated_at": "2023-07-28T22:56:52Z", + "updated_at": "2023-08-04T15:01:28Z", "url": "https://api.github.com/repos/neovim/nvim-lspconfig/issues/2733", "user": { "avatar_url": "https://avatars.githubusercontent.com/u/27494262?v=4", diff --git a/repositories/nvim-lspconfig/pulls/2746.json b/repositories/nvim-lspconfig/pulls/2746.json index 6c8fefb3..ffd6dbc5 100644 --- a/repositories/nvim-lspconfig/pulls/2746.json +++ b/repositories/nvim-lspconfig/pulls/2746.json @@ -28,7 +28,7 @@ "active_lock_reason": null, "assignee": null, "assignees": [], - "author_association": "FIRST_TIME_CONTRIBUTOR", + "author_association": "CONTRIBUTOR", "auto_merge": null, "base": { "label": "neovim:master", @@ -94,8 +94,8 @@ "name": "nvim-lspconfig", "node_id": "MDEwOlJlcG9zaXRvcnkyMjE1MTI0MDc=", "notifications_url": "https://api.github.com/repos/neovim/nvim-lspconfig/notifications{?since,all,participating}", - "open_issues": 52, - "open_issues_count": 52, + "open_issues": 51, + "open_issues_count": 51, "owner": { "avatar_url": "https://avatars.githubusercontent.com/u/6471485?v=4", "events_url": "https://api.github.com/users/neovim/events{/privacy}", @@ -118,11 +118,11 @@ }, "private": false, "pulls_url": "https://api.github.com/repos/neovim/nvim-lspconfig/pulls{/number}", - "pushed_at": "2023-08-03T18:48:40Z", + "pushed_at": "2023-08-04T05:57:48Z", "releases_url": "https://api.github.com/repos/neovim/nvim-lspconfig/releases{/id}", - "size": 3350, + "size": 3351, "ssh_url": "git@github.com:neovim/nvim-lspconfig.git", - "stargazers_count": 7865, + "stargazers_count": 7869, "stargazers_url": "https://api.github.com/repos/neovim/nvim-lspconfig/stargazers", "statuses_url": "https://api.github.com/repos/neovim/nvim-lspconfig/statuses/{sha}", "subscribers_url": "https://api.github.com/repos/neovim/nvim-lspconfig/subscribers", @@ -140,11 +140,11 @@ "vim" ], "trees_url": "https://api.github.com/repos/neovim/nvim-lspconfig/git/trees{/sha}", - "updated_at": "2023-08-03T22:28:27Z", + "updated_at": "2023-08-05T00:23:23Z", "url": "https://api.github.com/repos/neovim/nvim-lspconfig", "visibility": "public", - "watchers": 7865, - "watchers_count": 7865, + "watchers": 7869, + "watchers_count": 7869, "web_commit_signoff_required": false }, "sha": "a59d74e12340242c0735666fb2e91afdbe6f2496", @@ -170,7 +170,7 @@ } }, "body": "According to https://github.com/neovim/neovim/commit/c618b314c6a266806edf692122b16ba9ff7a8e10", - "closed_at": null, + "closed_at": "2023-08-04T05:57:48Z", "comment_data": [], "comment_regular_data": [], "comments_url": "https://api.github.com/repos/neovim/nvim-lspconfig/issues/2746/comments", @@ -314,8 +314,8 @@ "issue_url": "https://api.github.com/repos/neovim/nvim-lspconfig/issues/2746", "labels": [], "locked": false, - "merge_commit_sha": "ba26b23c3ea8434ff0a664c24de99741d5cef910", - "merged_at": null, + "merge_commit_sha": "c0de180ddb3df36feef8ac3607670894d0e7497f", + "merged_at": "2023-08-04T05:57:48Z", "milestone": null, "node_id": "PR_kwDODTQC185XItPx", "number": 2746, @@ -324,10 +324,10 @@ "requested_teams": [], "review_comment_url": "https://api.github.com/repos/neovim/nvim-lspconfig/pulls/comments{/number}", "review_comments_url": "https://api.github.com/repos/neovim/nvim-lspconfig/pulls/2746/comments", - "state": "open", + "state": "closed", "statuses_url": "https://api.github.com/repos/neovim/nvim-lspconfig/statuses/8041cb18e4791259afd6f9e1a98fbefbce703f25", "title": "docs: rename deprecated `resolved_capabilities` -> `server_capabilities`", - "updated_at": "2023-08-03T18:50:26Z", + "updated_at": "2023-08-04T05:57:48Z", "url": "https://api.github.com/repos/neovim/nvim-lspconfig/pulls/2746", "user": { "avatar_url": "https://avatars.githubusercontent.com/u/49063932?v=4",