Scite 运行单个脚本

lua-users home
wiki

从列表中选择一个脚本并运行它

以下脚本需要 SciteExtMan。它使用 SciTE 的用户列表机制来显示一个脚本名称列表。用户可以选择一个脚本并运行它。这对于不经常运行的脚本很有用,此外,这减少了工具和缓冲区选项卡菜单的高度。如果 extman 不存在,它会静默失败。

下面的代码演示了用户如何选择两个娱乐脚本之一 (SciteElizaClassicSciteTicTacToe )。要自定义代码,只需将适当的信息放入表 AppList 中。

注意:目前,SciteExtMan 不使用 id 参数来区分多个用户列表,因此如果您需要多个用户列表,则需要对 extman 进行一些修改。


-----------------------------------------------------------------------
-- for global scripts; switch to "SciteUserHome" for per-user scripts
-----------------------------------------------------------------------
function loadscript(scriptfile)
  require(props["SciteDefaultHome"].."/script/"..scriptfile)
end

-----------------------------------------------------------------------
-- run selected scripts, silently fails if no extman
-----------------------------------------------------------------------
-- [[
if scite_Command then
scite_Command('Run A Script|ChooseAScript|Ctrl+9')
local AppList = {
  {"Tic Tac Toe", "SciTE_TicTacToe2.lua", "TicTacToe"},
  {"Classic Eliza", "SciTE_Classic_Eliza2.lua", "ClassicEliza"},
}
function ChooseAScript()
  local list = {}
  for i,v in ipairs(AppList) do list[i] = v[1] end
  if scite_UserListShow then
    scite_UserListShow(list, 1, RunSelectedScript)
  end
end
function RunSelectedScript(str)
  for i,v in ipairs(AppList) do
    if str == v[1] then
      loadscript(v[2]) -- change this to suit your environment
      if type(_G[v[3]]) == "function" then _G[v[3]]() end
    end
  end
end
end
--]]

--khman


此脚本运行良好。但是,当我最近切换到 SciTE 版本 1.74 时,它停止正常工作。通过更改以下行,我能够使其再次工作

  require(props["SciteDefaultHome"].."/script/"..scriptfile)

  dofile(props["SciteDefaultHome"].."\\scitelua\\"..scriptfile)

注意:在 Linux 上使用 /。如果您在 Windows 上,请使用 \\ 代替,就像我一样。

想知道是否还有其他人遇到这个问题,以及这是否是最好的解决方案,或者是否有其他命令可以更好地替代 dofile。有什么意见吗?

我发现它是一个非常有用的脚本。感谢作者分享它。


最近更改 · 偏好设置
编辑 · 历史记录
最后编辑于 2007 年 8 月 31 日下午 7:49 GMT (差异)