Last active
December 20, 2015 21:49
-
-
Save Infocatcher/6200149 to your computer and use it in GitHub Desktop.
AkelPad: delete current file, for Scripts plugin
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// https://gist.github.com/Infocatcher/6200149 | |
// Version: 0.1.2 - 2014-07-17 | |
// Author: Infocatcher | |
//// Delete current file | |
// Usage: | |
// Call("Scripts::Main", 1, "deleteCurrentFile.js") | |
var confirm = AkelPad.GetArgValue("confirm", true); | |
var curFile = AkelPad.GetEditFile(0); | |
if(curFile) { | |
var hMainWnd = AkelPad.GetMainWnd(); | |
var oSys = AkelPad.SystemFunction(); | |
if(oSys.Call("kernel32::GetFileAttributes" + _TCHAR, curFile) != -1) { | |
if( | |
!confirm | |
|| AkelPad.MessageBox( | |
hMainWnd, | |
"Delete file?\n" + curFile, | |
WScript.ScriptName, | |
33 /*MB_OKCANCEL|MB_ICONQUESTION*/ | |
) == 1 /*IDOK*/ | |
) { | |
if(oSys.Call("kernel32::DeleteFile" + _TCHAR, curFile)) { | |
var lpFileTime = AkelPad.SendMessage(hMainWnd, 1223 /*AKD_GETFRAMEINFO*/, 133 /*FI_FILETIME*/, 0); | |
AkelPad.MemCopy(lpFileTime + 0 /*offsetof(FILETIME, dwLowDateTime)*/, 0, 3 /*DT_DWORD*/); | |
AkelPad.MemCopy(lpFileTime + 4 /*offsetof(FILETIME, dwHighDateTime)*/, 0, 3 /*DT_DWORD*/); | |
} | |
} | |
} | |
else { | |
AkelPad.MessageBox( | |
hMainWnd, | |
"File already deleted:\n" + curFile, | |
WScript.ScriptName, | |
64 /*MB_OK|MB_ICONINFORMATION*/ | |
); | |
} | |
} |
Бесит промпт, но совсем без него - нельзя.
Можно ли приделать ключ для молчаливого удаления файла и приделать оповещение в имя вкладки (и ещё лучше использовать приписку "!" вместо дефолтной приписки "*" для обозначения локальных изменений в открытом файле, если это возможно)?
Ключ уже есть:
Call("Scripts::Main", 1, "deleteCurrentFile.js", "-confirm=false")
Насчет переименования вкладки не уверен, автоматика скорее всего обновит обратно после переключения вкладок.
Но можно пометить документ как измененный.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Исправлено в разрабатываемой версии AkelPad'а:
http://akelpad.sourceforge.net/forum/viewtopic.php?p=25248#25248
Также теперь используется код из этого примера, так что редактору теперь сообщается, что файл удален (и дополнительных сообщений больше не будет).