diff --git a/highlight_whitespaces.py b/highlight_whitespaces.py index a9b3c1f..7d9a467 100644 --- a/highlight_whitespaces.py +++ b/highlight_whitespaces.py @@ -14,6 +14,7 @@ Config summary (see README.md for details): "highlight_whitespaces_enabled": true, "highlight_whitespaces_check_spaces": true, "highlight_whitespaces_check_tabs": true, + "highlight_whitespaces_single_space": false, "highlight_last_whitespace": true } @@ -31,6 +32,7 @@ DEFAULT_MAX_FILE_SIZE = 1048576 DEFAULT_COLOR_SCOPE_NAME = "invalid" DEFAULT_IS_ENABLED = True DEFAULT_CHECK_SPACES = True +DEFAULT_SINGLE_SPACE = False DEFAULT_CHECK_TABS = True DEFAULT_LAST_WHITESPACE = False @@ -39,16 +41,25 @@ hws_settings = sublime.load_settings('highlight_whitespaces.sublime-settings') hws_enabled = bool(hws_settings.get('highlight_whitespaces_enabled', DEFAULT_IS_ENABLED)) +def get_settings(): + s = sublime.load_settings('highlight_whitespaces.sublime-settings') + return s + # Determine if the view is a find results view def is_find_results(view): return view.settings().get('syntax') and "Find Results" in view.settings().get('syntax') # Return an array of regions matching whitespaces. def find_whitespaces_spaces(view): + hws_settings = get_settings() last_whitespace = bool(hws_settings.get('highlight_last_whitespace',DEFAULT_LAST_WHITESPACE)) - regex = ' {2,}|\t | \t' - if last_whitespace: - regex += '| {1,}$' + single_space = bool(hws_settings.get('highlight_whitespaces_single_space',DEFAULT_SINGLE_SPACE)) + if single_space: + regex = ' +' + else: + regex = ' {2,}|\t | \t' + if last_whitespace: + regex += '| {1,}$' return view.find_all(regex) @@ -58,6 +69,8 @@ def find_whitespaces_tabs(view): # Highlight whitespaces def highlight_whitespaces(view): + hws_settings = get_settings() + max_size = hws_settings.get('highlight_whitespaces_file_max_size', DEFAULT_MAX_FILE_SIZE) space_scope_name = hws_settings.get('highlight_whitespaces_space_highlight_scope_name',