2013-10-17 51 views
2

如何根據語言使程序包特定的設置不同?一般的Sublime Text設置很容易根據語言而有所不同(例如,我可以使用Python.sublime-settings來設置特定於Python的縮進空格數量)。但我無法弄清楚如何改變一個特定軟件包的設置(其設置看起來與一般的應用程序設置不同)。崇高文本中語言特定的程序包設置

我想特別做的是改變SublimeREPL中的「show_transferred_text」參數。在R我需要這是「假」,在Python中我需要它是「真實的」。有什麼我可以添加到行「show_transferred_text」:在我的Python.sublime設置爲true,以表明這是一個SublimeREPL參數?像這樣設置不會改變SublimeREPL參數,我再次假設,因爲包特定的設置是在不同的範圍內。

這提供了一個開始,可以讓我寫一個插件來做到這一點,但我不知道它是否已經在ST中更簡單地支持。是否有包的範圍或我可以添加到可能允許我直接設置包密鑰的密鑰?

回答

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) 

但我仍然很想知道如果沒有插件就可以做到這一點!

+0

我只是給你寫了一個答案 - 就我的知識而言,不可能像你剛纔那樣定義特定於語言的REPL選項。好的插件,順便說一句,但小問題 - 遵循PEP8,你真的應該縮進4個空格而不是2 :) – MattDMo

+0

隨意在GitHub上打開一個問題,作者是相當敏感的,但我不知道它會多久帶他去實施這樣的事情。當然,提供的代碼總是有助於加快流程! – MattDMo

+1

感謝您的幫助!我打開一個問題,但這看起來像是一個崇高的文本問題,而不是一個SublimeREPL問題 - 我可以想象想要其他語言特定的包行爲。 (關於PEP8,我只能處理80個字符或4個空格,而不是兩個,我選擇80char,因爲在Python誕生之前我已經使用了2個空格!) – cauchy