2

如何使特定于包的设置因语言而异?很容易使一般的 Sublime Text 设置因语言而异(例如,我可以使用 Python.sublime-settings 将空格数设置为特定于 Python 的缩进)。但我不知道如何更改特定包的设置(其设置似乎与一般应用程序设置处于不同的范围内)。

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

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

4

1 回答 1

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)

但我仍然很想知道是否可以在没有插件的情况下做到这一点!

于 2013-10-17T20:07:49.657 回答