Automatyzacja Komodo Edit/IDE – makro w Pythonie
2010-03-24 Dodaj komentarz
Często zdarza się, że w trakcie programowania występuje potrzeba wykonania prostej acz pracochłonnej i czasochłonnej czynności. Dobre edytor umożliwia automatyzację takich zadań.
Mam ostatnio okazję pracować z Komodo Edit (darmowa wersja Komodo IDE). By nie marnować czasu napisałem proste makra, których szkielet przedstawię poniżej.
Dodawanie makra
Dodanie makra sprowadza się do wykonania następujących czynności:
-
Wyświetlamy Toolbox (View > Tabs & Sidebars > Toolbox)
-
W Toolbox klikamy na przycisk Add Item to Toolbox a następnie wybieramy New Macro
-
Zmieniamy język na Python, ustawiamy nazwę makra. Możemy też zmienić jego ikonę, ustawić dla niego skrót klawiaturowy. Dodajemy kod makra i zapisujemy je klikając OK.
- Makro uruchamia się klikając na nie w Toolbox lub korzystając z przypisanego skrótu klawiaturowego.
Kod makra
W praktyce używam tylko dwóch rodzajów makr. Pierwsze z nich przetwarzają („filtrują”) zaznaczony tekst. Drugie „wykonują” polecenia zawarte w aktualnej linii.
Poniżej zawarty jest kod realizujący oba te sposoby.
import komodo def replace_selection(fn): scimoz = komodo.editor sel_start = min(scimoz.currentPos, scimoz.anchor) text = fn(scimoz.selText) scimoz.replaceSel(text) scimoz.anchor = sel_start scimoz.currentPos = sel_start + len(text) def replace_line(fn): scimoz = komodo.editor scimoz.lineEnd() scimoz.homeExtend() text = fn(scimoz.selText) scimoz.replaceSel(text) # Jedną z poniższych linii należy zakomentować replace_selection(lambda t: t.replace(u' ',u'\n')) replace_line(lambda t: u'>>' + t)Więcej możliwości
Oczywiście powyższe przykłady zastosowań są bardzo proste. W praktyce można napisać dowolną funkcję, robiącą dokładnie to czego chcemy.
Pełną dokumentację można znaleźć na stronie Macro API Reference.
Jeśli napiszemy więcej makr lub często z nich korzystamy to możemy stworzyć dla nich własny Toolbar (New Custom Toolbar) lub Menu (New Custom Menu).