{"action":"opened","number":8,"pull_request":{"url":"https://api.github.com/repos/dysinger/purescript-mode/pulls/8","id":89492566,"html_url":"https://github.com/dysinger/purescript-mode/pull/8","diff_url":"https://github.com/dysinger/purescript-mode/pull/8.diff","patch_url":"https://github.com/dysinger/purescript-mode/pull/8.patch","issue_url":"https://api.github.com/repos/dysinger/purescript-mode/issues/8","number":8,"state":"open","locked":false,"title":"purescript-mode stocktaking","user":{"login":"kRITZCREEK","id":6189397,"avatar_url":"https://avatars.githubusercontent.com/u/6189397?v=3","gravatar_id":"","url":"https://api.github.com/users/kRITZCREEK","html_url":"https://github.com/kRITZCREEK","followers_url":"https://api.github.com/users/kRITZCREEK/followers","following_url":"https://api.github.com/users/kRITZCREEK/following{/other_user}","gists_url":"https://api.github.com/users/kRITZCREEK/gists{/gist_id}","starred_url":"https://api.github.com/users/kRITZCREEK/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kRITZCREEK/subscriptions","organizations_url":"https://api.github.com/users/kRITZCREEK/orgs","repos_url":"https://api.github.com/users/kRITZCREEK/repos","events_url":"https://api.github.com/users/kRITZCREEK/events{/privacy}","received_events_url":"https://api.github.com/users/kRITZCREEK/received_events","type":"User","site_admin":false},"body":"# Taking Stock. Where are we at?\r\n\r\nUntil GitHub \"unforks\" this repository we'll have to move discussions into PR's\r\nbecause forks fon't have \"Issues\".\r\n\r\nI'd like to pick up development on `purescript-mode`. In it's current state it's\r\nbasically a big rename of the haskell-mode codebase from May 2014. It's actually\r\n*ridiculous* how well that's been working for so long, but I'd like to pick\r\ndevelopment back up and see if we can't do better.\r\n\r\nI'm a fairly unexperienced elisp hacker so expect mistakes to be made, and\r\nlessons to be learned, but I'm confident that we'll have a lot of fun while\r\ndoing so!\r\n\r\nTo pick purescript-mode back up I devised the following plan:\r\n\r\n1. Take Stock\r\n\r\n    Collect the features people are actually using and radically prune\r\n    everything we don't need right now.\r\n\r\n2. Clean up the codebase\r\n\r\n    I think it's fair to assume a minimum of Emacs 24 or greater\r\n\r\n    We also want to remove everything that is GHC/Haskell specific and doesn't\r\n    apply to PureScript\r\n\r\n3. Move psc-ide-mode into purescript-mode\r\n\r\n    psc-ide is distributed with the compiler and so I think it's fine to treat\r\n    is as the *blessed* tool and integrate support right inside purescript-mode\r\n\r\n4. Maintenance/New Features\r\n\r\n\r\nFor this PR I'd like to start with point 1. Comment on this PR with the\r\nfunctionality you are using, share the link so that we hopefully reach most/all\r\nthe purescript-mode users and collect the features they are actively using.\r\n\r\nI've checked the features I'm already using and will check whatever features you\r\nare using right now.\r\n\r\n## What functionality is actually being used?\r\n  - [X] Syntax Highlighting\r\n  - [X] Indentation\r\n\r\n    I think we should decide on having one indentation mode and having it\r\n    activated by default.\r\n\r\n    - purescript-indentation\r\n    - purescript-indent\r\n    - purescript-simple-indent\r\n  - [ ] Import handling\r\n    - Align imports (formatting)\r\n    - Navigate imports\r\n  - [ ] Move nested\r\n\r\n  - [ ] Package (currently cabal support)\r\n\r\n    I could imagine us integrating with pulp and maybe psc-package here, but the\r\n    existing code will need to be removed\r\n\r\n  - [ ] Declaration Scanning\r\n\r\n    I think this is superseeded by psc-ide go-to definition, but I'm happy to be\r\n    proven wrong.\r\n\r\n  - [ ] Presentation mode\r\n\r\n    Not sure what this really does, but I haven't ever used it\r\n\r\n  - [ ] purescript-show.el\r\n    No idea what this is supposed to be\r\n\r\n  - [X] Unicode input method\r\n\r\n    I've been using this before, but I replaced it with a custom\r\n    search-and-replace query since it stopped company from working. I think it\r\n    would be cool to make this work properly.\r\n\r\n  - [ ] Snippets\r\n\r\n    The snippets inside `purescript-yas.el` are very GHC specific and should be\r\n    removed. We should be able to salvage the snippets under\r\n    snippets/haskell-mode though, and there seem to be a few nice ones there.\r\n\r\nThis won't work without your help, but I'm confident that we can do it,\r\nespecially after all the help and kindness I've experienced working on\r\npsc-ide-mode.\r\n\r\nIf you have questions/suggestions or if I've forgotten to mention any important\r\nfunctionality let me know aswell!\r\n","created_at":"2016-10-15T12:58:13Z","updated_at":"2016-10-15T12:58:13Z","closed_at":null,"merged_at":null,"merge_commit_sha":null,"assignee":null,"assignees":[],"milestone":null,"commits_url":"https://api.github.com/repos/dysinger/purescript-mode/pulls/8/commits","review_comments_url":"https://api.github.com/repos/dysinger/purescript-mode/pulls/8/comments","review_comment_url":"https://api.github.com/repos/dysinger/purescript-mode/pulls/comments{/number}","comments_url":"https://api.github.com/repos/dysinger/purescript-mode/issues/8/comments","statuses_url":"https://api.github.com/repos/dysinger/purescript-mode/statuses/eccfe7c5a4b144f2c0c73cd2ca34fa6bb93c117a","head":{"label":"kRITZCREEK:stock-taking","ref":"stock-taking","sha":"eccfe7c5a4b144f2c0c73cd2ca34fa6bb93c117a","user":{"login":"kRITZCREEK","id":6189397,"avatar_url":"https://avatars.githubusercontent.com/u/6189397?v=3","gravatar_id":"","url":"https://api.github.com/users/kRITZCREEK","html_url":"https://github.com/kRITZCREEK","followers_url":"https://api.github.com/users/kRITZCREEK/followers","following_url":"https://api.github.com/users/kRITZCREEK/following{/other_user}","gists_url":"https://api.github.com/users/kRITZCREEK/gists{/gist_id}","starred_url":"https://api.github.com/users/kRITZCREEK/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kRITZCREEK/subscriptions","organizations_url":"https://api.github.com/users/kRITZCREEK/orgs","repos_url":"https://api.github.com/users/kRITZCREEK/repos","events_url":"https://api.github.com/users/kRITZCREEK/events{/privacy}","received_events_url":"https://api.github.com/users/kRITZCREEK/received_events","type":"User","site_admin":false},"repo":{"id":70986965,"name":"purescript-mode","full_name":"kRITZCREEK/purescript-mode","owner":{"login":"kRITZCREEK","id":6189397,"avatar_url":"https://avatars.githubusercontent.com/u/6189397?v=3","gravatar_id":"","url":"https://api.github.com/users/kRITZCREEK","html_url":"https://github.com/kRITZCREEK","followers_url":"https://api.github.com/users/kRITZCREEK/followers","following_url":"https://api.github.com/users/kRITZCREEK/following{/other_user}","gists_url":"https://api.github.com/users/kRITZCREEK/gists{/gist_id}","starred_url":"https://api.github.com/users/kRITZCREEK/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kRITZCREEK/subscriptions","organizations_url":"https://api.github.com/users/kRITZCREEK/orgs","repos_url":"https://api.github.com/users/kRITZCREEK/repos","events_url":"https://api.github.com/users/kRITZCREEK/events{/privacy}","received_events_url":"https://api.github.com/users/kRITZCREEK/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/kRITZCREEK/purescript-mode","description":"Emacs mode for PureScript","fork":true,"url":"https://api.github.com/repos/kRITZCREEK/purescript-mode","forks_url":"https://api.github.com/repos/kRITZCREEK/purescript-mode/forks","keys_url":"https://api.github.com/repos/kRITZCREEK/purescript-mode/keys{/key_id}","collaborators_url":"https://api.github.com/repos/kRITZCREEK/purescript-mode/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/kRITZCREEK/purescript-mode/teams","hooks_url":"https://api.github.com/repos/kRITZCREEK/purescript-mode/hooks","issue_events_url":"https://api.github.com/repos/kRITZCREEK/purescript-mode/issues/events{/number}","events_url":"https://api.github.com/repos/kRITZCREEK/purescript-mode/events","assignees_url":"https://api.github.com/repos/kRITZCREEK/purescript-mode/assignees{/user}","branches_url":"https://api.github.com/repos/kRITZCREEK/purescript-mode/branches{/branch}","tags_url":"https://api.github.com/repos/kRITZCREEK/purescript-mode/tags","blobs_url":"https://api.github.com/repos/kRITZCREEK/purescript-mode/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/kRITZCREEK/purescript-mode/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/kRITZCREEK/purescript-mode/git/refs{/sha}","trees_url":"https://api.github.com/repos/kRITZCREEK/purescript-mode/git/trees{/sha}","statuses_url":"https://api.github.com/repos/kRITZCREEK/purescript-mode/statuses/{sha}","languages_url":"https://api.github.com/repos/kRITZCREEK/purescript-mode/languages","stargazers_url":"https://api.github.com/repos/kRITZCREEK/purescript-mode/stargazers","contributors_url":"https://api.github.com/repos/kRITZCREEK/purescript-mode/contributors","subscribers_url":"https://api.github.com/repos/kRITZCREEK/purescript-mode/subscribers","subscription_url":"https://api.github.com/repos/kRITZCREEK/purescript-mode/subscription","commits_url":"https://api.github.com/repos/kRITZCREEK/purescript-mode/commits{/sha}","git_commits_url":"https://api.github.com/repos/kRITZCREEK/purescript-mode/git/commits{/sha}","comments_url":"https://api.github.com/repos/kRITZCREEK/purescript-mode/comments{/number}","issue_comment_url":"https://api.github.com/repos/kRITZCREEK/purescript-mode/issues/comments{/number}","contents_url":"https://api.github.com/repos/kRITZCREEK/purescript-mode/contents/{+path}","compare_url":"https://api.github.com/repos/kRITZCREEK/purescript-mode/compare/{base}...{head}","merges_url":"https://api.github.com/repos/kRITZCREEK/purescript-mode/merges","archive_url":"https://api.github.com/repos/kRITZCREEK/purescript-mode/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/kRITZCREEK/purescript-mode/downloads","issues_url":"https://api.github.com/repos/kRITZCREEK/purescript-mode/issues{/number}","pulls_url":"https://api.github.com/repos/kRITZCREEK/purescript-mode/pulls{/number}","milestones_url":"https://api.github.com/repos/kRITZCREEK/purescript-mode/milestones{/number}","notifications_url":"https://api.github.com/repos/kRITZCREEK/purescript-mode/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/kRITZCREEK/purescript-mode/labels{/name}","releases_url":"https://api.github.com/repos/kRITZCREEK/purescript-mode/releases{/id}","deployments_url":"https://api.github.com/repos/kRITZCREEK/purescript-mode/deployments","created_at":"2016-10-15T12:38:32Z","updated_at":"2016-10-15T12:38:36Z","pushed_at":"2016-10-15T12:39:11Z","git_url":"git://github.com/kRITZCREEK/purescript-mode.git","ssh_url":"git@github.com:kRITZCREEK/purescript-mode.git","clone_url":"https://github.com/kRITZCREEK/purescript-mode.git","svn_url":"https://github.com/kRITZCREEK/purescript-mode","homepage":"","size":1907,"stargazers_count":0,"watchers_count":0,"language":"Emacs Lisp","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"dysinger:master","ref":"master","sha":"96c5ce0b22023ff6e2944d43ffeb34a34dd57db6","user":{"login":"dysinger","id":447,"avatar_url":"https://avatars.githubusercontent.com/u/447?v=3","gravatar_id":"","url":"https://api.github.com/users/dysinger","html_url":"https://github.com/dysinger","followers_url":"https://api.github.com/users/dysinger/followers","following_url":"https://api.github.com/users/dysinger/following{/other_user}","gists_url":"https://api.github.com/users/dysinger/gists{/gist_id}","starred_url":"https://api.github.com/users/dysinger/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dysinger/subscriptions","organizations_url":"https://api.github.com/users/dysinger/orgs","repos_url":"https://api.github.com/users/dysinger/repos","events_url":"https://api.github.com/users/dysinger/events{/privacy}","received_events_url":"https://api.github.com/users/dysinger/received_events","type":"User","site_admin":false},"repo":{"id":20169666,"name":"purescript-mode","full_name":"dysinger/purescript-mode","owner":{"login":"dysinger","id":447,"avatar_url":"https://avatars.githubusercontent.com/u/447?v=3","gravatar_id":"","url":"https://api.github.com/users/dysinger","html_url":"https://github.com/dysinger","followers_url":"https://api.github.com/users/dysinger/followers","following_url":"https://api.github.com/users/dysinger/following{/other_user}","gists_url":"https://api.github.com/users/dysinger/gists{/gist_id}","starred_url":"https://api.github.com/users/dysinger/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dysinger/subscriptions","organizations_url":"https://api.github.com/users/dysinger/orgs","repos_url":"https://api.github.com/users/dysinger/repos","events_url":"https://api.github.com/users/dysinger/events{/privacy}","received_events_url":"https://api.github.com/users/dysinger/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/dysinger/purescript-mode","description":"Emacs mode for PureScript","fork":true,"url":"https://api.github.com/repos/dysinger/purescript-mode","forks_url":"https://api.github.com/repos/dysinger/purescript-mode/forks","keys_url":"https://api.github.com/repos/dysinger/purescript-mode/keys{/key_id}","collaborators_url":"https://api.github.com/repos/dysinger/purescript-mode/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/dysinger/purescript-mode/teams","hooks_url":"https://api.github.com/repos/dysinger/purescript-mode/hooks","issue_events_url":"https://api.github.com/repos/dysinger/purescript-mode/issues/events{/number}","events_url":"https://api.github.com/repos/dysinger/purescript-mode/events","assignees_url":"https://api.github.com/repos/dysinger/purescript-mode/assignees{/user}","branches_url":"https://api.github.com/repos/dysinger/purescript-mode/branches{/branch}","tags_url":"https://api.github.com/repos/dysinger/purescript-mode/tags","blobs_url":"https://api.github.com/repos/dysinger/purescript-mode/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/dysinger/purescript-mode/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/dysinger/purescript-mode/git/refs{/sha}","trees_url":"https://api.github.com/repos/dysinger/purescript-mode/git/trees{/sha}","statuses_url":"https://api.github.com/repos/dysinger/purescript-mode/statuses/{sha}","languages_url":"https://api.github.com/repos/dysinger/purescript-mode/languages","stargazers_url":"https://api.github.com/repos/dysinger/purescript-mode/stargazers","contributors_url":"https://api.github.com/repos/dysinger/purescript-mode/contributors","subscribers_url":"https://api.github.com/repos/dysinger/purescript-mode/subscribers","subscription_url":"https://api.github.com/repos/dysinger/purescript-mode/subscription","commits_url":"https://api.github.com/repos/dysinger/purescript-mode/commits{/sha}","git_commits_url":"https://api.github.com/repos/dysinger/purescript-mode/git/commits{/sha}","comments_url":"https://api.github.com/repos/dysinger/purescript-mode/comments{/number}","issue_comment_url":"https://api.github.com/repos/dysinger/purescript-mode/issues/comments{/number}","contents_url":"https://api.github.com/repos/dysinger/purescript-mode/contents/{+path}","compare_url":"https://api.github.com/repos/dysinger/purescript-mode/compare/{base}...{head}","merges_url":"https://api.github.com/repos/dysinger/purescript-mode/merges","archive_url":"https://api.github.com/repos/dysinger/purescript-mode/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/dysinger/purescript-mode/downloads","issues_url":"https://api.github.com/repos/dysinger/purescript-mode/issues{/number}","pulls_url":"https://api.github.com/repos/dysinger/purescript-mode/pulls{/number}","milestones_url":"https://api.github.com/repos/dysinger/purescript-mode/milestones{/number}","notifications_url":"https://api.github.com/repos/dysinger/purescript-mode/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/dysinger/purescript-mode/labels{/name}","releases_url":"https://api.github.com/repos/dysinger/purescript-mode/releases{/id}","deployments_url":"https://api.github.com/repos/dysinger/purescript-mode/deployments","created_at":"2014-05-26T00:31:40Z","updated_at":"2016-09-27T20:06:22Z","pushed_at":"2016-10-13T16:11:57Z","git_url":"git://github.com/dysinger/purescript-mode.git","ssh_url":"git@github.com:dysinger/purescript-mode.git","clone_url":"https://github.com/dysinger/purescript-mode.git","svn_url":"https://github.com/dysinger/purescript-mode","homepage":"","size":1907,"stargazers_count":26,"watchers_count":26,"language":"Emacs Lisp","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":9,"mirror_url":null,"open_issues_count":4,"forks":9,"open_issues":4,"watchers":26,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/dysinger/purescript-mode/pulls/8"},"html":{"href":"https://github.com/dysinger/purescript-mode/pull/8"},"issue":{"href":"https://api.github.com/repos/dysinger/purescript-mode/issues/8"},"comments":{"href":"https://api.github.com/repos/dysinger/purescript-mode/issues/8/comments"},"review_comments":{"href":"https://api.github.com/repos/dysinger/purescript-mode/pulls/8/comments"},"review_comment":{"href":"https://api.github.com/repos/dysinger/purescript-mode/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/dysinger/purescript-mode/pulls/8/commits"},"statuses":{"href":"https://api.github.com/repos/dysinger/purescript-mode/statuses/eccfe7c5a4b144f2c0c73cd2ca34fa6bb93c117a"}},"merged":false,"mergeable":null,"mergeable_state":"unknown","merged_by":null,"comments":0,"review_comments":0,"commits":1,"additions":0,"deletions":418,"changed_files":2}}
{"actor":{"display_login":"kRITZCREEK"}}