{"id":21648028,"url":"https://github.com/atom-community/atom-ide-hyperclick","last_synced_at":"2026-03-06T15:32:28.114Z","repository":{"id":37048631,"uuid":"280210733","full_name":"atom-community/atom-ide-hyperclick","owner":"atom-community","description":"Pluggable text-clicking UI for Atom.","archived":false,"fork":false,"pushed_at":"2023-10-13T22:48:50.000Z","size":518,"stargazers_count":7,"open_issues_count":9,"forks_count":3,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-07-12T03:49:25.595Z","etag":null,"topics":["atom","atom-ide","click","go-to-definition","hacktoberfest","hyperclick"],"latest_commit_sha":null,"homepage":"https://atom.io/packages/atom-ide-hyperclick","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/atom-community.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2020-07-16T17:03:07.000Z","updated_at":"2022-03-27T04:41:38.000Z","dependencies_parsed_at":"2025-04-11T19:42:35.456Z","dependency_job_id":"f263ca1f-837d-4536-a8b1-3a69af9ac342","html_url":"https://github.com/atom-community/atom-ide-hyperclick","commit_stats":null,"previous_names":[],"tags_count":12,"template":false,"template_full_name":null,"purl":"pkg:github/atom-community/atom-ide-hyperclick","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/atom-community%2Fatom-ide-hyperclick","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/atom-community%2Fatom-ide-hyperclick/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/atom-community%2Fatom-ide-hyperclick/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/atom-community%2Fatom-ide-hyperclick/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/atom-community","download_url":"https://codeload.github.com/atom-community/atom-ide-hyperclick/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/atom-community%2Fatom-ide-hyperclick/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30183473,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-06T14:42:24.748Z","status":"ssl_error","status_checked_at":"2026-03-06T14:42:14.925Z","response_time":250,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["atom","atom-ide","click","go-to-definition","hacktoberfest","hyperclick"],"created_at":"2024-11-25T06:52:59.224Z","updated_at":"2026-03-06T15:32:28.084Z","avatar_url":"https://github.com/atom-community.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Hyperclick\n\nPluggable text-clicking UI for [Atom](https://atom.io/).\n\nHyperclick is triggered by two events:\n\n- `\u003ccmd\u003e` or `\u003ccmd-mousemove\u003e` underlines clickable text under the mouse.\n- `\u003ccmd-mousedown\u003e` performs the action associated with the clickable text.\n- `\u003ccmd-alt-enter\u003e` performs the action on the text under the cursor.\n\n## Known Providers\n\nHere are some existing providers for the Hyperclick package:\n\n- [js-hyperclick](https://atom.io/packages/js-hyperclick) Jump to variable definitions, including when imported/required from another file\n- [hyperclick-php](https://atom.io/packages/hyperclick-php) Locate php classes with the help of composer, and open the file\n- [go-plus](https://atom.io/packages/go-plus) Jump to definition for [go](https://golang.org/)\n- [hyperlink-hyperclick](https://atom.io/packages/hyperlink-hyperclick) Open URLs in your default browser\n- [flow-ide](https://atom.io/packages/flow-ide) Similar to js-hyperclick. Jump to variable declarations\n- [autocomplete-racer](https://atom.io/packages/autocomplete-racer) Jump to variable, function and module declarations in Rust\n- [css-hyperclick](https://atom.io/packages/css-hyperclick) Jump to @import for CSS\n\n## Demo\n\n![hyperclick-demo](https://thumbs.gfycat.com/EcstaticEvilEstuarinecrocodile-size_restricted.gif)\n\n## Provider API\n\n### Example\n\nDeclare the provider callback in the `package.json` (e.g. `getProvider`).\n\n```js\n\"providedServices\": {\n  \"hyperclick\": {\n    \"versions\": {\n      \"0.1.0\": \"getProvider\"\n    }\n  }\n}\n```\n\nNOTE: Providers for `hyperclick.provider@0.0.0` are still accepted, but that naming is now deprecated.\nPlease use `hyperclick@0.1.0` for new providers.\n\nDefine the provider callback in `lib/main.js`.\n\n```js\nexport function getProvider() {\n  return {\n    priority: 1,\n    grammarScopes: [\"source.js\"], // JavaScript files\n    getSuggestionForWord(textEditor: TextEditor, text: string, range: Range): ?HyperclickSuggestion {\n      return {\n        // The range(s) to underline as a visual cue for clicking.\n        range,\n        // The function to call when the underlined text is clicked.\n        callback() {},\n      }\n    },\n  }\n}\n```\n\n### Details\n\nYou must define one of these methods on the provider:\n\n- `getSuggestionForWord(textEditor: TextEditor, text: string, range: Range)`\n\n  Use this to provide a suggestion for single-word matches.\n  Optionally set `wordRegExp` on the provider to adjust word-matching.\n\n  - `textEditor`: The text editor the event originated from.\n  - `text`: The string containing the word under the mouse.\n  - `range`: The buffer position of `text` in the text editor.\n\n- `getSuggestion(textEditor: TextEditor, position: Point)`\n\n  Use this to provide a suggestion if it can have non-contiguous ranges.\n  A primary use-case for this is Objective-C methods.\n\n  - `textEditor`: The text editor the event originated from.\n  - `position`: The buffer position of the mouse in the text editor.\n\nThe methods return a suggestion or a `Promise` that resolves to a suggestion:\n\n- `range`: A range or array of ranges to underline as a visual cue for clicking.\n\n  To distinguish ranges and arrays, this can't be a Range-compatible array.\n  For example, use `new Range([0, 0], [0, 10])` instead of `[[0, 0], [0, 10]]`.\n\n- `callback`: The function to call when the underlined text is clicked.\n\n  If there are multiple possibilities, this can be an array of objects with:\n\n  - `title`: A string to present in the UI for the user to select.\n  - `rightLabel`(optional): An indicator denoting the \"kind\" of suggestion this represents\n  - `callback`: The function to call when the user selects this object.\n\nAdditional provider fields:\n\n- `priority`: The higher this is, the more precedence the provider gets.\n\n  Hyperclick only returns suggestions from a single provider, so this is a\n  workaround for providers to override others. `priority` defaults to 0.\n\n- `grammarScopes`: An (optional) `Array` of grammar `scopeNames` to provide suggestions for.\n  Your provider will only be triggered in matching text editors.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fatom-community%2Fatom-ide-hyperclick","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fatom-community%2Fatom-ide-hyperclick","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fatom-community%2Fatom-ide-hyperclick/lists"}