Instantly share code, notes, and snippets.
Created
January 8, 2019 21:47
-
Star
(0)
0
You must be signed in to star a gist -
Fork
(0)
0
You must be signed in to fork a gist
-
Save hi5/d3821149e3a1f50efdef2d367b99cfdd to your computer and use it in GitHub Desktop.
TFMENU
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
/* | |
Name : TF Menu/Toolbar - making TF available in your favourite editor and/or filemanager | |
Requirements : TF Lib https://github.com/hi5/TF or | |
http://www.autohotkey.com/forum/viewtopic.php?t=46195 or | |
http://www.autohotkey.net/~hugov/tf.ahk | |
Version : 0.2 | |
Updated : 31 December 2009 | |
Documentation : http://www.autohotkey.com/forum/viewtopic.php?p=319645 | |
AHK Forum : http://www.autohotkey.com/forum/viewtopic.php?p=319645 | |
Credits : HugoV | |
History : http://www.autohotkey.com/forum/viewtopic.php?p=319645 | |
*/ | |
; ini | |
#NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases. | |
SendMode Input ; Recommended for new scripts due to its superior speed and reliability. | |
SetBatchLines, -1 | |
SplitPath, A_AhkPath, , _AHK_LIBDIR | |
_AHK_LIBDIR .= "\lib\tf.ahk" | |
_FileManagers=TTOTAL_CMD,ExploreWClass,CabinetWClass | |
_TFMVer=TFMenu v0.1 | |
; pre-build menu | |
Menu, Submenu1, Add, TF_Find, MenuHandler | |
Menu, Submenu1, Add, TF_Replace, MenuHandler | |
Menu, Submenu1, Add, TF_ReplaceInLines, MenuHandler | |
Menu, Submenu1, Add, TF_ReplaceLine, MenuHandler | |
Menu, Submenu1, Add, TF_RegExReplace, MenuHandler | |
Menu, Submenu1, Add, TF_RegExReplaceInLines, MenuHandler | |
Menu, Submenu1, Add, TF_InsertPrefix, MenuHandler | |
Menu, Submenu1, Add, TF_InsertSuffix, MenuHandler | |
Menu, Submenu1, Add, TF_InsertLine, MenuHandler | |
Menu, Submenu1, Add, TF_Tab2Spaces, MenuHandler | |
Menu, Submenu1, Add, TF_Spaces2Tab, MenuHandler | |
Menu, Submenu1, Add, TF_CountLines, MenuHandler | |
Menu, Submenu2, Add, TF_RemoveLines, MenuHandler | |
Menu, Submenu2, Add, TF_RemoveBlankLines, MenuHandler | |
Menu, Submenu2, Add, TF_RemoveDuplicateLines, MenuHandler | |
Menu, Submenu2, Add, TF_TrimLeft, MenuHandler | |
Menu, Submenu2, Add, TF_TrimRight, MenuHandler | |
Menu, Submenu2, Add, TF_RangeReplace, MenuHandler | |
Menu, Submenu3, Add, TF_AlignLeft, MenuHandler | |
Menu, Submenu3, Add, TF_AlignCenter, MenuHandler | |
Menu, Submenu3, Add, TF_AlignRight, MenuHandler | |
Menu, Submenu3, Add, TF_Wrap, MenuHandler | |
Menu, Submenu3, Add, TF_WhiteSpace, MenuHandler | |
Menu, Submenu4, Add, TF_ColGet, MenuHandler | |
Menu, Submenu4, Add, TF_ColPut, MenuHandler | |
Menu, Submenu4, Add, TF_ColCut, MenuHandler | |
Menu, Submenu5, Add, TF_Sort, MenuHandler | |
Menu, Submenu5, Add, TF_ReadLines, MenuHandler | |
Menu, Submenu5, Add, TF_Count, MenuHandler | |
Menu, Submenu5, Add, TF_Tail, MenuHandler | |
Menu, Submenu5, Add, TF_SplitFileByLines, MenuHandler | |
Menu, Submenu5, Add, TF_SplitFileByText, MenuHandler | |
Menu, Submenu5, Add, TF_LineNumber, MenuHandler | |
Menu, Submenu5, Add, TF_ReverseLines, MenuHandler | |
Menu, MyMenu, Add, Find && Replace, :Submenu1 | |
Menu, MyMenu, Add, Delete, :Submenu2 | |
Menu, MyMenu, Add, Format (Align`, Wrap), :Submenu3 | |
Menu, MyMenu, Add, Columns, :Submenu4 | |
Menu, MyMenu, Add, Misc., :Submenu5 | |
Return | |
#z:: | |
WorkWithSelection=1 | |
WinGet, Active_Window_ID, ID, A | |
WinGetClass, Active_Window_Class, A | |
ControlGetFocus, ActiveControl_Class, A | |
ClipSaved := ClipboardAll ; Save the entire clipboard to a variable of your choice. | |
Clipboard= | |
ClipWait, 0 | |
Send ^c ; copy selection to clipboard, if any | |
ClipWait, 0 | |
If (Clipboard = "") ; clipboard is empty so no selected text, reset clipboard to content | |
{ | |
Clipboard:=ClipSaved | |
ClipWait, 0 | |
ClipSaved = | |
WorkWithSelection=0 | |
} | |
Menu, MyMenu, Show | |
Return | |
MenuHandler: | |
TFCmd:=TF_Find(_AHK_LIBDIR, 1, 0, A_ThisMenuItem , 1, 1) | |
TFVersion:=TF_Find(_AHK_LIBDIR, 1, 0, "Version :" , 1, 1) | |
Gui, +ToolWindow | |
; Start building GUI | |
TFCmd=%TFCmd% ; autotrim | |
y=10 | |
ParaCount=0 | |
TFText= | |
Loop, Parse, TFCmd, CSV | |
{ | |
If (A_Index = 1) | |
Continue | |
StringReplace,TFFunc,A_LoopField,%A_Space%,,All | |
StringReplace,TFFunc,TFFunc,(,,All | |
StringReplace,TFFunc,TFFunc,),,All | |
StringReplace,TFFunc,TFFunc,`r`n,,All | |
StringReplace,TFFunc,TFFunc,`r,,All | |
StringReplace,TFFunc,TFFunc,`n,,All | |
StringReplace,TFFunc,TFFunc,",,All ; " | |
StringSplit, Para, TFFunc, = | |
Para1 = %Para1% ; AutoTrim | |
Gui, Add, Text, X10 Y%y% w150, %Para1% | |
Gui, Add, Edit, X100 Y%y% w150 v_Para%A_Index%, %Para2% | |
Y:=Y+30 | |
ParaCount++ | |
} | |
Gui ,Add, Checkbox, 0x8000 x260 y15 vReplace, Replace input (files) | |
Gui, Add, Button, w100 x260 y40 0x8000 default, &OK | |
Gui, Add, Button, w100 x260 y70 0x8000 , &Cancel | |
Gui, Add, Button, w100 x260 y100 0x8000 gButtonHelp, &Help (online) | |
Gui, Add, StatusBar,, | |
SB_SetParts(200) | |
SB_SetText("TF Lib " . TFVersion,1) | |
SB_SetText(_TFMVer,2) | |
Gui, Show, w400 h200, %A_ThisMenuItem% | |
Return | |
ButtonOK: | |
Gui, Submit | |
Gui, Destroy | |
If Active_Window_Class in %_FileManagers% | |
{ | |
If (Replace = 1) | |
Replace := "!" | |
Else | |
Replace= | |
} | |
Else | |
Replace= | |
If (ParaCount = 2) | |
TFText:=%A_ThisMenuItem%(Replace . Clipboard, _Para2, _Para3) | |
If (ParaCount = 3) | |
Clipboard:=%A_ThisMenuItem%(Replace . Clipboard, _Para2, _Para3, _Para4) | |
If (ParaCount = 4) | |
Clipboard:=%A_ThisMenuItem%(Replace . Clipboard, _Para2, _Para3, _Para4, _Para5) | |
If (ParaCount = 5) | |
Clipboard:=%A_ThisMenuItem%(Replace . Clipboard, _Para2, _Para3, _Para4, _Para5, _Para6) | |
If (ParaCount = 6) | |
Clipboard:=%A_ThisMenuItem%(Replace . Clipboard, _Para2, _Para3, _Para4, _Para5, _Para6, _Para7) | |
If (WorkWithSelection = 1) | |
{ | |
WinActivate, ahk_id %Active_Window_ID% | |
ControlFocus, ahk_class %ActiveControl_Class%, ahk_id %Active_Window_ID% | |
Sleep 100 | |
StringReplace, Clipboard, Clipboard,`n,`r`n, all ; just to be sure | |
Send, ^v ; paste text | |
Clipboard := ClipSaved ; Restore the original clipboard. Note the use of Clipboard (not ClipboardAll). | |
ClipSaved = ; Free the memory in case the clipboard was very large. | |
} | |
Return | |
ButtonHelp: | |
MsgBox, 36, Help, Would you like to visit:`nhttps://github.com/hi5/TF#%A_ThisMenuItem% | |
IfMsgBox, No | |
Return | |
Run https://github.com/hi5/TF#%A_ThisMenuItem% | |
Return | |
ButtonCancel: | |
Gui, destroy | |
Return | |
Esc:: | |
GuiEscape: | |
GuiClose: | |
ExitApp | |
Return |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment