Exemplo n.º 1
0
    def __init__(self):
        '''
            Initialize the class, should be called once only.
        '''

        current_version = notepad.getPluginVersion()
        if current_version < '1.5.4.0':
            notepad.messageBox(
                'It is needed to run PythonScript version 1.5.4.0 or higher',
                'Unsupported PythonScript verion: {}'.format(current_version))
            return

        self.INDICATOR_ID = 0
        self.registered_lexers = _dict()

        self.document_is_of_interest = False
        self.regexes = None
        self.excluded_styles = None

        editor1.indicSetStyle(self.INDICATOR_ID, INDICATORSTYLE.TEXTFORE)
        editor1.indicSetFlags(self.INDICATOR_ID, INDICFLAG.VALUEFORE)
        editor2.indicSetStyle(self.INDICATOR_ID, INDICATORSTYLE.TEXTFORE)
        editor2.indicSetFlags(self.INDICATOR_ID, INDICFLAG.VALUEFORE)

        editor.callbackSync(self.on_updateui, [SCINTILLANOTIFICATION.UPDATEUI])
        editor.callbackSync(self.on_marginclick,
                            [SCINTILLANOTIFICATION.MARGINCLICK])
        notepad.callback(self.on_langchanged, [NOTIFICATION.LANGCHANGED])
        notepad.callback(self.on_bufferactivated,
                         [NOTIFICATION.BUFFERACTIVATED])
    def __init__(self):
        '''
            Initialize the class, should be called only once.
        '''

        # **************** configuration area ****************
        # files with these extensions and a null lexer,
        # aka normal text, assigned do get handled
        self.known_extensions = ['log', 'txt']
        #
        self.show_escape_chars = False
        self.separate_path_and_line_number = '0'
        self.interpret_escape_sequences = '1'
        # ****************************************************
        
        self.SCE_ERR_DEFAULT =0
        self.SCE_ERR_PYTHON =1
        self.SCE_ERR_GCC =2
        self.SCE_ERR_MS =3
        self.SCE_ERR_CMD =4
        self.SCE_ERR_BORLAND =5
        self.SCE_ERR_PERL =6
        self.SCE_ERR_NET =7
        self.SCE_ERR_LUA =8
        self.SCE_ERR_CTAG =9
        self.SCE_ERR_DIFF_CHANGED = 10
        self.SCE_ERR_DIFF_ADDITION = 11
        self.SCE_ERR_DIFF_DELETION = 12
        self.SCE_ERR_DIFF_MESSAGE = 13
        self.SCE_ERR_PHP = 14
        self.SCE_ERR_ELF = 15
        self.SCE_ERR_IFC = 16
        self.SCE_ERR_IFORT = 17
        self.SCE_ERR_ABSF = 18
        self.SCE_ERR_TIDY = 19
        self.SCE_ERR_JAVA_STACK = 20
        self.SCE_ERR_VALUE = 21
        self.SCE_ERR_GCC_INCLUDED_FROM = 22
        self.SCE_ERR_ESCSEQ = 23
        self.SCE_ERR_ESCSEQ_UNKNOWN = 24
        self.SCE_ERR_ES_BLACK = 40
        self.SCE_ERR_ES_RED = 41
        self.SCE_ERR_ES_GREEN = 42
        self.SCE_ERR_ES_BROWN = 43
        self.SCE_ERR_ES_BLUE = 44
        self.SCE_ERR_ES_MAGENTA = 45
        self.SCE_ERR_ES_CYAN = 46
        self.SCE_ERR_ES_GRAY = 47
        self.SCE_ERR_ES_DARK_GRAY = 48
        self.SCE_ERR_ES_BRIGHT_RED = 49
        self.SCE_ERR_ES_BRIGHT_GREEN = 50
        self.SCE_ERR_ES_YELLOW = 51
        self.SCE_ERR_ES_BRIGHT_BLUE = 52
        self.SCE_ERR_ES_BRIGHT_MAGENTA = 53
        self.SCE_ERR_ES_BRIGHT_CYAN = 54
        self.SCE_ERR_ES_WHITE = 55

        notepad.callback(self.on_langchanged, [NOTIFICATION.LANGCHANGED])
        notepad.callback(self.on_bufferactivated, [NOTIFICATION.BUFFERACTIVATED])
Exemplo n.º 3
0
 def __init__(self):
     ''' Register needed callbacks on first class instantiation '''
     editor.callbackSync(self.styleneeded_callback,
                         [SCINTILLANOTIFICATION.STYLENEEDED])
     notepad.callback(self.bufferactivated_callback,
                      [NOTIFICATION.BUFFERACTIVATED])
     notepad.callback(self.langchanged_callback,
                      [NOTIFICATION.LANGCHANGED])
Exemplo n.º 4
0
def start_regex_tester():
    if REGEX_TESTER_FILE_NAME == '':
        notepad.messageBox('You need to indicate, in the REGEX_TESTER_FILE_NAME variable,\n' +
                           'the fully qualified file name of the TEXT file containing ' +
                           'the REGEX(ES) to test', 'REGEX_TESTER_FILE_NAME is not set')
        return False

    current_document = 0 if notepad.getCurrentView() == 1 else notepad.getCurrentBufferID()

    global REGEX_TESTER_INPUT_TAB
    REGEX_TESTER_INPUT_TAB = regex_tester_doc_already_exists()
    if REGEX_TESTER_INPUT_TAB == 0 :
        notepad.open(REGEX_TESTER_FILE_NAME)
        if notepad.getCurrentFilename().upper() == REGEX_TESTER_FILE_NAME.upper():
            REGEX_TESTER_INPUT_TAB = notepad.getCurrentBufferID()
        else:
            notepad.messageBox('Could not open specified file\n' +
                               '{0}'.format(REGEX_TESTER_FILE_NAME),
                               'Regex Tester Startup Failed', 0)
            return False
    else:
        notepad.activateBufferID(REGEX_TESTER_INPUT_TAB)

    if notepad.getCurrentView() != 1:
        notepad.menuCommand(MENUCOMMAND.VIEW_GOTO_ANOTHER_VIEW)

    STATUS_LINE = 'RegexTester isActive [] flags:sitpr'

    current_status_line = editor2.getLine(0)
    if 'RegexTester' in current_status_line:
        editor2.replace('RegexTester inActive', 'RegexTester isActive')
    else:
        editor2.insertText(0, STATUS_LINE)


    global REGEX_TESTER_IS_RUNNING
    REGEX_TESTER_IS_RUNNING = True

    color_regex_tester_status()

    set_current_buffer_id()

    global PREVIOUS_REGEX
    PREVIOUS_REGEX[CURRENT_BUFFER_ID] = ''

    editor.callbackSync(regex_tester_updateui_callback, [SCINTILLANOTIFICATION.UPDATEUI])

    if current_document != 0:
        notepad.activateBufferID(current_document)

    editor2.setFocus(True)
    editor2.gotoLine(0)
    notepad.save()

    notepad.callback(regex_tester_file_before_close_callback, [NOTIFICATION.FILEBEFORECLOSE])
    notepad.callback(regex_tester_buffer_activated_callback, [NOTIFICATION.BUFFERACTIVATED])

    return True
Exemplo n.º 5
0
def start_regex_tester():
    if REGEX_TESTER_FILE_NAME == '':
        notepad.messageBox('You need to indicate, in the REGEX_TESTER_FILE_NAME variable,\n' +
                           'the fully qualified file name of the TEXT file containing ' +
                           'the REGEX(ES) to test', 'REGEX_TESTER_FILE_NAME is not set')
        return False

    current_document = 0 if notepad.getCurrentView() == 1 else notepad.getCurrentBufferID()

    global REGEX_TESTER_INPUT_TAB
    REGEX_TESTER_INPUT_TAB = regex_tester_doc_already_exists()
    if REGEX_TESTER_INPUT_TAB == 0 :
        notepad.open(REGEX_TESTER_FILE_NAME)
        if notepad.getCurrentFilename().upper() == REGEX_TESTER_FILE_NAME.upper():
            REGEX_TESTER_INPUT_TAB = notepad.getCurrentBufferID()
        else:
            notepad.messageBox('Could not open specified file\n' +
                               '{0}'.format(REGEX_TESTER_FILE_NAME),
                               'Regex Tester Startup Failed', 0)
            return False
    else:
        notepad.activateBufferID(REGEX_TESTER_INPUT_TAB)

    if notepad.getCurrentView() != 1:
        notepad.menuCommand(MENUCOMMAND.VIEW_GOTO_ANOTHER_VIEW)

    STATUS_LINE = 'RegexTester isActive [] flags:sitpr'

    current_status_line = editor2.getLine(0)
    if 'RegexTester' in current_status_line:
        editor2.replace('RegexTester inActive', 'RegexTester isActive')
    else:
        editor2.insertText(0, STATUS_LINE)


    global REGEX_TESTER_IS_RUNNING
    REGEX_TESTER_IS_RUNNING = True

    color_regex_tester_status()

    set_current_buffer_id()

    global PREVIOUS_REGEX
    PREVIOUS_REGEX[CURRENT_BUFFER_ID] = ''

    editor.callbackSync(regex_tester_updateui_callback, [SCINTILLANOTIFICATION.UPDATEUI])

    if current_document != 0:
        notepad.activateBufferID(current_document)

    editor2.setFocus(True)
    editor2.gotoLine(0)
    notepad.save()

    notepad.callback(regex_tester_file_before_close_callback, [NOTIFICATION.FILEBEFORECLOSE])
    notepad.callback(regex_tester_buffer_activated_callback, [NOTIFICATION.BUFFERACTIVATED])

    return True
Exemplo n.º 6
0
 def __init__(self):
     editor.callbackSync(self.on_updateui,
                         [SCINTILLANOTIFICATION.UPDATEUI])
     notepad.callback(self.on_langchanged, [NOTIFICATION.LANGCHANGED])
     notepad.callback(self.on_bufferactivated,
                      [NOTIFICATION.BUFFERACTIVATED])
     self.__is_lexer_doc = False
     self.get_lexer_name = lambda: notepad.getLanguageName(
         notepad.getLangType())
Exemplo n.º 7
0
    def __init__(self):
        self.document_is_of_interest = False
        self.debug_mode = False
        self.ANON_STYLE = 20  # (0-18 reserved by ihex lexer)

        editor.callbackSync(self.on_updateui, [SCINTILLANOTIFICATION.UPDATEUI])
        notepad.callback(self.on_langchanged, [NOTIFICATION.LANGCHANGED])
        notepad.callback(self.on_bufferactivated,
                         [NOTIFICATION.BUFFERACTIVATED])
    def __init__(self):
        print('__init__')
        self.report = ('Total: {0:<5}  '
                       'Unique: {1:<5}  '
                       'Total non-misspelled: {2:<5}({3:.1%})  '
                       'Total misspelled: {4:<4}({5:.1%})  '
                       'Unique misspelled: {6:<4}({7:.1%})')

        editor.callbackSync(self.on_modified, [SCINTILLANOTIFICATION.MODIFIED])
        notepad.callback(self.on_buffer_activated,
                         [NOTIFICATION.BUFFERACTIVATED])
        current_dict_path = os.path.join(notepad.getPluginConfigDir(),
                                         'Hunspell')
        current_dict_file = os.path.join(current_dict_path, 'ES-5000.dic')
        with open(current_dict_file, 'r') as f:
            self.current_dict = [
                word.decode('utf8') for word in f.read().splitlines()[1:]
            ]  # skip length entry

        self.DEBUG_MODE = False
        self.on_buffer_activated(
            {})  # must be last line here as it triggers check_words
Exemplo n.º 9
0
    def setup(self):
        log('register callbacks etc...')
        notepad.callback(self.on_buffer_activated,
                         [NOTIFICATION.BUFFERACTIVATED])
        notepad.callback(self.on_file_saved, [NOTIFICATION.FILESAVED])
        notepad.callback(self.on_file_closed, [NOTIFICATION.FILECLOSED])
        notepad.callback(self.on_file_before_save,
                         [NOTIFICATION.FILEBEFORESAVE])
        editor.callbackSync(self.on_char_added,
                            [SCINTILLANOTIFICATION.CHARADDED])
        editor.callbackSync(self.on_dwell_end,
                            [SCINTILLANOTIFICATION.DWELLEND])
        editor.callbackSync(self.on_dwell_start,
                            [SCINTILLANOTIFICATION.DWELLSTART])

        fg_color = editor.styleGetFore(32)
        darker_bg_color = tuple(
            [x - 10 if x > 10 else x for x in editor.styleGetBack(32)])

        CALLTIP_STYLE = 38
        editor1.styleSetBack(CALLTIP_STYLE, darker_bg_color)
        editor1.styleSetFore(CALLTIP_STYLE, fg_color)
        editor2.styleSetBack(CALLTIP_STYLE, darker_bg_color)
        editor2.styleSetFore(CALLTIP_STYLE, fg_color)

        editor1.callTipUseStyle(80)  # 80 = tab width in pixels
        editor2.callTipUseStyle(80)

        editor1.autoCSetSeparator(10)
        editor1.autoCSetOrder(ORDERING.CUSTOM)
        editor2.autoCSetSeparator(10)
        editor2.autoCSetOrder(ORDERING.CUSTOM)

        self.PEEK_STYLE = 60
        editor1.styleSetFore(self.PEEK_STYLE, fg_color)
        editor1.styleSetBack(self.PEEK_STYLE, darker_bg_color)
        editor2.styleSetFore(self.PEEK_STYLE, fg_color)
        editor2.styleSetBack(self.PEEK_STYLE, darker_bg_color)

        editor1.setMouseDwellTime(500)
        editor2.setMouseDwellTime(500)

        self.open_files_dict = {x[1]: x[0] for x in notepad.getFiles()}
Exemplo n.º 10
0
 def setCallbacks(self):
     self.clearCallbacks()
     editor.setMouseDwellTime(self.mouseDwellTime)
     editor.callback(self.onCalltipClick,
                     [Npp.SCINTILLANOTIFICATION.CALLTIPCLICK])
     editor.callback(self.onAutocomplete,
                     [Npp.SCINTILLANOTIFICATION.CHARADDED])
     editor.callback(self.onMouseDwell,
                     [Npp.SCINTILLANOTIFICATION.DWELLSTART])
     editor.callback(self.textModified,
                     [Npp.SCINTILLANOTIFICATION.MODIFIED])
     notepad.callback(self.onBufferActivated,
                      [Npp.NOTIFICATION.BUFFERACTIVATED])
     notepad.callback(self.onShutdown, [Npp.NOTIFICATION.SHUTDOWN])
     if self.lexer:
         editor.callbackSync(self.lexer.on_updateui,
                             [Npp.SCINTILLANOTIFICATION.UPDATEUI])
         notepad.callback(self.lexer.on_langchanged,
                          [Npp.NOTIFICATION.LANGCHANGED])
Exemplo n.º 11
0
 def __init__(self):
     ''' Register needed callbacks on first class instantiation '''
     editor.callbackSync(self.styleneeded_callback, [SCINTILLANOTIFICATION.STYLENEEDED])
     notepad.callback(self.bufferactivated_callback, [NOTIFICATION.BUFFERACTIVATED])
     notepad.callback(self.langchanged_callback, [NOTIFICATION.LANGCHANGED])
Exemplo n.º 12
0
                _end_marker_line_to_delete = marker_end_line

            editor.markerDelete(_start_marker_line_to_delete,
                                MARK_HIDELINESBEGIN)
            editor.markerDelete(_start_marker_line_to_delete,
                                MARK_HIDELINESUNDERLINE)
            editor.markerDelete(_end_marker_line_to_delete, MARK_HIDELINESEND)

        else:
            return

    editor.hideLines(start_line, end_line)
    editor.markerAdd(marker_start_line, MARK_HIDELINESBEGIN)
    editor.markerAdd(marker_start_line, MARK_HIDELINESUNDERLINE)
    editor.markerAdd(marker_end_line, MARK_HIDELINESEND)
    editor.gotoLine(marker_start_line)


# ---------------------------------------------------------------------------------

try:
    MARGINCLICK_CALLBACK_REGISTERED
except NameError:
    editor.callbackSync(sync_callback_MARGINCLICK,
                        [SCINTILLANOTIFICATION.MARGINCLICK])
    editor.callback(async_callback_MARGINCLICK,
                    [SCINTILLANOTIFICATION.MARGINCLICK])
    notepad.callback(callback_BUFFERACTIVATED, [NOTIFICATION.BUFFERACTIVATED])
    MARGINCLICK_CALLBACK_REGISTERED = True

main()
Exemplo n.º 13
0
 def __init__(self):
     editor.callbackSync(self.on_updateui, [SCINTILLANOTIFICATION.UPDATEUI])
     notepad.callback(self.on_langchanged, [NOTIFICATION.LANGCHANGED])
     notepad.callback(self.on_bufferactivated, [NOTIFICATION.BUFFERACTIVATED])
     self.__is_lexer_doc = False
     self.get_lexer_name = lambda: notepad.getLanguageName(notepad.getLangType())