{"action":"created","comment":{"url":"https://api.github.com/repos/neovim/neovim/pulls/comments/125161807","pull_request_review_id":47529944,"id":125161807,"diff_hunk":"@@ -52,6 +52,8 @@ typedef struct hist_entry {\n   list_T *additional_elements;  ///< Additional entries from ShaDa file.\n } histentry_T;\n \n+extern Callback getln_input_callback;","path":"src/nvim/ex_getln.h","position":4,"original_position":4,"commit_id":"7ab152aaa58f493e54d03a15960b8a288196e588","original_commit_id":"7ab152aaa58f493e54d03a15960b8a288196e588","user":{"login":"bfredl","id":1363104,"avatar_url":"https://avatars2.githubusercontent.com/u/1363104?v=3","gravatar_id":"","url":"https://api.github.com/users/bfredl","html_url":"https://github.com/bfredl","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}","starred_url":"https://api.github.com/users/bfredl/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bfredl/subscriptions","organizations_url":"https://api.github.com/users/bfredl/orgs","repos_url":"https://api.github.com/users/bfredl/repos","events_url":"https://api.github.com/users/bfredl/events{/privacy}","received_events_url":"https://api.github.com/users/bfredl/received_events","type":"User","site_admin":false},"body":"why not make it part of `save_ccline` ?","created_at":"2017-07-01T12:56:46Z","updated_at":"2017-07-01T12:56:46Z","html_url":"https://github.com/neovim/neovim/pull/6364#discussion_r125161807","pull_request_url":"https://api.github.com/repos/neovim/neovim/pulls/6364","_links":{"self":{"href":"https://api.github.com/repos/neovim/neovim/pulls/comments/125161807"},"html":{"href":"https://github.com/neovim/neovim/pull/6364#discussion_r125161807"},"pull_request":{"href":"https://api.github.com/repos/neovim/neovim/pulls/6364"}}},"pull_request":{"url":"https://api.github.com/repos/neovim/neovim/pulls/6364","id":112610322,"html_url":"https://github.com/neovim/neovim/pull/6364","diff_url":"https://github.com/neovim/neovim/pull/6364.diff","patch_url":"https://github.com/neovim/neovim/pull/6364.patch","issue_url":"https://api.github.com/repos/neovim/neovim/issues/6364","number":6364,"state":"open","locked":false,"title":"[WIP] Add a way to color command-line","user":{"login":"ZyX-I","id":322097,"avatar_url":"https://avatars0.githubusercontent.com/u/322097?v=3","gravatar_id":"","url":"https://api.github.com/users/ZyX-I","html_url":"https://github.com/ZyX-I","followers_url":"https://api.github.com/users/ZyX-I/followers","following_url":"https://api.github.com/users/ZyX-I/following{/other_user}","gists_url":"https://api.github.com/users/ZyX-I/gists{/gist_id}","starred_url":"https://api.github.com/users/ZyX-I/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ZyX-I/subscriptions","organizations_url":"https://api.github.com/users/ZyX-I/orgs","repos_url":"https://api.github.com/users/ZyX-I/repos","events_url":"https://api.github.com/users/ZyX-I/events{/privacy}","received_events_url":"https://api.github.com/users/ZyX-I/received_events","type":"User","site_admin":false},"body":"Based on #5119 as I do not want merge conflicts.\r\n\r\nThe idea is that we can color Neovim command-line. Ultimate goal is\r\n\r\n1. Refactor VimL parsing so it can produce information about colors (for `:`/command prompts).\r\n2. Refactor VimL expression parsing so it can produce informaiton about colors (for `=`/expr prompts).\r\n3. Add a way for the user to specify how his input() prompts should be colored.\r\n4. Add a way for the user to specify how his custom commands should be colored.\r\n\r\nThis is logical to split that into the following PRs:\r\n\r\n1. (This) add basic prompt coloring functionality. Adds a few callbacks, including one which may be used to make pygments color Ex commands and expressions for us. Also add a way for the user to color input() prompts. If some strange problems will not occur this part is going to be easy.\r\n2. Remove callback which colors expressions, move expressions parsing to `src/nvim/eval` and split it from execution, make it produce coloring information. Obsoletes or reuses expression parser from #243. Reuses tests from #243. Resulting code is going to be rather unoptimal: expressions are going to be reparsed each time.\r\n3. (Many PRs) port commands parsing from #243; most likely one-by-one since #243 is not good for highlighting and is rather outdated. Execute commands with C, no translation. Again reparse things each time up until all commands are ported.\r\n4. Actually build AST for functions and execute it without reparsing. Though this has nothing to do with command-line coloring.\r\n5. Only now provide `:command -color=funcname` for coloring user commands.\r\n\r\n---\r\n\r\nProposed API for input():\r\n\r\n`input(prompt :: String[, text :: String[, completion :: String]])`: no additions.\r\n\r\n`input(prompt :: String, options :: Dictionary)`, `options` allow keys text, completion and highlight. No third argument allowed.","created_at":"2017-03-26T01:40:33Z","updated_at":"2017-07-01T12:56:46Z","closed_at":null,"merged_at":null,"merge_commit_sha":"7e8632fc9990f108959433cce5d0cacf90ac6889","assignee":null,"assignees":[],"requested_reviewers":[],"milestone":{"url":"https://api.github.com/repos/neovim/neovim/milestones/11","html_url":"https://github.com/neovim/neovim/milestone/11","labels_url":"https://api.github.com/repos/neovim/neovim/milestones/11/labels","id":1183890,"number":11,"title":"0.3","description":"","creator":{"login":"justinmk","id":1359421,"avatar_url":"https://avatars3.githubusercontent.com/u/1359421?v=3","gravatar_id":"","url":"https://api.github.com/users/justinmk","html_url":"https://github.com/justinmk","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}","starred_url":"https://api.github.com/users/justinmk/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/justinmk/subscriptions","organizations_url":"https://api.github.com/users/justinmk/orgs","repos_url":"https://api.github.com/users/justinmk/repos","events_url":"https://api.github.com/users/justinmk/events{/privacy}","received_events_url":"https://api.github.com/users/justinmk/received_events","type":"User","site_admin":false},"open_issues":205,"closed_issues":67,"state":"open","created_at":"2015-06-27T22:05:13Z","updated_at":"2017-06-30T00:48:57Z","due_on":null,"closed_at":null},"commits_url":"https://api.github.com/repos/neovim/neovim/pulls/6364/commits","review_comments_url":"https://api.github.com/repos/neovim/neovim/pulls/6364/comments","review_comment_url":"https://api.github.com/repos/neovim/neovim/pulls/comments{/number}","comments_url":"https://api.github.com/repos/neovim/neovim/issues/6364/comments","statuses_url":"https://api.github.com/repos/neovim/neovim/statuses/7ab152aaa58f493e54d03a15960b8a288196e588","head":{"label":"ZyX-I:colored-cmdline","ref":"colored-cmdline","sha":"7ab152aaa58f493e54d03a15960b8a288196e588","user":{"login":"ZyX-I","id":322097,"avatar_url":"https://avatars0.githubusercontent.com/u/322097?v=3","gravatar_id":"","url":"https://api.github.com/users/ZyX-I","html_url":"https://github.com/ZyX-I","followers_url":"https://api.github.com/users/ZyX-I/followers","following_url":"https://api.github.com/users/ZyX-I/following{/other_user}","gists_url":"https://api.github.com/users/ZyX-I/gists{/gist_id}","starred_url":"https://api.github.com/users/ZyX-I/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ZyX-I/subscriptions","organizations_url":"https://api.github.com/users/ZyX-I/orgs","repos_url":"https://api.github.com/users/ZyX-I/repos","events_url":"https://api.github.com/users/ZyX-I/events{/privacy}","received_events_url":"https://api.github.com/users/ZyX-I/received_events","type":"User","site_admin":false},"repo":{"id":17312366,"name":"neovim","full_name":"ZyX-I/neovim","owner":{"login":"ZyX-I","id":322097,"avatar_url":"https://avatars0.githubusercontent.com/u/322097?v=3","gravatar_id":"","url":"https://api.github.com/users/ZyX-I","html_url":"https://github.com/ZyX-I","followers_url":"https://api.github.com/users/ZyX-I/followers","following_url":"https://api.github.com/users/ZyX-I/following{/other_user}","gists_url":"https://api.github.com/users/ZyX-I/gists{/gist_id}","starred_url":"https://api.github.com/users/ZyX-I/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ZyX-I/subscriptions","organizations_url":"https://api.github.com/users/ZyX-I/orgs","repos_url":"https://api.github.com/users/ZyX-I/repos","events_url":"https://api.github.com/users/ZyX-I/events{/privacy}","received_events_url":"https://api.github.com/users/ZyX-I/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/ZyX-I/neovim","description":"vim's rebirth for the 21st century","fork":true,"url":"https://api.github.com/repos/ZyX-I/neovim","forks_url":"https://api.github.com/repos/ZyX-I/neovim/forks","keys_url":"https://api.github.com/repos/ZyX-I/neovim/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ZyX-I/neovim/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ZyX-I/neovim/teams","hooks_url":"https://api.github.com/repos/ZyX-I/neovim/hooks","issue_events_url":"https://api.github.com/repos/ZyX-I/neovim/issues/events{/number}","events_url":"https://api.github.com/repos/ZyX-I/neovim/events","assignees_url":"https://api.github.com/repos/ZyX-I/neovim/assignees{/user}","branches_url":"https://api.github.com/repos/ZyX-I/neovim/branches{/branch}","tags_url":"https://api.github.com/repos/ZyX-I/neovim/tags","blobs_url":"https://api.github.com/repos/ZyX-I/neovim/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ZyX-I/neovim/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ZyX-I/neovim/git/refs{/sha}","trees_url":"https://api.github.com/repos/ZyX-I/neovim/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ZyX-I/neovim/statuses/{sha}","languages_url":"https://api.github.com/repos/ZyX-I/neovim/languages","stargazers_url":"https://api.github.com/repos/ZyX-I/neovim/stargazers","contributors_url":"https://api.github.com/repos/ZyX-I/neovim/contributors","subscribers_url":"https://api.github.com/repos/ZyX-I/neovim/subscribers","subscription_url":"https://api.github.com/repos/ZyX-I/neovim/subscription","commits_url":"https://api.github.com/repos/ZyX-I/neovim/commits{/sha}","git_commits_url":"https://api.github.com/repos/ZyX-I/neovim/git/commits{/sha}","comments_url":"https://api.github.com/repos/ZyX-I/neovim/comments{/number}","issue_comment_url":"https://api.github.com/repos/ZyX-I/neovim/issues/comments{/number}","contents_url":"https://api.github.com/repos/ZyX-I/neovim/contents/{+path}","compare_url":"https://api.github.com/repos/ZyX-I/neovim/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ZyX-I/neovim/merges","archive_url":"https://api.github.com/repos/ZyX-I/neovim/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ZyX-I/neovim/downloads","issues_url":"https://api.github.com/repos/ZyX-I/neovim/issues{/number}","pulls_url":"https://api.github.com/repos/ZyX-I/neovim/pulls{/number}","milestones_url":"https://api.github.com/repos/ZyX-I/neovim/milestones{/number}","notifications_url":"https://api.github.com/repos/ZyX-I/neovim/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ZyX-I/neovim/labels{/name}","releases_url":"https://api.github.com/repos/ZyX-I/neovim/releases{/id}","deployments_url":"https://api.github.com/repos/ZyX-I/neovim/deployments","created_at":"2014-03-01T10:04:37Z","updated_at":"2017-01-28T22:34:35Z","pushed_at":"2017-07-01T12:44:33Z","git_url":"git://github.com/ZyX-I/neovim.git","ssh_url":"git@github.com:ZyX-I/neovim.git","clone_url":"https://github.com/ZyX-I/neovim.git","svn_url":"https://github.com/ZyX-I/neovim","homepage":"http://neovim.org/","size":61887,"stargazers_count":11,"watchers_count":11,"language":"Vim script","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":1,"mirror_url":null,"open_issues_count":0,"forks":1,"open_issues":0,"watchers":11,"default_branch":"master"}},"base":{"label":"neovim:master","ref":"master","sha":"2b377d89dbe4174a74e021ffe4e8b86d0d729d0e","user":{"login":"neovim","id":6471485,"avatar_url":"https://avatars0.githubusercontent.com/u/6471485?v=3","gravatar_id":"","url":"https://api.github.com/users/neovim","html_url":"https://github.com/neovim","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}","starred_url":"https://api.github.com/users/neovim/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/neovim/subscriptions","organizations_url":"https://api.github.com/users/neovim/orgs","repos_url":"https://api.github.com/users/neovim/repos","events_url":"https://api.github.com/users/neovim/events{/privacy}","received_events_url":"https://api.github.com/users/neovim/received_events","type":"Organization","site_admin":false},"repo":{"id":16408992,"name":"neovim","full_name":"neovim/neovim","owner":{"login":"neovim","id":6471485,"avatar_url":"https://avatars0.githubusercontent.com/u/6471485?v=3","gravatar_id":"","url":"https://api.github.com/users/neovim","html_url":"https://github.com/neovim","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}","starred_url":"https://api.github.com/users/neovim/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/neovim/subscriptions","organizations_url":"https://api.github.com/users/neovim/orgs","repos_url":"https://api.github.com/users/neovim/repos","events_url":"https://api.github.com/users/neovim/events{/privacy}","received_events_url":"https://api.github.com/users/neovim/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/neovim/neovim","description":"Vim-fork focused on extensibility and usability.","fork":false,"url":"https://api.github.com/repos/neovim/neovim","forks_url":"https://api.github.com/repos/neovim/neovim/forks","keys_url":"https://api.github.com/repos/neovim/neovim/keys{/key_id}","collaborators_url":"https://api.github.com/repos/neovim/neovim/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/neovim/neovim/teams","hooks_url":"https://api.github.com/repos/neovim/neovim/hooks","issue_events_url":"https://api.github.com/repos/neovim/neovim/issues/events{/number}","events_url":"https://api.github.com/repos/neovim/neovim/events","assignees_url":"https://api.github.com/repos/neovim/neovim/assignees{/user}","branches_url":"https://api.github.com/repos/neovim/neovim/branches{/branch}","tags_url":"https://api.github.com/repos/neovim/neovim/tags","blobs_url":"https://api.github.com/repos/neovim/neovim/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/neovim/neovim/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/neovim/neovim/git/refs{/sha}","trees_url":"https://api.github.com/repos/neovim/neovim/git/trees{/sha}","statuses_url":"https://api.github.com/repos/neovim/neovim/statuses/{sha}","languages_url":"https://api.github.com/repos/neovim/neovim/languages","stargazers_url":"https://api.github.com/repos/neovim/neovim/stargazers","contributors_url":"https://api.github.com/repos/neovim/neovim/contributors","subscribers_url":"https://api.github.com/repos/neovim/neovim/subscribers","subscription_url":"https://api.github.com/repos/neovim/neovim/subscription","commits_url":"https://api.github.com/repos/neovim/neovim/commits{/sha}","git_commits_url":"https://api.github.com/repos/neovim/neovim/git/commits{/sha}","comments_url":"https://api.github.com/repos/neovim/neovim/comments{/number}","issue_comment_url":"https://api.github.com/repos/neovim/neovim/issues/comments{/number}","contents_url":"https://api.github.com/repos/neovim/neovim/contents/{+path}","compare_url":"https://api.github.com/repos/neovim/neovim/compare/{base}...{head}","merges_url":"https://api.github.com/repos/neovim/neovim/merges","archive_url":"https://api.github.com/repos/neovim/neovim/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/neovim/neovim/downloads","issues_url":"https://api.github.com/repos/neovim/neovim/issues{/number}","pulls_url":"https://api.github.com/repos/neovim/neovim/pulls{/number}","milestones_url":"https://api.github.com/repos/neovim/neovim/milestones{/number}","notifications_url":"https://api.github.com/repos/neovim/neovim/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/neovim/neovim/labels{/name}","releases_url":"https://api.github.com/repos/neovim/neovim/releases{/id}","deployments_url":"https://api.github.com/repos/neovim/neovim/deployments","created_at":"2014-01-31T13:39:22Z","updated_at":"2017-07-01T10:42:04Z","pushed_at":"2017-07-01T12:44:38Z","git_url":"git://github.com/neovim/neovim.git","ssh_url":"git@github.com:neovim/neovim.git","clone_url":"https://github.com/neovim/neovim.git","svn_url":"https://github.com/neovim/neovim","homepage":"https://salt.bountysource.com/teams/neovim","size":57255,"stargazers_count":23279,"watchers_count":23279,"language":"Vim script","has_issues":true,"has_projects":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":1684,"mirror_url":null,"open_issues_count":846,"forks":1684,"open_issues":846,"watchers":23279,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/neovim/neovim/pulls/6364"},"html":{"href":"https://github.com/neovim/neovim/pull/6364"},"issue":{"href":"https://api.github.com/repos/neovim/neovim/issues/6364"},"comments":{"href":"https://api.github.com/repos/neovim/neovim/issues/6364/comments"},"review_comments":{"href":"https://api.github.com/repos/neovim/neovim/pulls/6364/comments"},"review_comment":{"href":"https://api.github.com/repos/neovim/neovim/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/neovim/neovim/pulls/6364/commits"},"statuses":{"href":"https://api.github.com/repos/neovim/neovim/statuses/7ab152aaa58f493e54d03a15960b8a288196e588"}}}}
{"actor":{"display_login":"bfredl"}}