Комментарии 4
Спасибо — заценил!!!
Юзаю форматирование в Notepad++ с помощью плагина jN.
Он позволяет использовать JavaScript для автоматизации N++.
В данном случае использую Tidy для форматирования html
кусок из trdmTidy.js
var gFso = new ActiveXObject("Scripting.FileSystemObject");
var gTempFolder = Editor.nppDir +"\\plugins\\jN\\Intell\\";
var gTidyConfig = "tidy_config.txt";
var gTidyConfigFPath = Editor.nppDir +"\\plugins\\jN\\Intell\\"+gTidyConfig;
var gTidyExe = Editor.nppDir +"\\plugins\\jN\\system\\tidy.exe";
var gShell = new ActiveXObject("WScript.Shell");
var scriptsMenu;
if (!jN.scriptsMenu){
scriptsMenu = Editor.addMenu("Скрипты");
jN.scriptsMenu = scriptsMenu;
} else {
scriptsMenu = jN.scriptsMenu;
}
function formatText(psSelText) {
var rv = psSelText;
if(!gFso.FileExists(gTidyExe)) {
return rv;
}
//debugger;
var dt = new Date;
var vTempFile1 = formatData(dt,"yyyyMMdd_hhmmss_ms")+".html";
var vTempFile1F = gTempFolder + vTempFile1;
var vTempFile2 = formatData(dt,"yyyyMMdd_hhmmss_ms2")+".html";
var vTempFile2F = gTempFolder + vTempFile2;
saveToFile(rv, vTempFile1F);
gShell.CurrentDirectory = gTempFolder;
var gFilePath = gFso.GetFile(gTidyExe);
var cmdLine = ""+gFilePath.ShortPath+" -i -o "+ vTempFile2; //var cmdLine = ""+gFilePath.ShortPath+" -i -o "+ vTempFile2 + " -raw --wrap 120 " + vTempFile1;
if(gFso.FileExists(gTidyConfigFPath)) {
cmdLine = cmdLine + " -config "+gTidyConfig+" ";
}
cmdLine = cmdLine + " -raw --wrap 120 " + vTempFile1; //message(cmdLine);
gShell.Run(cmdLine,0,true);
rv = loadFromFile(vTempFile2F);
var vBodyPresentSrc = psSelText.indexOf('<body>');
var vBodyPresent = rv.indexOf('<body>');
if(vBodyPresentSrc == -1 && vBodyPresent>0) {
// если добавлены теги. Даже с настройками не хочет убирать разметку.
rv = extractNecessaryText(rv);
}
gFso.DeleteFile(vTempFile2F);
gFso.DeleteFile(vTempFile1F);
return rv;
}
// форматирование выделения
function myFormatText() {
//debugger;
var rv = '';
IntellPlus.init();
if(! (IntellPlus.curExtension == "html" || IntellPlus.curExtension == "htm")) {
return;
}
var selText = "";
var selText = Editor.currentView.selection;
if(selText.length > 0) {
var selText2 = formatText(selText);
if(selText2 != selText) {
Editor.currentView.selection = selText2;
}
}
return rv;
}
// структура для добавления хоткея и меню
var myFormatTextCommand = {
text: "Форматировать html \tCtrl+Y",
ctrl: true, shift: false, alt: false,
key: 0x59,
cmd: myFormatText
};
addHotKey(myFormatTextCommand);
scriptsMenu.addItem(myFormatTextCommand);
Немного моего "творчества" на основе плагина jN
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Интеграция ClangFormat и Notepad++