{"action":"created","issue":{"url":"https://api.github.com/repos/melpa/melpa/issues/5684","repository_url":"https://api.github.com/repos/melpa/melpa","labels_url":"https://api.github.com/repos/melpa/melpa/issues/5684/labels{/name}","comments_url":"https://api.github.com/repos/melpa/melpa/issues/5684/comments","events_url":"https://api.github.com/repos/melpa/melpa/issues/5684/events","html_url":"https://github.com/melpa/melpa/pull/5684","id":349744021,"node_id":"MDExOlB1bGxSZXF1ZXN0MjA3NzgwNjU1","number":5684,"title":"Add recipe for comb","user":{"login":"cyrus-and","id":1660263,"node_id":"MDQ6VXNlcjE2NjAyNjM=","avatar_url":"https://avatars2.githubusercontent.com/u/1660263?v=4","gravatar_id":"","url":"https://api.github.com/users/cyrus-and","html_url":"https://github.com/cyrus-and","followers_url":"https://api.github.com/users/cyrus-and/followers","following_url":"https://api.github.com/users/cyrus-and/following{/other_user}","gists_url":"https://api.github.com/users/cyrus-and/gists{/gist_id}","starred_url":"https://api.github.com/users/cyrus-and/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cyrus-and/subscriptions","organizations_url":"https://api.github.com/users/cyrus-and/orgs","repos_url":"https://api.github.com/users/cyrus-and/repos","events_url":"https://api.github.com/users/cyrus-and/events{/privacy}","received_events_url":"https://api.github.com/users/cyrus-and/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":5,"created_at":"2018-08-11T15:56:58Z","updated_at":"2018-08-13T10:53:23Z","closed_at":null,"author_association":"CONTRIBUTOR","pull_request":{"url":"https://api.github.com/repos/melpa/melpa/pulls/5684","html_url":"https://github.com/melpa/melpa/pull/5684","diff_url":"https://github.com/melpa/melpa/pull/5684.diff","patch_url":"https://github.com/melpa/melpa/pull/5684.patch"},"body":"### Brief summary of what the package does\r\n\r\nComb is a native Emacs Lisp solution to search, browse and annotate occurrences of regular expressions in files. The interactive interface allows to perform an exhaustive classification of all the results to rule out false positives and asses proper matches during manual static analysis.\r\n\r\n### Direct link to the package repository\r\n\r\nhttps://github.com/cyrus-and/comb\r\n\r\n### Your association with the package\r\n\r\nAuthor and maintainer.\r\n\r\n### Relevant communications with the upstream package maintainer\r\n\r\nThe package summary is 59 characters long instead of the 50 required by package-lint, but there are plenty of packages that exceed this limit in MELPA. Since it's already quite condensed I would like to keep it as it is, but if it's a problem I can bring it down to 50.\r\n\r\nAlso package-lint and checkdoc have been run against the main `.el` file only, I don't know what are the best practices here, e.g., the commentary and the license are not present in the other files.\r\n\r\n### Checklist\r\n\r\nPlease confirm with `x`:\r\n\r\n- [x] The package is released under a [GPL-Compatible Free Software License](https://www.gnu.org/licenses/license-list.en.html#GPLCompatibleLicenses).\r\n- [x] I've read [CONTRIBUTING.org](https://github.com/melpa/melpa/blob/master/CONTRIBUTING.org)\r\n- [x] I've used the latest version of [package-lint](https://github.com/purcell/package-lint) to check for packaging issues, and addressed its feedback (**see above**)\r\n- [x] My elisp byte-compiles cleanly\r\n- [x] `M-x checkdoc` is happy with my docstrings\r\n- [x] I've built and installed the package using the instructions in [CONTRIBUTING.org](https://github.com/melpa/melpa/blob/master/CONTRIBUTING.org)\r\n"},"comment":{"url":"https://api.github.com/repos/melpa/melpa/issues/comments/412480431","html_url":"https://github.com/melpa/melpa/pull/5684#issuecomment-412480431","issue_url":"https://api.github.com/repos/melpa/melpa/issues/5684","id":412480431,"node_id":"MDEyOklzc3VlQ29tbWVudDQxMjQ4MDQzMQ==","user":{"login":"cyrus-and","id":1660263,"node_id":"MDQ6VXNlcjE2NjAyNjM=","avatar_url":"https://avatars2.githubusercontent.com/u/1660263?v=4","gravatar_id":"","url":"https://api.github.com/users/cyrus-and","html_url":"https://github.com/cyrus-and","followers_url":"https://api.github.com/users/cyrus-and/followers","following_url":"https://api.github.com/users/cyrus-and/following{/other_user}","gists_url":"https://api.github.com/users/cyrus-and/gists{/gist_id}","starred_url":"https://api.github.com/users/cyrus-and/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cyrus-and/subscriptions","organizations_url":"https://api.github.com/users/cyrus-and/orgs","repos_url":"https://api.github.com/users/cyrus-and/repos","events_url":"https://api.github.com/users/cyrus-and/events{/privacy}","received_events_url":"https://api.github.com/users/cyrus-and/received_events","type":"User","site_admin":false},"created_at":"2018-08-13T10:53:23Z","updated_at":"2018-08-13T10:53:23Z","author_association":"CONTRIBUTOR","body":"> Using a minor mode works fine for git-timemachine-mode, for example, and I think it would work fine for this package.\r\n\r\nYes, but the main difference here is that it switch to a new buffer, but I get the idea.\r\n\r\n> Also, I think the buffer should be the same major mode as the original\r\n\r\nWhat do you mean by that? The buffer mode is currently unchanged.\r\n\r\n> As soon as something else calls message, the prompt disappears.\r\n\r\nYes, which anyway never happens right now because any user action *refreshes* the message.\r\n\r\n> There are precedence issues. For example, I have h bound to help-command in normal state, and that is called instead of the default h.\r\n\r\nI don't get how this can happen... so if you do `M-: RET (read-key-sequence nil) RET h` you don't get \"h\"? I'm more interested in why [`use-local-map`][1] is not honored in vanilla evil mode:\r\n\r\n[1]: https://github.com/cyrus-and/comb/blob/700cada35ec9c71d6dc088c781d10e4b3d012820/comb-common.el#L80-L84\r\n\r\n> It's also not possible to customize comb's keybindings specifically for evil without a keymap. Currently, I'd actually have to disable evil for a comb session, and I don't think that's ideal.\r\n\r\nYou can do that via `M-x customize-group RET comb RET`.\r\n\r\n> Where do you see mistaken keypresses becoming an issue?\r\n\r\n> Is there some reason you would need to use use-global-map?\r\n\r\nI didn't like mixing comb commands with the rest, especially if they are bound to *simple* keys like `p` or `n`, I just don't find it coherent. But I understand the need of seamlessly doing something else. The incoherence here is that users should bind comb commands in such a way that there's no conflict with those existing global keybindings in order to allows them to do *something else*.\r\n\r\n---\r\n\r\nAnyway, let me play with this idea of the minor mode and do some experiments. I like the purpose of `lv` but I don't like that it randomly disappears, grows or gets replaced by another buffer. I'd need a more solid way to display the dashboard.\r\n\r\nAnother concern regards the keymap, take for example `git-timemachine-mode` it defines the minor mode keymap like this:\r\n\r\n```elisp\r\n:keymap\r\n'((\"p\" . git-timemachine-show-previous-revision)\r\n  (\"n\" . git-timemachine-show-next-revision)\r\n  (\"g\" . git-timemachine-show-nth-revision)\r\n  (\"t\" . git-timemachine-show-revision-fuzzy)\r\n  (\"q\" . git-timemachine-quit)\r\n  (\"w\" . git-timemachine-kill-abbreviated-revision)\r\n  (\"W\" . git-timemachine-kill-revision)\r\n  (\"b\" . git-timemachine-blame))\r\n```\r\n\r\nUsers can then add custom keybindings (I guess) like this:\r\n\r\n```elisp\r\n(define-key git-timemachine-mode-map (kbd \"x\") 'git-timemachine-quit)\r\n```\r\n\r\nBut what if they want to replace the whole keymap?\r\n\r\nIs there a better way than go and set `nil` for every entry?\r\n\r\n```elisp\r\n(define-key git-timemachine-mode-map (kbd \"q\") nil)\r\n```\r\n"}}
{"actor":{"display_login":"cyrus-and"}}