{"action":"created","issue":{"url":"https://api.github.com/repos/alphapapa/outshine/issues/19","repository_url":"https://api.github.com/repos/alphapapa/outshine","labels_url":"https://api.github.com/repos/alphapapa/outshine/issues/19/labels{/name}","comments_url":"https://api.github.com/repos/alphapapa/outshine/issues/19/comments","events_url":"https://api.github.com/repos/alphapapa/outshine/issues/19/events","html_url":"https://github.com/alphapapa/outshine/pull/19","id":336599519,"node_id":"MDExOlB1bGxSZXF1ZXN0MTk4MDEyOTM3","number":19,"title":"[WIP] Convert to a minor mode (Fix #18)","user":{"login":"thblt","id":2453136,"node_id":"MDQ6VXNlcjI0NTMxMzY=","avatar_url":"https://avatars2.githubusercontent.com/u/2453136?v=4","gravatar_id":"","url":"https://api.github.com/users/thblt","html_url":"https://github.com/thblt","followers_url":"https://api.github.com/users/thblt/followers","following_url":"https://api.github.com/users/thblt/following{/other_user}","gists_url":"https://api.github.com/users/thblt/gists{/gist_id}","starred_url":"https://api.github.com/users/thblt/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/thblt/subscriptions","organizations_url":"https://api.github.com/users/thblt/orgs","repos_url":"https://api.github.com/users/thblt/repos","events_url":"https://api.github.com/users/thblt/events{/privacy}","received_events_url":"https://api.github.com/users/thblt/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":21,"created_at":"2018-06-28T12:26:24Z","updated_at":"2018-12-30T17:09:58Z","closed_at":null,"author_association":"COLLABORATOR","pull_request":{"url":"https://api.github.com/repos/alphapapa/outshine/pulls/19","html_url":"https://github.com/alphapapa/outshine/pull/19","diff_url":"https://github.com/alphapapa/outshine/pull/19.diff","patch_url":"https://github.com/alphapapa/outshine/pull/19.patch"},"body":"This is a WIP PR to convert the activation mechanism from a hacky override to a regular minor mode.  \r\n\r\n![Calvin behaving](https://letusnerd.files.wordpress.com/2013/11/calvin9.png)\r\n\r\nThis PR is to track advancement, especially in case I give up before it's done (which may happen...), so anyone who feels like finishing the work could hopefully have half the job already done and the remaining part in a neat TODO  list.\r\n\r\n# TODO/FIXME\r\n\r\n## Namespace isolation issues \r\n\r\nThese issues concern isolation = not touching anything not defined in `outshine.el` and not in the `outshine-` pseudo namespaces (these two definitions should be strictly equivalent)\r\n\r\n- [x] `outshine-set-local-outline-regexp-and-level` sets `outline-level`[1]\r\n- [x] `outshine-set-local-outline-regexp-and-level` sets `outline-regexp`[1]\r\n- [x] `outshine-set-local-outline-regexp-and-level` sets `outline-heading-end-regexp`[1]\r\n\r\n[1] I don't think this can be avoided, but commit \"Save and restore outline- variables we manipulate\"  introduces a mechanism to revert theses variables to their original values when deactivating outshine.  \r\n\r\n- [ ] **IDEA** Would it be useful to save the modified values of these variables and to restore them only if they weren't modified externally?  (I don't think so, but maybe)\r\n\r\n## Purity issues\r\n\r\nThese issues concern purity:\r\n\r\n 1. `(require 'outshine)` should have no effect except defining *new* symbols in the `outshine-` pseudo namespace.\r\n 2. `(outshine-minor-mode 1)` should have no effect outside the current buffer.\r\n 3. `(progn (outshine-minor-mode 1) (outshine-minor-mode 0))` should have absolutely no effects.\r\n\r\n- [x] The first invocation of `(outshine-minor-mode 1`) adds `outshine--outline-minor-mode-hook` on `outline-minor-mode-hook`.  This is hard to avoid if we want sane behavior, and I don't consider it a bug.  (The purpose of this function is to deactivate outshine when outline gets deactivated)\r\n- [X] **SEVERE** What is the `defadvice org-store-log-note` for?  It isn't local, but it shouldn't be activated by `(require 'outshine)`.[2]  \r\n- [x] What is the series of `(put SYMBOL :advertised-binding BINDING)` useful for?\r\n- [ ] **SEVERE** https://github.com/alphapapa/outshine/pull/19#issuecomment-428995884\r\n\r\n[2] I still have no idea what that's for, but I wrapped the advice in `(when outshine-minor-mode` and moved the `defadvice` to `outshine--minor-mode-activate`\r\n\r\n## Compatibility\r\n\r\n - [ ] Fix Outorg compatibility.  Outorg calls `outshine-hook-function`.\r\n\r\n## Miscellaneous\r\n\r\n- [X] Should Outshine work with `outline-mode` as well (the major mode)?  In my tests, it doesn't work.   (No: see https://github.com/alphapapa/outshine/pull/19#issuecomment-402059191)\r\n- [ ] Slightly unrelated: outshine does not really *depend* on Outorg, but it knows how to use it.  Could we remove the dependency and replace it  with `(require 'outorg t) ... (when (featurep 'outorg) ...)`? "},"comment":{"url":"https://api.github.com/repos/alphapapa/outshine/issues/comments/450574063","html_url":"https://github.com/alphapapa/outshine/pull/19#issuecomment-450574063","issue_url":"https://api.github.com/repos/alphapapa/outshine/issues/19","id":450574063,"node_id":"MDEyOklzc3VlQ29tbWVudDQ1MDU3NDA2Mw==","user":{"login":"thblt","id":2453136,"node_id":"MDQ6VXNlcjI0NTMxMzY=","avatar_url":"https://avatars2.githubusercontent.com/u/2453136?v=4","gravatar_id":"","url":"https://api.github.com/users/thblt","html_url":"https://github.com/thblt","followers_url":"https://api.github.com/users/thblt/followers","following_url":"https://api.github.com/users/thblt/following{/other_user}","gists_url":"https://api.github.com/users/thblt/gists{/gist_id}","starred_url":"https://api.github.com/users/thblt/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/thblt/subscriptions","organizations_url":"https://api.github.com/users/thblt/orgs","repos_url":"https://api.github.com/users/thblt/repos","events_url":"https://api.github.com/users/thblt/events{/privacy}","received_events_url":"https://api.github.com/users/thblt/received_events","type":"User","site_admin":false},"created_at":"2018-12-30T17:09:58Z","updated_at":"2018-12-30T17:09:58Z","author_association":"COLLABORATOR","body":"@tj64 (and others): what's the library you use to extract comments in outshine.el into a `README.md`?  I tried el2markdown, it doesn't really work with those comments."}}
{"actor":{"display_login":"thblt"}}