{"action":"created","issue":{"url":"https://api.github.com/repos/LightTable/LightTable/issues/1833","labels_url":"https://api.github.com/repos/LightTable/LightTable/issues/1833/labels{/name}","comments_url":"https://api.github.com/repos/LightTable/LightTable/issues/1833/comments","events_url":"https://api.github.com/repos/LightTable/LightTable/issues/1833/events","html_url":"https://github.com/LightTable/LightTable/issues/1833","id":55471660,"number":1833,"title":"delete plugin logic automated behavior versus user interaction explicit or implicit","user":{"login":"clojens","id":3727933,"avatar_url":"https://avatars.githubusercontent.com/u/3727933?v=3","gravatar_id":"","url":"https://api.github.com/users/clojens","html_url":"https://github.com/clojens","followers_url":"https://api.github.com/users/clojens/followers","following_url":"https://api.github.com/users/clojens/following{/other_user}","gists_url":"https://api.github.com/users/clojens/gists{/gist_id}","starred_url":"https://api.github.com/users/clojens/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/clojens/subscriptions","organizations_url":"https://api.github.com/users/clojens/orgs","repos_url":"https://api.github.com/users/clojens/repos","events_url":"https://api.github.com/users/clojens/events{/privacy}","received_events_url":"https://api.github.com/users/clojens/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":1,"created_at":"2015-01-26T11:21:32Z","updated_at":"2015-01-29T03:41:00Z","closed_at":null,"body":"I've found, when deleting a plugin the 'crude' way of `rm -rf ~/.config/LightTable/plugins`, when LT picks up, it is supposed to be removed after 2 consecutive tries unsuccesfully, however it does not always seem to 'kick in' because many times I could click \"Install missing\" and close/fire-up LT and it would persist nonetheless.\r\n\r\nOne of the points here probably is that, although to a certain degree the fault tolerance and automated fallback behavior is correctly assumed to be in order here, somewhat control is lacking on behalf of the user.\r\n\r\nIt would probably be better to have as popup buttons: `cancel`, `remove plugin from cache` (or list or memory, whatever) and `install missing` in the sense that the second option really isn't a explicit option currently. Perhaps even, one could argue the 2 tries fallback is somewhat superfluous if you take 'saving the user actions / clicks per operation' in the fact that left way or right, they'll be forced to make a choice here anyway. Cancel presumes \"not now but later again\" where install missing implies \"try now but don't arse me if you fail\" and removal says \"don't bother me ever again\", I get the feeling this probably a better granularity for this case where we resort to a modal dialog anyway, meaning we seek the input/interaction explicitely - it would serve the user to get a better response by asking the right questions straight away.\r\n\r\nThat having said, there is also the issue of behavior reloading right after `uninstall` in the plugin manager. As in it will trigger the above described automated response of \"Oops I found a plugin missing\" (yes of course, I just removed it explicitely = \"don't arse me ever again\").\r\n\r\nGiven this and my current knowledge/skills, this is not something I've gotten into the code too much yet and, although lacking time might be a contribution I could confortably make later by pull request.\r\n\r\nFelt it should be here as a ticket probably since this is 'bugged and to be discussed' behavior I'd think."},"comment":{"url":"https://api.github.com/repos/LightTable/LightTable/issues/comments/71964100","html_url":"https://github.com/LightTable/LightTable/issues/1833#issuecomment-71964100","issue_url":"https://api.github.com/repos/LightTable/LightTable/issues/1833","id":71964100,"user":{"login":"cldwalker","id":11994,"avatar_url":"https://avatars.githubusercontent.com/u/11994?v=3","gravatar_id":"","url":"https://api.github.com/users/cldwalker","html_url":"https://github.com/cldwalker","followers_url":"https://api.github.com/users/cldwalker/followers","following_url":"https://api.github.com/users/cldwalker/following{/other_user}","gists_url":"https://api.github.com/users/cldwalker/gists{/gist_id}","starred_url":"https://api.github.com/users/cldwalker/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cldwalker/subscriptions","organizations_url":"https://api.github.com/users/cldwalker/orgs","repos_url":"https://api.github.com/users/cldwalker/repos","events_url":"https://api.github.com/users/cldwalker/events{/privacy}","received_events_url":"https://api.github.com/users/cldwalker/received_events","type":"User","site_admin":false},"created_at":"2015-01-29T03:41:00Z","updated_at":"2015-01-29T03:41:00Z","body":"This happens because we now track dependencies in the User plugin's plugin.edn and that only gets saved when a user uses the plugin manager - which is the expected workflow. If you'd like to add support for deleting outside the plugin manager, you'll need to define an app behavior that triggers on :post-init and calls [this plugin-manager behavior](https://github.com/LightTable/LightTable/blob/21fcb13c45a474fc011c7137eccde4e2662cec9b/src/lt/objs/plugins.cljs#L639-L645). This way of deleting plugins isn't something I'd encourage for most users but happy to leave this open if you're interested in adding this."}}