0

文件我有崇高的目錄結構是這樣的:得到一個設定值,從位於非標準目錄

Packages 
    |-- Foo 
    | |-- Markdown.sublime-settings 
    | 
    |-- Bar 
    | |-- plugin.py 
    | 
    |-- User 
     |-- Markdown.sublime-settings 

於是,我試圖讓一個wrap_width值,存儲在Foo/Markdown.sublime-setting。出於某種原因,看來load_setting方法不起作用,儘管save_settings工作正常。

import sublime 
import sublime_plugin 

class MarkdownSettings(sublime_plugin.EventListener): 
    def on_activated(self, view): 

     path = view.file_name() 
     if path: 

      e = view.file_name().split('.')[1] 
      if e == ("md" or "mmd"): 

       # Simple test. It works 
       x = sublime.load_settings("Markdown.sublime-settings") 
       wrap_width = x.get("wrap_width") 
       print(wrap_width) # Prints 50 

       # If I change directory to "../Foo", `load_setting` method would not work 
       x = sublime.load_settings("../Foo/Markdown.sublime-settings") 
       wrap_width = x.get("wrap_width") 
       print(wrap_width) # Prints None 

       # The code below is added just for demonstration purposes, 
       # to show that `save_setting` method works fine. 
       x = sublime.load_settings("../Foo/Markdown.sublime-settings") 
       x.set("wrap_width", 20) 
       sublime.save_settings("../Foo/Markdown.sublime-settings") # File updated 

我怎麼能獲取存儲在Foo/Markdown.sublime-settingswrap_width價值?

回答

2

不支持使用load_settings的路徑。

http://www.sublimetext.com/docs/3/api_reference.html#sublime

加載指定的設置。該名稱應包含文件名和擴展名,但不包含路徑。軟件包將被搜索匹配base_name的文件,結果將被整理到設置對象中。隨後調用load_settings()base_name將返回相同的對象,並且不會再從磁盤加載設置。

如果您確實需要這樣做,您應該使用sublime.decode_value(sublime.load_resource('Packages/Foo/Markdown.sublime-settings'))來代替。

相關問題