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])
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])
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
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())
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
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()}
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])
_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()
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())