Giter VIP home page Giter VIP logo

yomybaby / hyperclick Goto Github PK

View Code? Open in Web Editor NEW

This project forked from facebookarchive/hyperclick

0.0 1.0 0.0 140 KB

This is a read-only copy of the hyperclick package found in https://github.com/facebook/nuclide/tree/master/pkg/. Please file issues and pull requests against the original instead of this copy.

Home Page: http://nuclide.io

CoffeeScript 0.51% JavaScript 98.17% CSS 1.33%

hyperclick's Introduction

NOTE: The official repository for this package is https://github.com/facebook/nuclide. Please file all issues and pull requests there.

Hyperclick

Pluggable text-clicking UI for Atom.

Hyperclick is triggered by two events:

  • <alt> or <alt-mousemove> underlines clickable text under the mouse.
  • <alt-mousedown> performs the action associated with the clickable text.
  • <cmd-alt-enter> performs the action on the text under the cursor.

Demo

Install hyperclick with this demo package to recreate the screencast below.

hyperclick-demo

Provider API

Example

Declare the provider callback in the package.json (e.g. getProvider).

"providedServices": {
  "hyperclick.provider": {
    "versions": {
      "0.0.0": "getProvider"
    }
  }
}

Define the provider callback in lib/main.js.

module.exports = {
  getProvider() {
    return {
      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.
    • callback: The function to call when the user selects this object.

Additional properties:

  • 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.

hyperclick's People

Contributors

bolinfest avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.