# # highlight.py # Part of SublimeLinter3, a code checking framework for Sublime Text 3 # # Written by Ryan Hileman and Aparajita Fishman # # Project: https://github.com/SublimeLinter/SublimeLinter3 # License: MIT # """ This module implements highlighting code with marks. The following classes are exported: HighlightSet Highlight The following constants are exported: WARNING - name of warning type ERROR - name of error type MARK_KEY_FORMAT - format string for key used to mark code regions GUTTER_MARK_KEY_FORMAT - format string for key used to mark gutter mark regions MARK_SCOPE_FORMAT - format string used for color scheme scope names """ import re import sublime from . import persist # # Error types # WARNING = 'warning' ERROR = 'error' MARK_KEY_FORMAT = 'sublimelinter-{}-marks' GUTTER_MARK_KEY_FORMAT = 'sublimelinter-{}-gutter-marks' MARK_SCOPE_FORMAT = 'sublimelinter.mark.{}' UNDERLINE_FLAGS = sublime.DRAW_NO_FILL | sublime.DRAW_NO_OUTLINE | sublime.DRAW_EMPTY_AS_OVERWRITE MARK_STYLES = { 'outline': sublime.DRAW_NO_FILL, 'fill': sublime.DRAW_NO_OUTLINE, 'solid underline': sublime.DRAW_SOLID_UNDERLINE | UNDERLINE_FLAGS, 'squiggly underline': sublime.DRAW_SQUIGGLY_UNDERLINE | UNDERLINE_FLAGS, 'stippled underline': sublime.DRAW_STIPPLED_UNDERLINE | UNDERLINE_FLAGS, 'none': sublime.HIDDEN } WORD_RE = re.compile(r'^([-\w]+)') NEAR_RE_TEMPLATE = r'(?