ctrl+shift+p filters: :st2 :st3 :win :osx :linux
Browse

Alternative​Autocompletion

Fuzzy word completion, based on the contents of the current file.

Details

  • 2.1.7
  • github.​com
  • 3 months ago
  • 4 hours ago
  • 8 years ago

Installs

  • Total 3K
  • Win 2K
  • Mac 490
  • Linux 499
Jul 1 Jun 30 Jun 29 Jun 28 Jun 27 Jun 26 Jun 25 Jun 24 Jun 23 Jun 22 Jun 21 Jun 20 Jun 19 Jun 18 Jun 17 Jun 16 Jun 15 Jun 14 Jun 13 Jun 12 Jun 11 Jun 10 Jun 9 Jun 8 Jun 7 Jun 6 Jun 5 Jun 4 Jun 3 Jun 2 Jun 1 May 31 May 30 May 29 May 28 May 27 May 26 May 25 May 24 May 23 May 22 May 21 May 20 May 19 May 18
Windows 0 1 1 1 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 1 1 2 2 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0
Mac 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Linux 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Readme

Source
raw.​githubusercontent.​com

Alternative autocompletion

This plugin adds an autocompletion command to Sublime Text that acts similarly to TextMate:

  • Hitting the autocomplete key will attempt to complete the current word by looking at similar words in the current document.
  • Hitting the autocomplete key multiple times will cycle through the available words.
  • The last autocomplete position is remembered, so you can perform an autocompletion, move the cursor around, move back to where you were, and continue cycling through the completions.
  • Candidate completions are selected prioritized by distance to the cursor.

The plugin improves on TextMate in one respect: If no candidates are found, the plugin reverts to using a simple fuzzy, case-sensitive matching algorithm that is similar to Sublime's file/class matching algorithm. For example, typing AppC might match ApplicationController.

Installation

Using Package Control, install “AlternativeAutocompletion” or clone this repo in your packages folder.

I recommended you add key bindings for the commands. I've included my preferred bindings below. Copy them to your key bindings file (⌘⇧,).

Key Bindings

Copy these to your user key bindings file.

{ "keys": ["escape"], "command": "alternative_autocomplete", "context":
  [
    { "key": "num_selections", "operator": "equal", "operand": 1 },
    { "key": "panel_visible", "operator": "equal", "operand": false },
    { "key": "overlay_visible", "operator": "equal", "operand": false },
    { "key": "has_prev_field", "operator": "equal", "operand": false },
    { "key": "has_next_field", "operator": "equal", "operand": false }
  ]
},
{ "keys": ["shift+escape"], "command": "alternative_autocomplete", "args": {"cycle": "previous"}, "context":
  [
    { "key": "num_selections", "operator": "equal", "operand": 1 },
    { "key": "overlay_visible", "operator": "equal", "operand": false },
    { "key": "panel_visible", "operator": "equal", "operand": false },
    { "key": "has_prev_field", "operator": "equal", "operand": false },
    { "key": "has_next_field", "operator": "equal", "operand": false }
  ]
},
{ "keys": ["tab"], "command": "alternative_autocomplete", "args": {"tab": true}, "context":
  [
    { "key": "num_selections", "operator": "equal", "operand": 1 }
  ]
},
{ "keys": ["tab"], "command": "next_field", "context":
  [
    { "key": "has_next_field", "operator": "equal", "operand": true }
  ]
},
{ "keys": ["shift+tab"], "command": "alternative_autocomplete", "args": {"tab" : true, "cycle": "previous"}, "context":
  [
    { "key": "num_selections", "operator": "equal", "operand": 1 }
  ]
},
{ "keys": ["shift+tab"], "command": "prev_field", "context":
  [
    { "key": "has_prev_field", "operator": "equal", "operand": true }
  ]
},

Limitations

Currently does not work with multiple selections.

License

Copyright 2011 Alexander Staubo. MIT license. See LICENSE file for license. Modified by Colin Gray