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
  • 4 months ago
  • 3 hours ago
  • 8 years ago

Installs

  • Total 3K
  • Win 2K
  • Mac 493
  • Linux 502
Aug 8 Aug 7 Aug 6 Aug 5 Aug 4 Aug 3 Aug 2 Aug 1 Jul 31 Jul 30 Jul 29 Jul 28 Jul 27 Jul 26 Jul 25 Jul 24 Jul 23 Jul 22 Jul 21 Jul 20 Jul 19 Jul 18 Jul 17 Jul 16 Jul 15 Jul 14 Jul 13 Jul 12 Jul 11 Jul 10 Jul 9 Jul 8 Jul 7 Jul 6 Jul 5 Jul 4 Jul 3 Jul 2 Jul 1 Jun 30 Jun 29 Jun 28 Jun 27 Jun 26 Jun 25
Windows 0 1 0 2 0 0 0 0 0 0 1 1 0 0 0 0 1 0 0 0 2 1 0 0 0 0 0 1 1 0 2 1 1 0 1 0 0 0 0 1 1 1 0 0 0
Mac 0 1 0 0 0 1 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 3 0 0 0 0 0 0 0 0 0 0 0 0
Linux 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 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