Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/atom-community/atom-ide-hyperclick
Pluggable text-clicking UI for Atom.
https://github.com/atom-community/atom-ide-hyperclick
atom atom-ide click go-to-definition hacktoberfest hyperclick
Last synced: 28 days ago
JSON representation
Pluggable text-clicking UI for Atom.
- Host: GitHub
- URL: https://github.com/atom-community/atom-ide-hyperclick
- Owner: atom-community
- License: other
- Created: 2020-07-16T17:03:07.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2023-10-13T22:48:50.000Z (about 1 year ago)
- Last Synced: 2024-04-14T22:47:52.528Z (8 months ago)
- Topics: atom, atom-ide, click, go-to-definition, hacktoberfest, hyperclick
- Language: JavaScript
- Homepage: https://atom.io/packages/atom-ide-hyperclick
- Size: 506 KB
- Stars: 7
- Watchers: 3
- Forks: 3
- Open Issues: 9
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE.md
Awesome Lists containing this project
README
# Hyperclick
Pluggable text-clicking UI for [Atom](https://atom.io/).
Hyperclick is triggered by two events:
- `` or `` underlines clickable text under the mouse.
- `` performs the action associated with the clickable text.
- `` performs the action on the text under the cursor.## Known Providers
Here are some existing providers for the Hyperclick package:
- [js-hyperclick](https://atom.io/packages/js-hyperclick) Jump to variable definitions, including when imported/required from another file
- [hyperclick-php](https://atom.io/packages/hyperclick-php) Locate php classes with the help of composer, and open the file
- [go-plus](https://atom.io/packages/go-plus) Jump to definition for [go](https://golang.org/)
- [hyperlink-hyperclick](https://atom.io/packages/hyperlink-hyperclick) Open URLs in your default browser
- [flow-ide](https://atom.io/packages/flow-ide) Similar to js-hyperclick. Jump to variable declarations
- [autocomplete-racer](https://atom.io/packages/autocomplete-racer) Jump to variable, function and module declarations in Rust
- [css-hyperclick](https://atom.io/packages/css-hyperclick) Jump to @import for CSS## Demo
![hyperclick-demo](https://thumbs.gfycat.com/EcstaticEvilEstuarinecrocodile-size_restricted.gif)
## Provider API
### Example
Declare the provider callback in the `package.json` (e.g. `getProvider`).
```js
"providedServices": {
"hyperclick": {
"versions": {
"0.1.0": "getProvider"
}
}
}
```NOTE: Providers for `[email protected]` are still accepted, but that naming is now deprecated.
Please use `[email protected]` for new providers.Define the provider callback in `lib/main.js`.
```js
export function getProvider() {
return {
priority: 1,
grammarScopes: ["source.js"], // JavaScript files
getSuggestionForWord(textEditor: TextEditor, text: string, range: Range): ?HyperclickSuggestion {
return {
// The range(s) to underline as a visual cue for clicking.
range,
// The function to call when the underlined text is clicked.
callback() {},
}
},
}
}
```### Details
You must define one of these methods on the provider:
- `getSuggestionForWord(textEditor: TextEditor, text: string, range: Range)`
Use this to provide a suggestion for single-word matches.
Optionally set `wordRegExp` on the provider to adjust word-matching.- `textEditor`: The text editor the event originated from.
- `text`: The string containing the word under the mouse.
- `range`: The buffer position of `text` in the text editor.- `getSuggestion(textEditor: TextEditor, position: Point)`
Use this to provide a suggestion if it can have non-contiguous ranges.
A primary use-case for this is Objective-C methods.- `textEditor`: The text editor the event originated from.
- `position`: The buffer position of the mouse in the text editor.The methods return a suggestion or a `Promise` that resolves to a suggestion:
- `range`: A range or array of ranges to underline as a visual cue for clicking.
To distinguish ranges and arrays, this can't be a Range-compatible array.
For example, use `new Range([0, 0], [0, 10])` instead of `[[0, 0], [0, 10]]`.- `callback`: The function to call when the underlined text is clicked.
If there are multiple possibilities, this can be an array of objects with:
- `title`: A string to present in the UI for the user to select.
- `rightLabel`(optional): An indicator denoting the "kind" of suggestion this represents
- `callback`: The function to call when the user selects this object.Additional provider fields:
- `priority`: The higher this is, the more precedence the provider gets.
Hyperclick only returns suggestions from a single provider, so this is a
workaround for providers to override others. `priority` defaults to 0.- `grammarScopes`: An (optional) `Array` of grammar `scopeNames` to provide suggestions for.
Your provider will only be triggered in matching text editors.