Как включить автозаполнение при вводе `(` using `auto_complete_triggers`

Когда я набираю (, у меня возникают проблемы с запуском автозаполнения. Остальные персонажи работают отлично. Вот код в моем файле настроек для syntex:

"auto_complete_triggers": [  
    {"selector": "source.r - string - comment", "characters": "("},
    {"selector": "source.r - string - comment", "characters": ","}
]

Теперь , запускает автозаполнение, а ( нет. Когда я меняю ( на другие символы, это тоже работает. Почему ( не работает?


person user2503795    schedule 14.01.2014    source источник


Ответы (2)


Проблема, похоже, связана с тем, что ( каким-то образом перезаписывается сниппетом для ввода закрывающего ). Поэтому я придумал это решение, основанное на привязке клавиш, которая объединяет фрагмент и автозаполнение.

Во-первых, команда для объединения команд:

# http://stackoverflow.com/a/10863489/2503795
import sublime_plugin

class ChainedActionsCommand(sublime_plugin.TextCommand):
    def run(self, edit, actions, args):
        for i, action in enumerate(actions):
            self.view.run_command(action, args[i])

Во-вторых, привязка клавиш, которая сначала вставляет фрагмент, а затем запускает auto_complete.

{
    "keys": ["("],
    "command": "chained_actions",
    "args": {
        "actions":["insert_snippet","auto_complete"],
        "args":[{"contents": "(${0:$SELECTION})"},{}]
    },
    "context": [
        {"key": "selector", "operator": "equal", "operand": "source.r"}
    ]
}
person user2503795    schedule 17.01.2014

Вы можете попробовать экранировать ( символом \:

"auto_complete_triggers": [  
    {"selector": "source.r - string - comment", "characters": "\("},
    {"selector": "source.r - string - comment", "characters": ","}
]

Это может позволить интерпретатору «видеть» ( и не думать, что это часть синтаксиса JSON.

Удачи!

person MattDMo    schedule 15.01.2014
comment
Спасибо! Я пробовал это, но, к сожалению, это не сработало. Я думаю, проблема в том, что ( подключен к сниппету, который вставляет _2 _... - person user2503795; 15.01.2014