Причина, по которой это происходит, заключается в несколько странном добавлении к подключаемому модулю Lua Love
, который я Предположим, вы используете. Вы используете Sublime 2, поэтому выберите Preferences -> Browse Packages...
, чтобы открыть папку Packages
, затем откройте подпапку Lua Love
. Есть файл с именем completions.py
, который имеет следующее содержание:
#completions.py
import sublime
import sublime_plugin
import re
class LoveCompletions(sublime_plugin.EventListener):
ST = 3000 if sublime.version() == '' else int(sublime.version())
def on_query_completions(self, view, prefix, locations):
if self.ST < 3000 and ("lua" in view.scope_name(locations[0])):
seps = view.settings().get("word_separators")
seps = seps.replace('.', '')
view.settings().set("word_separators", seps)
Даже если вы не знаете Python, логику довольно легко понять. Он устанавливает переменную ST
в версию Sublime, которая составляет 3000+, если вы используете ST3 (текущая сборка - 3061), и 2221 (я думаю) для ST2. Затем он настраивает прослушиватель событий (процесс всегда выполняется в фоновом режиме), проверяя, меньше ли версия Sublime 3000 (вы используете ST2), и у вас есть lua
в вашей текущей области (в основном, ваш файл source.lua
или source.lua.love
, если вы используете определение языка плагина). Если оба утверждения верны, он удаляет символ .
из параметра "word_separators"
, который определен в Preferences -> Settings-Default
и может быть переопределен в Preferences -> Settings-User
.
Параметр word_separators
определяет, какие символы считаются разделителями слов при двойном щелчке для выбора слова. Его значение по умолчанию - ./\\()\"'-:,.;<>~!@#$%^&*|+=[]{}`~?
, поэтому, например, если вы дважды щелкните foo
часть foo-bar
Sublime, будет выбран только foo
, но если вы дважды щелкните foo
часть foo_bar
Sublime выберет все это (поскольку -
находится в word_separators
). .
находится в word_separators
по умолчанию, поэтому двойной щелчок по foo
в foo.bar
выберет только foo
, что, как я полагаю, является ожидаемым поведением для большинства людей. Однако этот симпатичный маленький плагин удаляет .
из word_separators
в Sublime Text 2, поэтому в вашем случае щелчок по Property
выбирает все от начала «слова» (пробел перед Object
) до следующего разделителя слов - :
, в данном случае вашего второго примера.
Итак, мы знаем, в чем проблема, как ее исправить? Во-первых, пока вы находитесь в Packages/Lua Love
, просто удалите completions.py
полностью. В этом нет ничего плохого, и на самом деле это причинение вреда своим присутствием. Обязательно перезапустите Sublime после удаления файла. Затем откройте Preferences -> Settings-User
и добавьте .
обратно в список word_separators
в любом месте между начальными и конечными двойными кавычками. Сохраните этот файл, вернитесь к исходному коду, и двойной щелчок снова должен работать нормально.
Удачи!
ИЗМЕНИТЬ
Я отправил этот запрос на вытягивание, чтобы удалить completions.py
файл из репозитория Github плагина, и он был просто объединены, так что, надеюсь, пользователям в будущем не придется с этим сталкиваться :)
person
MattDMo
schedule
02.06.2014
Lua
по умолчанию, который поставляется с Sublime, или вы установили плагин? Если вы установили плагин, каково его имя и URL? - person MattDMo   schedule 03.06.2014