{"action":"created","comment":{"url":"https://api.github.com/repos/iceddev/iggins/pulls/comments/30536318","id":30536318,"diff_hunk":"@@ -0,0 +1,232 @@\n+'use strict';\n+\n+const vkey = require('vkey');\n+\n+const codes = {\n+  '<shift>': '',\n+  '<backspace>': 'BACKSPACE',\n+  '<tab>': 'TAB',\n+  '<control>': '',\n+  '<escape>': 'ESC',\n+  '<alt>': '',\n+  '<home>': 'HOME',\n+  '<end>': 'END',\n+  '<meta>': 'META',\n+  '<space>': 'SPACE'\n+}\n+\n+\n+function Iggins(app, opts, done){\n+\n+  let combo = {\n+    CTRL_A: {\n+      description: 'Select all text in current source code',\n+      action: ''\n+    },\n+    CTRL_C: {\n+      description: 'Copy selected text to the clipboard',\n+      action: ''\n+    },\n+    CTRL_F: {\n+      description: 'Find or replace text',\n+      action: ''\n+    },\n+    CTRL_V: {\n+      description: 'Paste text from clipboard to selected area',\n+      action: ''\n+    },\n+    CTRL_X: {\n+      description: 'Cut selected text to the clipboard',\n+      action: ''\n+    },\n+    CTRL_Z: {\n+      description: 'Undo last action (unlimited)',\n+      action: ''\n+    },\n+    CTRL_SHIFT_Z: {\n+      description: 'Redo last action (unlimited)',\n+      action: ''\n+    },\n+    TAB: {\n+      description: 'Indent block (Inserts space characters)',\n+      action: ''\n+    },\n+    SHIFT_TAB: {\n+      description: 'Outdent block (Deletes space characters)',\n+      action: ''\n+    },\n+    F3: {\n+      description: 'Find text again',\n+      action: ''\n+    },\n+    Shift_F3: {\n+      description: 'Find text again (opposite direction)',\n+      action: ''\n+    },\n+    F4: {\n+      description: 'Replace current found selection',\n+      action: ''\n+    },\n+    CTRL_F4: {\n+      description: 'Perform replace and find next',\n+      action: ''\n+    },\n+    CTRL_HOME: {\n+      description: 'Jump to top of file',\n+      action: ''\n+    },\n+    CTRL_END: {\n+      description: 'Jump to end of file',\n+      action: ''\n+    },\n+    // CTRL_UPARROW: {\n+    //   description: 'Move source view up one line without moving cursor',\n+    //   action: ''\n+    // },\n+    // CTRL_DOWNARROW: {\n+    //   description: 'Move source view down one line without moving cursor',\n+    //   action: ''\n+    // },\n+    CTRL_MINUS: {\n+      description: 'decrease font size',\n+      action: ''\n+    },\n+    CTRL_EQUALS: {\n+      description: 'increase font size',\n+      action: ''\n+    },\n+    // File Management\n+\n+    CTRL_O: {\n+      description: 'Open source; may just focus file explorer',\n+      action: ''\n+    },\n+    // CURSOR_ENTER: {\n+    //   description: 'keys navigate and select files',\n+    //   action: ''\n+    // },\n+    BACKSPACE: {\n+      description: 'exits file view (project) (to project view)',\n+      action: ''\n+    },\n+    CTRL_S: {\n+      description: 'Save current source code file to its current location on disk',\n+      action: ''\n+    },\n+    CTRL_P: {\n+      description: 'Print current source',\n+      action: ''\n+    },\n+    CTRL_TAB: {\n+      description: 'Switch to next open source',\n+      action: ''\n+    },\n+    CTRL_SHIFT_TAB: {\n+      description: 'Switch to previous open source',\n+      action: ''\n+    },\n+\n+    // Code\n+    CTRL_I: {\n+      description: 'Identify BASIC Stamp firmware.',\n+      action: ''\n+    },\n+    F6: {\n+      description: 'Identify BASIC Stamp firmware.',\n+      action: ''\n+    },\n+    CTRL_T: {\n+      description: 'Perform a syntax check on the code.',\n+      action: ''\n+    },\n+    F7: {\n+      description: 'Perform a syntax check on the code.',\n+      action: ''\n+    },\n+    CTRL_M: {\n+      description: 'Tokenize and open Memory Map display.',\n+      action: ''\n+    },\n+    F8: {\n+      description: 'Tokenize and open Memory Map display.',\n+      action: ''\n+    },\n+    CTRL_R: {\n+      description: 'Tokenize, download to BASIC Stamp, and open Debug display if necessary.',\n+      action: ''\n+    },\n+    F9: {\n+      description: 'Tokenize, download to BASIC Stamp, and open Debug display if necessary.',\n+      action: ''\n+    },\n+    ESC: {\n+      description: 'Close current dialog.',\n+      action: ''\n+    }\n+  };\n+\n+  // add keyCombos from the application\n+  function register(name, opt, fn){","path":"src/index.js","position":169,"original_position":169,"commit_id":"7e5cb2829514abc785be9704e3534bf8223250d4","original_commit_id":"7e5cb2829514abc785be9704e3534bf8223250d4","user":{"login":"phated","id":992373,"avatar_url":"https://avatars.githubusercontent.com/u/992373?v=3","gravatar_id":"","url":"https://api.github.com/users/phated","html_url":"https://github.com/phated","followers_url":"https://api.github.com/users/phated/followers","following_url":"https://api.github.com/users/phated/following{/other_user}","gists_url":"https://api.github.com/users/phated/gists{/gist_id}","starred_url":"https://api.github.com/users/phated/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/phated/subscriptions","organizations_url":"https://api.github.com/users/phated/orgs","repos_url":"https://api.github.com/users/phated/repos","events_url":"https://api.github.com/users/phated/events{/privacy}","received_events_url":"https://api.github.com/users/phated/received_events","type":"User","site_admin":false},"body":"shouldn't accept a string for name, should accept a constant that matches a predicate function","created_at":"2015-05-18T18:48:30Z","updated_at":"2015-05-18T18:48:30Z","html_url":"https://github.com/iceddev/iggins/pull/1#discussion_r30536318","pull_request_url":"https://api.github.com/repos/iceddev/iggins/pulls/1","_links":{"self":{"href":"https://api.github.com/repos/iceddev/iggins/pulls/comments/30536318"},"html":{"href":"https://github.com/iceddev/iggins/pull/1#discussion_r30536318"},"pull_request":{"href":"https://api.github.com/repos/iceddev/iggins/pulls/1"}}},"pull_request":{"url":"https://api.github.com/repos/iceddev/iggins/pulls/1","id":35660124,"html_url":"https://github.com/iceddev/iggins/pull/1","diff_url":"https://github.com/iceddev/iggins/pull/1.diff","patch_url":"https://github.com/iceddev/iggins/pull/1.patch","issue_url":"https://api.github.com/repos/iceddev/iggins/issues/1","number":1,"state":"open","locked":false,"title":"Rough iggin core","user":{"login":"urbantumbleweed","id":1467882,"avatar_url":"https://avatars.githubusercontent.com/u/1467882?v=3","gravatar_id":"","url":"https://api.github.com/users/urbantumbleweed","html_url":"https://github.com/urbantumbleweed","followers_url":"https://api.github.com/users/urbantumbleweed/followers","following_url":"https://api.github.com/users/urbantumbleweed/following{/other_user}","gists_url":"https://api.github.com/users/urbantumbleweed/gists{/gist_id}","starred_url":"https://api.github.com/users/urbantumbleweed/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/urbantumbleweed/subscriptions","organizations_url":"https://api.github.com/users/urbantumbleweed/orgs","repos_url":"https://api.github.com/users/urbantumbleweed/repos","events_url":"https://api.github.com/users/urbantumbleweed/events{/privacy}","received_events_url":"https://api.github.com/users/urbantumbleweed/received_events","type":"User","site_admin":false},"body":"#### What's this PR do?\r\nThis is the initial functionality for Iggins, a keymapping plugin for Irken apps\r\n#### Where should the reviewer start?\r\nClone this repo.\r\nAdd this to ChromeIDE via npm i --save git://github.com/iceddev/iggins\r\nnpm link to the clone of this repo\r\n#### How should this be manually tested?\r\nRegister a function somewhere in ChromeIDE.\r\nLaunch ChromeIDE and press the registered key combination\r\n#### Any background context you want to provide?\r\nThis is the initial functionality that is working.  There is another branch a refactor of the matching implementation making it more efficient and utilizing 'metastate'.\r\n#### What are the relevant tickets?\r\n[ChromeIDE #88](https://github.com/parallaxinc/ChromeIDE/issues/88)\r\n\r\n","created_at":"2015-05-18T18:26:28Z","updated_at":"2015-05-18T18:48:30Z","closed_at":null,"merged_at":null,"merge_commit_sha":"e0fe53502bf5ab0eba3175361203bd0407546b7d","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/iceddev/iggins/pulls/1/commits","review_comments_url":"https://api.github.com/repos/iceddev/iggins/pulls/1/comments","review_comment_url":"https://api.github.com/repos/iceddev/iggins/pulls/comments{/number}","comments_url":"https://api.github.com/repos/iceddev/iggins/issues/1/comments","statuses_url":"https://api.github.com/repos/iceddev/iggins/statuses/7e5cb2829514abc785be9704e3534bf8223250d4","head":{"label":"iceddev:rough-iggin-core","ref":"rough-iggin-core","sha":"7e5cb2829514abc785be9704e3534bf8223250d4","user":{"login":"iceddev","id":1459970,"avatar_url":"https://avatars.githubusercontent.com/u/1459970?v=3","gravatar_id":"","url":"https://api.github.com/users/iceddev","html_url":"https://github.com/iceddev","followers_url":"https://api.github.com/users/iceddev/followers","following_url":"https://api.github.com/users/iceddev/following{/other_user}","gists_url":"https://api.github.com/users/iceddev/gists{/gist_id}","starred_url":"https://api.github.com/users/iceddev/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/iceddev/subscriptions","organizations_url":"https://api.github.com/users/iceddev/orgs","repos_url":"https://api.github.com/users/iceddev/repos","events_url":"https://api.github.com/users/iceddev/events{/privacy}","received_events_url":"https://api.github.com/users/iceddev/received_events","type":"Organization","site_admin":false},"repo":{"id":35640840,"name":"iggins","full_name":"iceddev/iggins","owner":{"login":"iceddev","id":1459970,"avatar_url":"https://avatars.githubusercontent.com/u/1459970?v=3","gravatar_id":"","url":"https://api.github.com/users/iceddev","html_url":"https://github.com/iceddev","followers_url":"https://api.github.com/users/iceddev/followers","following_url":"https://api.github.com/users/iceddev/following{/other_user}","gists_url":"https://api.github.com/users/iceddev/gists{/gist_id}","starred_url":"https://api.github.com/users/iceddev/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/iceddev/subscriptions","organizations_url":"https://api.github.com/users/iceddev/orgs","repos_url":"https://api.github.com/users/iceddev/repos","events_url":"https://api.github.com/users/iceddev/events{/privacy}","received_events_url":"https://api.github.com/users/iceddev/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/iceddev/iggins","description":"Irken plugin for listening for key combinations","fork":false,"url":"https://api.github.com/repos/iceddev/iggins","forks_url":"https://api.github.com/repos/iceddev/iggins/forks","keys_url":"https://api.github.com/repos/iceddev/iggins/keys{/key_id}","collaborators_url":"https://api.github.com/repos/iceddev/iggins/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/iceddev/iggins/teams","hooks_url":"https://api.github.com/repos/iceddev/iggins/hooks","issue_events_url":"https://api.github.com/repos/iceddev/iggins/issues/events{/number}","events_url":"https://api.github.com/repos/iceddev/iggins/events","assignees_url":"https://api.github.com/repos/iceddev/iggins/assignees{/user}","branches_url":"https://api.github.com/repos/iceddev/iggins/branches{/branch}","tags_url":"https://api.github.com/repos/iceddev/iggins/tags","blobs_url":"https://api.github.com/repos/iceddev/iggins/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/iceddev/iggins/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/iceddev/iggins/git/refs{/sha}","trees_url":"https://api.github.com/repos/iceddev/iggins/git/trees{/sha}","statuses_url":"https://api.github.com/repos/iceddev/iggins/statuses/{sha}","languages_url":"https://api.github.com/repos/iceddev/iggins/languages","stargazers_url":"https://api.github.com/repos/iceddev/iggins/stargazers","contributors_url":"https://api.github.com/repos/iceddev/iggins/contributors","subscribers_url":"https://api.github.com/repos/iceddev/iggins/subscribers","subscription_url":"https://api.github.com/repos/iceddev/iggins/subscription","commits_url":"https://api.github.com/repos/iceddev/iggins/commits{/sha}","git_commits_url":"https://api.github.com/repos/iceddev/iggins/git/commits{/sha}","comments_url":"https://api.github.com/repos/iceddev/iggins/comments{/number}","issue_comment_url":"https://api.github.com/repos/iceddev/iggins/issues/comments{/number}","contents_url":"https://api.github.com/repos/iceddev/iggins/contents/{+path}","compare_url":"https://api.github.com/repos/iceddev/iggins/compare/{base}...{head}","merges_url":"https://api.github.com/repos/iceddev/iggins/merges","archive_url":"https://api.github.com/repos/iceddev/iggins/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/iceddev/iggins/downloads","issues_url":"https://api.github.com/repos/iceddev/iggins/issues{/number}","pulls_url":"https://api.github.com/repos/iceddev/iggins/pulls{/number}","milestones_url":"https://api.github.com/repos/iceddev/iggins/milestones{/number}","notifications_url":"https://api.github.com/repos/iceddev/iggins/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/iceddev/iggins/labels{/name}","releases_url":"https://api.github.com/repos/iceddev/iggins/releases{/id}","created_at":"2015-05-14T22:44:15Z","updated_at":"2015-05-15T16:13:32Z","pushed_at":"2015-05-18T18:41:02Z","git_url":"git://github.com/iceddev/iggins.git","ssh_url":"git@github.com:iceddev/iggins.git","clone_url":"https://github.com/iceddev/iggins.git","svn_url":"https://github.com/iceddev/iggins","homepage":null,"size":0,"stargazers_count":0,"watchers_count":0,"language":null,"has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":1,"forks":0,"open_issues":1,"watchers":0,"default_branch":"master"}},"base":{"label":"iceddev:master","ref":"master","sha":"8b6f00572ca518e99ddb0b5ea4c097b08715b067","user":{"login":"iceddev","id":1459970,"avatar_url":"https://avatars.githubusercontent.com/u/1459970?v=3","gravatar_id":"","url":"https://api.github.com/users/iceddev","html_url":"https://github.com/iceddev","followers_url":"https://api.github.com/users/iceddev/followers","following_url":"https://api.github.com/users/iceddev/following{/other_user}","gists_url":"https://api.github.com/users/iceddev/gists{/gist_id}","starred_url":"https://api.github.com/users/iceddev/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/iceddev/subscriptions","organizations_url":"https://api.github.com/users/iceddev/orgs","repos_url":"https://api.github.com/users/iceddev/repos","events_url":"https://api.github.com/users/iceddev/events{/privacy}","received_events_url":"https://api.github.com/users/iceddev/received_events","type":"Organization","site_admin":false},"repo":{"id":35640840,"name":"iggins","full_name":"iceddev/iggins","owner":{"login":"iceddev","id":1459970,"avatar_url":"https://avatars.githubusercontent.com/u/1459970?v=3","gravatar_id":"","url":"https://api.github.com/users/iceddev","html_url":"https://github.com/iceddev","followers_url":"https://api.github.com/users/iceddev/followers","following_url":"https://api.github.com/users/iceddev/following{/other_user}","gists_url":"https://api.github.com/users/iceddev/gists{/gist_id}","starred_url":"https://api.github.com/users/iceddev/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/iceddev/subscriptions","organizations_url":"https://api.github.com/users/iceddev/orgs","repos_url":"https://api.github.com/users/iceddev/repos","events_url":"https://api.github.com/users/iceddev/events{/privacy}","received_events_url":"https://api.github.com/users/iceddev/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/iceddev/iggins","description":"Irken plugin for listening for key combinations","fork":false,"url":"https://api.github.com/repos/iceddev/iggins","forks_url":"https://api.github.com/repos/iceddev/iggins/forks","keys_url":"https://api.github.com/repos/iceddev/iggins/keys{/key_id}","collaborators_url":"https://api.github.com/repos/iceddev/iggins/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/iceddev/iggins/teams","hooks_url":"https://api.github.com/repos/iceddev/iggins/hooks","issue_events_url":"https://api.github.com/repos/iceddev/iggins/issues/events{/number}","events_url":"https://api.github.com/repos/iceddev/iggins/events","assignees_url":"https://api.github.com/repos/iceddev/iggins/assignees{/user}","branches_url":"https://api.github.com/repos/iceddev/iggins/branches{/branch}","tags_url":"https://api.github.com/repos/iceddev/iggins/tags","blobs_url":"https://api.github.com/repos/iceddev/iggins/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/iceddev/iggins/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/iceddev/iggins/git/refs{/sha}","trees_url":"https://api.github.com/repos/iceddev/iggins/git/trees{/sha}","statuses_url":"https://api.github.com/repos/iceddev/iggins/statuses/{sha}","languages_url":"https://api.github.com/repos/iceddev/iggins/languages","stargazers_url":"https://api.github.com/repos/iceddev/iggins/stargazers","contributors_url":"https://api.github.com/repos/iceddev/iggins/contributors","subscribers_url":"https://api.github.com/repos/iceddev/iggins/subscribers","subscription_url":"https://api.github.com/repos/iceddev/iggins/subscription","commits_url":"https://api.github.com/repos/iceddev/iggins/commits{/sha}","git_commits_url":"https://api.github.com/repos/iceddev/iggins/git/commits{/sha}","comments_url":"https://api.github.com/repos/iceddev/iggins/comments{/number}","issue_comment_url":"https://api.github.com/repos/iceddev/iggins/issues/comments{/number}","contents_url":"https://api.github.com/repos/iceddev/iggins/contents/{+path}","compare_url":"https://api.github.com/repos/iceddev/iggins/compare/{base}...{head}","merges_url":"https://api.github.com/repos/iceddev/iggins/merges","archive_url":"https://api.github.com/repos/iceddev/iggins/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/iceddev/iggins/downloads","issues_url":"https://api.github.com/repos/iceddev/iggins/issues{/number}","pulls_url":"https://api.github.com/repos/iceddev/iggins/pulls{/number}","milestones_url":"https://api.github.com/repos/iceddev/iggins/milestones{/number}","notifications_url":"https://api.github.com/repos/iceddev/iggins/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/iceddev/iggins/labels{/name}","releases_url":"https://api.github.com/repos/iceddev/iggins/releases{/id}","created_at":"2015-05-14T22:44:15Z","updated_at":"2015-05-15T16:13:32Z","pushed_at":"2015-05-18T18:41:02Z","git_url":"git://github.com/iceddev/iggins.git","ssh_url":"git@github.com:iceddev/iggins.git","clone_url":"https://github.com/iceddev/iggins.git","svn_url":"https://github.com/iceddev/iggins","homepage":null,"size":0,"stargazers_count":0,"watchers_count":0,"language":null,"has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":1,"forks":0,"open_issues":1,"watchers":0,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/iceddev/iggins/pulls/1"},"html":{"href":"https://github.com/iceddev/iggins/pull/1"},"issue":{"href":"https://api.github.com/repos/iceddev/iggins/issues/1"},"comments":{"href":"https://api.github.com/repos/iceddev/iggins/issues/1/comments"},"review_comments":{"href":"https://api.github.com/repos/iceddev/iggins/pulls/1/comments"},"review_comment":{"href":"https://api.github.com/repos/iceddev/iggins/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/iceddev/iggins/pulls/1/commits"},"statuses":{"href":"https://api.github.com/repos/iceddev/iggins/statuses/7e5cb2829514abc785be9704e3534bf8223250d4"}}}}