Wie bereinige ich den Code zum automatischen Einrücken in Komodo Edit 5?

11301
conspirisi

Ich habe eine Rails- html.erbDatei in Komodo Edit 5 und die Einrückung ist etwas wild geworden.

Gibt es ein Plugin oder eine Funktion, die meinen Code automatisch einrückt, damit er einfacher zu lesen ist?

2
Die Unterstützung der Code-Formatierung ist in Komodo * IDE * integriert. Ich verwende auch einfaches Komodo Edit und bekomme Unterstützung durch das Makro. Ich habe das Makro mit dem Ruby Support aktualisiert und erwäge, meine Antwort zu akzeptieren. J. M. Becker vor 12 Jahren 0

4 Antworten auf die Frage

2
J. M. Becker

Ich verwende diese leicht bearbeitete Version von anderem bekanntem Code. In den Komodo-Foren gibt es seit einiger Zeit Variationen. Ich habe das Makro für Komodo Edit 7.0 und 6.X aktualisiert. Es funktioniert normalerweise gut genug. Ich habe einige der Optionen tidy und csstidy geändert, die XML-Unterstützung hinzugefügt und die undefinierte Syntaxwarnung geändert. Ich musste auch einen sehr hässlichen Klumpen kreieren, um Astyle zum Laufen zu bringen, da Astyle kein stdin akzeptiert. An diesem Punkt muss das gesamte Makro komplett erneuert werden, da seine Einschränkungen offensichtlich sind.

Was den Ruby-Support betrifft, sehen Sie sich rbeautify an . Ich habe nun Unterstützung für Ruby integriert. Sie müssen rbeautify in Ihrem PATH installiert haben. Ich muss Sie warnen, ich habe kein Ruby installiert und kann daher nicht vollständig testen. Ich sollte auch erwähnen, dass meine JS schrecklich ist, aber ich habe überprüft, was ich konnte und das Makro funktionierte. Dies sollte endlich diese Frage beantworten, es könnte Zeit sein, meine Antwort zu akzeptieren.

Format_Syntax.js

komodo.assertMacroVersion(3); if (komodo.view.scintilla) { komodo.view.scintilla.focus(); } // bug 67103 var koDoc = (komodo.koDoc === undefined ? komodo.document : komodo.koDoc); var formatter; var language = koDoc.language; var cannot_tidy_selection = false;  switch (language) { case 'C#': cannot_tidy_selection = true; formatter = 'astyle --style=ansi --mode=cs --convert-tabs --indent=spaces=4 %F > /dev/null 2>&1; cat %F'; break; case 'C++': cannot_tidy_selection = true; formatter = 'astyle --style=linux --mode=c --convert-tabs --indent=spaces=4 %F > /dev/null 2>&1; cat %F'; break; case 'CSS': formatter = 'csstidy - --preserve_css=true --lowercase_s=true --case_properties=true --sort_properties=true --remove_bslash=false --silent=true --template=medium'; break; case 'HTML': cannot_tidy_selection = true; formatter = 'tidy -q -asxhtml -i -b -c -w 120 --show-warnings no --show-errors 0 --tidy-mark no --css-prefix block --drop-proprietary-attributes yes --anchor-as-name no --enclose-text yes'; break; case 'Java': cannot_tidy_selection = true; formatter = 'astyle --style=java --mode=java --convert-tabs --indent=spaces=4 %F > /dev/null 2>&1; cat %F'; break; case 'Perl': formatter = 'perltidy'; break; case 'PHP': formatter = 'php_beautifier -s4 -l"Pear()"'; break; case 'Ruby': formatter = 'rbeautify.rb -'; break; case 'XSLT': cannot_tidy_selection = true; formatter = 'tidy -q -xml -i -w 120 --show-warnings no --show-errors 0 --tidy-mark no'; break; case 'XML': cannot_tidy_selection = true; formatter = 'xmllint --format --recover -'; break; default: alert("Syntax Undefined, Add Case to Macro " + language); return null; }  // Save Curser Position var currentPos = komodo.editor.currentPos; try { // Save the file, Check Changes with "File -> Show Unsaved Changes" //komodo.doCommand('cmd_save'); // Group operations in a single undo komodo.editor.beginUndoAction(); // Select Buffer, pipe it into formatter. var text_not_selected = cannot_tidy_selection || komodo.editor.selText == ""; if (text_not_selected) { komodo.doCommand('cmd_selectAll'); } Run_RunEncodedCommand(window, formatter + " {'insertOutput': True, 'operateOnSelection': True}"); if (text_not_selected) { komodo.editor.gotoPos(currentPos); } // Restore Cursor Position komodo.editor.gotoPos(currentPos); // Clean Potential EOL Mismatches komodo.doCommand('cmd_cleanLineEndings'); } catch (e) { alert(e); } finally { // End Undo Action to Avoid Edit Buffer Corruption // komodo.editor.endUndoAction(); return true; } 
1
Trent Mick

Nicht direkt. Das " Run Commands " -System (und möglicherweise die Verwendung von Makros) kann jedoch zur Ausführung eines externen Skripts verwendet werden, das den Inhalt des aktuellen Puffers massiert. Wenn Sie also ein Skript haben, das eine gute .html.erb-Formatierung ausführen kann, sollten Sie das integrieren können.

Nebenbei: Komodo IDE (der kommerzielle Verwandte von Komodo Edit) verfügt über ein Framework für Integrationscode-Formatierer in Komodo. Es wird mit einem "HTML Tidy" -Formatierer ausgeliefert, der die Formatierung von .html.erb möglicherweise ordnungsgemäß erledigt.

1
etep

Um den Code nach Ihren Wünschen zu formatieren, probieren Sie astyle

Möglicherweise können Sie dies als Paket finden, z

0
TAOCode

Ich habe dieses Formatierungsskript (Makro) gefunden und mit dem neuesten Komodo Edit (v6.1.0) für meinen persönlichen Gebrauch angepasst. Es funktioniert gut (vorausgesetzt, Sie verfügen über HTML Tidy auf Ihrem System) und ich habe den JavaScript-Formatierungscode von einem Kommentator mit einbezogen, aber ich denke, dass er möglicherweise nur mit der Komodo IDE funktioniert. Es ist unwichtig für meine Zwecke. Vielleicht kann jemand da draußen eine universelle Verbesserung finden (mit etwas wie HTML ordentlich).

komodo.assertMacroVersion(3); if (komodo.view) { komodo.view.setFocus(); }  var formatter; var language = komodo.document.language; switch (language) { case 'Perl': formatter = 'perltidy -i=2 -pt=2 -l=0'; break; case 'XML': case 'XUL': case 'XLST': formatter = 'tidy -q -xml -i -w 80'; break; case 'HTML': formatter = 'tidy -q -asxhtml -i -w 120'; break; //case 'JavaScript': // ko.views.manager.currentView.scimoz.selectAll(); // ko.views.manager.currentView.scimoz.replaceSel(js_beautify(ko.views.manager.currentView.scimoz.text, )); // return null; default: alert("I don't know how to tidy " + language); return null; }  //save current cursor position var currentPos = komodo.editor.currentPos;  try { // Save the file. After the operation you can check what changes where made by // File -> Show Unsaved Changes komodo.doCommand('cmd_save');  // Group operations into a single undo komodo.editor.beginUndoAction();  // Select entire buffer & pipe it into formatter. komodo.doCommand('cmd_selectAll'); Run_RunEncodedCommand(window, formatter + " {'insertOutput': True, 'operateOnSelection': True}");  // Restore cursor. It will be close to the where it started depending on how the text was modified. komodo.editor.gotoPos(currentPos);  // On windows, when the output of a command is inserted into an edit buffer it has unix line ends. komodo.doCommand('cmd_cleanLineEndings'); } catch (e) { alert(e); } finally { // Must end undo action or may corrupt edit buffer komodo.editor.endUndoAction(); }