Add auto magic complete (complete while typing)
This commit is contained in:
parent
58caaad6a5
commit
2bf673c41d
1 changed files with 29 additions and 0 deletions
|
|
@ -34,6 +34,7 @@ define(function(require, exports, module) {
|
|||
var snippetManager = require("../snippets").snippetManager;
|
||||
var Autocomplete = require("../autocomplete").Autocomplete;
|
||||
var config = require("../config");
|
||||
var util = require("../autocomplete/util");
|
||||
|
||||
var textCompleter = require("../autocomplete/text_completer");
|
||||
var keyWordCompleter = {
|
||||
|
|
@ -114,6 +115,30 @@ var loadSnippetFile = function(id) {
|
|||
});
|
||||
};
|
||||
|
||||
var onChangeAutocomplete = function(e, editor) {
|
||||
var session = editor.getSession();
|
||||
var pos = editor.getCursorPosition();
|
||||
var line = session.getLine(pos.row);
|
||||
|
||||
// Append added text to the line
|
||||
if(e.data.action === 'insertText') {
|
||||
line += e.data.text;
|
||||
pos.column += e.data.text.length;
|
||||
}
|
||||
|
||||
// The prefix to autocomplete for
|
||||
var prefix = util.retrievePrecedingIdentifier(line, pos.column);
|
||||
|
||||
// Only autocomplete if there's a prefix that can be matched
|
||||
if(prefix !== '') {
|
||||
Autocomplete.startCommand.exec(editor);
|
||||
} else if(editor.completer && editor.completer.activated) {
|
||||
// When the prefix is empty
|
||||
// close the autocomplete dialog
|
||||
editor.completer.detach();
|
||||
}
|
||||
};
|
||||
|
||||
var Editor = require("../editor").Editor;
|
||||
require("../config").defineOptions(Editor.prototype, "editor", {
|
||||
enableBasicAutocompletion: {
|
||||
|
|
@ -121,7 +146,11 @@ require("../config").defineOptions(Editor.prototype, "editor", {
|
|||
if (val) {
|
||||
this.completers = completers;
|
||||
this.commands.addCommand(Autocomplete.startCommand);
|
||||
|
||||
// On each change automatically trigger the autocomplete
|
||||
this.on('change', onChangeAutocomplete);
|
||||
} else {
|
||||
this.removeListener('change', onChangeAutocomplete);
|
||||
this.commands.removeCommand(Autocomplete.startCommand);
|
||||
}
|
||||
},
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue