def plugin_loaded():
global arghints_enabled, renderer, tern_command, tern_arguments
global arg_completion_enabled
arghints_enabled = get_setting("tern_argument_hints", False)
arg_completion_enabled = get_setting("tern_argument_completion", False)
if "show_popup" in dir(sublime.View):
default_output_style = "tooltip"
else:
default_output_style = "status"
output_style = get_setting("tern_output_style", get_setting("tern_argument_hints_type", default_output_style))
renderer = create_renderer(output_style)
tern_arguments = get_setting("tern_arguments", [])
if not isinstance(tern_arguments, list):
tern_arguments = [tern_arguments]
tern_command = get_setting("tern_command", None)
if tern_command is None:
if not os.path.isdir(os.path.join(plugin_dir, "node_modules/tern")):
if sublime.ok_cancel_dialog(
"It appears Tern has not been installed. Do you want tern_for_sublime to try and install it? "
"(Note that this will only work if you already have node.js and npm installed on your system.)"
"\n\nTo get rid of this dialog, either uninstall tern_for_sublime, or set the tern_command setting.",
"Yes, install."):
try:
if hasattr(subprocess, "check_output"):
subprocess.check_output(["npm", "install"], cwd=plugin_dir)
else:
subprocess.check_call(["npm", "install"], cwd=plugin_dir)
except (IOError, OSError) as e:
msg = "Installation failed. Try doing 'npm install' manually in " + plugin_dir + "."
if hasattr(e, "output"):
msg += " Error message was:\n\n" + e.output
sublime.error_message(msg)
return
tern_command = ["node", os.path.join(plugin_dir, "node_modules/tern/bin/tern"), "--no-port-file"]
评论列表
文章目录