Sublime Text中特定于语言的包设置

时间:2013-10-17 19:00:47

标签: python sublimetext2 sublimetext sublimerepl

如何根据语言使特定于程序包的设置有所不同?一般的Sublime Text设置很容易因语言而异(例如,我可以使用Python.sublime-settings来设置缩进特定于Python的空格数)。但我无法弄清楚如何更改特定包的设置(其设置似乎与一般应用程序设置不同)。

我特别想要做的是更改SublimeREPL中的“show_transferred_text”参数。在R中,我需要这个“假”,在Python中我需要它是“真实的”。有什么东西可以添加到“show_transferred_text”行:在我的Python.sublime-settings中为true表示这是SublimeREPL的参数吗?设置它不会改变SublimeREPL参数,我再次假设,因为特定于包的设置在不同的范围内。

这提供了一个开始,允许我编写一个插件来执行此操作,但我想知道它是否已经在ST中更简单地得到支持。是否有包装范围或我可以添加到可以让我直接设置包密钥的密钥的东西?

1 个答案:

答案 0 :(得分:1)

好吧,我继续编写了一个简短的插件来执行此操作。如果其他人需要做这样的事情,那么修改就很容易了。它只是EventListener的扩展,每次焦点更改时都会调用它。这是我第一次涉足ST API,所以如果有人看到这个并知道如何让它更简单/更清洁,请告诉我!

import sublime, sublime_plugin

class PythonREPLHelperCommand(sublime_plugin.EventListener):
  def on_activated(self, view):
    syntax = view.settings().get('syntax')
    if syntax=='Packages/Python/Python.tmLanguage':
      plugin_settings = sublime.load_settings('SublimeREPL.sublime-settings')
      plugin_settings.set("show_transferred_text", True)
    else:
      plugin_settings = sublime.load_settings('SublimeREPL.sublime-settings')
      plugin_settings.set("show_transferred_text", False)

但是我仍然想知道如果没有插件就可以做到这一点!