Python 升华文本插件设置:未加载

Python 升华文本插件设置:未加载,python,plugins,sublimetext3,Python,Plugins,Sublimetext3,我一直在制作一个出色的文本插件,在我开始钻研更高级的东西之前,一切似乎都很好。我有以下设置文件: { "suggest_new_file": true, "add_to_single_view": false, "show_status_message": true, "show_file_path": true, "status_message": "Copied to {name}", "keep_focus": true, // show preview of file

我一直在制作一个出色的文本插件,在我开始钻研更高级的东西之前,一切似乎都很好。我有以下设置文件:

   {
"suggest_new_file": true,

"add_to_single_view": false,

"show_status_message": true,

"show_file_path": true,

"status_message": "Copied to {name}",

"keep_focus": true,

// show preview of file contents in popup menu
"show_preview": true,

// scroll the view to the end of the file being copied to
// requires 'keep_focus' to be false
"scroll_view": true,
}
但是,当我按如下方式在sublime终端中键入时:

。。。它返回False,即使它为True,并且
sublime.load\u设置(“AddToFile.sublime设置”)。has(“show\u preview”)
也为True。其他设置也会发生这种情况,我不知道我的插件从哪里获取设置,方法
settings(),因此,显式获取的值与预期值相反,这表明正在加载设置文件

这由
settings.has()
返回
True
,表示具有该名称的设置确实存在于
settings
对象引用的设置层次结构中

您的结果表明存在多个同名的设置文件<代码>升华设置
文件是许多附加的包资源文件之一;也就是说,当加载这些资源时,Sublime会在每个已知包中的每个路径中搜索该名称的文件,并将其加载,并将结果组合在一起

这就是为什么
sublime.load\u settings()
要求您只指定设置文件的名称,而不指定其路径;提供路径是没有意义的,因为它正在加载多个文件

多个文件的加载顺序为,加载文件时,其内容将应用于上一次加载的结果之上,从而允许每个后续文件覆盖设置或添加新的设置

您可以使用
sublime.find_resources()
API方法来确定存在和正在加载的文件(如果有);结果按加载顺序列出

>sublime.find_资源(“AddToFile.sublime设置”)
['Packages/User/AddToFile.sublime设置']

如图所示,我只有一个同名文件。在您的情况下,我猜其中有不止一个,您上面显示的内容在列表中比其他具有不同设置的文件更早出现,这就是为什么您的设置没有您认为的值。

什么是
sublime.find_resources(“AddToFile.sublime settings”)
return?它返回
该方法应返回资源文件名列表;如果它返回一个设置对象,那么您的Sublime安装会严重出错。感谢您提到
查找资源
方法!事实证明,我从GitHub repo复制包时无意中复制了包。
sublime.load_settings('AddToFile.sublime-settings').get("show_preview")