Wo ich gerade wieder dran sitze: Gibt es im ExtendScript Toolkit (CS6) eine Möglichkeit, Code automatisch zu formatieren? Besonders die Einrückungen machen mich immer kirre, wenn ich die von Hand setzen soll. Bei den Arduino- / Processing-Umgebungen gibt es die Funktion, den Code automatisch zu formatieren.
Übersehe ich etwas? Wie macht ihr das? Ich gehe momentan über eine »Beautifiy«-Website per Copy & Paste … Beste Grüße Simon
Hallo Simon, unter Voreinstellungen -> Dokumente -> Tabulatoren kannst du die Einrückung eigentlich einstellen.
Allerdings finde ich das Coden im ESTK auch nicht gerade optimal, ich bin daher vor einer Weile auf Sublime umgestiegen, das ich mir so eingerichtet habe, dass ich InDesign-Scripte direkt von dort aus starten kann. Habe die Entscheidung nicht bereut und wenn ich doch mal wieder im ESTK coden muss, komme ich mir immer sehr eingeschränkt vor.
Ah, vielen Dank. Einfach das Programm wechseln … hätte ich ja auch alleine drauf kommen können.
Ich glaube, für zweimal im Jahr ein Skript anpassen möchte ich gerade nicht einen anderen Editor kaufen, aber ich schaue mal, was es im Freeware-Bereich so gibt. Bzw. scheint mir Sublime ja recht großzügig zu sein, was die Testversion angeht.
ja, hier gibt es entsprechende Scripts, um sich das einzurichten und eine kurze Anleitung (wenn man weiß, wie man in Sublime Packages installiert, sollte man es hinbekommen, ich habe es auch geschafft und kenne mich mit solchen Sachen eher nicht so gut aus): https://github.com/...xtras/Sublime%20Text
Da steht zwar was von basil.js, aber man kann auch jedes andere InDesign-Script so ausführen. Ich weiß aber gerade ehrlich gesagt nicht, ob das auch für Windows funktioniert (bin mit Mac OS X unterwegs).
Ich habe die Scripts dahingehend eingerichtet und modifiziert, dass ich mittels Command + B das Script normal ausführe und falls irgendein komischer Fehler auftaucht, den ich mit meiner normalen Debugging-Routine nicht finden kann (fehlende Klammern etc., wobei das in Sublime echt selten passiert), dann kann ich mit einem modifizierten Script mittels Command + alt + B das Script schnell ins ESTK reinladen ohne es auszuführen. Da zeigt er mir dann kurz an, wo die Klammer fehlt und ich kann mit dem Scripting in Sublime weitermachen.
Falls du weitere Infos brauchst, kann ich Details auch gerne noch genauer erklären.
Viele Grüße, md
(Dieser Beitrag wurde von mdomino am 2. Jun 2016, 13:38 geändert)
Sehe ich es richtig, dass man mit Hilfe von Basiljs den Code aus Sublime Text an InDesign schickt und mehr nicht? Kein Debugging, Einzelschritt, Haltepunkte, Inspektion der Variablen und Objekte? Oder habe ich etwas übersehen?
Wie informierst Du Dich über Inhalte von Variablen und Objekten während der Skriptausführung? Allein über Alerts?
Im Prinzip sollte man statt "Sublime Text" jeden anderen Texteditor (z.B. BBEdit) verwenden können, sofern es eine Kommunikationsbrücke zu InDesign gibt. Kennt jemand so eine Brücke für BBEdit/TextWrangler?
Richtig. Ich nehme an, das ESTK macht ja im Grunde auch nichts anderes. ;)
Bei komplexeren Scripts meist über $.writeln()-Statements, so dass im ESTK so eine Art Log mitläuft, den man inspizieren kann (da wird aber zum Beispiel im mir verlinkten Thread auch noch diskutiert, ob man das nicht direkt an Sublime zurücksenden könnte, da habe ich aber bislang leider keine Zeit gefunden, das mal auszutesten). Wenn ich Dinge wie Einzelschritt o.Ä. nutzen muss, dann kann ich wie gesagt über eine einfache Tastenkombination das Script schnell ins ESTK laden.
Sublime vereinfacht für mich einfach die Arbeit des Code-Schreibens, aufgrund vieler Extra-Funktionen. Ich habe mir zudem einige Sublime-Snippets angelegt, mit denen ich extrem schnell vorformatierten ExtendScript-Code in mein Script einfügen kann und mich da mit der Tab-Taste von Eingabewert zu Eingabewert hangeln kann, was dann die Schreibarbeit sehr effizient macht. Aber klar, es muss jeder für sich entscheiden, welche Arbeitsweise ihm lieber ist. Ich könnte jedenfalls nicht mehr umsteigen auf Exklusiv-ESTK.
Grüße, md
P.S.: Achso und noch mal: mit basil.js hat das Ganze überhaupt nichts zu tun, das sind nur zwei Scripte, die im Rahmen des basil.js-Projekts erstellt wurden und deshalb an dieser Stelle runterladbar sind, man muss aber keineswegs basil.js installieren, sondern nur die beiden Scripte.
(Dieser Beitrag wurde von mdomino am 2. Jun 2016, 14:20 geändert)
:-) Der etwas andere Weg: Schreib Dir ein Skript! Solch einem Skript kannst Du dann nach und nach erweitern, um automatisch Kommentare einzufügen, Variablen auf Nutzung und Typ zu überprüfen, Nutzung von Funktionen zu prüfen, Code zu strukturieren usw.
Aber generell mal, wenn Du Probleme mit Einrückungen und Klammerungen hast, solltest Du die Strukturierung Deines Skriptes überprüfen, da ist dann nämlich etwas oberfaul!
Verwende für Codebereiche, die etwas umfangreicher sind, Unterroutinen! Da geht die Fehlersuche und das Debugging viel einfacher.
Unterroutinen können separat getestet und wiederverwendet werden.
Editoren:
Für Windows: Notepad++ - mehr Editor geht eigentlich nicht!
Oder gleich Entwicklungsumgebungen wie Visual Studio, JetBrains Webstorm und ähnliches.
Aber nach allen Tests bin ich am produktivsten mit einer Kombination aus Microsoft VS (Projektverwaltung), Microsoft Team Foundation Server (TFS) zur Versionskontrolle und ESTK als Editor, da kann ich dann direkt Debuggen und in der Konsole Ausdrücke testen.
Ich schreibe ja nur ganz einfache Skripte, mehr verstehe ich gar nicht. ;-) Aber es ist mir lästig, Übersicht zu schaffen, in dem ich genau darauf achte, welche Schleife jetzt genau wie viele Tabs/Leerzeichen eingerückt ist. In Processsing/Arduino (und früher glaube ich auch ActionScript) gab es eine Tastenkombination und der hat das dann alles wieder ordentlich hingeschoben. Mehr will ich nicht.
Als Typograf stehe ich auf ordentliche Einzüge, du verstehst?
Aber ich bin beeindruckt von den verschiedenen Workflows, die ich hier sehe. Schreibt ihr alle Vollzeit InDesign JavaScripte?
Meinst Du so etwas ESTK: komplette Zeilen markieren und dann Tab-Taste -> Block einrücken komplette Zeilen markieren und dann Shift + Tab-Taste -> Block um einen Tab zurück.