15 Commits

Author SHA1 Message Date
6cfb029215 Adding end-of-line highlighting as an option 2015-02-17 13:50:00 -07:00
Kemal
42b9b62842 Merge pull request #10 from jackmaney/master
Added `highlight_whitespaces_enabled` summary to README
2014-06-06 14:06:12 +03:00
Jack Maney
e363121abb Added highlight_whitespaces_enabled summary to README
Documented feature in Issue #8 of the parent repository.
2014-01-17 19:37:38 -06:00
Kemal
0060617485 Merge pull request #9 from jethar/st3
Fix #7, add option to allow highlight on single space
2013-10-22 08:10:38 -07:00
Harjeet Singh
1df06d1ada Restored option to allow highlight on single space, but set as false by default 2013-10-21 19:14:30 +05:30
Harjeet Singh
1067d50461 Enabling by default again 2013-10-21 17:30:44 +05:30
Harjeet Singh
7c8152b0d6 Fixes for ST3 and disabling plugin by default 2013-10-21 17:20:29 +05:30
Kemal Hadimli
148ad95966 Hunt for spaces after tabs or tabs after spaces as well 2013-08-27 12:09:58 +03:00
Kemal Hadimli
dc3c860a25 remove the only tab character in the file 2013-08-27 12:09:00 +03:00
Kemal Hadimli
551cf1e378 Update commented file settings in .py head 2013-08-27 12:03:12 +03:00
Kemal Hadimli
e9d8a6dd6e Merge branch 'master' of git://github.com/ebergama/HighlightWhitespaces into ebergama-master
Conflicts:
	highlight_whitespaces.py
	highlight_whitespaces.sublime-settings
2013-08-27 12:00:04 +03:00
Peter Conerly
87141119fa added option to disable spaces or tabs 2013-08-27 11:55:33 +03:00
Ezequiel Bergamaschi
17ca7f2616 last whitespace property enabled 2013-08-20 22:05:50 -03:00
Kemal Hadimli
04b88f15bd update README to reflect ST3 support. 2013-05-03 14:57:42 +03:00
Kemal Hadimli
36f90560f4 ST3 support/bugfix (close #1) 2013-05-03 14:48:58 +03:00
3 changed files with 90 additions and 17 deletions

View File

@@ -1,6 +1,6 @@
## Synopsis
This is a [Sublime Text 2](http://www.sublimetext.com/2) plugin.
This is a plugin for [Sublime Text 2](http://www.sublimetext.com/2) and [3](http://www.sublimetext.com/3).
**Highlight whitespaces in documents**
@@ -21,6 +21,8 @@ Then clone this repository:
That's it!
Note for ST3 users: For Sublime Text 3, replace "2" with "3" in path names. (`%APPDATA%\Sublime Text 3` and so on)
## Options
Several options are available to customize the plugin look 'n feel. The
@@ -31,6 +33,10 @@ menu.
The default toggle highlight shortcut is ```ctrl+alt+w``` (```cmd+alt+w``` for OS X)
### Disable highlighting when Sublime Text starts up
Change `highlight_whitespaces_enabled` from the default of `true` to `false`.
### Change the highlighting color
One may also change the highlighting color, providing a scope name such
@@ -39,7 +45,8 @@ as "invalid", "comment"... in "File Settings - User":
```
{
"highlight_whitespaces_space_highlight_scope_name": "invalid",
"highlight_whitespaces_tab_highlight_scope_name": "invalid"
"highlight_whitespaces_tab_highlight_scope_name": "invalid",
"highlight_whitespaces_eol_highlight_scope_name": "invalid"
}
```

View File

@@ -10,8 +10,14 @@ Config summary (see README.md for details):
{
"highlight_whitespaces_space_highlight_scope_name": "invalid",
"highlight_whitespaces_tab_highlight_scope_name": "invalid",
"highlight_whitespaces_eol_highlight_scope_name": "invalid",
"highlight_whitespaces_file_max_size": 1048576,
"highlight_whitespaces_enabled": true
"highlight_whitespaces_enabled": true,
"highlight_whitespaces_check_spaces": true,
"highlight_whitespaces_check_tabs": true,
"highlight_whitespaces_check_eol": true,
"highlight_whitespaces_single_space": false,
"highlight_last_whitespace": true
}
Forked from https://github.com/SublimeText/TrailingSpaces/ by Jean-Denis Vauguet <jd@vauguet.fr>, Oktay Acikalin <ok@ryotic.de>
@@ -27,40 +33,72 @@ import sublime_plugin
DEFAULT_MAX_FILE_SIZE = 1048576
DEFAULT_COLOR_SCOPE_NAME = "invalid"
DEFAULT_IS_ENABLED = True
DEFAULT_CHECK_SPACES = True
DEFAULT_SINGLE_SPACE = False
DEFAULT_CHECK_EOL = True
DEFAULT_CHECK_TABS = True
DEFAULT_LAST_WHITESPACE = False
#Set whether the plugin is on or off
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):
return view.find_all(' {2,}')
hws_settings = get_settings()
last_whitespace = bool(hws_settings.get('highlight_last_whitespace',DEFAULT_LAST_WHITESPACE))
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)
def find_whitespaces_tabs(view):
return view.find_all('\t+')
def find_whitespaces_eol(view):
return view.find_all('[\t ]+$')
# 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',
DEFAULT_COLOR_SCOPE_NAME)
tab_scope_name = hws_settings.get('highlight_whitespaces_tab_highlight_scope_name',
DEFAULT_COLOR_SCOPE_NAME)
eol_scope_name = hws_settings.get('highlight_whitespaces_eol_highlight_scope_name',
DEFAULT_COLOR_SCOPE_NAME)
if view.size() <= max_size and not is_find_results(view):
if hws_settings.get('highlight_whitespaces_check_spaces', DEFAULT_CHECK_SPACES):
space_regions = find_whitespaces_spaces(view)
view.add_regions('WhitespacesHighlightListener',
space_regions, space_scope_name,
space_regions, space_scope_name, '',
sublime.DRAW_EMPTY)
if hws_settings.get('highlight_whitespaces_check_tabs', DEFAULT_CHECK_TABS):
tab_regions = find_whitespaces_tabs(view)
view.add_regions('WhitespacesHighlightListener2',
tab_regions, tab_scope_name,
tab_regions, tab_scope_name, '',
sublime.DRAW_EMPTY)
if hws_settings.get('highlight_whitespaces_check_eol', DEFAULT_CHECK_EOL):
eol_regions = find_whitespaces_eol(view)
view.add_regions('WhitespacesHighlightListener3',
eol_regions, eol_scope_name, '',
sublime.DRAW_EMPTY)
@@ -69,6 +107,7 @@ def clear_whitespaces_highlight(window):
for view in window.views():
view.erase_regions('WhitespacesHighlightListener')
view.erase_regions('WhitespacesHighlightListener2')
view.erase_regions('WhitespacesHighlightListener3')
# Toggle the event listner on or off
@@ -112,3 +151,15 @@ class WhitespacesHighlightListener2(sublime_plugin.EventListener):
if hws_enabled:
highlight_whitespaces(view)
class WhitespacesHighlightListener3(sublime_plugin.EventListener):
def on_modified(self, view):
if hws_enabled:
highlight_whitespaces(view)
def on_activated(self, view):
if hws_enabled:
highlight_whitespaces(view)
def on_load(self, view):
if hws_enabled:
highlight_whitespaces(view)

View File

@@ -5,9 +5,24 @@
// Tabs color is determined by scope (default, "invalid")
// "highlight_whitespaces_tab_highlight_scope_name": "Whitespaces.tab.highlight",
// End-of-line color is determined by scope (default, "invalid")
// "highlight_whitespaces_eol_highlight_scope_name": "Whitespaces.eol.highlight",
// Max file size to search
"highlight_whitespaces_file_max_size": 1048576,
// By default plugin is enabled or disabled (true|false)
"highlight_whitespaces_enabled": true
"highlight_whitespaces_enabled": true,
// Whether to check for spaces
"highlight_whitespaces_check_spaces": true,
// Whether to check for tabs
"highlight_whitespaces_check_tabs": true,
// Whether to check for end-of-line whitespace
"highlight_whitespaces_check_eol": true,
// Allow the highlighting of the last whitespace, one or more time
"highlight_last_whitespace": true
}