Automatyzacja Komodo Edit/IDE – makro w Pythonie

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:

  1. Wyświetlamy Toolbox (View > Tabs & Sidebars > Toolbox)
  2. W Toolbox klikamy na przycisk Add Item to Toolbox a następnie wybieramy New Macro
  3. 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.
  4. 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).

Skomentuj

Wprowadź swoje dane lub kliknij jedną z tych ikon, aby się zalogować:

Logo WordPress.com

Komentujesz korzystając z konta WordPress.com. Wyloguj /  Zmień )

Zdjęcie na Google

Komentujesz korzystając z konta Google. Wyloguj /  Zmień )

Zdjęcie z Twittera

Komentujesz korzystając z konta Twitter. Wyloguj /  Zmień )

Zdjęcie na Facebooku

Komentujesz korzystając z konta Facebook. Wyloguj /  Zmień )

Połączenie z %s

%d blogerów lubi to: