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

Alternative​Autocompletion

by Colin T.A. Gray (colinta) ST3 Needs Review

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

Details

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

Installs

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