From 5da3306d21e9207e477d61b6aca0c78215984023 Mon Sep 17 00:00:00 2001 From: Daniel Rosenwasser Date: Mon, 25 Feb 2019 01:41:05 -0800 Subject: [PATCH] Check if the entire file matches a selector when deciding whether it's TypeScript. --- typescript/libs/view_helpers.py | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/typescript/libs/view_helpers.py b/typescript/libs/view_helpers.py index 60c21318..692a2df4 100644 --- a/typescript/libs/view_helpers.py +++ b/typescript/libs/view_helpers.py @@ -95,24 +95,29 @@ def active_window(): """Return currently active window""" return sublime.active_window() +def selector_matches_whole_file(view, selector): + regions = view.find_by_selector(selector) + return len(regions) == 1 and regions[0].size() == view.size() def is_typescript(view): """Test if the outer syntactic scope is 'source.ts' or 'source.tsx' """ if not view.file_name(): return False - try: - location = view.sel()[0].begin() - except: - return False - - is_ts_file = view.match_selector(location, 'source.ts, source.tsx') + # Check if the *entire file* is one contiguous TypeScript/JavaScript region. + # + # Why am I writing this note? We used to test for the *current selection*. + # This meant that as soon as a user clicked into an html `