Skip to content

Commit 16f58bd

Browse files
committed
Add option to switch off the typescript language service
1 parent edea3b9 commit 16f58bd

9 files changed

+37
-8
lines changed

Preferences.sublime-settings

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
{
2-
"typescript_auto_format": true
2+
"typescript_auto_format": true,
3+
"enable_typescript_language_service": true
34
}

main.py

+6
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,12 @@ def plugin_loaded():
6060
from on_activated or on_close if necessary.
6161
"""
6262
log.debug("plugin_loaded started")
63+
settings = sublime.load_settings('Preferences.sublime-settings')
64+
global_vars._language_service_enabled = settings.get('enable_typescript_language_service', True)
65+
print ("lang_service_enabled: " + str(global_vars.get_language_service_enabled()))
66+
if not global_vars.get_language_service_enabled():
67+
return
68+
6369
cli.initialize()
6470
ref_view = get_ref_view(False)
6571
if ref_view:

typescript/commands/base_command.py

+4-3
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,18 @@
11
import sublime_plugin
2+
from ..libs.global_vars import get_language_service_enabled
23
from ..libs.view_helpers import is_typescript, active_view
34

45

56
class TypeScriptBaseTextCommand(sublime_plugin.TextCommand):
67
def is_enabled(self):
7-
return is_typescript(self.view)
8+
return is_typescript(self.view) and get_language_service_enabled()
89

910

1011
class TypeScriptBaseWindowCommand(sublime_plugin.WindowCommand):
1112
def is_enabled(self):
12-
return is_typescript(self.window.active_view())
13+
return is_typescript(self.window.active_view()) and get_language_service_enabled()
1314

1415

1516
class TypeScriptBaseApplicationCommand(sublime_plugin.ApplicationCommand):
1617
def is_enabled(self):
17-
return is_typescript(active_view())
18+
return is_typescript(active_view()) and get_language_service_enabled()

typescript/commands/error_list.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
class TypescriptProjectErrorList(sublime_plugin.WindowCommand):
1111

1212
def is_enabled(self):
13-
return is_typescript(active_view()) and not global_vars.IS_ST2
13+
return is_typescript(active_view()) and not global_vars.IS_ST2 and global_vars.get_language_service_enabled()
1414

1515
def run(self):
1616
panel_manager = get_panel_manager()
@@ -36,7 +36,7 @@ def run(self):
3636
class TypescriptGoToError(sublime_plugin.TextCommand):
3737

3838
def is_enabled(self):
39-
return not global_vars.IS_ST2
39+
return not global_vars.IS_ST2 and global_vars.get_language_service_enabled()
4040

4141
def run(self, text):
4242
print("TypeScriptGoToError")

typescript/commands/references.py

+12
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,9 @@ class TypescriptGoToRefCommand(sublime_plugin.TextCommand):
2525
"""
2626
If cursor is on reference line, go to (filename, line, offset) referenced by that line
2727
"""
28+
def is_enabled(self):
29+
return global_vars.get_language_service_enabled()
30+
2831
def run(self, text):
2932
pos = self.view.sel()[0].begin()
3033
cursor = self.view.rowcol(pos)
@@ -41,6 +44,9 @@ def run(self, text):
4144

4245
# TODO: generalize this to work for all types of references
4346
class TypescriptNextRefCommand(sublime_plugin.TextCommand):
47+
def is_enabled(self):
48+
return global_vars.get_language_service_enabled()
49+
4450
def run(self, text):
4551
ref_view = get_ref_view()
4652
if ref_view:
@@ -54,6 +60,9 @@ def run(self, text):
5460
# TODO: generalize this to work for all types of references
5561
class TypescriptPrevRefCommand(sublime_plugin.TextCommand):
5662
"""Go to previous reference in active references file"""
63+
def is_enabled(self):
64+
return global_vars.get_language_service_enabled()
65+
5766
def run(self, text):
5867
ref_view = get_ref_view()
5968
if ref_view:
@@ -70,6 +79,9 @@ class TypescriptPopulateRefs(sublime_plugin.TextCommand):
7079
Helper command called by TypescriptFindReferences; put the references in the
7180
references buffer (such as build errors)
7281
"""
82+
def is_enabled(self):
83+
return global_vars.get_language_service_enabled()
84+
7385
def run(self, text, argsJson):
7486
args = json_helpers.decode(argsJson)
7587
file_name = args["filename"]

typescript/commands/signature.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ def on_selected(self, index):
6060

6161
class TypescriptSignaturePopup(sublime_plugin.TextCommand):
6262
def is_enabled(self):
63-
return TOOLTIP_SUPPORT and is_typescript(self.view)
63+
return TOOLTIP_SUPPORT and is_typescript(self.view) and get_language_service_enabled()
6464

6565
def run(self, edit, move=None):
6666
log.debug('In run for signature popup with move: {0}'.format(move if move else 'None'))

typescript/libs/__init__.py

+2
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
from .logger import log
77
from .panel_manager import get_panel_manager
88
from . import logger
9+
from . import global_vars
910
__all__ = [
1011
'cli',
1112
'EditorClient',
@@ -19,5 +20,6 @@
1920
'PopupManager',
2021
'ServiceProxy',
2122
'work_scheduler',
23+
'global_vars',
2224
'get_panel_manager'
2325
]

typescript/libs/global_vars.py

+5-1
Original file line numberDiff line numberDiff line change
@@ -50,4 +50,8 @@ def get_node_path():
5050
VALID_COMPLETION_ID_PATTERN = re.compile("[a-zA-Z_$\.][\w$\.]*\Z")
5151

5252
# idle time length in millisecond
53-
IDLE_TIME_LENGTH = 200
53+
IDLE_TIME_LENGTH = 200
54+
55+
_language_service_enabled = True
56+
def get_language_service_enabled():
57+
return _language_service_enabled

typescript/libs/view_helpers.py

+3
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,9 @@ def __init__(self, filename, cc):
3939

4040
def get_info(view, open_if_not_cached=True):
4141
"""Find the file info on the server that matches the given view"""
42+
if not get_language_service_enabled():
43+
return
44+
4245
if not cli.initialized:
4346
cli.initialize()
4447

0 commit comments

Comments
 (0)