使用Lua/love2d进行Sublime Text的选择
2014-6-2 18:32:40
收藏:0
阅读:114
评论:1
假设我有这样一行代码:
Object.Property.field;
Object.Property:FunctionName();
在我的 sublime 所有语言中,如果我双击任意一行上的 "Property",它只会选择该单词。 但是由于某些原因,我的 lua/lua love2d 语法高亮会选择整行直到 ":" 的部分。
如何更改此行为,以便仅选择单个单词?
点赞
评论区的留言会收到邮件通知哦~
推荐文章
- 如何将两个不同的lua文件合成一个 东西有点长 大佬请耐心看完 我是小白研究几天了都没搞定
- 如何在roblox studio中1:1导入真实世界的地形?
- 求解,lua_resume的第二次调用继续执行协程问题。
- 【上海普陀区】内向猫网络招募【Skynet游戏框架Lua后端程序员】
- SF爱好求教:如何用lua实现游戏内调用数据库函数实现账号密码注册?
- Lua实现网站后台开发
- LUA错误显式返回,社区常见的规约是怎么样的
- lua5.3下载库失败
- 请问如何实现文本框内容和某个网页搜索框内容连接,并把网页输出来的结果反馈到另外一个文本框上
- lua lanes多线程使用
- 一个kv数据库
- openresty 有没有比较轻量的 docker 镜像
- 想问一下,有大佬用过luacurl吗
- 在Lua执行过程中使用Load函数出现问题
- 为什么 neovim 里没有显示一些特殊字符?
- Lua比较两个表的值(不考虑键的顺序)
- 有个lua简单的项目,外包,有意者加微信 liuheng600456详谈,最好在成都
- 如何在 Visual Studio 2022 中运行 Lua 代码?
- addEventListener 返回 nil Lua
- Lua中获取用户配置主目录的跨平台方法
发生这种情况的原因是
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 的版本,如果你使用的是 ST3(当前版本为 3061),那么它会大于等于 3000,如果你使用的是 ST2,那么它将等于 2221(我想)。然后它设置一个事件监听器(该进程总是在后台运行),检查 Sublime 版本是否小于 3000(你在使用 ST2),并且你的当前作用域中有lua(基本上,如果你使用插件的语言定义,那么你的文件就是source.lua或source.lua.love)。如果这两个条件都成立,则会从你的"word_separators"设置中移除.字符,该设置在Preferences -> Settings-Default中定义,并可以在Preferences -> Settings-User中进行覆盖。word_separators设置控制双击选择单词时将被视为单词分隔符的字符。它的默认值为./\\()\"'-:,.;<>~!@#$%^&*|+=[]{}`~?因此,例如,如果你在foo-bar的foo部分双击,Sublime 只会选择foo,但如果你在foo_bar的foo部分双击,Sublime 将选择整个字符串(因为-在word_separators中)。默认情况下,.在word_separators中,因此在foo.bar中双击foo只会选择foo,这是大多数人预期的行为。然而,这个漂亮的小插件会从 Sublime Text 2 中的word_separators中移除.,因此在你的情况下,点击Property会选择从“单词”的开始位置(Object之前的空格)到下一个单词分隔符 - 在第二个例子中是:。好的,我们知道问题是什么,如何解决?首先,当你在
Packages/Lua Love中时,完全删除completions.py。这样做不会有任何危害,事实上,它实际上正在通过存在而造成危害。确保在删除文件后重新启动 Sublime。接下来,打开 **Preferences -> Settings-User**,并在双引号之间的任何位置将.添加回到word_separators列表中。保存该文件,回到源代码,然后双击应该会再次正常工作。祝好运!
编辑
我提交了这个 pull request,从插件的 Github 存储库中删除了
completions.py文件,它已经被合并,所以希望将来的用户不必处理这个问题:)