2016-02-09 2 views
1

Я пытаюсь создать макрос pythonscript для notepad ++, который автоматизирует функцию подсветки диалогового окна поиска для нескольких слов.notepad ++ pythonscript mark words

К сожалению, я не смог найти нужную функцию для «выделения». Сценарий должен делать то же самое, как если бы я использовал диалог Ctrl + F, установите флажок «Обернуть» и нажмите «Отметить все».

Это один похож, alghough он не использует pythonscript: notepad++ mark style with macro

С имеющейся документации, которую я мог бы сделать следующее:

# Function for marking a line if a certain pattern was found 
def bookmarks(lineText, lineNumber, totalLines):  
    patterns = ['word1','word2'] 
    for p in patterns: 
     if lineText.find(p) > -1: 
      editor.markerAdd(lineNumber, 24) 
    return 1 

# mark interesting lines: 
editor.markerDeleteAll(24); 
editor.forEachLine(bookmarks); 

Это позволит создать закладки для всех строк, содержащих «word1 "или" word2 "в текущем файле. Тем не менее, я хотел бы подчеркнуть то, что говорит «Mark All», и я хотел бы сделать это во всех открытых файлах.

Возможно, у меня отсутствует ресурс документации, или это потому, что я плохо знаю питон. По крайней мере, я не мог найти подходящую функцию для выделения матчей. Я использовал google, и я просмотрел следующие страницы документации. Также предлагается любой намек на более ценную документацию!

http://npppythonscript.sourceforge.net/docs/latest/index.html http://sourceforge.net/p/npppythonscript/wiki/Home/

ответ

0

http://npppythonscript.sourceforge.net/docs/latest/scintilla.html?highlight=mark#Editor.markerEnableHighlight

Чтение документы, я думаю, что это может помочь вам:

Editor.markerEnableHighlight(enabled) 

или это один:

Editor.markerAdd(line, markerNumber) 

Позже я постараюсь

+0

благодарит за быстрый ответ. Marker.Add Я уже использовал в своем примере, он создаст закладку как предполагалось, но не отметит слово (например, выделит слово). Я попытался добавить Editor.markerEnableHighlight (True). Но эффекта не было. – bikobeko