Mode Central

SubEthaEdit skripten

SubEthaEdit kann mit AppleScript geskriptet werden und (aus AppleScript heraus) auch mit anderen Sprachen. Skripten können im "Resources/Scripts/" Ordner eines Modus abgelegt werden um dann im "Modus" Menü und in der Symbolleiste aufzutauchen. Wenn ein Skript grundsätzlich nützlich erscheint, kann es auch in "~/Library/Application Support/SubEthaEdit/Scripts/" abgelegt werden und erscheint dann in SubEthaEdits AppleScript Menü. Diese Skripte können auch in "/Library/Application Support/SubEthaEdit/Scripts/" installiert werden, damit alle Benutzer des Rechners sie verwenden können. Die Reihenfolge der Skripte in den Menüs entspricht der alphabetischen Reihenfolge ihrer Dateinamen.

Bilder für die Symbolleiste können für Modus Skripte im "Resources" Verzeichnis des Modes abgelegt werden. Bei globalen Skripten können Sie im Verzeichnis des Skripts abgelegt werden. Ausserdem bietet SubEthaEdit noch einige eingebaute Icons für Skripte, die da wären: "ToolbarIconBuild", "ToolbarIconBuildAndRun", "ToolbarIconRun", "ToolbarIconRunInTerminal", "ToolbarIconTerminal", "ToolbarIconColorChooser" und "ToolbarIconOpenURL".

Jedes Skript sollte einen "seescriptsettings()" Handler bereitstellen der SubEthaEdit mitteilt welche Eigenschaften das Skript hat (z.B. Name, Tastaturkürzel oder Bild für die Symbolleiste). Das folgende Beispiel stellt eine Liste der derzeit unterstützten Eigenschaften in seinen Kommentaren bereit.

Beispiel: Rotate13

Das folgende Skript zeigt eine typische Anwendung von SubEthaEdits AppleScript Schnittstelle. Es zeigt unter anderem Interaktion mit Selektionen und der Zwischenablage und ruft ein externes Perl Skript auf um den ROT13 Algorithmus zu implementieren.

-- Skript Eigenschaften
on seescriptsettings()
    
    return {displayName:"Rotate13", shortDisplayName:"Run", keyboardShortcut:"^~$@r", toolbarIcon:"ToolbarIconRunInTerminal", inDefaultToolbar:"yes", toolbarTooltip:"Super secure encryption", inContextMenu:"yes"}
    
    -- Hier eine Übersicht über die zur Zeit unterstützten Skript Eigenschaften
    -- displayName: Name der in Menüs angezeigt wird
    -- shortDisplayName: Kurzer Name für die Werkzeugleiste
    -- keyboardShortcut: Ein Tastaturkürzel. alt=~, ctrl=^, shift=$, cmd=@
    -- toolbarIcon: Ein Bild für die Werkzeugleiste
    -- inDefaultToolbar: Soll es anfänglich in der Werkzeugleiste auftauchen?
    -- toolbarTooltip: Tooltip für die Werkzeugleiste
    -- inContextMenu: Soll es im Ctrl-Klick Menü auftauchen?
    
end seescriptsettings


-- das eigentliche Skript

tell application "SubEthaEdit"
    set savedClipboard to the clipboard
    if (length of selection = 0) then
        set the clipboard to contents of front document as text
    else
        set the clipboard to contents of selection as text
    end if
end tell


-- Das folgende Kommando ruft ein Perl Skript auf. Bitte achten Sie auf
-- die export Preambel die sicherstellt das pbpaste den Text in der
-- richtigen Dateikodierung erhält
set shellscriptString to "export __CF_USER_TEXT_ENCODING=0x1F5:0x8000100:0x8000100; pbpaste | /usr/bin/perl -pe 'y/A-Za-z/N-ZA-Mn-za-m/'"
set shellresult to do shell script shellscriptString without altering line endings

tell application "SubEthaEdit"
    set the clipboard to savedClipboard
    
    if (length of selection = 0) then
        set contents of front document to shellresult
    else
        set contents of selection of front document to shellresult as text
    end if
end tell

Fallstricke beim Skripten

Wenn Skripte innerhalb von SubEthaEdit ausgeführt werden, gilt es folgende Feinheiten zu beachten: