├── .gitignore
├── .gitmodules
├── README.md
├── SciTEDirectory.properties
├── installer
├── BuildInstaller.ahk
├── Lib
│ ├── RemoveDir.ahk
│ ├── SetWBClientSite.ahk
│ ├── Util.ahk
│ └── WipeProfile.ahk
├── README.md
├── banner.png
├── dialog.html
├── install.ico
├── install.manifest
└── setup.ahk
├── scipatches
├── .gitattributes
├── README.md
├── SciTE4AutoHotkey.ico
├── lexilla.diff
└── scite.diff
├── source
├── $REVISION
├── License.txt
├── SciTE.VisualElementsManifest.xml
├── SciTEGlobal.properties
├── TestSuite.ahk
├── ahk.commands.properties
├── ahk.keys.api
├── ahk.keys.properties
├── ahk.lua
├── ahk.properties
├── ahk1.keywords.properties
├── ahk1.standard.api
├── ahk2.keywords.properties
├── ahk2.standard.api
├── locales
│ ├── Deutsch.locale.properties
│ ├── English.locale.properties
│ ├── Español.locale.properties
│ ├── Français.locale.properties
│ ├── Italiano.locale.properties
│ ├── Polski.locale.properties
│ ├── Svenska.locale.properties
│ ├── Русский.locale.properties
│ ├── 日本語.locale.properties
│ ├── 简体中文.locale.properties
│ └── 한국어.locale.properties
├── lua.properties
├── newuser
│ ├── AhkAbbrevs.properties
│ ├── Autorun.ahk
│ ├── Macros
│ │ ├── Create new class.macro
│ │ ├── Create new function.macro
│ │ └── If statement.macro
│ ├── SciTEUser.properties
│ ├── Scriptlets
│ │ ├── (Example) Run or activate Notepad.scriptlet
│ │ └── Progress text.scriptlet
│ ├── Styles
│ │ ├── Blank.style.properties
│ │ ├── SciTE4AutoHotkey Dark.style.properties
│ │ └── SciTE4AutoHotkey Light.style.properties
│ ├── UserLuaScript.lua
│ ├── UserToolbar.properties
│ └── _extensions.properties
├── other.properties
├── tillagoto.properties
├── toolbar.properties
├── toolbar
│ ├── ComInterface.ahk
│ ├── Extensions.ahk
│ ├── Lib
│ │ ├── CEscape.ahk
│ │ ├── CUnescape.ahk
│ │ ├── ComRemote.ahk
│ │ ├── ExportExtension.ahk
│ │ ├── ExtractExtension.ahk
│ │ ├── Ini2Object.ahk
│ │ ├── StrPutVar.ahk
│ │ └── Toolbar.ahk
│ ├── PlatformDetect.ahk
│ ├── SciTEDirector.ahk
│ ├── SciTEMacros.ahk
│ └── Toolbar.ahk
├── toolicon.icl
└── tools
│ ├── $gendocs_scite
│ ├── Autorun.ahk
│ ├── Lib
│ ├── Anchor.ahk
│ ├── DebugVarsGui.ahk
│ ├── GetSciTEInstance.ahk
│ ├── ProcessInfo.ahk
│ ├── SUpd.ahk
│ ├── SciControl.ahk
│ └── dbgp.ahk
│ ├── MsgBoxC.ahk
│ ├── PropEdit.ahk
│ ├── SUtility.ahk
│ ├── SciTEDebug.ahk
│ ├── SciTEDiag.ahk
│ ├── SciTEReload.ahk
│ ├── SciTEUpdate.ahk
│ ├── SmartGUI
│ ├── SmartGUI.ahk
│ ├── SmartGUI.html
│ ├── grid.gif
│ ├── smartgui.icl
│ └── splash.gif
│ ├── StyleEdit.ahk
│ ├── TillaGoto.ahk
│ ├── WindowSpy.ahk
│ ├── __AhkVer.ahk
│ ├── s4ahk-big.png
│ └── s4ahk-small.png
└── syntaxgen
├── Common.ahk
├── CreateAhk1.ahk
├── CreateAhk2.ahk
└── CreateKeys.ahk
/.gitignore:
--------------------------------------------------------------------------------
1 | *.exe
2 | *.dll
3 | *.chm
4 | *.bak
5 | *.db
6 | *.bin
7 | *.sfx
8 | *.bat
9 | *.zip
10 | *.7z
11 | *.orig
12 | *~
13 | $DEV
14 | /installer/$TEMP/
15 |
--------------------------------------------------------------------------------
/.gitmodules:
--------------------------------------------------------------------------------
1 | [submodule "source/tools/Lib/DebugVars"]
2 | path = source/tools/Lib/DebugVars
3 | url = https://github.com/Lexikos/DebugVars.ahk
4 | [submodule "source/tools/Lib/dbgp"]
5 | path = source/tools/Lib/dbgp
6 | url = https://github.com/Lexikos/dbgp
7 | [submodule "source/tools/GenDocs"]
8 | path = source/tools/GenDocs
9 | url = https://github.com/fincs/GenDocs
10 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | SciTE4AutoHotkey
2 | ================
3 |
4 | Introduction
5 | ------------
6 |
7 | SciTE4AutoHotkey is a SciTE-based AutoHotkey script editor. It offers:
8 |
9 | * Syntax highlighting
10 | * Code folding
11 | * Calltips (also known as IntelliSense)
12 | * AutoComplete
13 | * AutoIndent
14 | * AutoHotkey help integration
15 | * Abbreviations
16 | * Debugging support
17 | * Tools for AutoHotkey scripting
18 | * A toolbar that enables easy access to the tools
19 | * Some AutoHotkey scripting facilities
20 |
21 | Building SciTE4AutoHotkey
22 | -------------------------
23 |
24 | First, SciTE4AutoHotkey must be cloned using the following command to ensure all submodules are also cloned:
25 |
26 | git clone --recursive https://github.com/fincs/SciTE4AutoHotkey
27 |
28 | Afterwards build SciTE/Scintilla by following the instructions in the *scipatches* folder. When done building, copy SciTE.exe and SciLexer.dll to the /source folder.
29 |
30 | You must also build the [documentation](https://github.com/fincs/SciTE4AHK-Docs) and place it in the source folder.
31 |
32 | The latest AutoHotkey Unicode 32-bit binary also needs to be placed in the source folder, as `InternalAHK.exe`.
33 |
--------------------------------------------------------------------------------
/SciTEDirectory.properties:
--------------------------------------------------------------------------------
1 |
2 | # Git GUI command - please note that it only affects this project!
3 | command.name.7.*=Git GUI
4 | command.subsystem.7.*=2
5 | command.7.*=cmd /c cd "$(SciteDirectoryHome)" && git gui
6 |
--------------------------------------------------------------------------------
/installer/Lib/RemoveDir.ahk:
--------------------------------------------------------------------------------
1 |
2 | RemoveDir(dir)
3 | {
4 | IfExist, %dir%
5 | {
6 | FileRemoveDir, %dir%, 1
7 | return 1
8 | }else
9 | return 0
10 | }
11 |
--------------------------------------------------------------------------------
/installer/Lib/SetWBClientSite.ahk:
--------------------------------------------------------------------------------
1 | ;
2 | ; Complex workaround to override "Active scripting" setting
3 | ; and ensure scripts can run within the WebBrowser control.
4 | ;
5 | ; Author: Lexikos
6 | ;
7 |
8 | global WBClientSite
9 |
10 | SetWBClientSite(wb)
11 | {
12 | interfaces := {
13 | (Join,
14 | IOleClientSite: [0,3,1,0,1,0]
15 | IServiceProvider: [3]
16 | IInternetSecurityManager: [1,1,3,4,8,7,3,3]
17 | )}
18 | unkQI := RegisterCallback("WBClientSite_QI", "Fast")
19 | unkAddRef := RegisterCallback("WBClientSite_AddRef", "Fast")
20 | unkRelease := RegisterCallback("WBClientSite_Release", "Fast")
21 | WBClientSite := {_buffers: bufs := {}}, bufn := 0
22 | for name, prms in interfaces
23 | {
24 | bufn += 1
25 | bufs.SetCapacity(bufn, (4 + prms.MaxIndex()) * A_PtrSize)
26 | buf := bufs.GetAddress(bufn)
27 | NumPut(unkQI, buf + 1*A_PtrSize)
28 | NumPut(unkAddRef, buf + 2*A_PtrSize)
29 | NumPut(unkRelease, buf + 3*A_PtrSize)
30 | for i, prmc in prms
31 | NumPut(RegisterCallback("WBClientSite_" name, "Fast", prmc+1, i), buf + (3+i)*A_PtrSize)
32 | NumPut(buf + A_PtrSize, buf + 0)
33 | WBClientSite[name] := buf
34 | }
35 |
36 | if pOleObject := ComObjQuery(wb, "{00000112-0000-0000-C000-000000000046}")
37 | {
38 | ; IOleObject::SetClientSite
39 | DllCall(NumGet(NumGet(pOleObject+0)+3*A_PtrSize), "ptr"
40 | , pOleObject, "ptr", WBClientSite.IOleClientSite, "uint")
41 | ObjRelease(pOleObject)
42 | }
43 | }
44 |
45 | WBClientSite_QI(p, piid, ppvObject)
46 | {
47 | static IID_IUnknown := "{00000000-0000-0000-C000-000000000046}"
48 | static IID_IOleClientSite := "{00000118-0000-0000-C000-000000000046}"
49 | static IID_IServiceProvider := "{6d5140c1-7436-11ce-8034-00aa006009fa}"
50 | iid := _String4GUID(piid)
51 | if (iid = IID_IOleClientSite || iid = IID_IUnknown)
52 | {
53 | NumPut(WBClientSite.IOleClientSite, ppvObject+0)
54 | return 0 ; S_OK
55 | }
56 | if (iid = IID_IServiceProvider)
57 | {
58 | NumPut(WBClientSite.IServiceProvider, ppvObject+0)
59 | return 0 ; S_OK
60 | }
61 | NumPut(0, ppvObject+0)
62 | return 0x80004002 ; E_NOINTERFACE
63 | }
64 |
65 | WBClientSite_AddRef(p)
66 | {
67 | return 1
68 | }
69 |
70 | WBClientSite_Release(p)
71 | {
72 | return 1
73 | }
74 |
75 | WBClientSite_IOleClientSite(p, p1="", p2="", p3="")
76 | {
77 | if (A_EventInfo = 3) ; GetContainer
78 | {
79 | NumPut(0, p1+0) ; *ppContainer := NULL
80 | return 0x80004002 ; E_NOINTERFACE
81 | }
82 | return 0x80004001 ; E_NOTIMPL
83 | }
84 |
85 | WBClientSite_IServiceProvider(p, pguidService, piid, ppvObject)
86 | {
87 | static IID_IUnknown := "{00000000-0000-0000-C000-000000000046}"
88 | static IID_IInternetSecurityManager := "{79eac9ee-baf9-11ce-8c82-00aa004ba90b}"
89 | if (_String4GUID(pguidService) = IID_IInternetSecurityManager)
90 | {
91 | iid := _String4GUID(piid)
92 | if (iid = IID_IInternetSecurityManager || iid = IID_IUnknown)
93 | {
94 | NumPut(WBClientSite.IInternetSecurityManager, ppvObject+0)
95 | return 0 ; S_OK
96 | }
97 | NumPut(0, ppvObject+0)
98 | return 0x80004002 ; E_NOINTERFACE
99 | }
100 | NumPut(0, ppvObject+0)
101 | return 0x80004001 ; E_NOTIMPL
102 | }
103 |
104 | WBClientSite_IInternetSecurityManager(p, p1="", p2="", p3="", p4="", p5="", p6="", p7="", p8="")
105 | {
106 | if (A_EventInfo = 5) ; ProcessUrlAction
107 | {
108 | if (p2 = 0x1400) ; dwAction = URLACTION_SCRIPT_RUN
109 | {
110 | NumPut(0, p3+0) ; *pPolicy := URLPOLICY_ALLOW
111 | return 0 ; S_OK
112 | }
113 | }
114 | return 0x800C0011 ; INET_E_DEFAULT_ACTION
115 | }
116 |
117 | _String4GUID(pGUID)
118 | {
119 | VarSetCapacity(String, 38*2)
120 | DllCall("ole32\StringFromGUID2", "ptr", pGUID, "str", String, "int", 39)
121 | return String
122 | }
123 |
--------------------------------------------------------------------------------
/installer/Lib/Util.ahk:
--------------------------------------------------------------------------------
1 |
2 | Util_GetAhkPath()
3 | {
4 | RegRead, ov, HKLM, SOFTWARE\AutoHotkey, InstallDir
5 | if !ov && A_Is64bitOS
6 | {
7 | q := A_RegView
8 | SetRegView, 64
9 | RegRead, ov, HKLM, SOFTWARE\AutoHotkey, InstallDir
10 | SetRegView, %q%
11 | }
12 | return ov
13 | }
14 |
15 | Util_GetAhkVer()
16 | {
17 | RegRead, ov, HKLM, SOFTWARE\AutoHotkey, Version
18 | if !ov && A_Is64bitOS
19 | {
20 | q := A_RegView
21 | SetRegView, 64
22 | RegRead, ov, HKLM, SOFTWARE\AutoHotkey, Version
23 | SetRegView, %q%
24 | }
25 | return ov
26 | }
27 |
28 | Util_GetWinVer()
29 | {
30 | pack := DllCall("GetVersion", "uint") & 0xFFFF
31 | pack := (pack & 0xFF) "." (pack >> 8)
32 | pack += 0
33 | return pack
34 | }
35 |
36 | Util_CreateShortcut(Shrt, Path, Descr, Args := "", Icon := "", IconN := "")
37 | {
38 | SplitPath, Path,, Dir
39 | FileDelete, %Shrt%
40 | FileCreateShortcut, %Path%, %Shrt%, %Dir%, %Args%, %Descr%, %Icon%,, %IconN%
41 | }
42 |
43 | ; Written by Lexikos.
44 | Util_UserRun(target, args := "")
45 | {
46 | try
47 | _ShellRun(target, args)
48 | catch e
49 | Run, % args="" ? target : target " " args
50 | }
51 |
52 | ; Written by Lexikos.
53 | _ShellRun(prms*)
54 | {
55 | shellWindows := ComObjCreate("{9BA05972-F6A8-11CF-A442-00A0C90A8F39}")
56 |
57 | ; Find desktop window object.
58 | VarSetCapacity(_hwnd, 4, 0)
59 | desktop := shellWindows.FindWindowSW(0, "", 8, ComObj(0x4003, &_hwnd), 1)
60 |
61 | ; Retrieve top-level browser object.
62 | if ptlb := ComObjQuery(desktop
63 | , "{4C96BE40-915C-11CF-99D3-00AA004AE837}" ; SID_STopLevelBrowser
64 | , "{000214E2-0000-0000-C000-000000000046}") ; IID_IShellBrowser
65 | {
66 | ; IShellBrowser.QueryActiveShellView -> IShellView
67 | if DllCall(NumGet(NumGet(ptlb+0)+15*A_PtrSize), "ptr", ptlb, "ptr*", psv:=0) = 0
68 | {
69 | ; Define IID_IDispatch.
70 | VarSetCapacity(IID_IDispatch, 16)
71 | NumPut(0x46000000000000C0, NumPut(0x20400, IID_IDispatch, "int64"), "int64")
72 |
73 | ; IShellView.GetItemObject -> IDispatch (object which implements IShellFolderViewDual)
74 | DllCall(NumGet(NumGet(psv+0)+15*A_PtrSize), "ptr", psv
75 | , "uint", 0, "ptr", &IID_IDispatch, "ptr*", pdisp:=0)
76 |
77 | ; Get Shell object.
78 | shell := ComObj(9,pdisp,1).Application
79 |
80 | ; IShellDispatch2.ShellExecute
81 | shell.ShellExecute(prms*)
82 |
83 | ObjRelease(psv)
84 | }
85 | ObjRelease(ptlb)
86 | }
87 | }
88 |
--------------------------------------------------------------------------------
/installer/Lib/WipeProfile.ahk:
--------------------------------------------------------------------------------
1 |
2 | WipeProfile(profile)
3 | {
4 | RemoveDir(profile)
5 | ; Only remove these two if they're empty
6 | FileRemoveDir, %A_MyDocuments%\AutoHotkey\Lib
7 | FileRemoveDir, %A_MyDocuments%\AutoHotkey
8 | }
9 |
--------------------------------------------------------------------------------
/installer/README.md:
--------------------------------------------------------------------------------
1 | # SciTE4AutoHotkey Installer
2 |
3 | This folder contains the source code of the program that installs SciTE4AutoHotkey.
4 | A helper script (BuildInstaller.ahk) is provided, and it generates both the installer and the portable zip file.
5 | 7-zip files (7z.exe, 7zSD.sfx) are required for the script to work, and must be copied into this folder manually.
6 |
7 | The target folder used as a template (by default `..\..\S4AHK_Test`) should be a pristine clone of the
8 | SciTE4AutoHotkey repo with a few extra binary files (such as SciTE.exe or InternalAHK.exe, a renamed copy of AutoHotkeyU32.exe)
9 | dropped in place.
10 |
--------------------------------------------------------------------------------
/installer/banner.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fincs/SciTE4AutoHotkey/f194e5fbc7f0c04689fc39acb198d9ca9a46e7a9/installer/banner.png
--------------------------------------------------------------------------------
/installer/install.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fincs/SciTE4AutoHotkey/f194e5fbc7f0c04689fc39acb198d9ca9a46e7a9/installer/install.ico
--------------------------------------------------------------------------------
/installer/install.manifest:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/scipatches/.gitattributes:
--------------------------------------------------------------------------------
1 | *.diff text eol=lf
2 |
--------------------------------------------------------------------------------
/scipatches/README.md:
--------------------------------------------------------------------------------
1 | # SciTE4AutoHotkey patches for Scintilla, Lexilla and SciTE
2 |
3 | ## Prerequisites
4 |
5 | - Mercurial
6 | - Git
7 | - [msys2](https://www.msys2.org/) with clang64 environment and toolchain (`pacman -S --needed mingw-w64-clang-x86_64-toolchain`)
8 |
9 | All commands below assume you are using the clang64 shell provided by msys2.
10 |
11 | ## Getting the source and patching it
12 |
13 | ```bash
14 | hg clone http://hg.code.sf.net/p/scintilla/code scintilla
15 | git clone https://github.com/ScintillaOrg/lexilla -b rel-5-1-6 lexilla
16 | hg clone http://hg.code.sf.net/p/scintilla/scite scite
17 | cd scintilla && hg update rel-5-2-2 && cd ..
18 | cd lexilla && git apply ../lexilla.diff && cd ..
19 | cd scite && hg update rel-5-2-2 && hg import --no-commit ../scite.diff && cd ..
20 | cp SciTE4AutoHotkey.ico scite/win32/
21 | ```
22 |
23 | ## Building the components
24 |
25 | ```bash
26 | cd scintilla/win32 && make CLANG=1 && cd ../..
27 | cd lexilla/src && make CLANG=1 && cd ../..
28 | cd scite/win32 && make CLANG=1 && cd ../bin && strip *.exe *.dll && cd ../..
29 | ```
30 |
31 | The resulting files (SciTE.exe, Scintilla.dll, lexilla.dll) should be present in `scite/bin`, and can be copied to the main SciTE4AutoHotkey program folder.
32 |
--------------------------------------------------------------------------------
/scipatches/SciTE4AutoHotkey.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fincs/SciTE4AutoHotkey/f194e5fbc7f0c04689fc39acb198d9ca9a46e7a9/scipatches/SciTE4AutoHotkey.ico
--------------------------------------------------------------------------------
/source/$REVISION:
--------------------------------------------------------------------------------
1 | 20
--------------------------------------------------------------------------------
/source/License.txt:
--------------------------------------------------------------------------------
1 | License for Scintilla and SciTE
2 | ===============================
3 |
4 | Copyright 1998-2013 by Neil Hodgson
5 |
6 | All Rights Reserved
7 |
8 | Permission to use, copy, modify, and distribute this software and its
9 | documentation for any purpose and without fee is hereby granted,
10 | provided that the above copyright notice appear in all copies and that
11 | both that copyright notice and this permission notice appear in
12 | supporting documentation.
13 |
14 | NEIL HODGSON DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
15 | SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
16 | AND FITNESS, IN NO EVENT SHALL NEIL HODGSON BE LIABLE FOR ANY
17 | SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
18 | WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
19 | WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
20 | TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE
21 | OR PERFORMANCE OF THIS SOFTWARE.
22 |
23 | License for the toolbar, debugger & setting files
24 | =================================================
25 |
26 | Copyright 2007-2013 by fincs (@ autohotkey.com forum)
27 |
28 | This program is free software. It comes without any warranty, to
29 | the extent permitted by applicable law. You can redistribute it and/or
30 | modify it under the terms of the WTFPL, Version 2, as published by
31 | Sam Hocevar. The full license text can be found at http://sam.zoy.org/wtfpl/COPYING.
--------------------------------------------------------------------------------
/source/SciTE.VisualElementsManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
10 |
11 |
--------------------------------------------------------------------------------
/source/SciTEGlobal.properties:
--------------------------------------------------------------------------------
1 | # Global initialization file for SciTE4AutoHotkey
2 | #
3 | # Do NOT edit this file!
4 | # If there is something here you want to change, go to Options > Open User properties,
5 | # copy the setting there and change it. If you instead want to delete a setting, just
6 | # write an analogous line in the User properties that sets it to blank.
7 | #
8 |
9 | # Window sizes and visibility
10 | position.width=-1
11 | position.height=-1
12 | save.position=1
13 | minimize.to.tray=0
14 | split.vertical=0
15 | output.scroll=1
16 | tabbar.visible=1
17 | tabbar.hide.one=1
18 | tabbar.multiline=1
19 | toolbar.visible=1
20 | statusbar.visible=1
21 | fileselector.width=800
22 | fileselector.height=600
23 | magnification=0
24 | output.magnification=0
25 |
26 | # Sizes and visibility in edit pane
27 | line.margin.visible=1
28 | line.margin.width=5+
29 | margin.width=$(scale 20)
30 | fold.margin.width=$(scale 12)
31 | blank.margin.left=$(scale 12)
32 | buffered.draw=1
33 | use.palette=0
34 |
35 | # Element styles
36 | caret.period=500
37 | view.whitespace=0
38 | view.indentation.whitespace=1
39 | view.indentation.guides=1
40 | view.indentation.examine=3
41 | strip.trailing.spaces=1
42 | highlight.indentation.guides=1
43 | caret.line.back=#00FF0020
44 | caret.line.layer=1
45 | edge.column=200
46 | edge.mode=0
47 | edge.colour=#F9F9F9
48 | braces.check=1
49 | braces.sloppy=1
50 | selection.back=#00000028
51 | selection.inactive.back=$(selection.back)
52 | selection.additional.back=$(selection.back)
53 | selection.layer=1
54 | selection.always.visible=1
55 | highlight.current.word=1
56 | highlight.current.word.indicator=style:roundbox,colour:#808080
57 | #highlight.current.word.by.style=1
58 | font.quality=3
59 |
60 | # Checking
61 | are.you.sure=1
62 | load.on.activate=1
63 | reload.preserves.undo=1
64 | check.if.already.open=1
65 | save.all.for.build=0
66 | title.full.path=0
67 | title.show.buffers=0
68 | save.recent=1
69 | save.session=1
70 | open.dialog.in.file.directory=1
71 | ensure.consistent.line.ends=1
72 | buffers=20
73 | buffers.zorder.switching=1
74 | read.only=0
75 | properties.directory.enable=1
76 | temp.files.sync.load=1
77 |
78 | # Indentation
79 | tabsize=4
80 | indent.size=4
81 | use.tabs=1
82 | indent.auto=1
83 | indent.automatic=1
84 | indent.opening=0
85 | indent.closing=0
86 |
87 | # EOL handling
88 | eol.mode=CRLF
89 | eol.auto=1
90 |
91 | # Wrapping of long lines
92 | wrap=1
93 | wrap.style=1
94 | cache.layout=3
95 | output.wrap=1
96 | output.cache.layout=3
97 | wrap.visual.flags=3
98 | wrap.visual.flags.location=0
99 | wrap.visual.startindent=4
100 |
101 | # Folding
102 | # enable folding, and show lines below when collapsed.
103 | fold=1
104 | fold.compact=0
105 | fold.flags=16
106 | fold.symbols=3
107 | #fold.on.open=0
108 | session.folds=1
109 | session.bookmarks=1
110 | fold.comment=1
111 |
112 | # Find and Replace
113 | find.command=findstr /n /s /I $(find.what) $(find.files)
114 | find.files=*
115 | find.replace.advanced=1
116 |
117 | # Behaviour
118 | clear.before.execute=1
119 | autocompleteword.automatic=0
120 | autocomplete.choose.single=0
121 | caret.policy.xslop=1
122 | caret.policy.width=20
123 | caret.policy.xstrict=0
124 | caret.policy.xeven=0
125 | caret.policy.xjumps=0
126 | caret.policy.yslop=1
127 | caret.policy.lines=1
128 | caret.policy.ystrict=1
129 | caret.policy.yeven=1
130 | caret.policy.yjumps=0
131 | time.commands=1
132 | dwell.period=500
133 |
134 | # Multiple selections
135 | selection.multiple=1
136 | selection.additional.typing=1
137 | selection.multipaste=1
138 |
139 | # Status Bar ———
140 | statusbar.number=4
141 | statusbar.text.1=\
142 | Line: $(LineNumber) | Column: $(ColumnNumber) | $(OverType) | ($(EOLMode)) | $(FileAttr)
143 | statusbar.text.2=\
144 | $(BufferLength) characters in $(NbOfLines) lines. Selection: $(SelLength) characters.
145 | statusbar.text.3=\
146 | Date: $(CurrentDate) | Time: $(CurrentTime)
147 | statusbar.text.4=\
148 | $(FileNameExt): $(FileDate) - $(FileTime) | $(FileAttr)
149 |
150 | # SciTE help
151 | command.scite.help="$(SciteDefaultHome)\SciTE.chm"
152 | command.scite.help.shortcut=Ctrl+F1
153 | command.scite.help.subsystem=2
154 |
155 | # Export
156 | export.html.wysiwyg=1
157 | export.html.folding=1
158 | export.html.styleused=1
159 | # Magnification (added to default screen font size)
160 | export.pdf.magnification=-1
161 | # Font: Courier, Helvetica or Times (Courier line-wraps)
162 | export.pdf.font=Courier
163 | # Page size (in points): width, height
164 | # E.g. Letter 612,792; A4 595,842; maximum 14400,14400
165 | export.pdf.pagesize=595,842
166 | # Margins (in points): left, right, top, bottom
167 | export.pdf.margins=72,72,72,72
168 | export.xml.collapse.spaces=1
169 | export.xml.collapse.lines=1
170 |
171 | # Define values for use in the imported properties files
172 | chars.alpha=abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
173 | chars.numeric=0123456789
174 | chars.accented=ŠšŒœŸÿÀàÁáÂâÃãÄäÅ寿ÇçÈèÉéÊêËëÌìÍíÎîÏïÐðÑñÒòÓóÔôÕõÖØøÙùÚúÛûÜüÝýÞþßö
175 |
176 | # The open.filter setting is only used on Windows where the file selector has a menu of filters to apply
177 | # to the types of files seen when opening.
178 | # There is a limit (possibly 256 characters) to the length of a filter,
179 | # so not all source extensions can be in this setting.
180 | # source.files=*.ahk
181 |
182 | default.file.ext=.ahk
183 | open.filter=$(star filter.)All files (*.*)|*.*|
184 | save.filter=$(open.filter)
185 |
186 | # Default font configuration
187 | default.text.font=Consolas
188 | s4ahk.font.settings=font:$(default.text.font),size:11,weight:350
189 | s4ahk.style.base=back:#FFFFFFF,fore:#000000
190 |
191 | # Global default styles for all languages
192 | # Default
193 | style.*.32=$(s4ahk.font.settings),$(s4ahk.style.base)
194 | # Line number
195 | style.*.33=fore:#111111,back:#DDDDDD
196 | # Brace highlight
197 | style.*.34=fore:#0000FF,bold
198 | # Brace incomplete highlight
199 | style.*.35=fore:#FF0000,bold
200 | # Control characters
201 | style.*.36=back:#00FF80
202 | # Indentation guides
203 | style.*.37=fore:#C0C0C0,back:#FFFFFF
204 |
205 | # Fallbacks for obsolete AHKv1 styles
206 | s4ahk.style.old.synop=$(s4ahk.style.operator)
207 | s4ahk.style.old.deref=$(s4ahk.style.var)
208 | s4ahk.style.old.key=$(s4ahk.style.label)
209 | s4ahk.style.old.user=$(s4ahk.style.var)
210 | s4ahk.style.old.bivderef=$(s4ahk.style.known.var)
211 |
212 | # Fallbacks for AHKv2 object identifier styles
213 | s4ahk.style.objprop=$(s4ahk.style.ident.top)
214 | s4ahk.style.biobjprop=$(s4ahk.style.known.var)
215 | s4ahk.style.biobjmethod=$(s4ahk.style.known.func)
216 |
217 | # Backwards compatibility with older styles
218 | s4ahk.style.ident.top=$(s4ahk.style.var)
219 | s4ahk.style.ident.obj=$(s4ahk.style.objprop)
220 | s4ahk.style.ident.reserved=$(s4ahk.style.wordop)
221 | s4ahk.style.known.var=$(s4ahk.style.biv)
222 | s4ahk.style.known.func=$(s4ahk.style.bif)
223 | s4ahk.style.known.class=$(s4ahk.style.func)
224 | s4ahk.style.known.obj.prop=$(s4ahk.style.biobjprop)
225 | s4ahk.style.known.obj.method=$(s4ahk.style.biobjmethod)
226 |
227 | # Printing
228 | print.magnification=-1
229 | # Setup: left, right, top, bottom margins, in local units:
230 | # hundredths of millimeters or thousandths of inches
231 | print.margins=1500,1000,1000,1500
232 | # Header/footer:
233 | # && = &; &p = current page
234 | # &f = file name; &F = full path
235 | # &d = file date; &D = current date
236 | # &t = file time; &T = full time
237 | print.header.format=$(FileNameExt) — Printed on $(CurrentDate), $(CurrentTime) — Page $(CurrentPage)
238 | print.footer.format=$(FilePath) — File date: $(FileDate) — File time: $(FileTime)
239 | # Header/footer style
240 | print.header.style=font:Arial,size:12,bold
241 | print.footer.style=font:Arial Narrow,size:10,italics
242 |
243 | # Define the Lexer menu,
244 | # Each item contains three parts: menu string | file extension | key
245 | # The only keys allowed currently are based on F-keys and alphabetic keys and look like
246 | # [Ctrl+][Shift+][Fn|a] such as F12 or Ctrl+Shift+D.
247 | # A '&' may be placed before a letter to be used as an accelerator. This does not work on GTK+.
248 | menu.language=$(star language.menu.)
249 |
250 | # Contextual menu
251 | user.context.menu=$(ahk.context.menu)$(s4ahk.user.context.menu)
252 |
253 | # User defined key commands
254 | user.shortcuts=\
255 | Ctrl+Shift+V|IDM_PASTEANDDOWN|\
256 | Ctrl+PageUp|IDM_PREVFILE|\
257 | Ctrl+PageDown|IDM_NEXTFILE|\
258 | Ctrl+F1|IDM_HELP_SCITE|\
259 | $(ahk.debugger.shortcuts)$(s4ahk.user.shortcuts)
260 |
261 | # Variables for extensions
262 | extensions.dir=$(SciteUserHome)\Extensions
263 |
264 | # Encoding settings
265 | code.page=0
266 | output.code.page=65001
267 |
268 | # Settings which are default in vanilla SciTE 3.4.0
269 | technology=1
270 | find.use.strip=1
271 | replace.use.strip=1
272 | find.close.on.find=0
273 | # The following behaviour can be enabled, but it's more irritating than worth it.
274 | #find.strip.incremental=1
275 | #find.indicator.incremental=style:compositionthick,colour:#FFB700,under
276 | #replace.strip.incremental=1
277 |
278 | #potato.ignore
279 |
280 | # Toolbar autorun
281 | command.autorun="$(LocalAHK)" "$(SciteDefaultHome)\toolbar\Toolbar.ahk" $(scite.hwnd) $(WindowID)
282 |
283 | # Open containing folder
284 | command.name.10.*=Open containing folder...
285 | command.mode.10.*=subsystem:shellexec,savebefore:no
286 | command.10.*=explorer.exe /n, /select,"$(FilePath)"
287 |
288 | # SciTE4AutoHotkey settings
289 | command.name.11.*=SciTE4AutoHotkey settings...
290 | command.mode.11.*=subsystem:shellexec,savebefore:no
291 | command.11.*="$(LocalAHK)" /ErrorStdOut "$(SciteDefaultHome)\tools\PropEdit.ahk"
292 |
293 | # SciTE4AutoHotkey diag util
294 | command.name.12.*=SciTE4AutoHotkey Diagnostics Utility
295 | command.mode.12.*=subsystem:shellexec,savebefore:no
296 | command.12.*="$(LocalAHK)" /ErrorStdOut "$(SciteDefaultHome)\tools\SciTEDiag.ahk"
297 |
298 | # Enable/disable SciTE4AutoHotkey automatic updates
299 | automatic.updates=1
300 |
301 | #potato.endignore
302 |
303 | # Import language properties files
304 | import ahk
305 | import lua
306 |
307 | # Import other properties
308 | import other
309 |
--------------------------------------------------------------------------------
/source/TestSuite.ahk:
--------------------------------------------------------------------------------
1 | /*
2 | *
3 | * SciTE4AutoHotkey Syntax Highlighting Demo
4 | * - by fincs
5 | *
6 | */
7 |
8 | ; Normal comment
9 | /*
10 | Block comment
11 | */
12 |
13 | ; Directives, keywords
14 | #SingleInstance Force
15 | #NoTrayIcon
16 |
17 | ; Command, literal text, escape sequence
18 | MsgBox, Hello World `; This isn't a comment
19 |
20 | ; Operators
21 | Bar = Foo ; operators
22 | Foo := Bar ; expression assignment operators
23 |
24 | ; String
25 | Var := "This is a test"
26 |
27 | ; Number
28 | Num = 40 + 4
29 |
30 | ; Dereferencing
31 | Foo := %Bar%
32 |
33 | ; Flow of control, built-in-variables, BIV dereferencing
34 | if true
35 | MsgBox, This will always be displayed
36 | Loop, 3
37 | MsgBox Repetition #%A_Index%
38 |
39 | ; Built-in function call
40 | MsgBox % SubStr("blaHello Worldbla", 4, 11)
41 |
42 | if false
43 | {
44 | ; Keys and buttons
45 | Send, {F1}
46 | ; Syntax errors
47 | MyVar = "This is a test
48 | }
49 |
50 | ExitApp
51 |
52 | ; Label, hotkey, hotstring
53 | Label:
54 | #v::MsgBox You pressed Win+V
55 | ::btw::by the way
56 |
--------------------------------------------------------------------------------
/source/ahk.commands.properties:
--------------------------------------------------------------------------------
1 | # AutoHotkey command definitions for SciTE
2 | #
3 | # Do NOT edit this file!
4 | # If there is something here you want to change, go to Options > Open User properties,
5 | # copy the setting there and change it. If you instead want to delete a setting, just
6 | # write an analogous line in the User properties that sets it to blank.
7 | #
8 |
9 | # Contextual menu
10 | ahk.context.menu=||\
11 | Open #Include|1121|\
12 | Add scriptlet...|1122|\
13 | Run selection|1123|\
14 | ||\
15 | Inspect variable...|1126|
16 |
17 | # Debugger shortcuts
18 | ahk.debugger.shortcuts=\
19 | F10|1129|\
20 | F11|1130|\
21 | Shift+F11|1131|
22 |
23 | # Run (F5)
24 | command.go.$(file.patterns.ahk)=$(ahk.launcher) /ErrorStdOut "$(FilePath)" $(1) $(2) $(3) $(4)
25 |
26 | # Debug (F7)
27 | command.build.$(file.patterns.ahk)="$(LocalAHK)" "$(SciteDefaultHome)\tools\SciTEDebug.ahk" "$(FilePath)" $(1) $(2) $(3) $(4)
28 | command.build.subsystem.$(file.patterns.ahk)=2
29 |
30 | # Compile (Ctrl+F7)
31 | command.compile.$(file.patterns.ahk)="$(ahk.compiler)" /in "$(FilePath)" $(ahk.compiler.params)
32 |
33 | # Help (F1)
34 | command.help.$(file.patterns.ahk)=$(CurrentWord)!$(ahk.help.file)
35 | command.help.subsystem.$(file.patterns.ahk)=4
36 |
37 | # ShellExecute/non-stream-capturing run command
38 | command.name.1.$(file.patterns.ahk)=Quick run
39 | command.1.$(file.patterns.ahk)="$(AutoHotkey)" "$(FilePath)" $(1) $(2) $(3) $(4)
40 | command.shortcut.1.$(file.patterns.ahk)=Ctrl+Shift+F5
41 | command.mode.1.$(file.patterns.ahk)=subsystem:shellexec
42 |
43 | # Debugger attaching command
44 | command.name.2.*=Debug a currently running script...
45 | command.2.*="$(LocalAHK)" /ErrorStdOut "$(SciteDefaultHome)\tools\SciTEDebug.ahk" /attach
46 | command.shortcut.2.*=Ctrl+Shift+F7
47 | command.mode.2.*=subsystem:shellexec
48 |
49 | ### Commands not in the Tools menu (mostly internal stuff) ###
50 |
51 | # (Context menu) Open Include
52 | command.mode.21.$(file.patterns.ahk)=subsystem:immediate,savebefore:no
53 | command.21.$(file.patterns.ahk)=OpenInclude
54 |
55 | # (Context menu) Add scriptlet
56 | command.mode.22.*=subsystem:shellexec,savebefore:no
57 | command.22.*="$(LocalAHK)" "$(SciteDefaultHome)\tools\SUtility.ahk" /addScriptlet
58 |
59 | # (Context menu) Run selection
60 | command.mode.23.*=subsystem:console,savebefore:no,quiet:yes
61 | command.23.*="$(AutoHotkey)" /CP65001 *
62 | command.input.23.*=$(CurrentSelection)
63 |
64 | # (Internal) Connect debugger
65 | command.mode.24.$(file.patterns.ahk)=subsystem:immediate,savebefore:no
66 | command.24.$(file.patterns.ahk)=DBGp_Connect
67 |
68 | # (Internal) Disconnect debugger
69 | command.mode.25.$(file.patterns.ahk)=subsystem:immediate,savebefore:no
70 | command.25.$(file.patterns.ahk)=DBGp_Disconnect
71 |
72 | # (Context menu) Inspect variable
73 | command.mode.26.$(file.patterns.ahk)=subsystem:immediate,savebefore:no
74 | command.26.$(file.patterns.ahk)=DBGp_Inspect
75 |
76 | # (Internal) Run
77 | command.mode.27.$(file.patterns.ahk)=subsystem:immediate,savebefore:no
78 | command.27.$(file.patterns.ahk)=DBGp_Run
79 |
80 | # (Internal) Stop
81 | command.mode.28.$(file.patterns.ahk)=subsystem:immediate,savebefore:no
82 | command.28.$(file.patterns.ahk)=DBGp_Stop
83 |
84 | # (Internal) Step into
85 | command.mode.29.$(file.patterns.ahk)=subsystem:immediate,savebefore:no
86 | command.29.$(file.patterns.ahk)=DBGp_StepInto
87 |
88 | # (Internal) Step over
89 | command.mode.30.$(file.patterns.ahk)=subsystem:immediate,savebefore:no
90 | command.30.$(file.patterns.ahk)=DBGp_StepOver
91 |
92 | # (Internal) Step out
93 | command.mode.31.$(file.patterns.ahk)=subsystem:immediate,savebefore:no
94 | command.31.$(file.patterns.ahk)=DBGp_StepOut
95 |
96 | # (Internal) Stacktrace
97 | command.mode.32.$(file.patterns.ahk)=subsystem:immediate,savebefore:no
98 | command.32.$(file.patterns.ahk)=DBGp_Stacktrace
99 |
100 | # (Internal) Varlist
101 | command.mode.33.$(file.patterns.ahk)=subsystem:immediate,savebefore:no
102 | command.33.$(file.patterns.ahk)=DBGp_Varlist
103 |
104 | # (Internal) Pause script
105 | command.mode.34.$(file.patterns.ahk)=subsystem:immediate,savebefore:no
106 | command.34.$(file.patterns.ahk)=DBGp_Pause
107 |
108 | # (Internal) Reset breakpoints
109 | command.mode.35.*=subsystem:immediate,savebefore:no
110 | command.35.*=DBGp_BkReset
111 |
112 | # (Internal) Lua callback for AutoHotkey platform changes
113 | command.mode.36.*=subsystem:immediate,savebefore:no
114 | command.36.*=OnPlatformChange
115 |
--------------------------------------------------------------------------------
/source/ahk.keys.api:
--------------------------------------------------------------------------------
1 | Alt
2 | AltTab
3 | AltTabAndMenu
4 | AltTabMenu
5 | AltTabMenuDismiss
6 | AppsKey
7 | Backspace
8 | Browser_Back
9 | Browser_Favorites
10 | Browser_Forward
11 | Browser_Home
12 | Browser_Refresh
13 | Browser_Search
14 | Browser_Stop
15 | BS
16 | CapsLock
17 | Control
18 | Ctrl
19 | CtrlBreak
20 | Del
21 | Delete
22 | Down
23 | End
24 | Enter
25 | Esc
26 | Escape
27 | F1
28 | F10
29 | F11
30 | F12
31 | F13
32 | F14
33 | F15
34 | F16
35 | F17
36 | F18
37 | F19
38 | F2
39 | F20
40 | F21
41 | F22
42 | F23
43 | F24
44 | F3
45 | F4
46 | F5
47 | F6
48 | F7
49 | F8
50 | F9
51 | Help
52 | Home
53 | Ins
54 | Insert
55 | LAlt
56 | Launch_App1
57 | Launch_App2
58 | Launch_Mail
59 | Launch_Media
60 | LButton
61 | LControl
62 | LCtrl
63 | Left
64 | LShift
65 | LWin
66 | MButton
67 | Media_Next
68 | Media_Play_Pause
69 | Media_Prev
70 | Media_Stop
71 | NumLock
72 | Numpad0
73 | Numpad1
74 | Numpad2
75 | Numpad3
76 | Numpad4
77 | Numpad5
78 | Numpad6
79 | Numpad7
80 | Numpad8
81 | Numpad9
82 | NumpadAdd
83 | NumpadClear
84 | NumpadDel
85 | NumpadDiv
86 | NumpadDot
87 | NumpadDown
88 | NumpadEnd
89 | NumpadEnter
90 | NumpadHome
91 | NumpadIns
92 | NumpadLeft
93 | NumpadMult
94 | NumpadPgDn
95 | NumpadPgUp
96 | NumpadRight
97 | NumpadSub
98 | NumpadUp
99 | Pause
100 | PgDn
101 | PgUp
102 | PrintScreen
103 | RAlt
104 | RButton
105 | RControl
106 | RCtrl
107 | Right
108 | RShift
109 | RWin
110 | ScrollLock
111 | Shift
112 | ShiftAltTab
113 | Sleep
114 | Space
115 | Tab
116 | Up
117 | Volume_Down
118 | Volume_Mute
119 | Volume_Up
120 | WheelDown
121 | WheelLeft
122 | WheelRight
123 | WheelUp
124 | XButton1
125 | XButton2
126 |
--------------------------------------------------------------------------------
/source/ahk.keys.properties:
--------------------------------------------------------------------------------
1 | # This file is autogenerated by CreateKeys.ahk - DO NOT UPDATE MANUALLY
2 |
3 | ahk.keywords.named.keys=\
4 | alt alttab alttabandmenu alttabmenu alttabmenudismiss appskey backspace \
5 | browser_back browser_favorites browser_forward browser_home browser_refresh \
6 | browser_search browser_stop bs capslock control ctrl ctrlbreak del delete down \
7 | end enter esc escape f1 f10 f11 f12 f13 f14 f15 f16 f17 f18 f19 f2 f20 f21 f22 \
8 | f23 f24 f3 f4 f5 f6 f7 f8 f9 help home ins insert lalt launch_app1 launch_app2 \
9 | launch_mail launch_media lbutton lcontrol lctrl left lshift lwin mbutton \
10 | media_next media_play_pause media_prev media_stop numlock numpad0 numpad1 \
11 | numpad2 numpad3 numpad4 numpad5 numpad6 numpad7 numpad8 numpad9 numpadadd \
12 | numpadclear numpaddel numpaddiv numpaddot numpaddown numpadend numpadenter \
13 | numpadhome numpadins numpadleft numpadmult numpadpgdn numpadpgup numpadright \
14 | numpadsub numpadup pause pgdn pgup printscreen ralt rbutton rcontrol rctrl \
15 | right rshift rwin scrolllock shift shiftalttab sleep space tab up volume_down \
16 | volume_mute volume_up wheeldown wheelleft wheelright wheelup xbutton1 xbutton2
17 |
--------------------------------------------------------------------------------
/source/ahk.properties:
--------------------------------------------------------------------------------
1 | # SciTE settings for AutoHotkey files
2 | #
3 | # Do NOT edit this file!
4 | # If there is something here you want to change, go to Options > Open User properties,
5 | # copy the setting there and change it. If you instead want to delete a setting, just
6 | # write an analogous line in the User properties that sets it to blank.
7 | #
8 |
9 | # Internal AutoHotkey path
10 | LocalAHK=$(SciteDefaultHome)\InternalAHK.exe
11 |
12 | # AutoHotkey path
13 | AutoHotkeyDir=$(SciteDefaultHome)\..
14 | AutoHotkey=$(AutoHotkeyDir)\AutoHotkey.exe
15 | ahk.launcher="$(AutoHotkey)"
16 | ahk.help.file=$(AutoHotkeyDir)\AutoHotkey.chm
17 | ahk.compiler=$(AutoHotkeyDir)\Compiler\Ahk2Exe.exe
18 | ahk.compiler.params=
19 |
20 | # AutoHotkey Lua editor script, needed for some features
21 | ext.lua.startup.script=$(SciteDefaultHome)\ahk.lua
22 | ext.lua.auto.reload=1
23 |
24 | # AutoHotkey debugger settings
25 | ahk.debugger.address=127.0.0.1
26 | ahk.debugger.port=9000
27 | ahk.debugger.capture.streams=1
28 | ahk.debugger.max.obj.children=100
29 | ahk.debugger.max.data=131072
30 | ahk.debugger.break.exception=0
31 | ahk.debugger.break.exception.message=> Pausing execution for thrown exception
32 | ahk.debugger.break.error=0
33 | ahk.debugger.break.error.message=> Pausing execution for unhandled exception
34 | ahk.debugger.break.error.suppress=0
35 |
36 | # Script file extensions
37 | ahk.file.extension=*.ahk
38 | ahkscriptlet.file.extension=*.scriptlet
39 |
40 | # General settings
41 | file.patterns.ahk=$(ahk.file.extension);$(ahkscriptlet.file.extension)
42 | language.menu.ahk=&AutoHotkey|ahk||
43 | filter.ahk=\
44 | AutoHotkey scripts (*.ahk)|$(ahk.file.extension)|\
45 | AHK scriptlets (*.scriptlet)|$(ahkscriptlet.file.extension)|
46 |
47 | # Placeholders for AutoHotkey v1/v2 platform selection
48 | file.patterns.ahk1=
49 | file.patterns.ahk2=
50 |
51 | # Lexer settings
52 | lexer.$(file.patterns.ahk1)=ahk1
53 | lexer.$(file.patterns.ahk2)=ahk2
54 |
55 | # Brace style settings
56 | braces.ahk1.style=5
57 | braces.ahk2.style=10
58 |
59 | # Word characters
60 | ahk1.word.characters=$(chars.alpha)$(chars.numeric)$(chars.accented)_$@#
61 | ahk2.word.characters=$(chars.alpha)$(chars.numeric)$(chars.accented)_
62 | word.characters.$(file.patterns.ahk1)=$(ahk1.word.characters)
63 | word.characters.$(file.patterns.ahk2)=$(ahk2.word.characters)
64 |
65 | # Abbreviation settings
66 | abbreviations.$(file.patterns.ahk)=$(SciteUserHome)\AhkAbbrevs.properties
67 |
68 | # Indentation settings (AutoHotkey v2)
69 | statement.indent.$(file.patterns.ahk2)=6 catch else finally for if loop try while
70 | statement.lookback.$(file.patterns.ahk2)=2
71 | block.start.$(file.patterns.ahk2)=10 {
72 | block.end.$(file.patterns.ahk2)=10 }
73 |
74 | # Autocomplete settings (AutoHotkey v1)
75 | api.$(file.patterns.ahk1)=$(SciteDefaultHome)\ahk1.standard.api;$(SciteDefaultHome)\ahk.keys.api;$(SciteUserHome)\ahk1.user.api
76 | autocomplete.ahk1.ignorecase=1
77 | autocomplete.ahk1.start.characters=$(ahk1.word.characters).
78 | autocomplete.ahk1.typesep=?
79 | calltip.ahk1.ahk.mode=1
80 | calltip.ahk1.ignorecase=1
81 |
82 | # Autocomplete settings (AutoHotkey v2)
83 | api.$(file.patterns.ahk2)=$(SciteDefaultHome)\ahk2.standard.api;$(SciteDefaultHome)\ahk.keys.api;$(SciteUserHome)\ahk2.user.api
84 | autocomplete.ahk2.ignorecase=1
85 | autocomplete.ahk2.start.characters=$(ahk2.word.characters).#
86 | autocomplete.ahk2.typesep=?
87 | calltip.ahk2.ahk.mode=1
88 | calltip.ahk2.ignorecase=1
89 |
90 | # Comment definitions (AutoHotkey v1)
91 | comment.block.ahk1=;~
92 | comment.stream.start.ahk1=/*
93 | comment.stream.end.ahk1=*/
94 | comment.box.start.ahk1=/*
95 | comment.box.middle.ahk1= *
96 | comment.box.end.ahk1= */
97 |
98 | # Comment definitions (AutoHotkey v2)
99 | comment.block.ahk2=;~
100 | comment.stream.start.ahk2=/*
101 | comment.stream.end.ahk2=*/
102 | comment.box.start.ahk2=/*
103 | comment.box.middle.ahk2= *
104 | comment.box.end.ahk2= */
105 |
106 | # Style definitions (AutoHotkey v1)
107 | style.ahk1.0=$(s4ahk.style.default)
108 | style.ahk1.1=$(s4ahk.style.comment.line)
109 | style.ahk1.2=$(s4ahk.style.comment.block)
110 | style.ahk1.3=$(s4ahk.style.escape)
111 | style.ahk1.4=$(s4ahk.style.old.synop)
112 | style.ahk1.5=$(s4ahk.style.operator)
113 | style.ahk1.6=$(s4ahk.style.string)
114 | style.ahk1.7=$(s4ahk.style.number)
115 | style.ahk1.8=$(s4ahk.style.ident.top)
116 | style.ahk1.9=$(s4ahk.style.old.deref)
117 | style.ahk1.10=$(s4ahk.style.label)
118 | style.ahk1.11=$(s4ahk.style.flow)
119 | style.ahk1.12=$(s4ahk.style.known.func)
120 | style.ahk1.13=$(s4ahk.style.known.class)
121 | style.ahk1.14=$(s4ahk.style.directive)
122 | style.ahk1.15=$(s4ahk.style.old.key)
123 | style.ahk1.16=$(s4ahk.style.known.var)
124 | style.ahk1.17=$(s4ahk.style.ident.reserved)
125 | style.ahk1.18=$(s4ahk.style.old.user)
126 | style.ahk1.19=$(s4ahk.style.old.bivderef)
127 | style.ahk1.20=$(s4ahk.style.error)
128 |
129 | # Keyword definitions (AutoHotkey v1)
130 | keywords.$(file.patterns.ahk1)=$(ahk1.keywords.flow)
131 | keywords2.$(file.patterns.ahk1)=$(ahk1.keywords.known.cmds)
132 | keywords3.$(file.patterns.ahk1)=$(ahk1.keywords.known.funcs)
133 | keywords4.$(file.patterns.ahk1)=$(ahk1.keywords.directives)
134 | keywords5.$(file.patterns.ahk1)=$(ahk.keywords.named.keys)
135 | keywords6.$(file.patterns.ahk1)=$(ahk1.keywords.known.vars)
136 | keywords7.$(file.patterns.ahk1)=$(ahk1.keywords.reserved)
137 |
138 | # Style definitions (AutoHotkey v2)
139 | style.ahk2.0=$(s4ahk.style.default)
140 | style.ahk2.1=$(s4ahk.style.error)
141 | style.ahk2.2=$(s4ahk.style.comment.line)
142 | style.ahk2.3=$(s4ahk.style.comment.block)
143 | style.ahk2.4=$(s4ahk.style.directive)
144 | style.ahk2.5=$(s4ahk.style.label)
145 | style.ahk2.6=$(s4ahk.style.flow)
146 | style.ahk2.7=$(s4ahk.style.number)
147 | style.ahk2.8=$(s4ahk.style.string)
148 | style.ahk2.9=$(s4ahk.style.escape)
149 | style.ahk2.10=$(s4ahk.style.operator)
150 | style.ahk2.11=$(s4ahk.style.ident.top)
151 | style.ahk2.12=$(s4ahk.style.ident.obj)
152 | style.ahk2.13=$(s4ahk.style.ident.reserved)
153 |
154 | # Top-level identifier substyles (AutoHotkey v2)
155 | substyles.ahk2.11=3
156 | style.ahk2.11.1=$(s4ahk.style.known.var)
157 | style.ahk2.11.2=$(s4ahk.style.known.func)
158 | style.ahk2.11.3=$(s4ahk.style.known.class)
159 |
160 | # Object identifier substyles (AutoHotkey v2)
161 | substyles.ahk2.12=2
162 | style.ahk2.12.1=$(s4ahk.style.known.obj.prop)
163 | style.ahk2.12.2=$(s4ahk.style.known.obj.method)
164 |
165 | # Keyword definitions (AutoHotkey v2)
166 | keywords.$(file.patterns.ahk2)=$(ahk2.keywords.directives.expr)
167 | keywords2.$(file.patterns.ahk2)=$(ahk2.keywords.directives.str)
168 | keywords3.$(file.patterns.ahk2)=$(ahk2.keywords.flow)
169 | keywords4.$(file.patterns.ahk2)=$(ahk2.keywords.reserved)
170 | keywords5.$(file.patterns.ahk2)=$(ahk.keywords.named.keys)
171 | substylewords.11.1.$(file.patterns.ahk2)=$(ahk2.keywords.known.vars)
172 | substylewords.11.2.$(file.patterns.ahk2)=$(ahk2.keywords.known.funcs)
173 | substylewords.11.3.$(file.patterns.ahk2)=$(ahk2.keywords.known.classes)
174 | substylewords.12.1.$(file.patterns.ahk2)=$(ahk2.keywords.known.props)
175 | substylewords.12.2.$(file.patterns.ahk2)=$(ahk2.keywords.known.methods)
176 |
177 | # Keywords
178 | import ahk1.keywords
179 | import ahk2.keywords
180 | import ahk.keys
181 |
182 | # Editor commands
183 | import ahk.commands
184 |
185 | # TillaGoto settings
186 | import tillagoto
187 |
--------------------------------------------------------------------------------
/source/ahk1.keywords.properties:
--------------------------------------------------------------------------------
1 | # This file is autogenerated by CreateAhk1.ahk - DO NOT UPDATE MANUALLY
2 |
3 | ahk1.keywords.directives=\
4 | allowsamelinecomments clipboardtimeout commentflag delimiter derefchar \
5 | errorstdout escapechar hotkeyinterval hotkeymodifiertimeout hotstring if \
6 | iftimeout ifwinactive ifwinexist ifwinnotactive ifwinnotexist include \
7 | includeagain inputlevel installkeybdhook installmousehook keyhistory ltrim \
8 | maxhotkeysperinterval maxmem maxthreads maxthreadsbuffer maxthreadsperhotkey \
9 | menumaskkey noenv notrayicon persistent requires singleinstance usehook warn \
10 | winactivateforce
11 |
12 | ahk1.keywords.flow=\
13 | break case catch continue else finally for gosub goto if ifequal ifexist \
14 | ifgreater ifgreaterorequal ifinstring ifless iflessorequal ifmsgbox ifnotequal \
15 | ifnotexist ifnotinstring ifwinactive ifwinexist ifwinnotactive ifwinnotexist \
16 | loop return switch throw try until while
17 |
18 | ahk1.keywords.reserved=\
19 | __call __delete __get __new __set ahk_class ahk_exe ahk_group ahk_id ahk_pid \
20 | and base byref class extends false files global local new not or parse read \
21 | reg static true
22 |
23 | ahk1.keywords.known.vars=\
24 | a_ahkpath a_ahkversion a_appdata a_appdatacommon a_args a_autotrim \
25 | a_batchlines a_caretx a_carety a_clipboard a_computername a_comspec \
26 | a_controldelay a_coordmodecaret a_coordmodemenu a_coordmodemouse \
27 | a_coordmodepixel a_coordmodetooltip a_cursor a_dd a_ddd a_dddd a_defaultgui \
28 | a_defaultlistview a_defaultmousespeed a_defaulttreeview a_desktop \
29 | a_desktopcommon a_detecthiddentext a_detecthiddenwindows a_endchar a_eventinfo \
30 | a_exitreason a_fileencoding a_formatfloat a_formatinteger a_gui a_guicontrol \
31 | a_guicontrolevent a_guievent a_guiheight a_guiwidth a_guix a_guiy a_hour \
32 | a_iconfile a_iconhidden a_iconnumber a_icontip a_index a_initialworkingdir \
33 | a_ipaddress1 a_ipaddress2 a_ipaddress3 a_ipaddress4 a_is64bitos a_isadmin \
34 | a_iscompiled a_iscritical a_ispaused a_issuspended a_isunicode a_keydelay \
35 | a_keydelayplay a_keyduration a_keydurationplay a_language a_lasterror \
36 | a_linefile a_linenumber a_listlines a_loopfield a_loopfileattrib a_loopfiledir \
37 | a_loopfileext a_loopfilefullpath a_loopfilelongpath a_loopfilename \
38 | a_loopfilepath a_loopfileshortname a_loopfileshortpath a_loopfilesize \
39 | a_loopfilesizekb a_loopfilesizemb a_loopfiletimeaccessed a_loopfiletimecreated \
40 | a_loopfiletimemodified a_loopreadline a_loopregkey a_loopregname \
41 | a_loopregsubkey a_loopregtimemodified a_loopregtype a_mday a_min a_mm a_mmm \
42 | a_mmmm a_mon a_mousedelay a_mousedelayplay a_msec a_mydocuments a_now a_nowutc \
43 | a_numbatchlines a_ostype a_osversion a_priorhotkey a_priorkey a_programfiles \
44 | a_programs a_programscommon a_ptrsize a_regview a_screendpi a_screenheight \
45 | a_screenwidth a_scriptdir a_scriptfullpath a_scripthwnd a_scriptname a_sec \
46 | a_sendlevel a_sendmode a_space a_startmenu a_startmenucommon a_startup \
47 | a_startupcommon a_storecapslockmode a_stringcasesense a_tab a_temp a_thisfunc \
48 | a_thishotkey a_thislabel a_thismenu a_thismenuitem a_thismenuitempos \
49 | a_tickcount a_timeidle a_timeidlekeyboard a_timeidlemouse a_timeidlephysical \
50 | a_timesincepriorhotkey a_timesincethishotkey a_titlematchmode \
51 | a_titlematchmodespeed a_username a_wday a_windelay a_windir a_workingdir \
52 | a_yday a_year a_yweek a_yyyy clipboard clipboardall comspec errorlevel \
53 | programfiles this
54 |
55 | ahk1.keywords.known.funcs=\
56 | abs acos array asc asin atan ceil chr comobjactive comobjarray comobjconnect \
57 | comobjcreate comobject comobjerror comobjflags comobjget comobjquery \
58 | comobjtype comobjvalue cos dllcall exception exp fileexist fileopen floor \
59 | format func getkeyname getkeysc getkeystate getkeyvk hotstring il_add \
60 | il_create il_destroy inputhook instr isbyref isfunc islabel isobject isset ln \
61 | loadpicture log ltrim lv_add lv_delete lv_deletecol lv_getcount lv_getnext \
62 | lv_gettext lv_insert lv_insertcol lv_modify lv_modifycol lv_setimagelist max \
63 | menugethandle menugetname min mod numget numput objaddref objbindmethod \
64 | objclone objcount objdelete object objgetaddress objgetbase objgetcapacity \
65 | objhaskey objinsert objinsertat objlength objmaxindex objminindex objnewenum \
66 | objpop objpush objrawget objrawset objrelease objremove objremoveat objsetbase \
67 | objsetcapacity onclipboardchange onerror onexit onmessage ord regexmatch \
68 | regexreplace registercallback round rtrim sb_seticon sb_setparts sb_settext \
69 | sin sqrt strget strlen strput strreplace strsplit substr tan trim tv_add \
70 | tv_delete tv_get tv_getchild tv_getcount tv_getnext tv_getparent tv_getprev \
71 | tv_getselection tv_gettext tv_modify tv_setimagelist varsetcapacity winactive \
72 | winexist
73 |
74 | ahk1.keywords.known.cmds=\
75 | autotrim blockinput click clipwait control controlclick controlfocus \
76 | controlget controlgetfocus controlgetpos controlgettext controlmove \
77 | controlsend controlsendraw controlsettext coordmode critical detecthiddentext \
78 | detecthiddenwindows drive driveget drivespacefree edit envadd envdiv envget \
79 | envmult envset envsub envupdate exit exitapp fileappend filecopy filecopydir \
80 | filecreatedir filecreateshortcut filedelete fileencoding filegetattrib \
81 | filegetshortcut filegetsize filegettime filegetversion fileinstall filemove \
82 | filemovedir fileread filereadline filerecycle filerecycleempty fileremovedir \
83 | fileselectfile fileselectfolder filesetattrib filesettime formattime \
84 | getkeystate groupactivate groupadd groupclose groupdeactivate gui guicontrol \
85 | guicontrolget hotkey imagesearch inidelete iniread iniwrite input inputbox \
86 | keyhistory keywait listhotkeys listlines listvars menu mouseclick \
87 | mouseclickdrag mousegetpos mousemove msgbox onexit outputdebug pause \
88 | pixelgetcolor pixelsearch postmessage process progress random regdelete \
89 | regread regwrite reload run runas runwait send sendevent sendinput sendlevel \
90 | sendmessage sendmode sendplay sendraw setbatchlines setcapslockstate \
91 | setcontroldelay setdefaultmousespeed setenv setformat setkeydelay \
92 | setmousedelay setnumlockstate setregview setscrolllockstate \
93 | setstorecapslockmode settimer settitlematchmode setwindelay setworkingdir \
94 | shutdown sleep sort soundbeep soundget soundgetwavevolume soundplay soundset \
95 | soundsetwavevolume splashimage splashtextoff splashtexton splitpath \
96 | statusbargettext statusbarwait stringcasesense stringgetpos stringleft \
97 | stringlen stringlower stringmid stringreplace stringright stringsplit \
98 | stringtrimleft stringtrimright stringupper suspend sysget thread tooltip \
99 | transform traytip urldownloadtofile winactivate winactivatebottom winclose \
100 | winget wingetactivestats wingetactivetitle wingetclass wingetpos wingettext \
101 | wingettitle winhide winkill winmaximize winmenuselectitem winminimize \
102 | winminimizeall winminimizeallundo winmove winrestore winset winsettitle \
103 | winshow winwait winwaitactive winwaitclose winwaitnotactive
104 |
--------------------------------------------------------------------------------
/source/ahk1.standard.api:
--------------------------------------------------------------------------------
1 | #AllowSameLineComments
2 | #ClipboardTimeout
3 | #CommentFlag
4 | #Delimiter
5 | #DerefChar
6 | #ErrorStdOut
7 | #EscapeChar
8 | #HotkeyInterval
9 | #HotkeyModifierTimeout
10 | #Hotstring
11 | #If
12 | #IfTimeout
13 | #IfWinActive
14 | #IfWinExist
15 | #IfWinNotActive
16 | #IfWinNotExist
17 | #Include
18 | #IncludeAgain
19 | #InputLevel
20 | #InstallKeybdHook
21 | #InstallMouseHook
22 | #KeyHistory
23 | #LTrim
24 | #MaxHotkeysPerInterval
25 | #MaxMem
26 | #MaxThreads
27 | #MaxThreadsBuffer
28 | #MaxThreadsPerHotkey
29 | #MenuMaskKey
30 | #NoEnv
31 | #NoTrayIcon
32 | #Persistent
33 | #Requires
34 | #SingleInstance
35 | #UseHook
36 | #Warn
37 | #WinActivateForce
38 | break
39 | case
40 | catch
41 | continue
42 | else
43 | finally
44 | for
45 | gosub
46 | goto
47 | if
48 | IfEqual
49 | IfExist
50 | IfGreater
51 | IfGreaterOrEqual
52 | IfInString
53 | IfLess
54 | IfLessOrEqual
55 | IfMsgBox
56 | IfNotEqual
57 | IfNotExist
58 | IfNotInString
59 | IfWinActive
60 | IfWinExist
61 | IfWinNotActive
62 | IfWinNotExist
63 | Loop
64 | return
65 | switch
66 | throw
67 | try
68 | until
69 | while
70 | __Call
71 | __Delete
72 | __Get
73 | __New
74 | __Set
75 | ahk_class
76 | ahk_exe
77 | ahk_group
78 | ahk_id
79 | ahk_pid
80 | and
81 | base
82 | ByRef
83 | class
84 | extends
85 | false
86 | Files
87 | global
88 | local
89 | new
90 | not
91 | or
92 | Parse
93 | Read
94 | Reg
95 | static
96 | true
97 | A_AhkPath
98 | A_AhkVersion
99 | A_AppData
100 | A_AppDataCommon
101 | A_Args
102 | A_AutoTrim
103 | A_BatchLines
104 | A_CaretX
105 | A_CaretY
106 | A_Clipboard
107 | A_ComputerName
108 | A_ComSpec
109 | A_ControlDelay
110 | A_CoordModeCaret
111 | A_CoordModeMenu
112 | A_CoordModeMouse
113 | A_CoordModePixel
114 | A_CoordModeToolTip
115 | A_Cursor
116 | A_DD
117 | A_DDD
118 | A_DDDD
119 | A_DefaultGui
120 | A_DefaultListView
121 | A_DefaultMouseSpeed
122 | A_DefaultTreeView
123 | A_Desktop
124 | A_DesktopCommon
125 | A_DetectHiddenText
126 | A_DetectHiddenWindows
127 | A_EndChar
128 | A_EventInfo
129 | A_ExitReason
130 | A_FileEncoding
131 | A_FormatFloat
132 | A_FormatInteger
133 | A_Gui
134 | A_GuiControl
135 | A_GuiControlEvent
136 | A_GuiEvent
137 | A_GuiHeight
138 | A_GuiWidth
139 | A_GuiX
140 | A_GuiY
141 | A_Hour
142 | A_IconFile
143 | A_IconHidden
144 | A_IconNumber
145 | A_IconTip
146 | A_Index
147 | A_InitialWorkingDir
148 | A_IPAddress1
149 | A_IPAddress2
150 | A_IPAddress3
151 | A_IPAddress4
152 | A_Is64bitOS
153 | A_IsAdmin
154 | A_IsCompiled
155 | A_IsCritical
156 | A_IsPaused
157 | A_IsSuspended
158 | A_IsUnicode
159 | A_KeyDelay
160 | A_KeyDelayPlay
161 | A_KeyDuration
162 | A_KeyDurationPlay
163 | A_Language
164 | A_LastError
165 | A_LineFile
166 | A_LineNumber
167 | A_ListLines
168 | A_LoopField
169 | A_LoopFileAttrib
170 | A_LoopFileDir
171 | A_LoopFileExt
172 | A_LoopFileFullPath
173 | A_LoopFileLongPath
174 | A_LoopFileName
175 | A_LoopFilePath
176 | A_LoopFileShortName
177 | A_LoopFileShortPath
178 | A_LoopFileSize
179 | A_LoopFileSizeKB
180 | A_LoopFileSizeMB
181 | A_LoopFileTimeAccessed
182 | A_LoopFileTimeCreated
183 | A_LoopFileTimeModified
184 | A_LoopReadLine
185 | A_LoopRegKey
186 | A_LoopRegName
187 | A_LoopRegSubKey
188 | A_LoopRegTimeModified
189 | A_LoopRegType
190 | A_MDay
191 | A_Min
192 | A_MM
193 | A_MMM
194 | A_MMMM
195 | A_Mon
196 | A_MouseDelay
197 | A_MouseDelayPlay
198 | A_MSec
199 | A_MyDocuments
200 | A_Now
201 | A_NowUTC
202 | A_NumBatchLines
203 | A_OSType
204 | A_OSVersion
205 | A_PriorHotkey
206 | A_PriorKey
207 | A_ProgramFiles
208 | A_Programs
209 | A_ProgramsCommon
210 | A_PtrSize
211 | A_RegView
212 | A_ScreenDPI
213 | A_ScreenHeight
214 | A_ScreenWidth
215 | A_ScriptDir
216 | A_ScriptFullPath
217 | A_ScriptHwnd
218 | A_ScriptName
219 | A_Sec
220 | A_SendLevel
221 | A_SendMode
222 | A_Space
223 | A_StartMenu
224 | A_StartMenuCommon
225 | A_Startup
226 | A_StartupCommon
227 | A_StoreCapsLockMode
228 | A_StringCaseSense
229 | A_Tab
230 | A_Temp
231 | A_ThisFunc
232 | A_ThisHotkey
233 | A_ThisLabel
234 | A_ThisMenu
235 | A_ThisMenuItem
236 | A_ThisMenuItemPos
237 | A_TickCount
238 | A_TimeIdle
239 | A_TimeIdleKeyboard
240 | A_TimeIdleMouse
241 | A_TimeIdlePhysical
242 | A_TimeSincePriorHotkey
243 | A_TimeSinceThisHotkey
244 | A_TitleMatchMode
245 | A_TitleMatchModeSpeed
246 | A_UserName
247 | A_WDay
248 | A_WinDelay
249 | A_WinDir
250 | A_WorkingDir
251 | A_YDay
252 | A_Year
253 | A_YWeek
254 | A_YYYY
255 | Clipboard
256 | ClipboardAll
257 | ComSpec
258 | ErrorLevel
259 | ProgramFiles
260 | this
261 | Abs
262 | ACos
263 | Array
264 | Asc
265 | ASin
266 | ATan
267 | Ceil
268 | Chr
269 | ComObjActive
270 | ComObjArray
271 | ComObjConnect
272 | ComObjCreate
273 | ComObject
274 | ComObjError
275 | ComObjFlags
276 | ComObjGet
277 | ComObjQuery
278 | ComObjType
279 | ComObjValue
280 | Cos
281 | DllCall
282 | Exception
283 | Exp
284 | FileExist
285 | FileOpen
286 | Floor
287 | Format
288 | Func
289 | GetKeyName
290 | GetKeySC
291 | GetKeyState
292 | GetKeyVK
293 | Hotstring
294 | IL_Add
295 | IL_Create
296 | IL_Destroy
297 | InputHook
298 | InStr
299 | IsByRef
300 | IsFunc
301 | IsLabel
302 | IsObject
303 | IsSet
304 | Ln
305 | LoadPicture
306 | Log
307 | LTrim
308 | LV_Add
309 | LV_Delete
310 | LV_DeleteCol
311 | LV_GetCount
312 | LV_GetNext
313 | LV_GetText
314 | LV_Insert
315 | LV_InsertCol
316 | LV_Modify
317 | LV_ModifyCol
318 | LV_SetImageList
319 | Max
320 | MenuGetHandle
321 | MenuGetName
322 | Min
323 | Mod
324 | NumGet
325 | NumPut
326 | ObjAddRef
327 | ObjBindMethod
328 | ObjClone
329 | ObjCount
330 | ObjDelete
331 | Object
332 | ObjGetAddress
333 | ObjGetBase
334 | ObjGetCapacity
335 | ObjHasKey
336 | ObjInsert
337 | ObjInsertAt
338 | ObjLength
339 | ObjMaxIndex
340 | ObjMinIndex
341 | ObjNewEnum
342 | ObjPop
343 | ObjPush
344 | ObjRawGet
345 | ObjRawSet
346 | ObjRelease
347 | ObjRemove
348 | ObjRemoveAt
349 | ObjSetBase
350 | ObjSetCapacity
351 | OnClipboardChange
352 | OnError
353 | OnExit
354 | OnMessage
355 | Ord
356 | RegExMatch
357 | RegExReplace
358 | RegisterCallback
359 | Round
360 | RTrim
361 | SB_SetIcon
362 | SB_SetParts
363 | SB_SetText
364 | Sin
365 | Sqrt
366 | StrGet
367 | StrLen
368 | StrPut
369 | StrReplace
370 | StrSplit
371 | SubStr
372 | Tan
373 | Trim
374 | TV_Add
375 | TV_Delete
376 | TV_Get
377 | TV_GetChild
378 | TV_GetCount
379 | TV_GetNext
380 | TV_GetParent
381 | TV_GetPrev
382 | TV_GetSelection
383 | TV_GetText
384 | TV_Modify
385 | TV_SetImageList
386 | VarSetCapacity
387 | WinActive
388 | WinExist
389 | AutoTrim
390 | BlockInput
391 | Click
392 | ClipWait
393 | Control
394 | ControlClick
395 | ControlFocus
396 | ControlGet
397 | ControlGetFocus
398 | ControlGetPos
399 | ControlGetText
400 | ControlMove
401 | ControlSend
402 | ControlSendRaw
403 | ControlSetText
404 | CoordMode
405 | Critical
406 | DetectHiddenText
407 | DetectHiddenWindows
408 | Drive
409 | DriveGet
410 | DriveSpaceFree
411 | Edit
412 | EnvAdd
413 | EnvDiv
414 | EnvGet
415 | EnvMult
416 | EnvSet
417 | EnvSub
418 | EnvUpdate
419 | Exit
420 | ExitApp
421 | FileAppend
422 | FileCopy
423 | FileCopyDir
424 | FileCreateDir
425 | FileCreateShortcut
426 | FileDelete
427 | FileEncoding
428 | FileGetAttrib
429 | FileGetShortcut
430 | FileGetSize
431 | FileGetTime
432 | FileGetVersion
433 | FileInstall
434 | FileMove
435 | FileMoveDir
436 | FileRead
437 | FileReadLine
438 | FileRecycle
439 | FileRecycleEmpty
440 | FileRemoveDir
441 | FileSelectFile
442 | FileSelectFolder
443 | FileSetAttrib
444 | FileSetTime
445 | FormatTime
446 | GetKeyState
447 | GroupActivate
448 | GroupAdd
449 | GroupClose
450 | GroupDeactivate
451 | Gui
452 | GuiControl
453 | GuiControlGet
454 | Hotkey
455 | ImageSearch
456 | IniDelete
457 | IniRead
458 | IniWrite
459 | Input
460 | InputBox
461 | KeyHistory
462 | KeyWait
463 | ListHotkeys
464 | ListLines
465 | ListVars
466 | Menu
467 | MouseClick
468 | MouseClickDrag
469 | MouseGetPos
470 | MouseMove
471 | MsgBox
472 | OnExit
473 | OutputDebug
474 | Pause
475 | PixelGetColor
476 | PixelSearch
477 | PostMessage
478 | Process
479 | Progress
480 | Random
481 | RegDelete
482 | RegRead
483 | RegWrite
484 | Reload
485 | Run
486 | RunAs
487 | RunWait
488 | Send
489 | SendEvent
490 | SendInput
491 | SendLevel
492 | SendMessage
493 | SendMode
494 | SendPlay
495 | SendRaw
496 | SetBatchLines
497 | SetCapsLockState
498 | SetControlDelay
499 | SetDefaultMouseSpeed
500 | SetEnv
501 | SetFormat
502 | SetKeyDelay
503 | SetMouseDelay
504 | SetNumLockState
505 | SetRegView
506 | SetScrollLockState
507 | SetStoreCapsLockMode
508 | SetTimer
509 | SetTitleMatchMode
510 | SetWinDelay
511 | SetWorkingDir
512 | Shutdown
513 | Sleep
514 | Sort
515 | SoundBeep
516 | SoundGet
517 | SoundGetWaveVolume
518 | SoundPlay
519 | SoundSet
520 | SoundSetWaveVolume
521 | SplashImage
522 | SplashTextOff
523 | SplashTextOn
524 | SplitPath
525 | StatusBarGetText
526 | StatusBarWait
527 | StringCaseSense
528 | StringGetPos
529 | StringLeft
530 | StringLen
531 | StringLower
532 | StringMid
533 | StringReplace
534 | StringRight
535 | StringSplit
536 | StringTrimLeft
537 | StringTrimRight
538 | StringUpper
539 | Suspend
540 | SysGet
541 | Thread
542 | ToolTip
543 | Transform
544 | TrayTip
545 | URLDownloadToFile
546 | WinActivate
547 | WinActivateBottom
548 | WinClose
549 | WinGet
550 | WinGetActiveStats
551 | WinGetActiveTitle
552 | WinGetClass
553 | WinGetPos
554 | WinGetText
555 | WinGetTitle
556 | WinHide
557 | WinKill
558 | WinMaximize
559 | WinMenuSelectItem
560 | WinMinimize
561 | WinMinimizeAll
562 | WinMinimizeAllUndo
563 | WinMove
564 | WinRestore
565 | WinSet
566 | WinSetTitle
567 | WinShow
568 | WinWait
569 | WinWaitActive
570 | WinWaitClose
571 | WinWaitNotActive
572 |
--------------------------------------------------------------------------------
/source/ahk2.keywords.properties:
--------------------------------------------------------------------------------
1 | # This file is autogenerated by CreateAhk2.ahk - DO NOT UPDATE MANUALLY
2 |
3 | ahk2.keywords.directives.expr=\
4 | clipboardtimeout hotif hotiftimeout inputlevel maxthreads maxthreadsbuffer \
5 | maxthreadsperhotkey suspendexempt usehook winactivateforce
6 |
7 | ahk2.keywords.directives.str=\
8 | dllload errorstdout hotstring include includeagain notrayicon requires \
9 | singleinstance warn
10 |
11 | ahk2.keywords.flow=\
12 | break case catch continue else finally for goto if loop return switch throw \
13 | try until while
14 |
15 | ahk2.keywords.reserved=\
16 | and as contains false global in is isset local not or static super true unset
17 |
18 | ahk2.keywords.known.vars=\
19 | a_ahkpath a_ahkversion a_allowmainwindow a_appdata a_appdatacommon a_args \
20 | a_clipboard a_computername a_comspec a_controldelay a_coordmodecaret \
21 | a_coordmodemenu a_coordmodemouse a_coordmodepixel a_coordmodetooltip a_cursor \
22 | a_dd a_ddd a_dddd a_defaultmousespeed a_desktop a_desktopcommon \
23 | a_detecthiddentext a_detecthiddenwindows a_endchar a_eventinfo a_fileencoding \
24 | a_hotkeyinterval a_hotkeymodifiertimeout a_hour a_iconfile a_iconhidden \
25 | a_iconnumber a_icontip a_index a_initialworkingdir a_is64bitos a_isadmin \
26 | a_iscompiled a_iscritical a_ispaused a_issuspended a_keydelay a_keydelayplay \
27 | a_keyduration a_keydurationplay a_language a_lasterror a_linefile a_linenumber \
28 | a_listlines a_loopfield a_loopfileattrib a_loopfiledir a_loopfileext \
29 | a_loopfilefullpath a_loopfilename a_loopfilepath a_loopfileshortname \
30 | a_loopfileshortpath a_loopfilesize a_loopfilesizekb a_loopfilesizemb \
31 | a_loopfiletimeaccessed a_loopfiletimecreated a_loopfiletimemodified \
32 | a_loopreadline a_loopregkey a_loopregname a_loopregtimemodified a_loopregtype \
33 | a_maxhotkeysperinterval a_mday a_menumaskkey a_min a_mm a_mmm a_mmmm a_mon \
34 | a_mousedelay a_mousedelayplay a_msec a_mydocuments a_now a_nowutc a_osversion \
35 | a_priorhotkey a_priorkey a_programfiles a_programs a_programscommon a_ptrsize \
36 | a_regview a_screendpi a_screenheight a_screenwidth a_scriptdir \
37 | a_scriptfullpath a_scripthwnd a_scriptname a_sec a_sendlevel a_sendmode \
38 | a_space a_startmenu a_startmenucommon a_startup a_startupcommon \
39 | a_storecapslockmode a_tab a_temp a_thisfunc a_thishotkey a_tickcount \
40 | a_timeidle a_timeidlekeyboard a_timeidlemouse a_timeidlephysical \
41 | a_timesincepriorhotkey a_timesincethishotkey a_titlematchmode \
42 | a_titlematchmodespeed a_traymenu a_username a_wday a_windelay a_windir \
43 | a_workingdir a_yday a_year a_yweek a_yyyy this thishotkey
44 |
45 | ahk2.keywords.known.funcs=\
46 | abs acos asin atan blockinput callbackcreate callbackfree caretgetpos ceil \
47 | chr click clipwait comcall comobjactive comobjconnect comobjflags \
48 | comobjfromptr comobjget comobjquery comobjtype comobjvalue controladditem \
49 | controlchooseindex controlchoosestring controlclick controldeleteitem \
50 | controlfinditem controlfocus controlgetchecked controlgetchoice \
51 | controlgetclassnn controlgetenabled controlgetexstyle controlgetfocus \
52 | controlgethwnd controlgetindex controlgetitems controlgetpos controlgetstyle \
53 | controlgettext controlgetvisible controlhide controlhidedropdown controlmove \
54 | controlsend controlsendtext controlsetchecked controlsetenabled \
55 | controlsetexstyle controlsetstyle controlsettext controlshow \
56 | controlshowdropdown coordmode cos critical dateadd datediff detecthiddentext \
57 | detecthiddenwindows dircopy dircreate dirdelete direxist dirmove dirselect \
58 | dllcall download driveeject drivegetcapacity drivegetfilesystem drivegetlabel \
59 | drivegetlist drivegetserial drivegetspacefree drivegetstatus drivegetstatuscd \
60 | drivegettype drivelock driveretract drivesetlabel driveunlock edit \
61 | editgetcurrentcol editgetcurrentline editgetline editgetlinecount \
62 | editgetselectedtext editpaste envget envset exit exitapp exp fileappend \
63 | filecopy filecreateshortcut filedelete fileencoding fileexist filegetattrib \
64 | filegetshortcut filegetsize filegettime filegetversion fileinstall filemove \
65 | fileopen fileread filerecycle filerecycleempty fileselect filesetattrib \
66 | filesettime floor format formattime getkeyname getkeysc getkeystate getkeyvk \
67 | getmethod groupactivate groupadd groupclose groupdeactivate guictrlfromhwnd \
68 | guifromhwnd hasbase hasmethod hasprop hotif hotifwinactive hotifwinexist \
69 | hotifwinnotactive hotifwinnotexist hotkey hotstring il_add il_create \
70 | il_destroy imagesearch inidelete iniread iniwrite inputbox installkeybdhook \
71 | installmousehook instr isalnum isalpha isdigit isfloat isinteger islabel \
72 | islower isnumber isobject issetref isspace istime isupper isxdigit keyhistory \
73 | keywait listhotkeys listlines listvars listviewgetcontent ln loadpicture log \
74 | ltrim max menufromhandle menuselect min mod monitorget monitorgetcount \
75 | monitorgetname monitorgetprimary monitorgetworkarea mouseclick mouseclickdrag \
76 | mousegetpos mousemove msgbox numget numput objaddref objbindmethod objfromptr \
77 | objfromptraddref objgetbase objgetcapacity objhasownprop objownpropcount \
78 | objownprops objptr objptraddref objrelease objsetbase objsetcapacity \
79 | onclipboardchange onerror onexit onmessage ord outputdebug pause persistent \
80 | pixelgetcolor pixelsearch postmessage processclose processexist processgetname \
81 | processgetpath processsetpriority processwait processwaitclose random \
82 | regcreatekey regdelete regdeletekey regexmatch regexreplace regread regwrite \
83 | reload round rtrim run runas runwait send sendevent sendinput sendlevel \
84 | sendmessage sendmode sendplay sendtext setcapslockstate setcontroldelay \
85 | setdefaultmousespeed setkeydelay setmousedelay setnumlockstate setregview \
86 | setscrolllockstate setstorecapslockmode settimer settitlematchmode setwindelay \
87 | setworkingdir shutdown sin sleep sort soundbeep soundgetinterface soundgetmute \
88 | soundgetname soundgetvolume soundplay soundsetmute soundsetvolume splitpath \
89 | sqrt statusbargettext statusbarwait strcompare strget strlen strlower strptr \
90 | strput strreplace strsplit strtitle strupper substr suspend sysget \
91 | sysgetipaddresses tan thread tooltip trayseticon traytip trim type \
92 | varsetstrcapacity vercompare winactivate winactivatebottom winactive winclose \
93 | winexist wingetclass wingetclientpos wingetcontrols wingetcontrolshwnd \
94 | wingetcount wingetexstyle wingetid wingetidlast wingetlist wingetminmax \
95 | wingetpid wingetpos wingetprocessname wingetprocesspath wingetstyle wingettext \
96 | wingettitle wingettranscolor wingettransparent winhide winkill winmaximize \
97 | winminimize winminimizeall winminimizeallundo winmove winmovebottom winmovetop \
98 | winredraw winrestore winsetalwaysontop winsetenabled winsetexstyle \
99 | winsetregion winsetstyle winsettitle winsettranscolor winsettransparent \
100 | winshow winwait winwaitactive winwaitclose winwaitnotactive
101 |
102 | ahk2.keywords.known.classes=\
103 | any array boundfunc buffer class clipboardall closure comobjarray comobject \
104 | comvalue comvalueref enumerator error file float func gui indexerror inputhook \
105 | integer map membererror memoryerror menu menubar methoderror number object \
106 | oserror primitive propertyerror regexmatchinfo string targeterror timeouterror \
107 | typeerror unseterror unsetitemerror valueerror varref zerodivisionerror
108 |
109 | ahk2.keywords.known.props=\
110 | __class __item ateof base capacity casesense count default encoding extra \
111 | file handle hwnd isbuiltin isvariadic length line maxparams message minparams \
112 | name pos prototype ptr size stack what
113 |
114 | ahk2.keywords.known.methods=\
115 | __call __delete __enum __get __init __new __set bind call clear clone close \
116 | defineprop delete deleteprop get getmethod getownpropdesc has hasbase \
117 | hasmethod hasownprop hasprop insertat isbyref isoptional ownprops pop push \
118 | rawread rawwrite read readchar readdouble readfloat readint readint64 readline \
119 | readshort readuchar readuint readushort removeat seek set write writechar \
120 | writedouble writefloat writeint writeint64 writeline writeshort writeuchar \
121 | writeuint writeushort
122 |
--------------------------------------------------------------------------------
/source/locales/English.locale.properties:
--------------------------------------------------------------------------------
1 | # locale.properties by Neil Hodgson neilh@scintilla.org
2 | # Placed in the public domain 2001
3 |
4 | # locale.properties defines the localised text for the user interface
5 | # Some definitions are commented out because they duplicate another string
6 | # The format of each line is original=localised, such as File=&Fichier
7 | # Even though the original text may have ellipses "..." and access key
8 | # indicators "&" in the user interface, these do not appear in this file
9 | # for the original texts. Translated texts should have an access key indicator
10 | # if needed as the translated text may not include the original access key.
11 | # Ellipses are automatically added when needed.
12 | # The "/" character should not be used in menu entries as on GTK+ the "/" is
13 | # used to specifiy the menu hierarchy and so will produce extra menu items.
14 | # Each original text may have only one translation, even if it appears in
15 | # different parts of the user interface.
16 |
17 | # Please state any further license conditions and copyright notices you desire.
18 | # If there are no further notices then contributed translations will be assumed
19 | # to be made freely available under the same conditions as SciTE.
20 | # Email addresses included in this file may attract spam if the file is published.
21 |
22 | # !!! Some Renaming is involved in this file !!!
23 |
24 | # Define the encoding of this file so that on GTK+ 2, the file can be
25 | # reencoded as UTF-8 as that is the GTK+ 2 user interface encoding.
26 | # A common choice for European users is LATIN1. For other locales look at
27 | # the set of encodings supported by iconv.
28 | translation.encoding=UTF-8
29 |
30 | # Menus
31 |
32 | # File menu
33 | File=
34 | New=
35 | Open=
36 | Open Selected Filename=
37 | Revert=
38 | Close=
39 | Save=
40 | Save As=
41 | Export=
42 | As HTML=
43 | As RTF=
44 | Page Setup=
45 | Print=
46 | Load Session=
47 | Save Session=
48 | Exit=
49 |
50 | # Edit menu
51 | Edit=
52 | Undo=
53 | Redo=
54 | Cut=
55 | Copy=
56 | Paste=
57 | Delete=
58 | Select All=
59 | Copy as RTF=
60 | Match Brace=
61 | Select to Brace=
62 | Show Calltip=
63 | Complete Symbol=
64 | Complete Word=
65 | Expand Abbreviation=
66 | Block Comment or Uncomment=
67 | Box Comment=
68 | Stream Comment=
69 | Make Selection Uppercase=
70 | Make Selection Lowercase=
71 |
72 | # Search menu
73 | Search=
74 | Find=
75 | Find Next=
76 | Find Previous=
77 | Find in Files=
78 | Replace=
79 | Next Bookmark=
80 | Previous Bookmark=
81 | Toggle Bookmark=
82 | Clear All Bookmarks=
83 |
84 | # View menu
85 | View=
86 | Toggle current fold=
87 | Toggle all folds=
88 | Full Screen=
89 | Tool Bar=
90 | Tab Bar=
91 | Status Bar=
92 | Whitespace=
93 | End of Line=
94 | Indentation Guides=
95 | Line Numbers=
96 | Margin=
97 | Fold Margin=
98 | Output=
99 | Parameters=
100 |
101 | # Tools menu
102 | Tools=
103 | Compile=
104 | Build=&Debug
105 | Go=&Run
106 | Stop Executing=
107 | Next Message=
108 | Previous Message=
109 | Clear Output=
110 | Switch Pane=
111 |
112 | # Options menu
113 | Options=
114 | Always On Top=
115 | Vertical Split=
116 | Line End Characters=
117 | CR + LF=
118 | CR=
119 | LF=
120 | Convert Line End Characters=
121 | Change Indentation Settings=
122 | Use Monospaced Font=
123 | Open Local Options File=Open per-folder properties
124 | Open User Options File=Open User properties
125 | Open Global Options File=Open Global properties
126 | Open Abbreviations File=
127 |
128 | # Language menu
129 | Language=
130 |
131 | # Buffers menu
132 | Buffers=Ta&bs
133 | Previous=
134 | Next=
135 | Close All=
136 |
137 | # Help menu
138 | Help=
139 | About SciTE4AutoHotkey Lite=
140 | About SciTE4AutoHotkey=
141 |
142 | # Dialogs
143 |
144 | # Generic dialog
145 | OK=
146 | Cancel=
147 | Yes=
148 | No=
149 |
150 | # About dialog
151 | About SciTE=About SciTE4AutoHotkey
152 | # This is to add something like: Swahili translation 1.41.1 by Neil Hodgson
153 | TranslationCredit=
154 | Contributors:=
155 |
156 | # Open, Save dialogs
157 | Open File=
158 | Save File=
159 | Save File As=
160 | Export File As HTML=
161 | Export File As RTF=
162 | Save Current Session=
163 | Custom Filter=
164 |
165 | # Find in Files dialog
166 | #Find in Files=
167 | Find what:=
168 | Files:=
169 | #Find=
170 |
171 | # Go To dialog
172 | Go To=
173 | Destination Line Number:=
174 | Current line:=
175 | Last line:=
176 |
177 | # Indentation Settings dialog
178 | Indentation Settings=
179 | Tab Size:=
180 | Indent Size:=
181 | Use tabs:=
182 |
183 | # Replace and Find dialogs
184 | #Replace=
185 | #Find=
186 | #Find what:=
187 | Replace with:=
188 | Match whole word only=
189 | Match case=
190 | Regular expression=
191 | Wrap around=
192 | Transform backslash expressions=
193 | #Find Next=
194 | Replace All=
195 | Replace in Selection=
196 | #Close=
197 | Direction=
198 | Reverse direction=
199 | Up=
200 | Down=
201 |
202 | # Parameters dialog
203 | Execute=
204 | Set=
205 |
206 | # Other UI strings
207 | Untitled=
208 |
209 | # Properties used in global options
210 | Text=
211 | All Source=
212 | All Files (*.*)=
213 |
214 | # Messages
215 | # Messages may contain variables such as file names or search strings indicated
216 | # by ^0 which are replaced by values before display. ^1, ^2, ... may be used in the future.
217 | Can not find the string '^0'.=
218 | Find string must not be empty for 'Replace All' command.=
219 | Selection must not be empty for 'Replace in Selection' command.=
220 | No replacements because string '^0' was not present.=
221 | Could not open file '^0'.=
222 | Could not save file '^0'.=
223 | Save changes to '^0'?=
224 | Save changes to (Untitled)?=
225 | The file '^0' has been modified. Should it be reloaded?=
226 | Bad file.=
227 | Failed to create dialog box: ^0.=
228 | Can not start printer document.=
229 | URI '^0' not understood.=
230 | Invalid directory '^0'.=
231 |
232 | # 1.42
233 | Directory:=
234 | Wrap=
235 | Hide=
236 | Check if already open=
237 |
238 | # 1.43
239 | Find string must not be empty for 'Replace in Selection' command.=
240 | List Macros=
241 | Run Current Macro=
242 | Record Macro=
243 | Stop Recording Macro=
244 | SciTE Help=
245 | Sc1 Help=
246 | Edit Properties=
247 | Wrap Output=
248 |
249 | # 1.44
250 | Read-Only=
251 | READ=
252 |
253 | # 1.46
254 | As TeX=
255 | Export File As TeX=
256 | Save a Copy=
257 |
258 | # 1.47
259 | As LaTeX=
260 | Export File As LaTeX=
261 | Encoding=
262 | 8 Bit=
263 | UTF-8=
264 |
265 | # 1.49
266 | Save All=
267 | Browse=
268 | Select a folder to search from=
269 | UTF-8 Cookie=
270 |
271 | # 1.50
272 | Insert Abbreviation=
273 | Abbreviation:=
274 | Insert=
275 | Mark All=
276 |
277 | # 1.51
278 | In Selection=
279 | Paragraph=
280 | Join=
281 | Split=
282 |
283 | # 1.52
284 | Block comment variable '^0' is not defined in SciTE *.properties!=
285 | Box comment variables '^0', '^1' and '^2' are not defined in SciTE *.properties!=
286 | Stream comment variables '^0' and '^1' are not defined in SciTE *.properties!=
287 | The file '^0' has been modified outside SciTE. Should it be reloaded?=
288 | As PDF=
289 | Export File As PDF=
290 |
291 | # 1.53
292 | Version=
293 | by=
294 |
295 | #1.54
296 | Incremental Search=
297 | Search for:=
298 |
299 | #1.55
300 | Could not save file '^0'. Save under a different name?=
301 |
302 | #1.56
303 | As XML=
304 | Export File As XML=
305 |
306 | #1.57
307 | Destination Line:=
308 | Column:=
309 |
310 | #1.58
311 | Replacements:=
312 | Open Files Here=
313 |
314 | #1.59
315 |
316 | #1.60
317 |
318 | #1.61
319 | File '^0' is ^1 bytes long,\nlarger than the ^2 bytes limit set in the properties.\nDo you still want to open it?=
320 | Open Lua Startup Script=Open Global Lua Script
321 | All Files (*)=
322 | Hidden Files (.*)=
323 |
324 | #1.62
325 | Show hidden files=
326 |
327 | #1.63
328 | Replace in Buffers=Replace in Files
329 | Find string must not be empty for 'Replace in Buffers' command.=Find string must not be empty for 'Replace in Files' command.
330 | Search only in this style:=
331 |
332 | #1.67
333 | Duplicate=
334 |
335 | #1.72
336 | Convert=
337 |
338 | #1.73
339 | Code Page Property=
340 | UTF-8 with BOM=
341 | Open Directory Options File=Open per-project properties
342 |
343 | #1.77
344 | File '^0' is already open in another buffer.=File '^0' is already open.
345 |
346 | # 2.10
347 | UTF-16 Big Endian=
348 | UTF-16 Little Endian=
349 |
350 | # 2.12
351 | The file '^0' has been modified outside SciTE. Should it be saved?=
352 | Copy Path=
353 | in=
354 | of=
355 |
356 | # 2.20
357 | Find:=
358 | Replace:=
359 |
360 | # 2.21
361 | Use tabs=
362 | Case sensitive=
363 |
--------------------------------------------------------------------------------
/source/locales/日本語.locale.properties:
--------------------------------------------------------------------------------
1 | # locale.properties by Neil Hodgson neilh@scintilla.org
2 | # Placed in the public domain 2001
3 |
4 | # locale.properties defines the localised text for the user interface
5 | # Some definitions are commented out because they duplicate another string
6 | # The format of each line is original=localised, such as File=&Fichier
7 | # Even though the original text may have ellipses "..." and access key
8 | # indicators "&" in the user interface, these do not appear in this file
9 | # for the original texts. Translated texts should have an access key indicator
10 | # if needed as the translated text may not include the original access key.
11 | # Ellipses are automatically added when needed.
12 | # The "/" character should not be used in menu entries as on GTK+ the "/" is
13 | # used to specifiy the menu hierarchy and so will produce extra menu items.
14 | # Each original text may have only one translation, even if it appears in
15 | # different parts of the user interface.
16 |
17 | # Please state any further license conditions and copyright notices you desire.
18 | # If there are no further notices then contributed translations will be assumed
19 | # to be made freely available under the same conditions as SciTE.
20 | # Email addresses included in this file may attract spam if the file is published.
21 |
22 | # Define the encoding of this file so that on GTK+ 2, the file can be
23 | # reencoded as UTF-8 as that is the GTK+ 2 user interface encoding.
24 | # A common choice for European users is LATIN1. For other locales look at
25 | # the set of encodings supported by iconv.
26 | translation.encoding=UTF-8
27 |
28 | # Menus
29 |
30 | # File menu
31 | File=ファイル(&F)
32 | New=新規作成(&N)
33 | Open=開く(&O)
34 | Open Selected Filename=選択文字列をファイル名として開く(&F)
35 | Revert=再読込(&R)
36 | Close=閉じる(&W)
37 | Save=保存(&S)
38 | Save As=名前を変更して保存(&A)
39 | Export=変換して出力(&E)
40 | As HTML=&HTMLとして
41 | As RTF=&RTFとして
42 | Page Setup=印刷設定(&U)
43 | Print=印刷(&P)
44 | Load Session=セッションを読み出す(&L)
45 | Save Session=セッションの保存(&V)
46 | Exit=終了(&X)
47 |
48 | # Edit menu
49 | Edit=編集(&E)
50 | Undo=取り消し(&U)
51 | Redo=再実行(&R)
52 | Cut=切り取り(&T)
53 | Copy=コピー(&C)
54 | Paste=貼り付け(&P)
55 | Delete=削除(&D)
56 | Select All=すべてを選択(&A)
57 | Copy as RTF=RT&F としてコピー
58 | Match Brace=対応する括弧まで移動(&B)
59 | Select to Brace=対応する括弧まで選択(&O)
60 | Show Calltip=コールチップを見る(&H)
61 | Complete Symbol=識別子補完(&Y)
62 | Complete Word=単語補完(&W)
63 | Expand Abbreviation=省略表現を展開(&E)
64 | Block Comment or Uncomment=ブロック注釈/解除(&M)
65 | Box Comment=ボックス注釈(&X)
66 | Stream Comment=ストリーム注釈(&N)
67 | Make Selection Uppercase=選択部を大文字化する(&S)
68 | Make Selection Lowercase=選択部を小文字化する(&L)
69 |
70 | # Search menu
71 | Search=検索(&S)
72 | Find=検索(&F)
73 | Find Next=次を検索(&N)
74 | Find Previous=前を検索(&S)
75 | Find in Files=ファイル内を検索(&I)
76 | Replace=置換(&E)
77 | # ↓リソースに Go to が二つあるのでこちらを変更した。Windows のみしか修正していないので後はよろしく。
78 | Go to line#=行番号で位置指定(&G)
79 | Next Bookmark=次の栞(&M)
80 | Previous Bookmark=前の栞(&V)
81 | Toggle Bookmark=栞の切り替え(&K)
82 | Clear All Bookmarks=栞をすべて削除(&C)
83 |
84 | # View menu
85 | View=表示(&V)
86 | Toggle current fold=現在位置の折りたたみを切り替え(&C)
87 | Toggle all folds=すべての折りたたみを切り替え(&A)
88 | Full Screen=全画面(&N)
89 | Tool Bar=ツールバー(&T)
90 | Tab Bar=タブバー(&B)
91 | Status Bar=ステータスバー(&S)
92 | Whitespace=空白(&W)
93 | End of Line=行末(&E)
94 | Indentation Guides=タブ位置の表示(&I)
95 | Line Numbers=行番号(&L)
96 | Margin=余白(&M)
97 | Fold Margin=折りたたみ表示用の余白(&F)
98 | Output=出力(&O)
99 | Parameters=引数(&P)
100 |
101 | # Tools menu
102 | Tools=ツール(&T)
103 | Compile=コンパイル(&C)
104 | Build=デバッグ(&D)
105 | Go=実行(&G)
106 | Stop Executing=実行の中断(&S)
107 | Next Message=次のメッセージ(&N)
108 | Previous Message=前のメッセージ(&P)
109 | Clear Output=出力の消去(&O)
110 | Switch Pane=注目区画の切り替え(&S)
111 |
112 | # Options menu
113 | Options=オプション(&O)
114 | Always On Top=常に最前面(&A)
115 | Vertical Split=左右に分割(&S)
116 | Line End Characters=行末文字(&L)
117 | CR + LF=CRLF(Windows/Dos)(&+)
118 | CR=&CR(Mac)
119 | LF=&LF(Unix)
120 | Convert Line End Characters=行末文字の変換(&C)
121 | Change Indentation Settings=字下げ設定の変更(&T)
122 | Use Monospaced Font=固定幅フォントを使用(&M)
123 | Open Local Options File=局所用設定を開く(&O)
124 | Open User Options File=ユーザ特性用設定を開く(&U)
125 | Open Global Options File=共有特性設定を開く(&G)
126 | Open Abbreviations File=省略表現集を開く(&B)
127 |
128 | # Language menu
129 | Language=文書の種類(&L)
130 |
131 | # Buffers menu
132 | Buffers=編集バッファ(&B)
133 | Previous=前(&P)
134 | Next=次(&N)
135 | Close All=すべて閉じる(&C)
136 |
137 | # Help menu
138 | Help=解説書(&H)
139 | About Sc1=SciTE4AutoHotkey Lite 作成者・寄贈者(&A)
140 | About SciTE=SciTE4AutoHotkey 作成者・寄贈者(&A)
141 |
142 | # Dialogs
143 |
144 | # Generic dialog
145 | OK=作業を進める
146 | Cancel=中止
147 | Yes=はい
148 | No=いいえ
149 |
150 | # About dialog
151 | #About SciTE=
152 | # This is to add something like: Swahili translation 1.41.1 by Neil Hodgson
153 | TranslationCredit=翻訳:\n 鈴見咲君高 / 日本語版 1.62+\n Japanese Translation 1.62+ by Suzumizaki-Kimitaka.
154 | Contributors:=寄贈:
155 |
156 | # Open, Save dialogs
157 | Open File=ファイルを開く
158 | Save File=ファイルを保存
159 | Save File As=別名でファイルを保存
160 | Export File As HTML=HTML として出力
161 | Export File As RTF=RTF として出力
162 | Save Current Session=現在のセッションを保存
163 | Custom Filter=
164 |
165 | # Find in Files dialog
166 | #Find in Files=
167 | Find what:=検索文字列
168 | Files:=対象ファイル
169 | #Find=
170 |
171 | # Go To dialog
172 | Go To=位置指定移動
173 | Destination Line Number:=移動先の行
174 | Current line:=現在位置の行
175 | Last line:=全行数
176 |
177 | # Indentation Settings dialog
178 | Indentation Settings=字下げ設定
179 | Tab Size:=タブの大きさ
180 | Indent Size:=字下げの大きさ
181 | Use tabs:=タブコードを使う
182 |
183 | # Replace and Find dialogs
184 | #Replace=
185 | #Find=
186 | #Find what:=
187 | Replace with:=置換内容
188 | Match whole word only=単語単位の一致のみ
189 | Match case=大文字小文字の区別
190 | Regular expression=正規表現
191 | Wrap around=終端に達したら逆の端から続ける
192 | Transform backslash expressions=\表現を変換
193 | #Find Next=
194 | Replace All=すべて置換
195 | Replace in Selection=選択部を置換
196 | #Close=
197 | Direction=検索方向
198 | Reverse direction=逆方向にする
199 | Up=上
200 | Down=下
201 |
202 | # Parameters dialog
203 | Execute=実行
204 | Set=設定
205 |
206 | # Other UI strings
207 | Untitled=名称未設定
208 |
209 | # Properties used in global options
210 | Text=テキスト
211 | All Source=すべてのソース
212 | All Files (*.*)=すべてのファイル (*.*)
213 |
214 | # Messages
215 | # Messages may contain variables such as file names or search strings indicated
216 | # by ^0 which are replaced by values before display. ^1, ^2, ... may be used in the future.
217 | Can not find the string '^0'.=文字列 '^0' が見つかりません。
218 | Find string must not be empty for 'Replace All' command.=「すべてを置換」する時は検索文字列を空にできません。
219 | Selection must not be empty for 'Replace in Selection' command.=「選択部を置換」するときは選択部を空にできません。
220 | No replacements because string '^0' was not present.= 文字列 '^0' が無かったため置換は行われませんでした。
221 | Could not open file '^0'.=ファイル '^0' を開くことができません。
222 | Could not save file '^0'.=ファイル '^0' を保存できませんでした。
223 | Save changes to '^0'?='^0' の編集結果を保存しますか?
224 | Save changes to (Untitled)?=編集結果を保存しますか?
225 | The file '^0' has been modified. Should it be reloaded?='^0' は編集されました。再読込を行いますか?
226 | Bad file.=不正なファイルです。
227 | Failed to create dialog box: ^0.=ダイアログボックスを作成できませんでした。: ^0
228 | Can not start printer document.=印刷を開始できませんでした。
229 | URI '^0' not understood.='^0' は理解できない URI です。
230 | Invalid directory '^0'.='^0' は不正なディレクトリです。
231 |
232 | # 1.42
233 | Directory:=ディレクトリ:
234 | Wrap=折り返し(&W)
235 | Hide=隠す
236 | Check if already open=すでに開いているかどうか調べる
237 |
238 | # 1.43
239 | Find string must not be empty for 'Replace in Selection' command.=「選択部を置換」するときは検索文字列を空にできません。
240 | List Macros=マクロ一覧
241 | Run Current Macro=現在のマクロを実行
242 | Record Macro=マクロの記録
243 | Stop Recording Macro=マクロ記録の中止
244 | SciTE Help=&SciTE4AutoHotkey 説明書
245 | Sc1 Help=&SciTE4AutoHotkey Lite 説明書
246 | Edit Properties=属性の編集
247 | Wrap Output=出力の折り返し(&P)
248 |
249 | # 1.44
250 | Read-Only=読み出し専用(&R)
251 | READ=
252 |
253 | # 1.46
254 | As TeX=TeX として
255 | Export File As TeX=TeX として出力
256 | Save a Copy=複製を保存(&D)
257 |
258 | # 1.47
259 | As LaTeX=LaTeX として
260 | Export File As LaTeX=LaTeX として出力
261 | Encoding=文字コード(&E)
262 | 8 Bit=&8ビット/MBCS
263 | UCS-2 Big Endian=UCS-2&BE
264 | UCS-2 Little Endian=UCS-2&LE
265 | UTF-8=&UTF-8/Bomあり
266 |
267 | # 1.49
268 | Save All=すべて保存(&A)
269 | Browse=閲覧
270 | Select a folder to search from=検索対象フォルダ
271 | UTF-8 Cookie=UTF-8/Bomなし(&C)
272 |
273 | # 1.50
274 | Insert Abbreviation=省略表現の挿入(&I)
275 | Abbreviation:=省略表現
276 | Insert=挿入
277 | Mark All=すべてに目印
278 |
279 | # 1.51
280 | In Selection=
281 | Paragraph=段落(&G)
282 | Join=結合(&J)
283 | Split=分割(&S)
284 |
285 | # 1.52
286 | Block comment variable '^0' is not defined in SciTE *.properties!=ブロック注釈用の変数 '^0' が SciTE の *.properties に存在しません。
287 | Box comment variables '^0', '^1' and '^2' are not defined in SciTE *.properties!=ボックス注釈用の変数 '^0', '^1', '^2' が SciTE の *.properties に存在しません。
288 | Stream comment variables '^0' and '^1' are not defined in SciTE *.properties!=ストリーム注釈用の変数 '^0', '^1' が SciTE の *.properties に存在しません。
289 | The file '^0' has been modified outside SciTE. Should it be reloaded?=他のソフトが '^0' を編集したようです。再読込を行いますか?
290 | As PDF=PDF として
291 | Export File As PDF=PDF として出力する
292 |
293 | # 1.53
294 | # Version, by は寄贈者一覧で使われるらしい。
295 | Version=版号
296 | by=製作:
297 |
298 | #1.54
299 | Incremental Search=インクリメンタルサーチ(&I)
300 | Search for:=検索文字列
301 |
302 | #1.55
303 | Could not save file '^0'. Save under a different name?=ファイル '^0' を保存できませんでした。別の名前で保存しますか?
304 |
305 | #1.56
306 | As XML=XML として
307 | Export File As XML=XML ファイルとして出力する
308 |
309 | #1.57
310 | Destination Line:=移動先行番号
311 | Column:=列番号
312 |
313 | #1.58
314 | Replacements:=置換数
315 | # ↓Open Files Here は何に使うのか不明。
316 | Open Files Here=ここでファイルを開く(&H)
317 |
318 | #1.59
319 |
320 | #1.60
321 |
322 | #1.61
323 | File '^0' is ^1 bytes long,\nlarger than the ^2 bytes limit set in the properties.\nDo you still want to open it?=ファイル '^0' は ^1 バイトあります。\n特性ファイルに指定された上限を ^2 バイト超えています。\n強制的にこのファイルを開きますか?
324 | Open Lua Startup Script=Lua の初期設定スクリプトを開く
325 | All Files (*)=すべてのファイル (*)
326 | Hidden Files (.*)=隠しファイル (.*)
327 |
328 | #1.62+
329 | No wrap=折り返しなし(&N)
330 | Word wrap=空白類で折り返し(&W)
331 | Char wrap=任意の文字で折り返し(&C)
--------------------------------------------------------------------------------
/source/locales/简体中文.locale.properties:
--------------------------------------------------------------------------------
1 | # locale.properties by Neil Hodgson neilh@scintilla.org
2 | # Placed in the public domain 2001
3 |
4 | # locale.properties defines the localised text for the user interface
5 | # Some definitions are commented out because they duplicate another string
6 | # The format of each line is original=localised, such as File=&Fichier
7 | # Even though the original text may have ellipses "..." and access key
8 | # indicators "&" in the user interface, these do not appear in this file
9 | # for the original texts. Translated texts should have an access key indicator
10 | # if needed as the translated text may not include the original access key.
11 | # Ellipses are automatically added when needed.
12 | # Each original text may have only one translation, even if it appears in
13 | # different parts of the user interface.
14 |
15 | # Please state any further license conditions and copyright notices you desire.
16 | # If there are no further notices then contributed translations will be assumed
17 | # to be made freely available under the same conditions as SciTE.
18 |
19 | # 2002/02/03 before 1.43 Translated by Chii Liao (廖啟邑)
20 | # 2003/11/07 1.44-1.56 Translated by Daniel Lin(daniel@twpda.com)
21 | # 2005/03/12 1.57-1.62 Translated by Edward Hsieh(edwardsayer at pchome dot com dot tw)
22 | # 2005/09/03 1.63-1.66 Translated and corrected by 龔維正 in Taipei County.
23 | # 2005/10/02 1.66 Translated and corrected by linnchord(高显华) in Shanghai China. 参考繁体版修改.
24 | # 2006/04/03 1.67-1.68 Translated and corrected by Calon Xu(calon.xu@gmail.com, http://calon.weblogs.us/) in China Mianland. Based on 1.66 traditional and simplified Chinese locale.properties.
25 | # 2007/08/21 1.69-1.74 Translated and corrected by emlvvh(emlvvh@gmail.com) in Beijing, China. Based on simplified Chinese locale.properties.
26 | translation.encoding=UTF-8
27 |
28 | # 在 GBK环境下, SciTEGlobal.properties 要作下列修改
29 | # 让倒退键运作正常
30 | # code.page=936
31 | # 我的设置是 code.page=65001,没有出现以上情况,如果您发现存在此问题,再按照如上说明修改。(by Calon)
32 |
33 | # Menus
34 |
35 | # File menu
36 | File=文件(&F)
37 | New=新建(&N)
38 | Open=打开(&O)
39 | Open Selected Filename=根据所选文件名打开(&F)
40 | Revert=返回上次保存状态(&R)
41 | Close=关闭(&C)
42 | Save=保存(&S)
43 | Save As=另存为(&A)
44 | Export=导出(&E)
45 | As HTML=为 HTML 文件(&H)
46 | As RTF=为 RTF 文件(&R)
47 | Page Setup=页面设置(&U)
48 | Print=打印(&P)
49 | Load Session=载入文件列表(&L)
50 | Save Session=保存当前文件为文件列表(&V)
51 | Exit=退出(&X)
52 |
53 | # Edit menu
54 | Edit=编辑(&E)
55 | Undo=撤销(&U)
56 | Redo=重复上次动作(&R)
57 | Cut=剪切(&T)
58 | Copy=复制(&C)
59 | Paste=粘贴(&P)
60 | Delete=删除(&D)
61 | Select All=全选(&A)
62 | Copy as RTF=复制为 RTF(&F)
63 | Match Brace=跳至对应的括号(&B)
64 | Select to Brace=选取括号内容(包含括号)(&O)
65 | Show Calltip=显示函数提示(&H)
66 | Complete Symbol=补齐符号(&Y)
67 | Complete Word=补齐文字(&W)
68 | Expand Abbreviation=展开缩略语(&E)
69 | Block Comment or Uncomment=增加/消去行首注释符(&M)
70 | Box Comment=区块首尾及行首加注释符(&X)
71 | Stream Comment=区块首尾加注释符(&N)
72 | Make Selection Uppercase=转为大写(&S)
73 | Make Selection Lowercase=转为小写(&L)
74 |
75 | # Search menu
76 | Search=搜索(&S)
77 | Find=查找(&F)
78 | Find Next=查找下一个(&N)
79 | Find Previous=查找上一个(&S)
80 | Find in Files=在文件中查找(&I)
81 | Replace=替换(&E)
82 | Next Bookmark=下一个书签(&M)
83 | Previous Bookmark=上一个书签(&V)
84 | Toggle Bookmark=设置/清除书签(&K)
85 | Clear All Bookmarks=清除所有书签(&C)
86 |
87 | # View menu
88 | View=查看(&V)
89 | Toggle current fold=折叠/展开(&C)
90 | Toggle all folds=全部折叠/展开(&A)
91 | Full Screen=全屏(&N)
92 | Tool Bar=工具栏(&T)
93 | Tab Bar=标签栏(&B)
94 | Status Bar=状态栏(&S)
95 | Whitespace=空白符(&W)
96 | End of Line=换行符(&E)
97 | Indentation Guides=缩排(&I)
98 | Line Numbers=行号(&L)
99 | Margin=书签页边列(&M)
100 | Fold Margin=折叠状态列(&F)
101 | Output=输出窗口(&O)
102 | Parameters=参数(&P)
103 |
104 | # Tools menu
105 | Tools=工具(&T)
106 | Compile=编译(&C)
107 | Build=调试(&D)
108 | Go=执行(&G)
109 | Stop Executing=中止执行(&S)
110 | Next Message=下一个消息(&N)
111 | Previous Message=上一个消息(&P)
112 | Clear Output=清除输出窗口(&O)
113 | Switch Pane=切换窗格(&S)
114 |
115 | # Options menu
116 | Options=选项(&O)
117 | Always On Top=保持在顶层(&A)
118 | Vertical Split=窗格垂直并列(&S)
119 | Line End Characters=设置换行符(&L)
120 | CR + LF=CR + LF(&+)
121 | CR=CR(&C)
122 | LF=LF(&L)
123 | Convert Line End Characters=转换换行符(&C)
124 | Change Indentation Settings=更改缩排设置(&T)
125 | Use Monospaced Font=使用等宽字体(&M)
126 | Open Local Options File=打开 Local Options 文件(&O)
127 | Open User Options File=打开 User Options 文件(&U)
128 | Open Global Options File=打开 Global Options 文件(&G)
129 | Open Abbreviations File=打开 Abbreviations 文件(&B)
130 |
131 | # Language menu
132 | Language=语言(&L)
133 |
134 | # Buffers menu
135 | Buffers=缓冲区文档(&B)
136 | Previous=上一个文档(&P)
137 | Next=下一个文档(&N)
138 | Close all=全部关闭(&C)
139 |
140 | # Help menu
141 | Help=帮助(&H)
142 | About Sc1=关于 SciTE4AutoHotkey Lite(&S)
143 | About SciTE=关于 SciTE4AutoHotkey(&A)
144 |
145 | # Dialogs
146 |
147 | # Generic dialog
148 | OK=确定
149 | Cancel=取消
150 | Yes=是
151 | No=否
152 |
153 | # About dialog
154 | About SciTE=关于 SciTE4AutoHotkey
155 | # This is to add something like: Swahili translation 1.41.1 by Neil Hodgson
156 | TranslationCredit=Chinese translation v1.43-1.74 by\n Chii Liao\n Daniel Lin\n Edward Hsieh\n Gong Weizheng\n Linnchord\n Calon Xu\n emlvvh
157 | Contributors:=
158 |
159 | # Open, Save dialogs
160 | Open File=打开文件
161 | Save File=保存文件
162 | Save File As=另存为...
163 | Export File As HTML=导出为 HTML 文件
164 | Export File As RTF=导出为 RTF 文件
165 | Save Current Session=保存当前打开的文件为文件列表
166 | Custom Filter=自定义文件类型
167 |
168 | # Find in Files dialog
169 | #Find in Files=在眾檔中尋找
170 | Find what:=输入查找字符(&N)
171 | Files:=文件(&I)
172 | #Find=
173 |
174 | # Go To dialog
175 | Go To=跳至(&G)
176 | Destination Line Number:=目的行号(&D)
177 | Current line:=当前行号
178 | Last line:=前一次行号
179 |
180 | # Indentation Settings dialog
181 | Indentation Settings=缩排设置
182 | Tab Size:=制表符宽度(&T)
183 | Indent Size:=缩进宽度(&I)
184 | Use tabs:=使用制表符(&U)
185 |
186 | # Replace and Find dialogs
187 | Replace=替换(&R)
188 | #Find=
189 | Find what:=输入查找字符(&N)
190 | Replace with:=替换为(&P)
191 | Match whole word only=全字符匹配(&W)
192 | Match case=区分大小写(&C)
193 | Regular expression=使用正则表达式(reg. exp.)(&E)
194 | Wrap around=循环查找(&O)
195 | Transform backslash expressions=使用反斜线(&B)
196 | Find Next=查找下一个(&F)
197 | Replace All=全部替换(&A)
198 | Replace in Selection=在选取文字中替换(&S)
199 | #Close=
200 | Direction=查找方向
201 | Reverse direction=反向查找
202 | Up=向上
203 | Down=向下
204 |
205 | # Parameters dialog
206 | Execute=执行
207 | Set=设置(&S)
208 |
209 | # Other UI strings
210 | Untitled=无标题
211 |
212 | # Properties used in global options
213 | Text=纯文本
214 | All Source=源代码
215 | All Files (*.*)=所有文件 (*.*)
216 |
217 | # Messages
218 | # Messages may contain variables such as file names or search strings indicated
219 | # by ^0 which are replaced by values before display. ^1, ^2, ... may be used in the future.
220 | Can not find the string '^0'.=找不到 '^0'。
221 | Find string must not be empty for 'Replace All' command.=全部替换时查找内容不能空白。
222 | Selection must not be empty for 'Replace in Selection' command.=在选取的文字中替换时一定要先选取文字。
223 | No replacements because string '^0' was not present.=没有找到字符 '^0',未完成替换。
224 | Could not open file '^0'.=无法打开 '^0'。
225 | Could not save file '^0'.=无法保存 '^0'。
226 | Save changes to '^0'?=文件已被更改,是否要保存为 '^0'?
227 | Save changes to (Untitled)?=文件已被更改,是否保存为 无标题 ?
228 | The file '^0' has been modified. Should it be reloaded?=文件 '^0'已被更改过,是否重新载入?
229 | Bad file.=损坏文件。
230 | Failed to create dialog box: ^0.=无法开启 ^0 对话框。
231 | Can not start printer document.=无法打印。
232 | URI '^0' not understood.=不能解析 '^0' URI。
233 | Invalid directory '^0'.=无效的目录/文件夹 '^0'。
234 |
235 | # 1.42
236 | Directory:=目录(&D)
237 | Wrap=自动换行(&W)
238 | Hide=隐藏(&H)
239 | Check if already open=检查文件是否已经打开(&H)
240 |
241 | # 1.43
242 | Find string must not be empty for 'Replace in Selection' command.=在选取的文字中替换时查找内容不能为空白。
243 | List Macros=列出所有宏
244 | Run Current Macro=执行当前宏
245 | Record Macro=录制宏
246 | Stop Recording Macro=停止录制宏
247 | SciTE4AutoHotkey Help=SciTE4AutoHotkey 文档(&S)
248 | Sci4AutoHotkey Lite Help=SciTE4AutoHotkey Lite 帮助
249 | Edit Properties=编辑选项
250 | Wrap Output=输出时自动换行(&P)
251 |
252 | # 1.44
253 | Read-Only=只读(&R)
254 | READ=读入
255 |
256 | # 1.46
257 | As TeX=为 TeX 文件
258 | Export File As TeX=导出为 Tex 文件
259 | Save a Copy=保存副本(&P)
260 |
261 | # 1.47
262 | As LaTeX=为 LaTeX 文件(&L)
263 | Export File As LaTeX=导出为 TeX 文件
264 | Encoding=编码
265 | 8 Bit=8位元
266 | UCS-2 Big Endian=
267 | UCS-2 Little Endian=
268 | UTF-8=
269 |
270 | # 1.49
271 | Save All=全部保存(&S)
272 | Browse=浏览(&B)
273 | Select a folder to search from=选择要查找的目录/文件夹
274 | UTF-8 Cookie=
275 |
276 | # 1.50
277 | Insert Abbreviation=插入缩略语(&I)
278 | Abbreviation:=缩略语:
279 | Insert=插入
280 | Mark All=标记搜索结果(&M)
281 |
282 | # 1.51
283 | In Selection=在选定区域
284 | Paragraph=段落(&G)
285 | Join=合并(&J)
286 | Split=分割(&S)
287 |
288 | # 1.52
289 | Block comment variable '^0' is not defined in SciTE *.properties!=行首的注释符号 '^0' 没有在 SciTE *.properties 中定义!
290 | Box comment variables '^0', '^1' and '^2' are not defined in SciTE *.properties!=区块首尾和其中各行首的注释符号 '^0' 、 '^1' 、 '^2' 没有在 SciTE *.properties 中定义!
291 | Stream comment variables '^0' and '^1' are not defined in SciTE *.properties!=区块首尾的注释符号 '^0' 及 '^1' 没有在 SciTE *.properties 中定义!
292 | The file '^0' has been modified outside SciTE. Should it be reloaded?=文件 '^0' 已经被其他程序修改过,是否要重新载入?
293 | As PDF=为 PDF 文件(&P)
294 | Export File As PDF=导出为 PDF 文件
295 |
296 | # 1.53
297 | Version=
298 | by=
299 |
300 | #1.54
301 | Incremental Search=即输即查(&L)
302 | Search for:=即输即查
303 |
304 | #1.55
305 | Could not save file '^0'. Save under a different name?=无法保存 '^0' 文件,是否更名另存?
306 |
307 | #1.56
308 | As XML=为 XML 文件(&X)
309 | Export File As XML=导出为 XML 文件
310 |
311 | #1.57
312 | Destination Line:=目的行(&D)
313 | Column:=目的栏(&C)
314 |
315 | #1.58
316 | Replacements:=替换:
317 | Open Files Here=在此打开文件(&H)
318 |
319 | #1.59
320 |
321 | #1.60
322 |
323 | #1.61
324 | File '^0' is ^1 bytes long,\nlarger than the ^2 bytes limit set in the properties.\nDo you still want to open it?=文件 '^0' 的长度为 ^1 字节,\n超过了 properties 文件中\n ^2 字节的限制,您仍要打开\n它吗?
325 | Open Lua Startup Script=打开 Lua Startup Script
326 | All Files (*)=所有文件(*)
327 | Hidden Files (.*)=隐藏文件(.*)
328 |
329 | #1.62
330 | Show hidden files=显示隐藏文件
331 |
332 | #1.63
333 | Replace in Buffers=在缓冲区中替换(&U)
334 | Find string must not be empty for 'Replace in Buffers' command.=在缓冲区中替换时查找内容不能为空。
335 | Search only in this style:=仅以此样式查找:
336 |
337 | #1.67
338 | Duplicate=重复当前行(&D)
339 |
340 | #1.72
341 | Convert=转换(&C)
342 |
343 | #1.73
344 | Code Page Property=系统内码
345 | UTF-8 with BOM=带 BOM 的 UTF-8
346 | Open Directory Options File=打开 Directory Options 文件(&D)
--------------------------------------------------------------------------------
/source/locales/한국어.locale.properties:
--------------------------------------------------------------------------------
1 | # 한국어.locale.properties by joyfuI (http://joyfui.wo.tc/)
2 |
3 | # locale.properties defines the localised text for the user interface
4 | # Some definitions are commented out because they duplicate another string
5 | # The format of each line is original=localised, such as File=&Fichier
6 | # Even though the original text may have ellipses "..." and access key
7 | # indicators "&" in the user interface, these do not appear in this file
8 | # for the original texts. Translated texts should have an access key indicator
9 | # if needed as the translated text may not include the original access key.
10 | # Ellipses are automatically added when needed.
11 | # The "/" character should not be used in menu entries as on GTK+ the "/" is
12 | # used to specifiy the menu hierarchy and so will produce extra menu items.
13 | # Each original text may have only one translation, even if it appears in
14 | # different parts of the user interface.
15 |
16 | # Please state any further license conditions and copyright notices you desire.
17 | # If there are no further notices then contributed translations will be assumed
18 | # to be made freely available under the same conditions as SciTE.
19 | # Email addresses included in this file may attract spam if the file is published.
20 |
21 | # Define the encoding of this file so that on GTK+ 2, the file can be
22 | # reencoded as UTF-8 as that is the GTK+ 2 user interface encoding.
23 | # A common choice for European users is LATIN1. For other locales look at
24 | # the set of encodings supported by iconv.
25 | translation.encoding=UTF-8
26 |
27 | # Menus
28 |
29 | # File menu
30 | File=파일(&F)
31 | New=새로 만들기(&N)
32 | Open=열기(&O)
33 | Open Selected Filename=선택된 파일 이름 열기(&F)
34 | Revert=다시 읽기(&R)
35 | Close=닫기(&W)
36 | Save=저장(&S)
37 | Save As=다른 이름으로 저장(&A)
38 | Export=내보내기(&E)
39 | As HTML=HTML 내보내기(&H)
40 | As RTF=RTF 내보내기(&R)
41 | Page Setup=페이지 설정(&U)
42 | Print=인쇄(&P)
43 | Load Session=세션 읽기(&L)
44 | Save Session=세션 저장(&V)
45 | Exit=종료(&X)
46 |
47 | # Edit menu
48 | Edit=편집(&E)
49 | Undo=실행 취소(&U)
50 | Redo=다시 실행(&R)
51 | Cut=잘라내기(&T)
52 | Copy=복사(&C)
53 | Paste=붙여넣기(&P)
54 | Delete=삭제(&D)
55 | Select All=모두 선택(&A)
56 | Copy as RTF=RTF로 복사(&F)
57 | Match Brace=괄호짝 찾기(&B)
58 | Select to Brace=괄호 영역 선택(&O)
59 | Show Calltip=
60 | Complete Symbol=
61 | Complete Word=단어 완성(&W)
62 | Expand Abbreviation=약어 확장(&E)
63 | Block Comment or Uncomment=행 주석/해제(&M)
64 | Box Comment=구역 주석(&X)
65 | Stream Comment=선택영역 주석(&N)
66 | Make Selection Uppercase=대문자로(&S)
67 | Make Selection Lowercase=소문자로(&L)
68 |
69 | # Search menu
70 | Search=찾기(&S)
71 | Find=찾기(&F)
72 | Find Next=다음 찾기(&N)
73 | Find Previous=이전 찾기(&S)
74 | Find in Files=파일에서 찾기(&I)
75 | Replace=바꾸기(&E)
76 | Next Bookmark=다음 책갈피로(&M)
77 | Previous Bookmark=이전 책갈피로(&V)
78 | Toggle Bookmark=책갈피 설정/해제(&K)
79 | Clear All Bookmarks=모든 책갈피 제거(&C)
80 |
81 | # View menu
82 | View=보기(&V)
83 | Toggle current fold=현재 폴드 전환(&C)
84 | Toggle all folds=모든 폴드 전환(&A)
85 | Full Screen=전체 화면(&N)
86 | Tool Bar=도구 모음(&T)
87 | Tab Bar=탭 표시줄(&B)
88 | Status Bar=상태 표시줄(&S)
89 | Whitespace=공백 표시(&W)
90 | End of Line=개행 문자 표시(&E)
91 | Indentation Guides=들여쓰기 가이드(&I)
92 | Line Numbers=줄 번호(&L)
93 | Margin=여백(&M)
94 | Fold Margin=폴딩(&F)
95 | Output=출력(&O)
96 | Parameters=매개 변수(&P)
97 |
98 | # Tools menu
99 | Tools=도구(&T)
100 | Compile=컴파일(&C)
101 | Build=디버깅(&D)
102 | Go=실행(&G)
103 | Stop Executing=실행 중지(&S)
104 | Next Message=다음 메시지(&N)
105 | Previous Message=이전 메시지(&P)
106 | Clear Output=출력 비우기(&O)
107 | Switch Pane=스위치 창(&S)
108 |
109 | # Options menu
110 | Options=옵션(&O)
111 | Always On Top=항상 맨 위(&A)
112 | Vertical Split=수직 분할(&S)
113 | Line End Characters=개행 형식(&L)
114 | CR + LF=CR + LF (윈도우즈)(&+)
115 | CR=CR (맥)(&C)
116 | LF=LF (유닉스)(&L)
117 | Convert Line End Characters=개행 형식 변환(&C)
118 | Change Indentation Settings=들여쓰기 설정(&T)
119 | Use Monospaced Font=고정폭 글꼴 사용(&M)
120 | Open Local Options File=로컬 옵션 파일 열기(&O)
121 | Open User Options File=유저 옵션 파일 열기(&U)
122 | Open Global Options File=글로벌 옵션 파일 열기(&G)
123 | Open Abbreviations File=약어 파일 열기(&B)
124 |
125 | # Language menu
126 | Language=문법 강조(&L)
127 |
128 | # Buffers menu
129 | Buffers=창(&B)
130 | Previous=이전 창(&P)
131 | Next=다음 창(&N)
132 | Close All=모두 닫기(&C)
133 |
134 | # Help menu
135 | Help=도움말(&H)
136 | About SciTE4AutoHotkey Lite=SciTE4AutoHotkey Lite 정보(&A)
137 | About SciTE4AutoHotkey=SciTE4AutoHotkey 정보(&A)
138 |
139 | # Dialogs
140 |
141 | # Generic dialog
142 | OK=확인
143 | Cancel=취소
144 | Yes=예
145 | No=아니오
146 |
147 | # About dialog
148 | About SciTE=SciTE4AutoHotkey에 대하여...
149 | # This is to add something like: Swahili translation 1.41.1 by Neil Hodgson
150 | TranslationCredit=한국어 번역:\n joyfuI (http://joyfui.wo.tc/)
151 | Contributors:=도움을 주신 분들:
152 |
153 | # Open, Save dialogs
154 | Open File=열기
155 | Save File=저장
156 | Save File As=다른 이름으로 저장
157 | Export File As HTML=HTML로 내보내기
158 | Export File As RTF=RTF로 내보내기
159 | Save Current Session=현재 세션을 저장
160 | Custom Filter=사용자 정의 필터
161 |
162 | # Find in Files dialog
163 | #Find in Files=
164 | Find what:=찾을내용(&N):
165 | Files:=파일(&I):
166 | #Find=
167 |
168 | # Go To dialog
169 | Go To=이동(&G)
170 | Destination Line Number:=대상 행:
171 | Current line:=현재 행:
172 | Last line:=마지막 행:
173 |
174 | # Indentation Settings dialog
175 | Indentation Settings=들여쓰기 설정
176 | Tab Size:=탭 크기(&T)
177 | Indent Size:=들여쓰기 크기(&I)
178 | Use tabs:=탭 사용(&U)
179 |
180 | # Replace and Find dialogs
181 | #Replace=
182 | #Find=
183 | #Find what:=
184 | Replace with:=바꿀내용(&P):
185 | Match whole word only=완전히 일치하는 단어(&W)
186 | Match case=대/소문자 구분(&C)
187 | Regular expression=정규식 검색(&E)
188 | Wrap around=처음부터 검색(&O)
189 | Transform backslash expressions=백슬래시 변환(&B)
190 | #Find Next=
191 | Replace All=모두 바꾸기(&A)
192 | Replace in Selection=선택 내에서만(&S)
193 | #Close=
194 | Direction=방향
195 | Reverse direction=역방향
196 | Up=위로(&U)
197 | Down=아래로(&D)
198 |
199 | # Parameters dialog
200 | Execute=실행
201 | Set=설정(&S)
202 |
203 | # Other UI strings
204 | Untitled=제목 없음
205 |
206 | # Properties used in global options
207 | Text=텍스트
208 | All Source=모든 소스
209 | All Files (*.*)=모든 파일 (*.*)
210 |
211 | # Messages
212 | # Messages may contain variables such as file names or search strings indicated
213 | # by ^0 which are replaced by values before display. ^1, ^2, ... may be used in the future.
214 | Can not find the string '^0'.=지정된 문자열을 찾을 수 없습니다. '^0'
215 | Find string must not be empty for 'Replace All' command.=찾을 내용을 지정하십시오.
216 | Selection must not be empty for 'Replace in Selection' command.=범위를 선택하십시오.
217 | No replacements because string '^0' was not present.='^0'을(를) 찾을 수 없기 때문에 아무것도 변경되지 않았습니다.
218 | Could not open file '^0'.='^0'을(를) 열 수 없습니다.
219 | Could not save file '^0'.='^0'을(를) 저장할 수 없습니다.
220 | Save changes to '^0'?=변경 내용을 '^0'에 저장하시겠습니까?
221 | Save changes to (Untitled)?=변경 내용을 '제목 없음'에 저장하시겠습니까?
222 | The file '^0' has been modified. Should it be reloaded?='^0'이(가) 수정되었습니다. 다시 읽겠습니까?
223 | Bad file.=잘못된 파일입니다.
224 | Failed to create dialog box: ^0.=대화 상자를 만들 수 없습니다: ^0
225 | Can not start printer document.=인쇄를 시작할 수 없습니다.
226 | URI '^0' not understood.='^0' 이해할 수 없는 URI입니다.
227 | Invalid directory '^0'.=잘못된 디렉토리 '^0'
228 |
229 | # 1.42
230 | Directory:=디렉토리(&D):
231 | Wrap=자동 줄 바꿈(&W)
232 | Hide=숨기기(&H)
233 | Check if already open=이미 열려 있는지 확인(&H)
234 |
235 | # 1.43
236 | Find string must not be empty for 'Replace in Selection' command.='선택 내에서만 바꾸기'할 때 찾을내용을 비워 둘 수 없습니다.
237 | List Macros=매크로 목록(&L)
238 | Run Current Macro=매크로 실행(&M)
239 | Record Macro=매크로 기록(&R)
240 | Stop Recording Macro=매크로 기록 중지(&T)
241 | SciTE Help=SciTE4AutoHotkey 도움말(&S)
242 | Sc1 Help=SciTE4AutoHotkey Lite 도움말(&S)
243 | Edit Properties=편집 옵션
244 | Wrap Output=
245 |
246 | # 1.44
247 | Read-Only=읽기 전용(&R)
248 | READ=
249 |
250 | # 1.46
251 | As TeX=TeX 내보내기(&T)
252 | Export File As TeX=TeX로 내보내기
253 | Save a Copy=클립보드에 저장(&P)
254 |
255 | # 1.47
256 | As LaTeX=LaTeX 내보내기(&L)
257 | Export File As LaTeX=LaTeX로 내보내기
258 | Encoding=인코딩(&G)
259 | 8 Bit=
260 | UTF-8=UTF-8(&U)
261 |
262 | # 1.49
263 | Save All=모두 저장(&S)
264 | Browse=찾아보기(&B)
265 | Select a folder to search from=검색 대상 폴더
266 | UTF-8 Cookie=
267 |
268 | # 1.50
269 | Insert Abbreviation=약어 삽입(&I)
270 | Abbreviation:=약어:
271 | Insert삽입=
272 | Mark All=모두 표시(&M)
273 |
274 | # 1.51
275 | In Selection=
276 | Paragraph=줄(&G)
277 | Join=줄 합치기(&J)
278 | Split=줄 나누기(&S)
279 |
280 | # 1.52
281 | Block comment variable '^0' is not defined in SciTE *.properties!=
282 | Box comment variables '^0', '^1' and '^2' are not defined in SciTE *.properties!=
283 | Stream comment variables '^0' and '^1' are not defined in SciTE *.properties!=
284 | The file '^0' has been modified outside SciTE. Should it be reloaded?=
285 | As PDF=PDF 내보내기(&P)
286 | Export File As PDF=PDF로 내보내기
287 |
288 | # 1.53
289 | Version=버전:
290 | by=제작:
291 |
292 | #1.54
293 | Incremental Search=증분 검색(&L)
294 | Search for:=검색 문자열:
295 |
296 | #1.55
297 | Could not save file '^0'. Save under a different name?=파일 '^0'을(를 저장할 수 없습니다. 다른 이름으로 저장하시겠습니까?
298 |
299 | #1.56
300 | As XML=XML 내보내기(&X)
301 | Export File As XML=XML로 내보내기
302 |
303 | #1.57
304 | Destination Line:=행(&D):
305 | Column:=열(&C):
306 |
307 | #1.58
308 | Replacements:=교체:
309 | Open Files Here=
310 |
311 | #1.59
312 |
313 | #1.60
314 |
315 | #1.61
316 | File '^0' is ^1 bytes long,\nlarger than the ^2 bytes limit set in the properties.\nDo you still want to open it?=
317 | Open Lua Startup Script=Lua 초기화 스크립트 열기
318 | All Files (*)=모든 파일 (*)
319 | Hidden Files (.*)=숨김 파일 (.*)
320 |
321 | #1.62
322 | Show hidden files=
323 |
324 | #1.63
325 | Replace in Buffers=파일에서 바꾸기(&U)
326 | Find string must not be empty for 'Replace in Buffers' command.=Find string must not be empty for 'Replace in Files' command.
327 | Search only in this style:=
328 |
329 | #1.67
330 | Duplicate=복제(&D)
331 |
332 | #1.72
333 | Convert=적용(&C)
334 |
335 | #1.73
336 | Code Page Property=코드 페이지 속성(&C)
337 | UTF-8 with BOM=UTF-8 with BOM(&W)
338 | Open Directory Options File=Open per-project properties(&D)
339 |
340 | #1.77
341 | File '^0' is already open in another buffer.=File '^0' is already open.
342 |
343 | # 2.10
344 | UTF-16 Big Endian=UTF-16 Big Endian(&B)
345 | UTF-16 Little Endian=UTF-16 Little Endian(&L)
346 |
347 | # 2.12
348 | The file '^0' has been modified outside SciTE. Should it be saved?=
349 | Copy Path=경로 복사(&H)
350 | in=
351 | of=
352 |
353 | # 2.20
354 | Find:=찾기(&N):
355 | Replace:=바꾸기(&E):
356 |
357 | # 2.21
358 | Use tabs=
359 | Case sensitive=
360 |
--------------------------------------------------------------------------------
/source/lua.properties:
--------------------------------------------------------------------------------
1 | # SciTE settings for Lua files
2 | #
3 | # Do NOT edit this file!
4 | # If there is something here you want to change, go to Options > Open User properties,
5 | # copy the setting there and change it. If you instead want to delete a setting, just
6 | # write an analogous line in the User properties that sets it to blank.
7 | #
8 |
9 | file.patterns.lua=*.lua
10 | language.menu.lua=&Lua|lua||
11 | filter.lua=Lua scripts (*.lua)|*.lua|
12 | lexer.$(file.patterns.lua)=lua
13 |
14 | word.chars.lua=$(chars.alpha)$(chars.numeric)$(chars.accented)_%
15 | word.characters.$(file.patterns.lua)=$(word.chars.lua)
16 |
17 | keywordclass.lua=and break do else elseif end false for function if \
18 | in local nil not or repeat return then true until while
19 | keywords.$(file.patterns.lua)=$(keywordclass.lua)
20 |
21 | keywordclass2.lua=_VERSION assert collectgarbage dofile error gcinfo loadfile loadstring \
22 | print rawget rawset require tonumber tostring type unpack
23 |
24 | keywordclass2.lua4=_ALERT _ERRORMESSAGE _INPUT _PROMPT _OUTPUT \
25 | _STDERR _STDIN _STDOUT call dostring foreach foreachi getn globals newtype \
26 | sort tinsert tremove
27 |
28 | keywordclass3.lua4=abs acos asin atan atan2 ceil cos deg exp \
29 | floor format frexp gsub ldexp log log10 max min mod rad random randomseed \
30 | sin sqrt strbyte strchar strfind strlen strlower strrep strsub strupper tan
31 |
32 | keywordclass4.lua4=openfile closefile readfrom writeto appendto \
33 | remove rename flush seek tmpfile tmpname read write \
34 | clock date difftime execute exit getenv setlocale time
35 |
36 | keywordclass2.lua5=_G getfenv getmetatable ipairs loadlib next pairs pcall \
37 | rawequal setfenv setmetatable xpcall \
38 | string table math coroutine io os debug \
39 | load module select
40 |
41 | keywordclass3.lua5=string.byte string.char string.dump string.find string.len \
42 | string.lower string.rep string.sub string.upper string.format string.gfind string.gsub \
43 | table.concat table.foreach table.foreachi table.getn table.sort table.insert table.remove table.setn \
44 | math.abs math.acos math.asin math.atan math.atan2 math.ceil math.cos math.deg math.exp \
45 | math.floor math.frexp math.ldexp math.log math.log10 math.max math.min math.mod \
46 | math.pi math.pow math.rad math.random math.randomseed math.sin math.sqrt math.tan \
47 | string.gmatch string.match string.reverse table.maxn \
48 | math.cosh math.fmod math.modf math.sinh math.tanh math.huge
49 |
50 | keywordclass4.lua5=coroutine.create coroutine.resume coroutine.status \
51 | coroutine.wrap coroutine.yield \
52 | io.close io.flush io.input io.lines io.open io.output io.read io.tmpfile io.type io.write \
53 | io.stdin io.stdout io.stderr \
54 | os.clock os.date os.difftime os.execute os.exit os.getenv os.remove os.rename \
55 | os.setlocale os.time os.tmpname \
56 | coroutine.running package.cpath package.loaded package.loadlib package.path \
57 | package.preload package.seeall io.popen
58 |
59 | keywords2.$(file.patterns.lua)=$(keywordclass2.lua) $(keywordclass2.lua4) $(keywordclass2.lua5)
60 | keywords3.$(file.patterns.lua)=$(keywordclass3.lua4) $(keywordclass3.lua5)
61 | keywords4.$(file.patterns.lua)=$(keywordclass4.lua4) $(keywordclass4.lua5)
62 |
63 | statement.indent.$(file.patterns.lua)=5 do else function then
64 | statement.end.$(file.patterns.lua)=5 end
65 | #statement.lookback.$(file.patterns.lua)=20
66 | indent.maintain.$(file.patterns.lua)=1
67 |
68 | comment.block.lua=--~
69 | comment.block.at.line.start.lua=1
70 |
71 | # Lua styles
72 |
73 | # White space: Visible only in View Whitespace mode (or if it has a back colour)
74 | style.lua.0=$(s4ahk.style.default)
75 | # Block comment (Lua 5.0)
76 | style.lua.1=$(s4ahk.style.comment.block)
77 | # Line comment
78 | style.lua.2=$(s4ahk.style.comment.line)
79 | # Doc comment -- Not used in Lua (yet?)
80 | style.lua.3=$(s4ahk.style.comment.block)
81 | # Number
82 | style.lua.4=$(s4ahk.style.number)
83 | # Keyword (mostly control-flow)
84 | style.lua.5=$(s4ahk.style.flow)
85 | # (Double quoted) String
86 | style.lua.6=$(s4ahk.style.string)
87 | # Character (Single quoted string)
88 | style.lua.7=$(s4ahk.style.string)
89 | # [[Literal string]]
90 | style.lua.8=$(s4ahk.style.string)
91 | # Preprocessor (obsolete in Lua 4.0 and up)
92 | style.lua.9=$(s4ahk.style.directive)
93 | # Operators
94 | style.lua.10=$(s4ahk.style.operator)
95 | # Identifier (everything else...)
96 | style.lua.11=$(s4ahk.style.ident.top)
97 | # End of line where string is not closed
98 | style.lua.12=$(s4ahk.style.error)
99 | # Other keywords
100 | style.lua.13=$(s4ahk.style.known.func)
101 | style.lua.14=$(s4ahk.style.known.func)
102 | style.lua.15=$(s4ahk.style.known.func)
103 | style.lua.16=$(s4ahk.style.known.func)
104 | style.lua.17=$(s4ahk.style.known.func)
105 | style.lua.18=$(s4ahk.style.known.func)
106 | style.lua.19=$(s4ahk.style.known.func)
107 | # Braces are only matched in operator style
108 | braces.lua.style=10
109 |
--------------------------------------------------------------------------------
/source/newuser/AhkAbbrevs.properties:
--------------------------------------------------------------------------------
1 | # User abbreviations file for SciTE4AutoHotkey
2 | #
3 | # You are encouraged to edit this file!
4 | #
5 |
6 | newfunc=|(){\n}
7 |
--------------------------------------------------------------------------------
/source/newuser/Autorun.ahk:
--------------------------------------------------------------------------------
1 | ; SciTE4AutoHotkey v3 user autorun script
2 | ;
3 | ; You are encouraged to edit this script!
4 | ;
5 |
6 | #NoEnv
7 | #NoTrayIcon
8 | SetWorkingDir, %A_ScriptDir%
9 |
--------------------------------------------------------------------------------
/source/newuser/Macros/Create new class.macro:
--------------------------------------------------------------------------------
1 | 2170;0IS;0;class Name\n{\n}
2 | 2302;0II;0;0
3 | 2302;0II;0;0
4 | 2306;0II;0;0
5 | 2306;0II;0;0
6 | 2306;0II;0;0
7 | 2306;0II;0;0
8 | 2306;0II;0;0
9 | 2307;0II;0;0
10 | 2307;0II;0;0
11 | 2307;0II;0;0
12 | 2307;0II;0;0
--------------------------------------------------------------------------------
/source/newuser/Macros/Create new function.macro:
--------------------------------------------------------------------------------
1 | 2170;0IS;0;function_name()\n{\n}
2 | 2304;0II;0;0
3 | 2302;0II;0;0
4 | 2302;0II;0;0
5 | 2307;0II;0;0
6 | 2307;0II;0;0
7 | 2307;0II;0;0
8 | 2307;0II;0;0
9 | 2307;0II;0;0
10 | 2307;0II;0;0
11 | 2307;0II;0;0
12 | 2307;0II;0;0
13 | 2307;0II;0;0
14 | 2307;0II;0;0
15 | 2307;0II;0;0
16 | 2307;0II;0;0
17 | 2307;0II;0;0
--------------------------------------------------------------------------------
/source/newuser/Macros/If statement.macro:
--------------------------------------------------------------------------------
1 | 2170;0IS;0;if \n{\n}
2 | 2304;0II;0;0
3 | 2302;0II;0;0
4 | 2302;0II;0;0
5 | 2306;0II;0;0
6 | 2306;0II;0;0
7 | 2306;0II;0;0
--------------------------------------------------------------------------------
/source/newuser/SciTEUser.properties:
--------------------------------------------------------------------------------
1 | # User initialization file for SciTE4AutoHotkey
2 | #
3 | # You are encouraged to edit this file!
4 | #
5 |
6 | # Import the platform-specific settings
7 | import _platform
8 |
9 | # Import the settings that can be edited by the bundled properties editor
10 | import _config
11 |
12 | # Add here your own settings
13 |
--------------------------------------------------------------------------------
/source/newuser/Scriptlets/(Example) Run or activate Notepad.scriptlet:
--------------------------------------------------------------------------------
1 | ; Run or activate Notepad
2 | ; Works with any Windows version
3 | ; (uses window classes instead of
4 | ; windows title).
5 | IfWinNotExist, ahk_class Notepad
6 | Run, notepad.exe
7 | WinWait, ahk_class Notepad
8 | WinActivate
--------------------------------------------------------------------------------
/source/newuser/Scriptlets/Progress text.scriptlet:
--------------------------------------------------------------------------------
1 | Progress, m2 b zh0, Text here
--------------------------------------------------------------------------------
/source/newuser/Styles/Blank.style.properties:
--------------------------------------------------------------------------------
1 | # SciTE4AutoHotkey syntax highlighting style definition file
2 | # Blank style
3 | #
4 | s4ahk.style=2
5 |
6 | # Base style (inherited by all others)
7 | s4ahk.style.base=back:#FFFFFF,fore:#000000
8 |
9 | # Default (whitespace, unrecognised text)
10 | s4ahk.style.default=
11 | # Syntax error
12 | s4ahk.style.error=
13 | # Line comment (; syntax)
14 | s4ahk.style.comment.line=
15 | # Block comment (/*...*/ syntax)
16 | s4ahk.style.comment.block=
17 | # Directive (e.g. #HotIf)
18 | s4ahk.style.directive=
19 | # Label and hotkey
20 | s4ahk.style.label=
21 | # Control flow statement
22 | s4ahk.style.flow=
23 | # Number
24 | s4ahk.style.number=
25 | # String
26 | s4ahk.style.string=
27 | # Escape sequence (e.g. `n)
28 | s4ahk.style.escape=
29 | # Operator
30 | s4ahk.style.operator=
31 | # Identifier (v1: %variable% dereference)
32 | s4ahk.style.ident.top=
33 | # Object syntax identifier (v2 only)
34 | s4ahk.style.ident.obj=
35 | # Reserved word or operator
36 | s4ahk.style.ident.reserved=
37 | # Known variable (v1: Built-in variable)
38 | s4ahk.style.known.var=
39 | # Known function (v1: Command)
40 | s4ahk.style.known.func=
41 | # Known class (v1: Built-in function)
42 | s4ahk.style.known.class=
43 | # Known object property (v2 only)
44 | s4ahk.style.known.obj.prop=
45 | # Known object method (v2 only)
46 | s4ahk.style.known.obj.method=
47 |
--------------------------------------------------------------------------------
/source/newuser/Styles/SciTE4AutoHotkey Dark.style.properties:
--------------------------------------------------------------------------------
1 | # SciTE4AutoHotkey syntax highlighting style definition file
2 | # Dark style
3 | #
4 | s4ahk.style=2
5 |
6 | # Base style (inherited by all others)
7 | s4ahk.style.base=back:#121212,fore:#FFFFFF
8 |
9 | # Default (whitespace, unrecognised text)
10 | s4ahk.style.default=
11 | # Syntax error
12 | s4ahk.style.error=fore:#FFD0D0,back:#800000
13 | # Line comment (; syntax)
14 | s4ahk.style.comment.line=fore:#40D080,italics
15 | # Block comment (/*...*/ syntax)
16 | s4ahk.style.comment.block=fore:#A0E0A0,italics
17 | # Directive (e.g. #HotIf)
18 | s4ahk.style.directive=fore:#F04020,bold
19 | # Label and hotkey
20 | s4ahk.style.label=fore:#E0E0E0,bold
21 | # Control flow statement
22 | s4ahk.style.flow=fore:#8080E0,bold
23 | # Number
24 | s4ahk.style.number=fore:#A0A0FF
25 | # String
26 | s4ahk.style.string=fore:#FFA0A0
27 | # Escape sequence (e.g. `n)
28 | s4ahk.style.escape=fore:#FF8000,bold
29 | # Operator
30 | s4ahk.style.operator=fore:#C0FFC0
31 | # Identifier (v1: %variable% dereference)
32 | s4ahk.style.ident.top=
33 | # Object syntax identifier (v2 only)
34 | s4ahk.style.ident.obj=fore:#B0B0B0
35 | # Reserved word or operator
36 | s4ahk.style.ident.reserved=fore:#00FFFF
37 | # Known variable (v1: Built-in variable)
38 | s4ahk.style.known.var=fore:#FF80FF
39 | # Known function (v1: Command)
40 | s4ahk.style.known.func=fore:#40A0E0,bold
41 | # Known class (v1: Built-in function)
42 | s4ahk.style.known.class=fore:#80E0FF,bold
43 | # Known object property (v2 only)
44 | s4ahk.style.known.obj.prop=fore:#FFB0FF
45 | # Known object method (v2 only)
46 | s4ahk.style.known.obj.method=fore:#70D0FF
47 |
48 | #------------------------------------------------------------------------------
49 |
50 | # Extra customisations
51 | caret.fore=#FFFFFF
52 | selection.back=#FFFFFF38
53 | highlight.current.word.indicator=style:roundbox,colour:#FFFFFF
54 | fold.margin.colour=#121212
55 | fold.margin.highlight.colour=#204020
56 |
57 | # Line number
58 | style.*.33=fore:#AAFFAA,back:#204020
59 | # Brace highlight
60 | style.*.34=fore:#FFFF00,bold
61 | # Brace incomplete highlight
62 | style.*.35=fore:#FF8080,bold
63 | # Control characters
64 | style.*.36=back:#00FF80
65 | # Indentation guides
66 | style.*.37=fore:#000000,back:#FFFFFF
67 |
--------------------------------------------------------------------------------
/source/newuser/Styles/SciTE4AutoHotkey Light.style.properties:
--------------------------------------------------------------------------------
1 | # SciTE4AutoHotkey syntax highlighting style definition file
2 | # Light style
3 | #
4 | s4ahk.style=2
5 |
6 | # Base style (inherited by all others)
7 | s4ahk.style.base=back:#FFFFFF,fore:#000000
8 |
9 | # Default (whitespace, unrecognised text)
10 | s4ahk.style.default=
11 | # Syntax error
12 | s4ahk.style.error=fore:#800000,back:#FFD0D0
13 | # Line comment (; syntax)
14 | s4ahk.style.comment.line=fore:#008000,italics
15 | # Block comment (/*...*/ syntax)
16 | s4ahk.style.comment.block=fore:#305030,italics
17 | # Directive (e.g. #HotIf)
18 | s4ahk.style.directive=fore:#F04020,bold
19 | # Label and hotkey
20 | s4ahk.style.label=fore:#202020,bold
21 | # Control flow statement
22 | s4ahk.style.flow=fore:#6F008A,bold
23 | # Number
24 | s4ahk.style.number=fore:#305080
25 | # String
26 | s4ahk.style.string=fore:#A03030
27 | # Escape sequence (e.g. `n)
28 | s4ahk.style.escape=fore:#FF8000,bold
29 | # Operator
30 | s4ahk.style.operator=fore:#206020
31 | # Identifier (v1: %variable% dereference)
32 | s4ahk.style.ident.top=
33 | # Object syntax identifier (v2 only)
34 | s4ahk.style.ident.obj=fore:#606060
35 | # Reserved word or operator
36 | s4ahk.style.ident.reserved=fore:#0000FF
37 | # Known variable (v1: Built-in variable)
38 | s4ahk.style.known.var=fore:#C000C0
39 | # Known function (v1: Command)
40 | s4ahk.style.known.func=fore:#004080,bold
41 | # Known class (v1: Built-in function)
42 | s4ahk.style.known.class=fore:#107080,bold
43 | # Known object property (v2 only)
44 | s4ahk.style.known.obj.prop=fore:#D040D0
45 | # Known object method (v2 only)
46 | s4ahk.style.known.obj.method=fore:#2060D0
47 |
48 | #------------------------------------------------------------------------------
49 |
50 | # Extra customisations
51 | caret.fore=#000000
52 | selection.back=#00000028
53 | highlight.current.word.indicator=style:roundbox,colour:#008080
54 | fold.margin.colour=#CCDDCC
55 | fold.margin.highlight.colour=#FFFFFF
56 |
57 | # Line number
58 | style.*.33=fore:#204020,back:#CCDDCC
59 |
--------------------------------------------------------------------------------
/source/newuser/UserLuaScript.lua:
--------------------------------------------------------------------------------
1 | -- UserLuaScript.lua
2 | -- =================
3 |
4 | -- This file contains user-defined Lua functions
5 | -- You are encouraged to add your own custom functions here!
6 |
--------------------------------------------------------------------------------
/source/newuser/UserToolbar.properties:
--------------------------------------------------------------------------------
1 | ; SciTE4AutoHotkey toolbar user settings file
2 | ;
3 | ; You are encouraged to edit this file!
4 | ;
5 |
6 | ; Tool definitions are in the following format:
7 | ; =Tool Name|Command line|Hotkey (optional)|Icon (optional)
8 | ; Paths support the following variables:
9 | ; %FILENAME% represents the filename of the current script
10 | ; %FILEPATH% represents the path to the current script
11 | ; %FULLFILENAME% represents the path and filename of the current script
12 | ; %SCITEDIR% represents the directory where SciTE resides
13 | ; %USERDIR% represents the user SciTE directory (My Documents\AutoHotkey\SciTE)
14 | ; %PLATFORM% represents the active platform
15 | ; %LOCALAHK% is the path of SciTE4AutoHotkey's internal copy of AutoHotkey.exe
16 | ; %AUTOHOTKEY% is the path of AutoHotkey.exe
17 | ; %ICONRES% is the toolbar icon library
18 | ; Use - or -- to add separators.
19 |
20 | ; Place here your tools
21 |
22 | ; Place here your scriptlets (required by the Scriptlet Utility)
23 | =Scriptlet: (Example) Run or activate Notepad|%LOCALAHK% tools\SUtility.ahk /insert "(Example) Run or activate Notepad"||%ICONRES%,12
24 | =Scriptlet: Progress text|%LOCALAHK% tools\SUtility.ahk /insert "Progress text"||%ICONRES%,12
--------------------------------------------------------------------------------
/source/newuser/_extensions.properties:
--------------------------------------------------------------------------------
1 | # THIS FILE IS SCRIPT-GENERATED - DON'T TOUCH
--------------------------------------------------------------------------------
/source/other.properties:
--------------------------------------------------------------------------------
1 | # Properties for miscellaneous syntax highlighting
2 | #
3 | # Do NOT edit this file!
4 | # If there is something here you want to change, go to Options > Open User properties,
5 | # copy the setting there and change it. If you instead want to delete a setting, just
6 | # write an analogous line in the User properties that sets it to blank.
7 | #
8 |
9 | # Language menu
10 | language.menu.other=\
11 | &INI and property files|ini||\
12 | &Difference|diff||
13 |
14 | # Other filters
15 | filter.other=\
16 | INI files (*.ini)|*.ini|\
17 | Diff files (*.diff)|*.diff|\
18 | Patch files (*.patch)|*.patch|\
19 | Configuration files (*.properties)|*.properties|
20 |
21 | # Errorlists
22 | style.errorlist.3=$(s4ahk.style.error)
23 | style.errorlist.4=$(s4ahk.style.comment.line)
24 | style.errorlist.5=$(s4ahk.style.error)
25 | style.errorlist.6=$(s4ahk.style.error)
26 | style.errorlist.7=$(s4ahk.style.error)
27 | style.errorlist.8=$(s4ahk.style.error)
28 |
29 | style.errorlist.10=fore:#007F00
30 | style.errorlist.11=fore:#00007F
31 | style.errorlist.12=fore:#007F7F
32 | style.errorlist.13=fore:#7F0000
33 | lexer.errorlist.value.separate=1
34 |
35 | # .ini and .properties files
36 | file.patterns.props=*.properties;*.ini
37 | lexer.$(file.patterns.props)=props
38 | comment.block.props=#~
39 | # Default
40 | style.props.0=$(s4ahk.style.string)
41 | # Comment
42 | style.props.1=$(s4ahk.style.comment.line)
43 | # Section
44 | style.props.2=$(s4ahk.style.label)
45 | # Assignment operator
46 | style.props.3=$(s4ahk.style.operator)
47 | # Key
48 | style.props.5=$(s4ahk.style.ident.top)
49 |
50 | # .diff and .patch files
51 | file.patterns.diff=*.diff;*.patch
52 | lexer.$(file.patterns.diff)=diff
53 | # Default
54 | style.diff.0=$(s4ahk.style.default)
55 | # Comment (part before "diff ..." or "--- ..." and , Only in ..., Binary file...)
56 | style.diff.1=$(s4ahk.style.comment.line)
57 | # Command (diff ...)
58 | style.diff.2=$(s4ahk.style.label),eolfilled
59 | # Source file (--- ...) and Destination file (+++ ...)
60 | style.diff.3=$(s4ahk.style.string)
61 | # Position setting (@@ ...)
62 | style.diff.4=$(s4ahk.style.number)
63 | # Line removal (-...)
64 | style.diff.5=back:#FFCFCF,fore:#000000
65 | # Line addition (+...)
66 | style.diff.6=back:#CFFFCF,fore:#000000
67 | # Line change (!...)
68 | style.diff.7=back:#FFFFCF,fore:#000000
69 |
--------------------------------------------------------------------------------
/source/tillagoto.properties:
--------------------------------------------------------------------------------
1 | # Global TillaGoto settings
2 | #
3 | # Do NOT edit this file!
4 | # If there is something here you want to change, go to Options > Open User properties,
5 | # copy the setting there and change it. If you instead want to delete a setting, just
6 | # write an analogous line in the User properties that sets it to blank.
7 | #
8 |
9 | # TillaGoto settings do not take effect automatically; you need to restart TillaGoto.
10 |
11 | # Set to 1 to enable TillaGoto.
12 | tillagoto.enable=1
13 |
14 | #------------------------------------------------------------------------------
15 | # Appearance
16 | #------------------------------------------------------------------------------
17 |
18 | # Set to 1 to show the tray icon, 0 to keep it hidden.
19 | tillagoto.show.tray.icon=1
20 |
21 | # Specify the width of the GUI. If tillagoto.gui.wide.view is 1, tillagoto.gui.width
22 | # represents the minimum width of the GUI, no matter how short the items are.
23 | tillagoto.gui.width=230
24 |
25 | # Specify, in number of rows, the height of the listbox.
26 | tillagoto.gui.height=12
27 |
28 | # Specify the width of the GUI's margins.
29 | tillagoto.gui.margin=2
30 |
31 | # Specify the transparency of the GUI. Preferably divisible by 15. Set it to 255 for
32 | # no transparency at all (consumes less resources). Put 0 to disable fade-in effect.
33 | tillagoto.gui.transparency=255
34 |
35 | # Set to 1 to position the GUI on the left side instead of the right side.
36 | tillagoto.gui.posleft=0
37 |
38 | # Set to 1 to auto-resize the width of the GUI so that all the items are visible
39 | # without the horizontal scrollbar.
40 | tillagoto.gui.wide.view=1
41 |
42 | # This setting is used only if tillagoto.include.mode has the option 0x10000000. It
43 | # determines how the filenames are appended to functions/labels/hotkeys:
44 | # - Set to 0 to append the filenames without any alignment (minimal GUI width)
45 | # - Set to 1 to right-align the filenames (also minimal GUI width)
46 | # - Set to 2 to left-align the filenames (GUI width might be larger)
47 | tillagoto.gui.align.filenames=1
48 |
49 | # Specify the GUI's background colour. Leave blank for default.
50 | #tillagoto.gui.bgcolor=
51 |
52 | # Specify the controls' background colour. Leave blank for default.
53 | #tillagoto.gui.controlbgcolor=
54 |
55 | # Specify the controls' foreground (text) colour. Leave blank for default.
56 | #tillagoto.gui.controlfgcolor=
57 |
58 | # Specify the size of the font for the textbox and listbox.
59 | tillagoto.gui.font.size=8
60 |
61 | # Name of the font for the textbox and listbox. Must be monospace for proper
62 | # alignment. A better font than Courier New would be Consolas.
63 | tillagoto.gui.font=$(default.text.font)
64 |
65 | # Set to 1 to sort the entries in the GUI
66 | tillagoto.gui.sort.entries=1
67 |
68 | #------------------------------------------------------------------------------
69 | # Hotkeys
70 | #------------------------------------------------------------------------------
71 |
72 | # Specify the hotkey you want to use to call up the GUI
73 | tillagoto.hk.summon.gui=F12
74 |
75 | # Specify the keyboard hotkey for going to the previous view
76 | tillagoto.hk.go.back=!Left
77 |
78 | # Specify the keyboard hotkey for going to the next view
79 | tillagoto.hk.go.forward=!Right
80 |
81 | # Specify the hotkey you want to use to go to a function/label on whose name the
82 | # caret is located. Similar to the middleclicking feature.
83 | tillagoto.hk.goto.def=+Enter
84 |
85 | #------------------------------------------------------------------------------
86 | # Behaviour
87 | #------------------------------------------------------------------------------
88 |
89 | # Set to 1 to filter out the functions/labels/hotkeys found in comment blocks.
90 | # Note: this feature slightly affects performance if many comment blocks are
91 | # present. Therefore, if you start experiencing lag, you might want to turn it off
92 | # (at the expense of not filtering out functions/labels/hotkeys found in comments).
93 | # To exclude a comment block from filtering, start it with "/*!". This is an easy
94 | # way to speed up processing (but any functions/labels/hotkeys will be picked up).
95 | tillagoto.filter.comments=1
96 |
97 | # Set to 1 to make TillaGoto go straight to showing the GUI and exit on close.
98 | # In this mode, TillaGoto cannot keep track of line history or use hotkeys.
99 | tillagoto.quick.mode=0
100 |
101 | # Set to 1 to make TillaGoto terminate when the editor is also terminated.
102 | tillagoto.quit.with.editor=1
103 |
104 | # Set to 0 for matching to occur only at the beginning of the label/function
105 | # name. Set to 1 for matching to occur anywhere in the label/function name. As
106 | # well, multiple words can be specified. For example, typing "Dog Cat" will match
107 | # any label/function containing those words anywhere in their name. This is useful
108 | # to search for functions (or labels) only by typing "() FunctionName".
109 | tillagoto.match.everywhere=1
110 |
111 | #------------------------------------------------------------------------------
112 | # Mouse configuration
113 | #------------------------------------------------------------------------------
114 |
115 | # Set to 1 to enable the middle mouse button as a hotkey to call up the GUI.
116 | # More importantly, this also allows you to go to a function/label simply by
117 | # pressing the middle mouse button on the function/label name.
118 | tillagoto.use.mbutton=1
119 |
120 | # Specify in milliseconds the amount of time the middle mouse button should be
121 | # depressed while the GUI is showing for the GUI to close without selection.
122 | # If the middle mouse button is pressed for any amount shorter than that, the
123 | # selection is validated.
124 | tillagoto.cancel.timeout=300
125 |
126 | #------------------------------------------------------------------------------
127 | # Include files scanning feature
128 | #------------------------------------------------------------------------------
129 |
130 | # This setting affects the behaviour of TillaGoto when scanning for script
131 | # labels, functions and hotkeys in #Include files and library files. To turn
132 | # off the feature completely, specify 0. Otherwise, iIncludeMode can be any
133 | # combination of the following values:
134 | # 0x00000001 - Scan #Include files (working directory assumed as A_ScriptDir)
135 | # 0x00000010 - Scan library directories files
136 | # 0x00000100 - Retrieve functions upon scanning
137 | # 0x00001000 - Retrieve labels upon scanning
138 | # 0x00010000 - Retrieve hotkeys upon scanning
139 | # 0x00100000 - Filter comment blocks before scanning (like bFilterComments)
140 | # 0x01000000 - Recurse (ie. include #Include files of #Include files and so on)
141 | # 0x10000000 - Append the name of the file to the functions/labels/hotkeys name
142 | tillagoto.include.mode=0x10111101
143 |
144 | # Set to 1 to enable file caching so that scanning is only done once on
145 | # files that have already been scanned in the past. This does not affect the
146 | # current script (which is always re-scanned). Caching is highly recommended as
147 | # it greatly enhances performance of the include files scanning feature.
148 | tillagoto.cache.files=1
149 |
150 | #------------------------------------------------------------------------------
151 | # TillaGoto directives
152 | #------------------------------------------------------------------------------
153 |
154 | # Set to 1 to scan the script for TillaGoto directives. Directives allow you to change TillaGoto's behaviour
155 | # for the script you are working on. You put them in your script (anywhere) as a line comment. The syntax is
156 | # (without the quotes): ";TillaGoto. = ". These settings override the default settings you put here.
157 | tillagoto.directives=1
158 |
159 | # The supported settings are the following:
160 | # - bFilterComments: allows you to change tillagoto.filter.comments just for this file.
161 | # - iIncludeMode: allows you to change tillagoto.include.mode just for this file. For example,
162 | # to force TillaGoto to only scan for functions in #Include files (with no other options), use:
163 | # ";TillaGoto.iIncludeMode = 0x00000100". Or to simply turn it off, use: ";TillaGoto.iIncludeMode = 0"
164 | # - ScanFile: it allows you to force TillaGoto to always scan a file, as if it was an Include file, even though it isn't
165 | # used with the #Include directive. The directive is processed in exactly the same way as an #Include file would be.
166 | # For example, the directive ";TillaGoto.ScanFile = %A_ScriptDir%\script.ahk" will have the same effect as if
167 | # TillaGoto saw the directive "#Include %A_ScriptDir%\script.ahk". Directories to change the working directory
168 | # are also supported. The variable iIncludeMode must contain the 0x00000001 option in order to work.
169 | # If the file is in one of the library directories, simply put its name in brackets: ;TillaGoto.ScanFile=
170 | # This is useful when your script uses library functions, but you still want TillaGoto to be aware of them.
171 | #
172 | # Note that the ScanFile directives are queued up and processed right after the script's actual #Include files are
173 | # scanned. Therefore, it doesn't matter where they are placed relative to the actual #Include directives, but the
174 | # order in which they are written does (in order to be able to change the working directory of subsequent ones).
175 | # The working directory is set back to %A_ScriptDir% before processing them.
176 | # The ScanFile feature is useful when working inside a project with many satellite files. A simple ScanFile
177 | # directive to the main script in each satellite file will allow access to all the functions no matter on which
178 | # file you're working on.
179 |
--------------------------------------------------------------------------------
/source/toolbar.properties:
--------------------------------------------------------------------------------
1 | ; SciTE4AutoHotkey global configuration file
2 | ;
3 | ; Do NOT edit this file, use UserToolbar.properties instead!
4 | ;
5 |
6 | =Window Spy|%LOCALAHK% tools\WindowSpy.ahk||%ICONRES%,9
7 | =SmartGUI Creator (Ctrl+1)|%LOCALAHK% tools\SmartGUI\SmartGUI.ahk|^1|%ICONRES%,13
8 | =MsgBox Creator (Ctrl+2)|%LOCALAHK% tools\MsgBoxC.ahk|^2|%ICONRES%,10
9 | -
10 | =TillaGoto|%LOCALAHK% tools\TillaGoto.ahk||%ICONRES%,16
11 | =GenDocs Documentation Generator|%LOCALAHK% tools\GenDocs\GenDocs.ahk||%ICONRES%,15
12 | =Scriptlet Utility (Ctrl+3)|%LOCALAHK% tools\SUtility.ahk|^3|%ICONRES%,11
13 | --
14 |
--------------------------------------------------------------------------------
/source/toolbar/ComInterface.ahk:
--------------------------------------------------------------------------------
1 | ;
2 | ; File encoding: UTF-8
3 | ;
4 | ; COM interface for SciTE4AutoHotkey
5 | ; version 1.0 - fincs
6 | ;
7 |
8 | ;------------------------------------------------------------------------------
9 | ; COM interface methods
10 | ;------------------------------------------------------------------------------
11 |
12 | class InvalidUsage
13 | {
14 | __Get(m, p*)
15 | {
16 | throw Exception("Property does not exist", m)
17 | }
18 |
19 | __Set(m, p*)
20 | {
21 | throw Exception("Property does not exist", m)
22 | }
23 |
24 | __Call(m, p*)
25 | {
26 | throw Exception("Method does not exist", m)
27 | }
28 | }
29 |
30 | CoI_CallEvent(event, args*)
31 | {
32 | badEvts := {}
33 | for cookie, handler in CoI.EventHandlers
34 | {
35 | try
36 | handler[event](args*)
37 | catch
38 | badEvts[cookie] := 1
39 | }
40 | for cookie in badEvts
41 | CoI.EventHandlers.Delete(cookie)
42 | }
43 |
44 | class CoI extends InvalidUsage
45 | {
46 | static EventHandlers := {}
47 |
48 | ConnectEvent(handler)
49 | {
50 | if !IsObject(handler)
51 | throw Exception("Invalid event handler")
52 | this.EventHandlers[&handler] := handler
53 | return &handler
54 | }
55 |
56 | DisconnectEvent(cookie)
57 | {
58 | this.EventHandlers.Delete(cookie)
59 | }
60 |
61 | Message(msg, wParam := 0, lParam := 0)
62 | {
63 | global _msg, _wParam, _lParam, scitehwnd, hwndgui, ATM_OFFSET
64 | if (_msg := msg+0) = "" || (_wParam := wParam+0) = "" || (_lParam := lParam+0) = ""
65 | return
66 | if (msg >= ATM_OFFSET)
67 | {
68 | ; Send message in a different thread in order to not crap out whilst exiting
69 | Critical
70 | SetTimer, SelfMessage, -10
71 | }else
72 | SendMessage, _msg, _wParam, _lParam,, ahk_id %scitehwnd%
73 | return ErrorLevel
74 |
75 | SelfMessage:
76 | PostMessage, _msg, _wParam, _lParam,, ahk_id %hwndgui%
77 | return
78 | }
79 |
80 | ReloadProps()
81 | {
82 | global scitehwnd
83 | SendMessage, 1024+1, 0, 0,, ahk_id %scitehwnd%
84 | }
85 |
86 | SciTEDir[]
87 | {
88 | get
89 | {
90 | global SciTEDir
91 | return SciTEDir
92 | }
93 | }
94 |
95 | IsPortable[]
96 | {
97 | get
98 | {
99 | global IsPortable
100 | return IsPortable
101 | }
102 | }
103 |
104 | UserDir[]
105 | {
106 | get
107 | {
108 | global LocalSciTEPath
109 | return LocalSciTEPath
110 | }
111 | }
112 |
113 | Tabs[]
114 | {
115 | get
116 | {
117 | obj := Director_Send("ask_bufferlist:", true, true)
118 | tabs := ComObjArray(VT_BSTR := 8, obj.Length())
119 | for each, msg in obj
120 | tabs[each - 1] := msg.value
121 |
122 | ; Return the Tabs object
123 | return new CoI.__Tabs(tabs)
124 | }
125 | }
126 |
127 | class __Tabs
128 | {
129 | __New(p)
130 | {
131 | this.p := p
132 | }
133 |
134 | Array[]
135 | {
136 | get
137 | {
138 | return this.p
139 | }
140 | }
141 |
142 | List[]
143 | {
144 | get
145 | {
146 | for item in this.p
147 | list .= item "`n"
148 | StringTrimRight, list, list, 1
149 | return list
150 | }
151 | }
152 |
153 | Count[]
154 | {
155 | get
156 | {
157 | return this.p.MaxIndex() + 1
158 | }
159 | }
160 | }
161 |
162 | SwitchToTab(idx)
163 | {
164 | global scitehwnd
165 |
166 | if IsObject(idx) || (idx+0) = ""
167 | return
168 |
169 | PostMessage, 0x111, 1200+idx, 0,, ahk_id %scitehwnd%
170 | }
171 |
172 | Document[]
173 | {
174 | get
175 | {
176 | return Director_Send("ask_fulldocument:", true).Value
177 | }
178 | set
179 | {
180 | throw Exception("Not implemented yet")
181 | }
182 | }
183 |
184 | InsertText(text, pos := -1)
185 | {
186 | if !IsObject(text) && text && !IsObject(pos) && (pos+0) >= -1
187 | {
188 | if (pos >= 0)
189 | Director_Send("goto_raw:" pos)
190 | Director_Send("insert:" CEscape(text))
191 | }
192 | }
193 |
194 | Selection[]
195 | {
196 | get
197 | {
198 | return this.ResolveProp("CurrentSelection")
199 | }
200 | }
201 |
202 | Output(text)
203 | {
204 | Director_Send("output:" CEscape(text))
205 | }
206 |
207 | SciTEHandle[]
208 | {
209 | get
210 | {
211 | global scitehwnd
212 | return scitehwnd
213 | }
214 | }
215 |
216 | ActivePlatform[]
217 | {
218 | get
219 | {
220 | global curplatform
221 | return curplatform
222 | }
223 | set
224 | {
225 | global curplatform
226 | if !g_Platforms[value]
227 | throw Exception("Invalid platform",, value)
228 | else
229 | {
230 | curplatform := value
231 | gosub platswitch2
232 | return value
233 | }
234 | }
235 | }
236 |
237 | ; Backwards compatibility
238 | SetPlatform(plat)
239 | {
240 | try
241 | {
242 | this.ActivePlatform := plat
243 | return 1
244 | } catch
245 | return 0
246 | }
247 |
248 | CurrentFile[]
249 | {
250 | get
251 | {
252 | return GetSciTEOpenedFile()
253 | }
254 | set
255 | {
256 | this.OpenFile(file)
257 | return file
258 | }
259 | }
260 |
261 | Version[]
262 | {
263 | get
264 | {
265 | global CurrentSciTEVersion
266 | return CurrentSciTEVersion
267 | }
268 | }
269 |
270 | OpenFile(file)
271 | {
272 | global scitehwnd
273 |
274 | WinActivate, ahk_id %scitehwnd%
275 |
276 | if this.CurrentFile = file
277 | return
278 |
279 | Director_Send("open:" CEscape(file))
280 | }
281 |
282 | DebugFile(file)
283 | {
284 | this.OpenFile(file)
285 | Cmd_Debug()
286 | }
287 |
288 | SendDirectorMsg(msg)
289 | {
290 | return Director_Send(msg)
291 | }
292 |
293 | SendDirectorMsgRet(msg)
294 | {
295 | return Director_Send(msg, true)
296 | }
297 |
298 | SendDirectorMsgRetArray(msg)
299 | {
300 | obj := Director_Send(msg, true, true)
301 | array := ComObjArray(VT_VARIANT:=12, obj.Length()), ComObjFlags(array, -1)
302 | for each, msg in obj
303 | array[each - 1] := msg
304 | return array
305 | }
306 |
307 | ResolveProp(propname)
308 | {
309 | propVal := Director_Send("askproperty:" propname, true).value
310 | if SubStr(propVal, 1, 11) != "stringinfo:"
311 | return
312 | propVal := SubStr(propVal, 12)
313 | while RegExMatch(propVal, "O)\$\((.+?)\)", o)
314 | propVal := SubStr(propVal, 1, o.Pos-1) this.ResolveProp(o.1) SubStr(propVal, o.Pos+o.Len)
315 | return propVal
316 | }
317 |
318 | }
319 |
320 | ;------------------------------------------------------------------------------
321 | ; Initialization code
322 | ;------------------------------------------------------------------------------
323 |
324 | InitComInterface()
325 | {
326 | global CLSID_SciTE4AHK, APPID_SciTE4AHK, oSciTE, hSciTE_Remote, IsPortable
327 |
328 | if IsPortable
329 | ; Register our CLSID and APPID
330 | RegisterIDs(CLSID_SciTE4AHK, APPID_SciTE4AHK)
331 |
332 | ; Expose it
333 | if !(hSciTE_Remote := ComRemote(ComObject(9, &CoI), CLSID_SciTE4AHK))
334 | {
335 | MsgBox, 16, SciTE4AutoHotkey, Can't create COM interface!`nSome program functions may not work.
336 | if IsPortable
337 | RevokeIDs(CLSID_SciTE4AHK, APPID_SciTE4AHK)
338 | } else if IsPortable
339 | ; Revoke our CLSID and APPID on exit
340 | OnExit(Func("RevokeIDs").Bind(CLSID_SciTE4AHK, APPID_SciTE4AHK))
341 | }
342 |
343 | RegisterIDs(CLSID, APPID)
344 | {
345 | RegWrite, REG_SZ, HKCU, Software\Classes\%APPID%,, %APPID%
346 | RegWrite, REG_SZ, HKCU, Software\Classes\%APPID%\CLSID,, %CLSID%
347 | RegWrite, REG_SZ, HKCU, Software\Classes\CLSID\%CLSID%,, %APPID%
348 | }
349 |
350 | RevokeIDs(CLSID, APPID)
351 | {
352 | RegDelete, HKCU, Software\Classes\%APPID%
353 | RegDelete, HKCU, Software\Classes\CLSID\%CLSID%
354 | }
355 |
356 | Str2GUID(ByRef var, str)
357 | {
358 | VarSetCapacity(var, 16)
359 | DllCall("ole32\CLSIDFromString", "wstr", str, "ptr", &var)
360 | return &var
361 | }
362 |
--------------------------------------------------------------------------------
/source/toolbar/Lib/CEscape.ahk:
--------------------------------------------------------------------------------
1 | ;
2 | ; File encoding: UTF-8
3 | ;
4 |
5 | CEscape(ByRef stQ)
6 | {
7 | StringReplace, str, stQ, \, \\, All
8 | StringReplace, str, str, `a, \a, All
9 | StringReplace, str, str, `b, \b, All
10 | StringReplace, str, str, `f, \f, All
11 | StringReplace, str, str, `n, \n, All
12 | StringReplace, str, str, `r, \r, All
13 | StringReplace, str, str, %A_Tab%, \t, All
14 | StringReplace, str, str, `v, \v, All
15 | Loop, % Asc(" ")-1
16 | StringReplace, str, str, % Chr(A_Index), % "\" (A_Index>>6) (A_Index>>3) (A_Index & 7), All
17 | return str
18 | }
19 |
--------------------------------------------------------------------------------
/source/toolbar/Lib/CUnescape.ahk:
--------------------------------------------------------------------------------
1 | ;
2 | ; File encoding: UTF-8
3 | ;
4 |
5 | CUnescape(ByRef stQ)
6 | {
7 | ListLines, Off
8 | escp := false
9 | Loop, Parse, stQ
10 | {
11 | c := A_LoopField
12 | if escp
13 | {
14 | escp := false
15 | if c = \
16 | c := "\"
17 | else if c = a
18 | c := "`a"
19 | else if c = b
20 | c := "`b"
21 | else if c = f
22 | c := "`f"
23 | else if c = n
24 | c := "`n"
25 | else if c = r
26 | c := "`r"
27 | else if c = t
28 | c := A_Tab
29 | else if c = v
30 | c := "`v"
31 | ; TODO: octal stuff
32 | }else if c = \
33 | {
34 | escp := true
35 | continue
36 | }
37 | str .= c
38 | }
39 | ListLines, On
40 | return str
41 | }
42 |
--------------------------------------------------------------------------------
/source/toolbar/Lib/ComRemote.ahk:
--------------------------------------------------------------------------------
1 | ;
2 | ; File encoding: UTF-8
3 | ; Author: fincs
4 | ;
5 | ; ComRemote: expose a COM object in order to receive remote (RPC) calls
6 | ;
7 |
8 | ComRemote(disp, clsid)
9 | {
10 | static ACTIVEOBJECT_WEAK := 1
11 | static _base := { Close: Func("_CR_Disconnect"), __Delete: Func("_CR_Disconnect") }
12 | if DllCall("oleaut32\RegisterActiveObject"
13 | , "ptr", pdisp := ComObjValue(disp)
14 | , "ptr", Str2GUID(clsid_bin, clsid)
15 | , "uint", ACTIVEOBJECT_WEAK
16 | , "uint*", dwRegister) < 0
17 | return
18 |
19 | if DllCall("ole32\CoLockObjectExternal", "ptr", pdisp, "int", 1, "int", 1) < 0
20 | {
21 | DllCall("oleaut32\RevokeActiveObject", "uint", dwRegister, "ptr", 0)
22 | return
23 | }
24 |
25 | return { disp: disp, dwRegister: dwRegister, base: _base }
26 | }
27 |
28 | _CR_Disconnect(this)
29 | {
30 | if this.closed
31 | return
32 | DllCall("ole32\CoLockObjectExternal", "ptr", pdisp := ComObjValue(this.disp), "int", 0, "int", 1)
33 | DllCall("oleaut32\RevokeActiveObject", "uint", this.dwRegister, "ptr", 0)
34 | DllCall("ole32\CoDisconnectObject", "ptr", pdisp, "uint", 0)
35 | this.closed := true
36 | }
37 |
--------------------------------------------------------------------------------
/source/toolbar/Lib/ExportExtension.ahk:
--------------------------------------------------------------------------------
1 |
2 | ; TODO: Error checking
3 |
4 | ExportExtension(extName, extFile)
5 | {
6 | tree := Util_DirTree(ExtensionDir "\" extName)
7 | Util_DumpTree(extFile, tree)
8 | Util_CompressExtension(extFile, extFile, extName)
9 | return true
10 | }
11 |
12 | Util_CompressExtension(fIn, fOut, extName)
13 | {
14 | global SciTEVersionInt
15 |
16 | FileGetSize, fSize, %fIn%
17 | FileRead, data, *c %fIn%
18 |
19 | ; COMPRESSION_FORMAT_LZNT1 | COMPRESSION_ENGINE_MAXIMUM
20 | DllCall("ntdll\RtlGetCompressionWorkSpaceSize", "ushort", 0x102, "uint*", bufWorkSpaceSize, "uint*", fragWorkSpaceSize)
21 | VarSetCapacity(bufWorkSpace, bufWorkSpaceSize)
22 |
23 | VarSetCapacity(bufTemp, fSize)
24 | if DllCall("ntdll\RtlCompressBuffer", "ushort", 0x102, "ptr", &data, "uint", fSize
25 | , "ptr", &bufTemp, "uint", fSize, "uint", fragWorkSpaceSize, "uint*", cSize, "ptr", &bufWorkSpace) != 0
26 | throw Exception("BAD")
27 |
28 | f := FileOpen(fOut, "w", "UTF-8-RAW")
29 | f.Write("S4AHKEXT")
30 | f.WriteUInt(SciTEVersionInt)
31 | Util_FileWriteStr(f, extName)
32 | f.WriteUInt(fSize)
33 | f.RawWrite(bufTemp, cSize)
34 | }
35 |
36 | Util_DumpTree(f, tree)
37 | {
38 | if !IsObject(f)
39 | f := FileOpen(f, "w", "UTF-8-RAW")
40 |
41 | tl := tree.MaxIndex(), tl := tl ? tl : 0
42 | f.WriteUInt(tl)
43 | for _,e in tree
44 | {
45 | Util_FileWriteStr(f, e.name)
46 | if e.isDir
47 | {
48 | f.WriteUInt(-1)
49 | Util_DumpTree(f, e.contents)
50 | } else
51 | {
52 | fullPath := e.fullPath
53 | FileGetSize, fSize, %fullPath%
54 | VarSetCapacity(fData, fSize)
55 | FileRead, fData, *c %fullPath%
56 | f.WriteUInt(fSize)
57 | f.RawWrite(fData, fSize)
58 | Util_FileAlign(f)
59 | VarSetCapacity(fData, 0)
60 | }
61 | }
62 | }
63 |
64 | Util_FileAlign(f)
65 | {
66 | while f.Pos & 3
67 | f.WriteUChar(0)
68 | }
69 |
70 | Util_FileWriteStr(f, ByRef str)
71 | {
72 | pos := f.Pos
73 | f.WriteUInt(0)
74 | f.Write(str)
75 | size := (tmp := f.Pos) - pos - 4
76 | f.Pos := pos
77 | f.WriteUInt(size)
78 | f.Pos := tmp
79 | Util_FileAlign(f)
80 | }
81 |
82 | Util_DirTree(dir)
83 | {
84 | data := [], ldir := StrLen(dir)+1
85 | Loop, %dir%\*.*, 1
86 | {
87 | StringTrimLeft, name, A_LoopFileFullPath, %ldir%
88 | e := { name: name, fullPath: A_LoopFileLongPath }
89 | if SubStr(name, 0) = "~" || SubStr(name, -3) = ".bak" || name = "package.json"
90 | continue
91 | IfInString, A_LoopFileAttrib, D
92 | {
93 | e.isDir := true
94 | e.contents := Util_DirTree(A_LoopFileFullPath)
95 | }
96 | data.Insert(e)
97 | }
98 | return data
99 | }
100 |
--------------------------------------------------------------------------------
/source/toolbar/Lib/ExtractExtension.ahk:
--------------------------------------------------------------------------------
1 |
2 | ExtractExtension(dir, extFile, ByRef outExtId)
3 | {
4 | global SciTEVersionInt
5 |
6 | FileGetSize, dataSize, %extFile%
7 | FileRead, data, *c %extFile%
8 | pData := &data
9 | if StrGet(pData, 8, "UTF-8") != "S4AHKEXT"
10 | return "Invalid format"
11 | if NumGet(data, 8, "UInt") > SciTEVersionInt
12 | return "Extension requires a newer version of SciTE4AutoHotkey"
13 |
14 | outExtId := Util_ReadLenStr(pData+12, pData)
15 | uncompSize := NumGet(pData+0, "UInt"), pData += 4
16 |
17 | VarSetCapacity(uncompData, uncompSize)
18 | ; COMPRESSION_FORMAT_LZNT1 | COMPRESSION_ENGINE_MAXIMUM
19 | if DllCall("ntdll\RtlDecompressBuffer", "ushort", 0x102, "ptr", &uncompData, "uint", uncompSize
20 | , "ptr", pData, "uint", &data + dataSize - pData, "uint*", finalSize) != 0
21 | return "Decompression error"
22 |
23 | return Util_ExtractTree(&uncompData, dir) ? "OK" : "FAIL"
24 | }
25 |
26 | Util_ExtractTree(ptr, dir)
27 | {
28 | try FileCreateDir, %dir%
29 | nElems := NumGet(ptr+0, "UInt"), ptr += 4
30 | Loop, %nElems%
31 | {
32 | name := dir "\" Util_ReadLenStr(ptr, ptr)
33 | size := NumGet(ptr+0, "UInt"), ptr += 4
34 | if (size = 0xFFFFFFFF)
35 | {
36 | ; Directory
37 | if not ptr := Util_ExtractTree(ptr, name)
38 | break
39 | } else
40 | {
41 | f := FileOpen(name, "w", "UTF-8-RAW")
42 | f.RawWrite(ptr+0, size)
43 | f := ""
44 | ptr += (size+3) &~ 3
45 | }
46 | }
47 | return ptr
48 | }
49 |
50 | Util_ReadLenStr(ptr, ByRef endPtr)
51 | {
52 | len := NumGet(ptr+0, "UInt")
53 | endPtr := ptr + ((len+7)&~3)
54 | return StrGet(ptr+4, len, "UTF-8")
55 | }
56 |
--------------------------------------------------------------------------------
/source/toolbar/Lib/Ini2Object.ahk:
--------------------------------------------------------------------------------
1 |
2 | Ini2Object(file)
3 | {
4 | obj := {}, curSect := ""
5 | IfNotExist, %file%
6 | return
7 | Loop, Read, %file%
8 | {
9 | x := Trim(A_LoopReadLine), fc := SubStr(x, 1, 1)
10 | if !x || fc = ";"
11 | continue
12 | if fc = [
13 | {
14 | if SubStr(x, 0) != "]"
15 | return ; invalid
16 |
17 | curSect := SubStr(x, 2, -1)
18 | } else
19 | {
20 | if not p := InStr(x, "=")
21 | return ; invalid
22 | k := RTrim(SubStr(x, 1, p-1))
23 | v := LTrim(SubStr(x, p+1))
24 | obj[curSect, k] := v
25 | }
26 | }
27 | return obj
28 | }
29 |
--------------------------------------------------------------------------------
/source/toolbar/Lib/StrPutVar.ahk:
--------------------------------------------------------------------------------
1 | ;
2 | ; File encoding: UTF-8
3 | ; Author: Lexikos
4 | ;
5 |
6 | StrPutVar(string, ByRef var, encoding)
7 | {
8 | ; Ensure capacity.
9 | VarSetCapacity( var, StrPut(string, encoding)
10 | ; StrPut returns char count, but VarSetCapacity needs bytes.
11 | * ((encoding="utf-16"||encoding="cp1200") ? 2 : 1) )
12 | ; Copy or convert the string.
13 | return StrPut(string, &var, encoding)
14 | }
15 |
--------------------------------------------------------------------------------
/source/toolbar/PlatformDetect.ahk:
--------------------------------------------------------------------------------
1 |
2 | Plat_DetectAll() {
3 | global AhkDir
4 |
5 | plats := {}
6 |
7 | Plat_OnBoardDefault(plats, AhkDir, "Automatic")
8 | Plat_OnBoardV1(plats, AhkDir, "Latest v1.1")
9 |
10 | if InStr(FileExist(AhkDir "\v2"), "D") {
11 | Plat_OnBoardV2(plats, AhkDir "\v2", "Latest v2")
12 | }
13 |
14 | Loop Files, %AhkDir%\*.*, D
15 | {
16 | if RegExMatch(A_LoopFileName, "^v([12])\.", o) {
17 | if (o1 == "1")
18 | Plat_OnBoardV1(plats, A_LoopFileLongPath, A_LoopFileName)
19 | else if (o1 == "2")
20 | Plat_OnBoardV2(plats, A_LoopFileLongPath, A_LoopFileName)
21 | }
22 | }
23 |
24 | return plats
25 | }
26 |
27 | Plat_ParsePlatformName(name) {
28 | if RegExMatch(name, "^(.+?)\s*\((.+?)\)$", o) {
29 | return [ o1, StrSplit(Trim(o2), ";", " `t") ]
30 | } else {
31 | return [ name, "" ]
32 | }
33 | }
34 |
35 | Plat_MapToDDL(map) {
36 | ddl := ""
37 | for key in map
38 | ddl .= "|" key
39 | return ddl ; Leave out initial | in order to overwrite previous list
40 | }
41 |
42 | Plat_GroupByVersion(plats) {
43 | versions := {}
44 | for plat in plats {
45 | plat := Plat_ParsePlatformName(plat)
46 | curver := plat[1]
47 | if IsObject(variant := plat[2]) {
48 | if not IsObject(vervar := versions[curver]) {
49 | vervar := versions[curver] := {}
50 | }
51 | vervar[variant[1]] := true
52 | } else {
53 | versions[curver] := ""
54 | }
55 | }
56 | return versions
57 | }
58 |
59 | Plat_OnBoardDefault(plats, path, name) {
60 | ahkver := 1
61 |
62 | if Util_FileExistProperly(exe := path "\UX\AutoHotkeyUX.exe") {
63 | ahkver := 2
64 | }
65 |
66 | platdata := "# THIS FILE IS SCRIPT-GENERATED - DON'T TOUCH`n"
67 | platdata .= "ahk.platform=" name "`n"
68 | platdata .= "ahk.version=" ahkver "`n"
69 | platdata .= "file.patterns.ahk" ahkver "=$(file.patterns.ahk)`n"
70 |
71 | if (ahkver == 2) {
72 | platdata .= "ahk.version.autodetect=1`n"
73 | platdata .= "ahk.launcher=""" exe """ """ path "\UX\launcher.ahk""`n"
74 |
75 | if Util_FileExistProperly(helpfile := path "\v2\AutoHotkey.chm")
76 | platdata .= "ahk.help.file=" helpfile "`n"
77 | }
78 |
79 | plats[name] := platdata
80 | }
81 |
82 | Plat_OnBoardV1(plats, path, name) {
83 | if A_Is64bitOS {
84 | Plat_TryAdd(plats, path "\AutoHotkeyU64.exe", name " (64-bit Unicode)", 1)
85 | Plat_TryAdd(plats, path "\AutoHotkeyU64_UIA.exe", name " (64-bit Unicode; UI access)", 1)
86 | }
87 | Plat_TryAdd(plats, path "\AutoHotkeyU32.exe", name " (32-bit Unicode)", 1)
88 | Plat_TryAdd(plats, path "\AutoHotkeyU32_UIA.exe", name " (32-bit Unicode; UI access)", 1)
89 | Plat_TryAdd(plats, path "\AutoHotkeyA32.exe", name " (32-bit ANSI)", 1)
90 | Plat_TryAdd(plats, path "\AutoHotkeyA32_UIA.exe", name " (32-bit ANSI; UI access)", 1)
91 | }
92 |
93 | Plat_OnBoardV2(plats, path, name) {
94 | if A_Is64bitOS {
95 | Plat_TryAdd(plats, path "\AutoHotkey64.exe", name " (64-bit)", 2)
96 | Plat_TryAdd(plats, path "\AutoHotkey64_UIA.exe", name " (64-bit; UI access)", 2)
97 | }
98 | Plat_TryAdd(plats, path "\AutoHotkey32.exe", name " (32-bit)", 2)
99 | Plat_TryAdd(plats, path "\AutoHotkey32_UIA.exe", name " (32-bit; UI access)", 2)
100 | }
101 |
102 | Util_FileExistProperly(path) {
103 | attrib := DllCall("GetFileAttributes", "str", path, "uint")
104 | return !(attrib == 0xffffffff) and !(attrib & 0x410)
105 | }
106 |
107 | Plat_TryAdd(plats, exe, name, ahkver) {
108 | if not Util_FileExistProperly(exe)
109 | return
110 |
111 | verSize := DllCall("version\GetFileVersionInfoSize", "str", exe, "uint*", 0, "uint")
112 | if not verSize
113 | return
114 |
115 | VarSetCapacity(verInfo, verSize)
116 | if not DllCall("version\GetFileVersionInfo", "str", exe, "uint", 0, "uint", verSize, "ptr", &verInfo)
117 | return
118 |
119 | platdata := "# THIS FILE IS SCRIPT-GENERATED - DON'T TOUCH`n"
120 | platdata .= "ahk.platform=" name "`n"
121 | platdata .= "ahk.version=" ahkver "`n"
122 | platdata .= "file.patterns.ahk" ahkver "=$(file.patterns.ahk)`n"
123 | platdata .= "AutoHotkey=" exe "`n"
124 |
125 | SplitPath path,, pathdir
126 | if Util_FileExistProperly(helpfile := pathdir "\AutoHotkey.chm")
127 | platdata .= "ahk.help.file=" helpfile "`n"
128 |
129 | plats[name] := platdata
130 | }
131 |
--------------------------------------------------------------------------------
/source/toolbar/SciTEDirector.ahk:
--------------------------------------------------------------------------------
1 | ;
2 | ; File encoding: UTF-8
3 | ;
4 | ; SciTE director wrapper
5 | ; version 1.0 - fincs
6 | ;
7 |
8 | Director_Init()
9 | {
10 | global WM_COPYDATA, DirectorRecv, DirectorRetByArray, DirectorMsg, ATM_Director, scitehwnd, hwndgui, directorhwnd, DirectorReady
11 | WM_COPYDATA := 0x4a, DirectorRecv := false, DirectorMsg := ""
12 |
13 | OnMessage(WM_COPYDATA, "_Director_Recv")
14 | Director_Send("identity:" (hwndgui+0))
15 | DirectorReady := true
16 | }
17 |
18 | Director_Send(msg, returns := false, onArray := false)
19 | {
20 | global directorhwnd, WM_COPYDATA, DirectorMsg, DirectorRcv, DirectorRetByArray
21 | len := StrPutVar(msg, msg_utf8, "UTF-8")
22 | ; This code was taken from the AHK help
23 | VarSetCapacity(COPYDATASTRUCT, 3*A_PtrSize, 0)
24 | NumPut(len, COPYDATASTRUCT, A_PtrSize, "UInt")
25 | NumPut(&msg_utf8, COPYDATASTRUCT, 2*A_PtrSize)
26 | if returns
27 | {
28 | DirectorRcv := true
29 | DirectorRetByArray := onArray
30 | if onArray
31 | DirectorMsg := []
32 | }
33 | SendMessage, WM_COPYDATA, 0, ©DATASTRUCT,, ahk_id %directorhwnd%
34 | if returns
35 | {
36 | DirectorRcv := false
37 | DirectorRetByArray := false
38 | return DirectorMsg
39 | }
40 | }
41 |
42 | _Director_Recv(wParam, lParam, msg, hwnd)
43 | {
44 | Critical
45 | global DirectorMsg, DirectorRcv, DirectorRetByArray, lastfunc
46 | message := _Director_ParseResponse(StrGet(NumGet(lParam + 2*A_PtrSize), NumGet(lParam + A_PtrSize, "UInt"), "UTF-8"))
47 | if DirectorRcv
48 | {
49 | if !DirectorRetByArray
50 | DirectorMsg := message
51 | else
52 | DirectorMsg.Insert(message)
53 | }else
54 | {
55 | func := "SciTE_On" message.verb
56 | if IsFunc(func)
57 | {
58 | Critical, Off
59 | %func%(message.value, message.verb)
60 | }
61 | }
62 | return true
63 | }
64 |
65 | _Director_ParseResponse(resp)
66 | {
67 | colon := InStr(resp, ":")
68 | return { Verb: SubStr(resp, 1, colon-1), Value: CUnescape(SubStr(resp, colon+1)) }
69 | }
70 |
--------------------------------------------------------------------------------
/source/toolbar/SciTEMacros.ahk:
--------------------------------------------------------------------------------
1 | ;
2 | ; File encoding: UTF-8
3 | ;
4 | ; SciTE macro support
5 | ; version 1.0 - fincs
6 | ;
7 |
8 | Macro_Init()
9 | {
10 | global SciTEMacro
11 | SciTEMacro := "" ;[]
12 |
13 | Director_Send("macroenable:1")
14 | }
15 |
16 | SciTE_OnMacro(val)
17 | {
18 | timer := Func("HandleMacroMsg").Bind(val)
19 | SetTimer, % timer, -10
20 | }
21 |
22 | HandleMacroMsg(rawmsg)
23 | {
24 | Critical
25 | colon := InStr(rawmsg, ":")
26 | verb := SubStr(rawmsg, 1, colon-1)
27 | arg := SubStr(rawmsg, colon+1)
28 | if func := Func("SciTE_OnMacro" verb)
29 | %func%(arg)
30 | }
31 |
32 | SciTE_OnMacroGetList()
33 | {
34 | static _created_menu := 0
35 | macros := ListMacros()
36 | if !macros.MaxIndex()
37 | {
38 | MsgBox, 48, Toolbar, There aren't any macros!
39 | return
40 | }
41 | if _created_menu
42 | Menu, MacroList, DeleteAll
43 | for each, macro in macros
44 | Menu, MacroList, Add, %macro%, _run_macro
45 | Menu, MacroList, Show
46 | _created_menu := 1
47 | }
48 |
49 | SciTE_OnMacroRecord(param)
50 | {
51 | global SciTEMacro
52 | ; Workaround: SciTE does not quite generate what it should
53 | param := RegExReplace(param, "^(\d+?);(\d+?);1", "$1;0IS;$2")
54 | param := RegExReplace(param, "^(\d+?);(\d+?);0;$", "$1;0II;$2;0")
55 | SciTEMacro .= CEscape(param) "`n"
56 | }
57 |
58 | SciTE_OnMacroStopRecord()
59 | {
60 | global SciTEMacro, LocalSciTEPath
61 | macro := SciTEMacro
62 | SciTEMacro := ""
63 | StringTrimRight, macro, macro, 1
64 |
65 | InputBox, macro_name, Macro recorder, Enter name for the macro
66 | if ErrorLevel
67 | return
68 | macrofile := LocalSciTEPath "\Macros\" macro_name ".macro"
69 | FileDelete, %macrofile%
70 | FileAppend, % macro, %macrofile%, UTF-8
71 | }
72 |
73 | _run_macro(itemName)
74 | {
75 | Director_Send("currentmacro:" itemName)
76 | SciTE_OnMacroRun(itemName)
77 | }
78 |
79 | SciTE_OnMacroRun(macro)
80 | {
81 | global LocalSciTEPath
82 | if !macro
83 | {
84 | MsgBox, 48, Toolbar, You must select a macro first!
85 | return
86 | }
87 | macrofile := LocalSciTEPath "\Macros\" macro ".macro"
88 | IfExist, %macrofile%
89 | Loop, Read, %macrofile%
90 | macrodata .= "macrocommand:" A_LoopReadLine "`n"
91 | StringTrimRight, macrodata, macrodata, 1
92 | Director_Send(macrodata)
93 | }
94 |
95 | ListMacros()
96 | {
97 | global LocalSciTEPath
98 | macros := []
99 | Loop, %LocalSciTEPath%\Macros\*.macro
100 | {
101 | SplitPath, A_LoopFileFullPath,,,, namenoext
102 | macros.Insert(namenoext)
103 | }
104 | return macros
105 | }
106 |
--------------------------------------------------------------------------------
/source/toolicon.icl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fincs/SciTE4AutoHotkey/f194e5fbc7f0c04689fc39acb198d9ca9a46e7a9/source/toolicon.icl
--------------------------------------------------------------------------------
/source/tools/$gendocs_scite:
--------------------------------------------------------------------------------
1 | DEBUG = 0
2 | Menu, Tray, Icon, %A_ScriptDir%\..\..\toolicon.icl, 15
3 |
4 | ; Quick and dirty look for SciTE to grab initial filename.
5 | _SciTE := GetSciTEInstance()
6 | if _SciTE
7 | _DefaultFName := _SciTE.CurrentFile, _SciTE := ""
8 |
9 | #include %A_ScriptDir%\..\Lib\GetSciTEInstance.ahk
--------------------------------------------------------------------------------
/source/tools/Autorun.ahk:
--------------------------------------------------------------------------------
1 | ;
2 | ; SciTE4AutoHotkey Autorun Script
3 | ;
4 |
5 | #NoEnv
6 | #NoTrayIcon
7 | SetWorkingDir, %A_ScriptDir%
8 |
9 | oSciTE := GetSciTEInstance()
10 | if !oSciTE
11 | {
12 | MsgBox, 16, SciTE4AutoHotkey, Cannot find SciTE!
13 | ExitApp
14 | }
15 |
16 | UserAutorun := oSciTE.UserDir "\Autorun.ahk"
17 |
18 | bUpdatesEnabled := oSciTE.ResolveProp("automatic.updates") + 0
19 | bTillaGotoEnabled := oSciTE.ResolveProp("tillagoto.enable") + 0
20 |
21 | if bUpdatesEnabled
22 | Run, "%A_AhkPath%" SciTEUpdate.ahk /silent
23 |
24 | if bTillaGotoEnabled
25 | Run, "%A_AhkPath%" TillaGoto.ahk
26 |
27 | IfExist, %UserAutorun%
28 | Run, "%A_AhkPath%" "%UserAutorun%"
29 |
--------------------------------------------------------------------------------
/source/tools/Lib/Anchor.ahk:
--------------------------------------------------------------------------------
1 | /*
2 | Function: Anchor
3 | Defines how controls should be automatically positioned relative to the new dimensions of a window when resized.
4 |
5 | Parameters:
6 | cl - a control HWND, associated variable name or ClassNN to operate on
7 | a - (optional) one or more of the anchors: 'x', 'y', 'w' (width) and 'h' (height),
8 | optionally followed by a relative factor, e.g. "x h0.5"
9 | r - (optional) true to redraw controls, recommended for GroupBox and Button types
10 |
11 | Examples:
12 | > "xy" ; bounds a control to the bottom-left edge of the window
13 | > "w0.5" ; any change in the width of the window will resize the width of the control on a 2:1 ratio
14 | > "h" ; similar to above but directrly proportional to height
15 |
16 | Remarks:
17 | To assume the current window size for the new bounds of a control (i.e. resetting) simply omit the second and third parameters.
18 | However if the control had been created with DllCall() and has its own parent window,
19 | the container AutoHotkey created GUI must be made default with the +LastFound option prior to the call.
20 | For a complete example see anchor-example.ahk.
21 |
22 | License:
23 | - Version 4.60a
24 | - Dedicated to the public domain (CC0 1.0)
25 | */
26 | Anchor(i, a = "", r = false) {
27 | static c, cs = 12, cx = 255, cl = 0, g, gs = 8, gl = 0, gpi, gw, gh, z = 0, k = 0xffff
28 | If z = 0
29 | VarSetCapacity(g, gs * 99, 0), VarSetCapacity(c, cs * cx, 0), z := true
30 | If (!WinExist("ahk_id" . i)) {
31 | GuiControlGet, t, Hwnd, %i%
32 | If ErrorLevel = 0
33 | i := t
34 | Else ControlGet, i, Hwnd, , %i%
35 | }
36 | VarSetCapacity(gi, 68, 0), DllCall("GetWindowInfo", "UInt", gp := DllCall("GetParent", "UInt", i), "UInt", &gi)
37 | , giw := NumGet(gi, 28, "Int") - NumGet(gi, 20, "Int"), gih := NumGet(gi, 32, "Int") - NumGet(gi, 24, "Int")
38 | If (gp != gpi) {
39 | gpi := gp
40 | Loop, %gl%
41 | If (NumGet(g, cb := gs * (A_Index - 1)) == gp) {
42 | gw := NumGet(g, cb + 4, "Short"), gh := NumGet(g, cb + 6, "Short"), gf := 1
43 | Break
44 | }
45 | If (!gf)
46 | NumPut(gp, g, gl), NumPut(gw := giw, g, gl + 4, "Short"), NumPut(gh := gih, g, gl + 6, "Short"), gl += gs
47 | }
48 | ControlGetPos, dx, dy, dw, dh, , ahk_id %i%
49 | Loop, %cl%
50 | If (NumGet(c, cb := cs * (A_Index - 1)) == i) {
51 | If a =
52 | {
53 | cf = 1
54 | Break
55 | }
56 | giw -= gw, gih -= gh, as := 1, dx := NumGet(c, cb + 4, "Short"), dy := NumGet(c, cb + 6, "Short")
57 | , cw := dw, dw := NumGet(c, cb + 8, "Short"), ch := dh, dh := NumGet(c, cb + 10, "Short")
58 | Loop, Parse, a, xywh
59 | If A_Index > 1
60 | av := SubStr(a, as, 1), as += 1 + StrLen(A_LoopField)
61 | , d%av% += (InStr("yh", av) ? gih : giw) * (A_LoopField + 0 ? A_LoopField : 1)
62 | DllCall("SetWindowPos", "UInt", i, "Int", 0, "Int", dx, "Int", dy
63 | , "Int", InStr(a, "w") ? dw : cw, "Int", InStr(a, "h") ? dh : ch, "Int", 4)
64 | If r != 0
65 | DllCall("RedrawWindow", "UInt", i, "UInt", 0, "UInt", 0, "UInt", 0x0101) ; RDW_UPDATENOW | RDW_INVALIDATE
66 | Return
67 | }
68 | If cf != 1
69 | cb := cl, cl += cs
70 | bx := NumGet(gi, 48), by := NumGet(gi, 16, "Int") - NumGet(gi, 8, "Int") - gih - NumGet(gi, 52)
71 | If cf = 1
72 | dw -= giw - gw, dh -= gih - gh
73 | NumPut(i, c, cb), NumPut(dx - bx, c, cb + 4, "Short"), NumPut(dy - by, c, cb + 6, "Short")
74 | , NumPut(dw, c, cb + 8, "Short"), NumPut(dh, c, cb + 10, "Short")
75 | Return, true
76 | }
--------------------------------------------------------------------------------
/source/tools/Lib/DebugVarsGui.ahk:
--------------------------------------------------------------------------------
1 | #Include DebugVars\
2 | #Include DebugVarsGui.ahk
--------------------------------------------------------------------------------
/source/tools/Lib/GetSciTEInstance.ahk:
--------------------------------------------------------------------------------
1 | ;
2 | ; File encoding: UTF-8
3 | ; Author: fincs
4 | ;
5 | ; Get the current SciTE instance
6 | ;
7 |
8 | GetSciTEInstance()
9 | {
10 | olderr := ComObjError()
11 | ComObjError(false)
12 | scite := ComObjActive("{D7334085-22FB-416E-B398-B5038A5A0784}")
13 | ComObjError(olderr)
14 | return IsObject(scite) ? scite : ""
15 | }
16 |
--------------------------------------------------------------------------------
/source/tools/Lib/ProcessInfo.ahk:
--------------------------------------------------------------------------------
1 | class ProcessInfo
2 | {
3 | FromPID(pid) {
4 | ; (PROCESS_QUERY_LIMITED_INFORMATION := 0x1000) | (SYNCHRONIZE := 0x100000)
5 | if !hproc := DllCall("OpenProcess", "uint", 0x101000, "int", false, "uint", pid, "ptr")
6 | return
7 | return {handle: hproc, base: this}
8 | }
9 |
10 | __Delete() {
11 | DllCall("CloseHandle", "ptr", this.handle)
12 | }
13 |
14 | Exists {
15 | get {
16 | ; (WAIT_TIMEOUT := 258)
17 | return DllCall("WaitForSingleObject", "ptr", this.handle, "uint", 0) = 258
18 | }
19 | }
20 |
21 | ExitCode {
22 | get {
23 | return this.Exists ? "" : DllCall("GetExitCodeProcess", "ptr", this.handle, "int*", exitCode) ? exitCode : 0
24 | }
25 | }
26 | }
--------------------------------------------------------------------------------
/source/tools/Lib/SUpd.ahk:
--------------------------------------------------------------------------------
1 | ;
2 | ; File encoding: UTF-8
3 | ;
4 | ; Script description:
5 | ; SUpd - SciTE4AutoHotkey update routines
6 | ;
7 |
8 | #NoEnv
9 | #NoTrayIcon
10 |
11 | global SciTEDir, ParentPID
12 |
13 | SUpd_Main()
14 | {
15 | SendMode Input
16 | SetWorkingDir, %A_ScriptDir%
17 | SplitPath, A_AhkPath,, SciTEDir
18 | ParentPID := __GetParentPID()
19 | UpdateMain()
20 | ExitApp
21 | }
22 |
23 | SUpd_File(id, out)
24 | {
25 | fname := A_ScriptDir "\" id ".bin"
26 | IfNotExist, %fname%
27 | throw Exception("Unknown file ID", -1, id)
28 | FileCopy, %fname%, %out%, 1
29 | }
30 |
31 | ;------------------------------------------------------------------------------
32 | ; Internal functions
33 | ;------------------------------------------------------------------------------
34 |
35 | __GetParentPID()
36 | {
37 | hScriptProc := DllCall("GetCurrentProcess", "ptr")
38 |
39 | VarSetCapacity(pbi, sizeof_pbi := 6*A_PtrSize)
40 | if DllCall("ntdll\NtQueryInformationProcess", "ptr", hScriptProc, "uint", 0, "ptr", &pbi, "uint", sizeof_pbi, "ptr", 0, "uint") ; 0=ProcessBasicInformation
41 | throw Exception("NtQueryInformationProcess()", 0, rc " - " w " - " sizeof_pbi) ; Short msg since so rare.
42 |
43 | return NumGet(pbi, 5*A_PtrSize)
44 | }
45 |
--------------------------------------------------------------------------------
/source/tools/Lib/dbgp.ahk:
--------------------------------------------------------------------------------
1 | #Include dbgp\
2 | #Include dbgp.ahk
--------------------------------------------------------------------------------
/source/tools/MsgBoxC.ahk:
--------------------------------------------------------------------------------
1 | ;
2 | ; SciTE4AutoHotkey MsgBox Creator
3 | ;
4 |
5 | #SingleInstance Ignore
6 | #NoTrayIcon
7 | #NoEnv
8 | SetWorkingDir, %A_ScriptDir%
9 |
10 | oSciTE := GetSciTEInstance()
11 | if !oSciTE
12 | {
13 | MsgBox, 16, MsgBox Creator, Cannot find SciTE!
14 | ExitApp
15 | }
16 |
17 | scHwnd := oSciTE.SciTEHandle
18 |
19 | ; Main icon
20 | Menu, Tray, Icon, ..\toolicon.icl, 10
21 |
22 | ;GUI
23 | Gui, +Owner%scHwnd%
24 | Gui, Add, Text, x10 y10 section, Title
25 | Gui, Add, Edit, xs+0 ys+15 section w400 vTitle gCreate_Msgbox_Command,
26 | Gui, Add, Text, xs+0 ys+25 section, Text:
27 | Gui, Add, Edit, xs+0 ys+15 section r3 w400 vText gCreate_Msgbox_Command WantTab,
28 |
29 | Gui, Add, Groupbox, x10 y130 h215 w190 section, Buttons
30 | Gui, Add, Radio, xs+10 ys+20 section vButton_Selection1 Checked gCreate_Msgbox_Command, OK
31 | Gui, Add, Radio, xs+0 ys+25 section vButton_Selection2 gCreate_Msgbox_Command, OK/Cancel
32 | Gui, Add, Radio, xs+0 ys+25 section vButton_Selection3 gCreate_Msgbox_Command, Abort/Retry/Ignore
33 | Gui, Add, Radio, xs+0 ys+25 section vButton_Selection4 gCreate_Msgbox_Command, Yes/No/Cancel
34 | Gui, Add, Radio, xs+0 ys+25 section vButton_Selection5 gCreate_Msgbox_Command, Yes/No
35 | Gui, Add, Radio, xs+0 ys+25 section vButton_Selection6 gCreate_Msgbox_Command, Retry/Cancel
36 | Gui, Add, Radio, xs+0 ys+25 section vButton_Selection7 gCreate_Msgbox_Command, Cancel/Try Again/Continue
37 | Gui, Add, Checkbox, xs+0 ys+25 vButton_Selection_Help gCreate_Msgbox_Command, Help button
38 |
39 | Gui, Add, Groupbox, x220 y130 h215 w190 section, Icons
40 | Gui, Add, Radio, xs+10 ys+25 section vIcon1 Checked gCreate_Msgbox_Command, No Icon
41 | Gui, Add, Radio, xs+0 ys+40 vIcon2 gCreate_Msgbox_Command, Stop/Error
42 | Gui, Add, Radio, xs+0 ys+80 vIcon3 gCreate_Msgbox_Command, Question
43 | Gui, Add, Radio, xs+0 ys+120 vIcon4 gCreate_Msgbox_Command, Exclamation
44 | Gui, Add, Radio, xs+0 ys+160 vIcon5 gCreate_Msgbox_Command, Info
45 | ;Gui, Add, Picture, xs+90 ys-10 gSelect_NoIcon icon1, %A_WinDir%\system32\user32.dll
46 | Gui, Add, Picture, xs+90 ys-10 gSelect_NoIcon h30 w20
47 | Gui, Add, Picture, xs+90 ys+30 gSelect_ErrorIcon icon4 w32 h32, %A_WinDir%\system32\user32.dll
48 | Gui, Add, Picture, xs+90 ys+70 gSelect_Question icon3 w32 h32, %A_WinDir%\system32\user32.dll
49 | Gui, Add, Picture, xs+90 ys+110 gSelect_Exclamation icon2 w32 h32, %A_WinDir%\system32\user32.dll
50 | Gui, Add, Picture, xs+90 ys+150 gSelect_Info icon5 w32 h32, %A_WinDir%\system32\user32.dll
51 |
52 | Gui, Add, Groupbox, x430 y20 h140 w190 section, Modality
53 | Gui, Add, Radio, xs+10 ys+20 section Checked vModality1 gCreate_Msgbox_Command, Normal
54 | Gui, Add, Radio, xs+0 ys+25 section vModality2 gCreate_Msgbox_Command, Task Modal
55 | Gui, Add, Radio, xs+0 ys+25 section vModality3 gCreate_Msgbox_Command, System Modal (always on top)
56 | Gui, Add, Radio, xs+0 ys+25 section vModality4 gCreate_Msgbox_Command, Always on top
57 | Gui, Add, Radio, xs+0 ys+25 section vModality5 gCreate_Msgbox_Command, Default desktop
58 |
59 | Gui, Add, Groupbox, x430 y170 h45 w190 section, Default Button
60 | Gui, Add, Radio, xs+10 ys+20 section Checked vDefault1 gCreate_Msgbox_Command, 1st
61 | Gui, Add, Radio, xs+65 ys+0 section vDefault2 gCreate_Msgbox_Command, 2nd
62 | Gui, Add, Radio, xs+65 ys+0 section vDefault3 gCreate_Msgbox_Command, 3rd
63 |
64 | Gui, Add, Groupbox, x435 y220 h45 w190 section, Alignment
65 | Gui, Add, Checkbox, xs+10 ys+20 vAlignment1 section gCreate_Msgbox_Command, Right-justified
66 | Gui, Add, Checkbox, xs+100 ys+0 vAlignment2 gCreate_Msgbox_Command, Right-to-left
67 |
68 | Gui, Add, Groupbox, x430 y270 h45 w90 section, Timeout
69 | Gui, Add, Edit, xs+10 ys+17 w70 vTimeout gCreate_Msgbox_Command
70 | Gui, Add, UpDown, Range-1-2147483, -1
71 |
72 | Gui, Add, Button, x530 y280 h30 w90 vTest gTest, &Test
73 | Gui, Add, Button, x430 y320 h30 w90 Default gSciTEInsert, &Insert in SciTE
74 | Gui, Add, Button, x530 y320 h30 w90 gReset, &Reset
75 |
76 | Gui, Add, Groupbox, x10 y350 w610 h75 section, Result
77 | Gui, Add, Edit, xs+10 ys+20 w590 r3 vMsgbox_Command,
78 |
79 | Gui, Show, , MsgBox Creator for SciTE4AutoHotkey v3
80 | GoSub, Reset ;Initalize GUI
81 | return
82 |
83 | Select_NoIcon:
84 | GuiControl, , Icon1, 1
85 | GoSub, Create_Msgbox_Command
86 | return
87 |
88 | Select_ErrorIcon:
89 | GuiControl, , Icon2, 1
90 | GoSub, Create_Msgbox_Command
91 | return
92 |
93 | Select_Question:
94 | GuiControl, , Icon3, 1
95 | GoSub, Create_Msgbox_Command
96 | return
97 |
98 | Select_Exclamation:
99 | GuiControl, , Icon4, 1
100 | GoSub, Create_Msgbox_Command
101 | return
102 |
103 | Select_Info:
104 | GuiControl, , Icon5, 1
105 | GoSub, Create_Msgbox_Command
106 | return
107 |
108 | Create_Msgbox_Command:
109 | Gui, Submit, NoHide
110 | ;Get types of used buttons
111 | Loop, 7
112 | {
113 | if Button_Selection%A_Index% = 1
114 | {
115 | ButtonSelection := A_Index -1
116 | if Button_Selection_Help = 1
117 | ButtonSelection += 16384
118 | break
119 | }
120 | }
121 |
122 | ;Get used Icon
123 | Loop, 5
124 | {
125 | if Icon%A_Index% = 1
126 | {
127 | if A_Index = 1
128 | Icon = 0
129 | else if A_Index = 2
130 | Icon = 16
131 | else if A_Index = 3
132 | Icon = 32
133 | else if A_Index = 4
134 | Icon = 48
135 | else if A_Index = 5
136 | Icon = 64
137 | break
138 | }
139 | }
140 |
141 | ;Get Modality-State
142 | Loop, 5
143 | {
144 | if Modality%A_Index% = 1
145 | {
146 | if A_Index = 1
147 | Modality = 0
148 | else if A_Index = 2
149 | Modality = 8192
150 | else if A_Index = 3
151 | Modality = 4096
152 | else if A_Index = 4
153 | Modality = 262144
154 | else if A_Index = 5
155 | Modality = 131072
156 | break
157 | }
158 | }
159 |
160 | ;Get Default-Button
161 | Loop, 3
162 | {
163 | if Default%A_Index% = 1
164 | {
165 | if A_Index = 1
166 | Default = 0
167 | else if A_Index = 2
168 | Default = 256
169 | else if A_Index = 3
170 | Default = 512
171 | break
172 | }
173 | }
174 |
175 | ;Check Alignment
176 | Alignment = 0
177 | if Alignment1 = 1
178 | Alignment += 524288
179 | if Alignment2 = 1
180 | Alignment += 1048576
181 |
182 | Msgbox_Number := ButtonSelection + Icon + Modality + Default + Alignment ;Generate type of messagebox
183 |
184 | if TestMode
185 | return
186 |
187 | Escape_Characters(Title)
188 | Escape_Characters(Text)
189 |
190 | ;Timeout "-1" = no timeout
191 | if Timeout = -1
192 | Timeout =
193 | else
194 | {
195 | StringReplace, Timeout, Timeout, `,, . ;Allows "," as decimal-point
196 | Timeout = , %Timeout%
197 | }
198 |
199 | ;Create command and set it to Edit-Control
200 | Msgbox_Command = MsgBox, %Msgbox_Number%, %Title%, %Text%%Timeout%
201 | GuiControl, , Msgbox_Command, %Msgbox_Command%
202 | return
203 |
204 | Test:
205 | TestMode := true
206 | GoSub, Create_Msgbox_Command
207 | TestMode := false
208 | Gui, +OwnDialogs
209 | Title := Title ? Title : "%A_ScriptName%"
210 | if Timeout != -1
211 | MsgBox, % Msgbox_Number, % Title, % Text, % Timeout
212 | else
213 | MsgBox, % Msgbox_Number, % Title, % Text
214 | return
215 |
216 | ;Escapes Characters like ","
217 | Escape_Characters(byref Var)
218 | {
219 | StringReplace, Var, Var, `n, ``n, All ;Translate line breaks in entered text
220 | StringReplace, Var, Var, `,, ```,, All ;Escapes ","
221 | StringReplace, Var, Var, `;, ```;, All ;Escapes ";"
222 | }
223 |
224 | SciTEInsert:
225 | oSciTE.InsertText(Msgbox_Command)
226 | ExitApp
227 |
228 | GuiClose:
229 | ExitApp
230 |
231 | Open:
232 | Gui, Show
233 | return
234 |
235 | Reset:
236 | GuiControl,, Title
237 | GuiControl,, Text
238 | GuiControl,, Modality1, 1
239 | GuiControl,, Icon1, 1
240 | GuiControl,, Button_Selection1, 1
241 | GuiControl,, Button_Selection_Help, 0
242 | GuiControl,, Default1, 1
243 | GuiControl,, Timeout, -1
244 | GuiControl,, Alignment1, 0
245 | GuiControl,, Alignment2, 0
246 | return
247 |
248 | GuiSize:
249 | if A_EventInfo = 1
250 | Gui, Show, Hide
251 | return
252 |
--------------------------------------------------------------------------------
/source/tools/PropEdit.ahk:
--------------------------------------------------------------------------------
1 | ;
2 | ; SciTE4AutoHotkey Settings Editor
3 | ;
4 |
5 | #NoEnv
6 | #NoTrayIcon
7 | #SingleInstance Ignore
8 | SendMode Input
9 | SetWorkingDir %A_ScriptDir%
10 | SetBatchLines -1
11 | ListLines, Off
12 | FileEncoding, UTF-8-RAW
13 |
14 | Menu, Tray, Icon, ..\toolicon.icl, 17
15 |
16 | scite := GetSciTEInstance()
17 | if !scite
18 | {
19 | MsgBox, 16, SciTE properties editor, Can't find SciTE!
20 | ExitApp
21 | }
22 |
23 | scite_hwnd := scite.SciTEHandle
24 |
25 | LocalSciTEPath := scite.UserDir
26 |
27 | UserPropsFile = %LocalSciTEPath%\_config.properties
28 |
29 | IfExist, %UserPropsFile%
30 | FileRead, UserProps, %UserPropsFile%
31 | else
32 | UserProps := ""
33 |
34 | cplist_v := "0|65001|932|936|949|950|1361"
35 | cplist_n := "System default|UTF-8|Shift-JIS|Chinese GBK|Korean Wansung|Chinese Big5|Korean Johab"
36 |
37 | p_style := FindProp("import Styles\\(.*)\.style", "SciTE4AutoHotkey Light")
38 | p_locale := FindProp("locale\.properties=locales\\(.*)\.locale\.properties", "English")
39 | p_encoding := FindProp("code\.page=(" cplist_v ")", 65001)
40 | p_backup := FindProp("make\.backup=([01])", 1)
41 | p_savepos := FindProp("save\.position=([01])", 1)
42 | p_zoom := FindProp("magnification=(-?\d+)", 0)
43 | p_font := FindProp("default\.text\.font=(.+)", "Consolas")
44 | p_lineno := FindProp("line\.margin\.visible=([01])", 1)
45 | p_autoupd := FindProp("automatic\.updates=([01])", 1)
46 |
47 | if 1 = /regenerate
48 | {
49 | ; Upgrade old styles to comparable modern equivalents
50 | if p_style in Classic,PSPad,Light,VisualStudio
51 | p_style := "SciTE4AutoHotkey Light"
52 | else if p_style in HatOfGod,Noir,tidRich_Zenburn
53 | p_style := "SciTE4AutoHotkey Dark"
54 |
55 | regenMode := true
56 | gosub Update2
57 | ExitApp
58 | }
59 |
60 | org_locale := p_locale
61 | org_zoom := p_zoom
62 | org_lineno := p_lineno
63 |
64 | stylelist := CountStylesAndChoose(ch1)
65 | localelist := CountLocalesAndChoose(ch2)
66 | p_encoding := FindInList(cplist_v, p_encoding)
67 |
68 | Gui, New, +Owner%scite_hwnd% +ToolWindow, SciTE4AutoHotkey settings
69 |
70 | Gui, Add, Text, Section +Right w70, Language:
71 | Gui, Add, DDL, ys w150 R10 Choose%ch2% vp_locale, %localelist%
72 |
73 | Gui, Add, Text, xs Section +Right w70, Style:
74 | Gui, Add, DDL, ys w150 Choose%ch1% vp_style gDDL_Choose, %stylelist%|New...
75 |
76 | Gui, Add, Text, xs Section +Right w70, Encoding:
77 | Gui, Add, DDL, ys w150 +AltSubmit Choose%p_encoding% vp_encoding, %cplist_n%
78 |
79 | Gui, Add, Text, xs Section +Right w70, Code font:
80 | Gui, Add, DDL, ys w150 vp_font, % ListFonts()
81 | GuiControl ChooseString, p_font, %p_font%
82 |
83 | Gui, Add, Text, xs Section +Right w70, Text zoom:
84 | Gui, Add, Edit, ys w50
85 | Gui, Add, UpDown, vp_zoom Range-10-10, %p_zoom%
86 | Gui, Add, Text, ys, (requires restart)
87 |
88 | Gui, Add, CheckBox, xs+15 Checked%p_lineno% vp_lineno, Show line numbers (requires restart)
89 | Gui, Add, CheckBox, xs+15 Checked%p_backup% vp_backup, Auto-backups
90 | Gui, Add, CheckBox, xs+15 Checked%p_savepos% vp_savepos, Remember window position
91 | Gui, Add, CheckBox, xs+15 Checked%p_autoupd% vp_autoupd, Automatically check for updates
92 |
93 | Gui, Add, Button, xs+50 w60 Section gUpdate, Update
94 | Gui, Add, Button, ys xs+90 w60 gEditStyle, Edit style
95 | Gui, Show
96 | return
97 |
98 | DDL_Choose:
99 | Gui, +OwnDialogs
100 | GuiControlGet, n_style,, p_style
101 | if (n_style != "New...")
102 | {
103 | p_style := n_style
104 | return
105 | }
106 | GuiControl, ChooseString, p_style, %p_style%
107 | FileRead, qvar, %LocalSciTEPath%\Styles\%p_style%.style.properties
108 | if !RegExMatch(qvar, "`am)^s4ahk\.style=\d+$")
109 | p_style := "Blank" ; cannot fork an old-format style
110 | InputBox, newStyleName, SciTE properties editor, Enter the name of the new style...,,,,,,,, %p_style%_Edited
111 | if ErrorLevel
112 | return
113 | if not newStyleName := ValidateFilename(Trim(newStyleName))
114 | return
115 | IfExist, %LocalSciTEPath%\Styles\%newStyleName%.style.properties
116 | {
117 | MsgBox, 48, SciTE properties editor, The style already exists.
118 | return
119 | }
120 | FileCopy, %LocalSciTEPath%\Styles\%p_style%.style.properties, %LocalSciTEPath%\Styles\%newStyleName%.style.properties
121 | if ErrorLevel
122 | {
123 | MsgBox, 16, SciTE properties editor, Error copying style.
124 | return
125 | }
126 | stylelist .= "|" newStyleName
127 | GuiControl,, p_style, |%stylelist%|New...
128 | GuiControl, ChooseString, p_style, %newStyleName%
129 | p_style := newStyleName
130 | goto EditStyle_
131 |
132 | EditStyle:
133 | Gui, +OwnDialogs
134 | GuiControlGet, n_style,, p_style
135 | EditStyle_:
136 | Run, "%A_AhkPath%" "%A_ScriptDir%\StyleEdit.ahk" "%LocalSciTEPath%\Styles\%p_style%.style.properties"
137 | return
138 |
139 | GuiClose:
140 | ExitApp
141 |
142 | Update:
143 | Gui, Submit, NoHide
144 |
145 | if (p_locale != org_locale || p_zoom != org_zoom || p_lineno != org_lineno)
146 | {
147 | Gui, +OwnDialogs
148 | MsgBox, 52, SciTE properties editor, Changing the language or certain other settings requires restarting SciTE.`nReopen SciTE?
149 | IfMsgBox, No
150 | return
151 | restartSciTE := true
152 | }
153 |
154 | Update2:
155 |
156 | p_encoding := GetItem(cplist_v, p_encoding)
157 |
158 | FileRead, qvar, %LocalSciTEPath%\Styles\%p_style%.style.properties
159 | p_extra := ""
160 | /*
161 | if RegExMatch(qvar, "`am)^s4ahk\.style=1$")
162 | p_extra =
163 | (LTrim
164 | style.ahk1.0=$(s4ahk.style.default)
165 | style.ahk1.1=$(s4ahk.style.comment.line)
166 | style.ahk1.2=$(s4ahk.style.comment.block)
167 | style.ahk1.3=$(s4ahk.style.escape)
168 | style.ahk1.4=$(s4ahk.style.operator)
169 | style.ahk1.5=$(s4ahk.style.operator)
170 | style.ahk1.6=$(s4ahk.style.string)
171 | style.ahk1.7=$(s4ahk.style.number)
172 | style.ahk1.8=$(s4ahk.style.var)
173 | style.ahk1.9=$(s4ahk.style.var)
174 | style.ahk1.10=$(s4ahk.style.label)
175 | style.ahk1.11=$(s4ahk.style.flow)
176 | style.ahk1.12=$(s4ahk.style.bif)
177 | style.ahk1.13=$(s4ahk.style.func)
178 | style.ahk1.14=$(s4ahk.style.directive)
179 | style.ahk1.15=$(s4ahk.style.old.key)
180 | style.ahk1.16=$(s4ahk.style.biv)
181 | style.ahk1.17=$(s4ahk.style.wordop)
182 | style.ahk1.18=$(s4ahk.style.old.user)
183 | style.ahk1.19=$(s4ahk.style.biv)
184 | style.ahk1.20=$(s4ahk.style.error)
185 | if s4ahk.style.old.synop
186 | `tstyle.ahk1.4=$(s4ahk.style.old.synop)
187 | if s4ahk.style.old.deref
188 | `tstyle.ahk1.9=$(s4ahk.style.old.deref)
189 | if s4ahk.style.old.bivderef
190 | `tstyle.ahk1.19=$(s4ahk.style.old.bivderef)
191 |
192 | )
193 | */
194 |
195 | UserProps =
196 | (
197 | # THIS FILE IS SCRIPT-GENERATED - DON'T TOUCH
198 | locale.properties=locales\%p_locale%.locale.properties
199 | make.backup=%p_backup%
200 | code.page=%p_encoding%
201 | output.code.page=%p_encoding%
202 | save.position=%p_savepos%
203 | magnification=%p_zoom%
204 | line.margin.visible=%p_lineno%
205 | default.text.font=%p_font%
206 | automatic.updates=%p_autoupd%
207 | import Styles\%p_style%.style
208 | %p_extra%import _extensions
209 | )
210 |
211 | FileDelete, %UserPropsFile%
212 | FileAppend, %UserProps%, %UserPropsFile%
213 |
214 | ; Reload properties
215 | scite.ReloadProps()
216 |
217 | if restartSciTE
218 | {
219 | Gui, Destroy
220 | WinClose, ahk_id %scite_hwnd%
221 | WinWaitClose,,, 10
222 | if !ErrorLevel
223 | Run, "%A_ScriptDir%\..\SciTE.exe"
224 | ExitApp
225 | }
226 |
227 | return
228 |
229 | FindProp(regex, default := "")
230 | {
231 | global UserProps
232 | return RegExMatch(UserProps, "`am)^" regex "$", o) ? o1 : default
233 | }
234 |
235 | ReplaceProp(regex, repl)
236 | {
237 | global UserProps
238 | UserProps := RegExReplace(UserProps, "`am)^" regex "$", repl)
239 | }
240 |
241 | CountStylesAndChoose(ByRef choosenum)
242 | {
243 | global p_style, LocalSciTEPath
244 | i := 1
245 |
246 | Loop, %LocalSciTEPath%\Styles\*.properties
247 | {
248 | if !RegExMatch(A_LoopFileName, "\.style\.properties$")
249 | continue
250 | style := RegExReplace(A_LoopFileName, "\.style\.properties$")
251 | if(style = p_style)
252 | choosenum := i
253 | list .= "|" Style
254 | i ++
255 | }
256 | StringTrimLeft, list, list, 1
257 | return list
258 | }
259 |
260 | CountLocalesAndChoose(ByRef choosenum)
261 | {
262 | global p_locale
263 | i := 1
264 |
265 | Loop, %A_ScriptDir%\..\locales\*.properties
266 | {
267 | if !RegExMatch(A_LoopFileName, "\.locale\.properties$")
268 | continue
269 | locale := RegExReplace(A_LoopFileName, "\.locale\.properties$")
270 | if (locale = p_locale)
271 | choosenum := i
272 | list .= "|" locale
273 | i ++
274 | }
275 | StringTrimLeft, list, list, 1
276 | return list
277 | }
278 |
279 | ListFonts()
280 | {
281 | VarSetCapacity(logfont, 128, 0), NumPut(1, logfont, 23, "UChar")
282 | obj := []
283 | DllCall("EnumFontFamiliesEx", "ptr", DllCall("GetDC", "ptr", 0), "ptr", &logfont, "ptr", RegisterCallback("EnumFontProc"), "ptr", &obj, "uint", 0)
284 | for font in obj
285 | list .= "|" font
286 | StringTrimLeft list, list, 1
287 | return list
288 | }
289 |
290 | EnumFontProc(lpFont, tm, fontType, lParam)
291 | {
292 | obj := Object(lParam)
293 | obj[StrGet(lpFont+28)] := 1
294 | return 1
295 | }
296 |
297 | FindInList(ByRef list, item, delim := "|")
298 | {
299 | Loop, Parse, list, %delim%
300 | if (A_LoopField = item)
301 | return A_Index
302 | }
303 |
304 | GetItem(ByRef list, id, delim := "|")
305 | {
306 | Loop, Parse, list, %delim%
307 | if (A_Index = id)
308 | return A_LoopField
309 | }
310 |
311 | ValidateFilename(fn)
312 | {
313 | StringReplace, fn, fn, \, _, All
314 | StringReplace, fn, fn, /, _, All
315 | StringReplace, fn, fn, :, _, All
316 | StringReplace, fn, fn, *, _, All
317 | StringReplace, fn, fn, ?, _, All
318 | StringReplace, fn, fn, ", _, All
319 | StringReplace, fn, fn, <, _, All
320 | StringReplace, fn, fn, >, _, All
321 | StringReplace, fn, fn, |, _, All
322 | return fn
323 | }
324 |
--------------------------------------------------------------------------------
/source/tools/SUtility.ahk:
--------------------------------------------------------------------------------
1 | ;
2 | ; Scriptlet Utility
3 | ;
4 |
5 | #NoEnv
6 | #NoTrayIcon
7 | #SingleInstance Ignore
8 | DetectHiddenWindows, On
9 | FileEncoding, UTF-8
10 | Menu, Tray, Icon, %A_ScriptDir%\..\toolicon.icl, 11
11 | progName = Scriptlet Utility
12 |
13 | scite := GetSciTEInstance()
14 | if !scite
15 | {
16 | MsgBox, 16, %progName%, SciTE COM object not found!
17 | ExitApp
18 | }
19 |
20 | textFont := scite.ResolveProp("default.text.font")
21 | LocalSciTEPath := scite.UserDir
22 | scitehwnd := scite.SciTEHandle
23 |
24 | sdir = %LocalSciTEPath%\Scriptlets
25 | IfNotExist, %sdir%
26 | {
27 | MsgBox, 16, %progName%, Scriptlet folder doesn't exist!
28 | ExitApp
29 | }
30 |
31 | ; Check command line
32 | if 1 = /insert
33 | {
34 | if 2 =
35 | {
36 | MsgBox, 64, %progName%, Usage: %A_ScriptName% /insert scriptletName
37 | ExitApp
38 | }
39 | IfNotExist, %sdir%\%2%.scriptlet
40 | {
41 | MsgBox, 52, %progName%,
42 | (LTrim
43 | Invalid scriptlet name: "%2%".
44 | Perhaps you have clicked on a toolbar icon whose scriptlet attached no longer exists?
45 | Press OK to edit the toolbar properties file.
46 | )
47 | IfMsgBox, Yes
48 | scite.OpenFile(LocalSciTEPath "\UserToolbar.properties")
49 | ExitApp
50 | }
51 | FileRead, text2insert, %sdir%\%2%.scriptlet
52 | gosub InsertDirect
53 | ExitApp
54 | }
55 |
56 | if 1 = /addScriptlet
57 | {
58 | defaultScriptlet := scite.Selection
59 | if defaultScriptlet =
60 | {
61 | MsgBox, 16, %progName%, Nothing is selected!
62 | ExitApp
63 | }
64 | gosub AddBut ; that does it all
65 | if !_RC
66 | ExitApp ; Maybe the user has cancelled the action.
67 | MsgBox, 68, %progName%, Scriptlet added sucessfully. Do you want to open the scriptlet manager?
68 | IfMsgBox, Yes
69 | Reload ; no parameters are passed to script
70 | ExitApp
71 | }
72 |
73 | Gui, +MinSize Resize Owner%scitehwnd%
74 | Gui, Add, Button, Section gAddBut, New
75 | Gui, Add, Button, ys gRenBut, Rename
76 | Gui, Add, Button, ys gSubBut, Delete
77 | Gui, Add, ListBox, xs w160 h240 vMainListbox gSelectLB HScroll
78 | Gui, Add, Button, ys Section gToolbarBut, Add to toolbar
79 | Gui, Add, Button, ys gInsertBut, Insert into SciTE
80 | Gui, Add, Button, ys gSaveBut, Save
81 | Gui, Add, Button, ys gOpenInSciTE, Open in SciTE
82 | Gui, Font, S9, %textFont%
83 | Gui, Add, Edit, xs w320 h240 vScriptPane -Wrap WantTab HScroll
84 | Gui, Show,, %progName%
85 |
86 | selectQ =
87 | defaultScriptlet =
88 | gosub ListboxUpdate
89 | return
90 |
91 | GuiSize:
92 | Anchor("MainListbox", "h")
93 | Anchor("ScriptPane", "wh")
94 | return
95 |
96 | GuiGetPos(ctrl, guiId := "")
97 | {
98 | guiId := guiId ? (guiId ":") : ""
99 | GuiControlGet, ov, %guiId%Pos, %ctrl%
100 | return { x: ovx, y: ovy, w: ovw, h: ovh }
101 | }
102 |
103 | GuiClose:
104 | ExitApp
105 |
106 | SelectLB:
107 | GuiControlGet, fname2open,, MainListbox
108 | FileRead, scriptletText, %sdir%\%fname2open%.scriptlet
109 | GuiControl,, ScriptPane, % scriptletText
110 | Return
111 |
112 | AddBut:
113 | Gui +OwnDialogs
114 | InputBox, fname2create, %progName%, Enter the name of the scriptlet to create:
115 | if ErrorLevel
116 | return
117 | if !fname2create
118 | return
119 | fname2create := ValidateFilename(fname2create)
120 | IfExist, %sdir%\%fname2create%.scriptlet
121 | {
122 | gosub CompleteUpdate
123 | return
124 | }
125 | FileAppend, % defaultScriptlet, %sdir%\%fname2create%.scriptlet
126 | gosub CompleteUpdate
127 | _RC = 1
128 | Return
129 |
130 | CompleteUpdate:
131 | selectQ = %fname2create%
132 | gosub ListboxUpdate
133 | selectQ =
134 | if defaultScriptlet =
135 | gosub SelectLB
136 | return
137 |
138 | SubBut:
139 | Gui +OwnDialogs
140 | GuiControlGet, selected,, MainListbox
141 | if selected =
142 | return
143 | MsgBox, 52, %progName%, Are you sure you want to delete '%selected%'?
144 | IfMsgBox, No
145 | return
146 | FileDelete, %sdir%\%selected%.scriptlet
147 | fname2create =
148 | gosub CompleteUpdate
149 | return
150 |
151 | RenBut:
152 | Gui +OwnDialogs
153 | GuiControlGet, selected,, MainListbox
154 | if selected =
155 | return
156 | InputBox, fname2create, %progName%, Enter the new name of the scriptlet:,,,,,,,, %selected%
157 | if ErrorLevel
158 | return
159 | if !fname2create
160 | return
161 | if (fname2create = selected)
162 | return
163 | fname2create := ValidateFilename(fname2create)
164 | IfExist, %sdir%\%fname2create%.scriptlet
165 | {
166 | MsgBox, 48, %progName%, That name already exists!`nChoose another name please.
167 | return
168 | }
169 | FileMove, %sdir%\%selected%.scriptlet, %sdir%\%fname2create%.scriptlet
170 | gosub CompleteUpdate
171 | return
172 |
173 | ToolbarBut:
174 | GuiControlGet, selected,, MainListbox
175 | if selected =
176 | return
177 |
178 | FileAppend, `n=Scriptlet: %selected%|`%LOCALAHK`% tools\SUtility.ahk /insert "%selected%"||`%ICONRES`%`,12, %LocalSciTEPath%\UserToolbar.properties
179 | scite.Message(0x1000+2)
180 | return
181 |
182 | InsertBut:
183 | GuiControlGet, text2insert,, ScriptPane
184 | InsertDirect:
185 | if text2insert =
186 | return
187 | WinActivate, ahk_id %scitehwnd%
188 | scite.InsertText(text2insert)
189 | return
190 |
191 | SaveBut:
192 | GuiControlGet, fname2save,, MainListbox
193 | GuiControlGet, text2save,, ScriptPane
194 | FileDelete, %sdir%\%fname2save%.scriptlet
195 | FileAppend, % text2save, %sdir%\%fname2save%.scriptlet
196 | return
197 |
198 | OpenInSciTE:
199 | GuiControlGet, fname2open,, MainListbox
200 | if fname2open =
201 | return
202 | scite.OpenFile(sdir "\" fname2open ".scriptlet")
203 | return
204 |
205 | ListboxUpdate:
206 | te =
207 | Loop, %sdir%\*.scriptlet
208 | {
209 | SplitPath, A_LoopFileName,,,, sn
210 | if sn =
211 | continue
212 | te = %te%|%sn%
213 | if selectQ = %sn%
214 | te .= "|"
215 | }
216 | GuiControl,, MainListbox, % te
217 | return
218 |
219 | ValidateFilename(fn)
220 | {
221 | StringReplace, fn, fn, \, _, All
222 | StringReplace, fn, fn, /, _, All
223 | StringReplace, fn, fn, :, _, All
224 | StringReplace, fn, fn, *, _, All
225 | StringReplace, fn, fn, ?, _, All
226 | StringReplace, fn, fn, ", _, All
227 | StringReplace, fn, fn, <, _, All
228 | StringReplace, fn, fn, >, _, All
229 | StringReplace, fn, fn, |, _, All
230 | return fn
231 | }
232 |
--------------------------------------------------------------------------------
/source/tools/SciTEDiag.ahk:
--------------------------------------------------------------------------------
1 | ;
2 | ; SciTE4AutoHotkey Diagnostics Utility
3 | ;
4 |
5 | #NoEnv
6 | SetWorkingDir, %A_ScriptDir%
7 |
8 | oSciTE := GetSciTEInstance()
9 | if !oSciTE
10 | {
11 | MsgBox, 16, SciTE4AutoHotkey, Cannot find SciTE!
12 | ExitApp
13 | }
14 |
15 | SciTEDir := oSciTE.SciTEDir
16 | A_AhkBin := oSciTE.ResolveProp("AutoHotkey")
17 | A_AhkDir := oSciTE.ResolveProp("AutoHotkeyDir")
18 | textFont := oSciTE.ResolveProp("default.text.font")
19 |
20 | MsgBox, 36, SciTE Diagnostics Utility,
21 | (
22 | This program will list all the contents of the following folder and its subdirectories, which might contain sensitive information:
23 |
24 | %A_AhkDir%
25 |
26 | Additionally it will list all the active properties.
27 | You will be able to edit the generated text file in order to remove such information.
28 |
29 | Continue?
30 | )
31 |
32 | IfMsgBox, No
33 | ExitApp
34 |
35 | diagtext := "SciTE Diagnostic Info`n=====================`n`nSciTE dir: " SciTEDir
36 | . "`nAutoHotkey build: " GetAhkVer(A_AhkBin) "`nCurrent platform: " oSciTE.ActivePlatform "`n`n"
37 |
38 | RunWait, %comspec% /c tree /F /A "%A_AhkDir%" >> "%A_Temp%\Diag.txt",, Hide
39 | FileEncoding, % "CP" DllCall("GetOEMCP", "UInt")
40 | FileRead, ov, %A_Temp%\Diag.txt
41 | diagtext .= ov
42 | FileDelete, %A_Temp%\Diag.txt
43 | FileEncoding, UTF-8
44 |
45 | proptypes = dyn|local|directory|user|base|embed|abbrev
46 |
47 | Loop, Parse, proptypes, |
48 | {
49 | props := oSciTE.SendDirectorMsgRetArray("enumproperties:" A_LoopField)
50 | for prop in props
51 | AddProp(diagtext, prop.value)
52 | }
53 |
54 | Menu, MenuBar, Add, Save to file, FileSave
55 | Menu, MenuBar, Add, Copy to clipboard, ClipSave
56 |
57 | Gui, +Resize
58 | Gui, Menu, MenuBar
59 | Gui, Font, s10, %textFont%
60 | Gui, Add, Edit, x0 y0 w640 h480 vdiagtext, % diagtext
61 | Gui, Show, w640 h480, SciTE diagnostic info
62 | return
63 |
64 | GuiClose:
65 | ExitApp
66 |
67 | GuiSize:
68 | GuiControl, Move, diagtext, w%A_GuiWidth% h%A_GuiHeight%
69 | return
70 |
71 | FileSave:
72 | FileSelectFile, ov, S16,, Save file..., Text files (*.txt)
73 | if ErrorLevel
74 | return
75 |
76 | SplitPath, ov,, ovdir,, ovname
77 | ov := ovdir "\" ovname ".txt"
78 |
79 | Gui, Submit, NoHide
80 | FileDelete, %ov%
81 | FileAppend, % diagtext, %ov%
82 | MsgBox, 64, SciTE diagnostic tool, Diagnostic info successfully saved!
83 | return
84 |
85 | ClipSave:
86 | Gui, Submit, NoHide
87 | StringReplace, Clipboard, diagtext, `n, `r`n, All
88 | MsgBox, 64, SciTE diagnostic tool, Diagnostic info copied to clipboard!
89 | return
90 |
91 | GetAhkVer(ahk)
92 | {
93 | RunWait, "%ahk%" "%A_ScriptDir%\__AhkVer.ahk"
94 | FileRead, ov, %A_Temp%\__AhkVer.txt
95 | return ov
96 | }
97 |
98 | AddProp(ByRef ov, ByRef prop)
99 | {
100 | pos := InStr(prop, ":")
101 | type := SubStr(prop, 1, pos-1)
102 | prop := SubStr(prop, pos+1)
103 | pos := InStr(prop, "=")
104 | name := SubStr(prop, 1, pos-1)
105 | val := SubStr(prop, pos+1)
106 | ov .= "(" type ") " name "=" val "`n"
107 | }
108 |
--------------------------------------------------------------------------------
/source/tools/SciTEReload.ahk:
--------------------------------------------------------------------------------
1 | ;
2 | ; SciTE4AutoHotkey Reload Script
3 | ;
4 |
5 | #NoEnv
6 | SendMode, Input
7 | SetWorkingDir, %A_ScriptDir%\..\
8 |
9 | if 0 = 0
10 | {
11 | MsgBox, 16, SciTE4AutoHotkey, You mustn't run this script directly!
12 | ExitApp
13 | }
14 |
15 | hWnd = %1%
16 |
17 | IfWinExist, ahk_id %1%
18 | WinWaitClose
19 |
20 | Sleep, 1000
21 |
22 | Run, "%A_WorkingDir%\SciTE.exe"
23 |
--------------------------------------------------------------------------------
/source/tools/SciTEUpdate.ahk:
--------------------------------------------------------------------------------
1 | ;
2 | ; SciTE4AutoHotkey Updater
3 | ;
4 |
5 | #SingleInstance Off
6 | #NoEnv
7 | #NoTrayIcon
8 | SendMode Input
9 | SetWorkingDir, %A_ScriptDir%
10 |
11 | baseurl := "https://www.autohotkey.com/scite4ahk"
12 | isPortable := InStr(FileExist("..\user"), "D")
13 | today := SubStr(A_Now, 1, 8)
14 | if !isPortable
15 | LocalSciTEPath = %A_MyDocuments%\AutoHotkey\SciTE
16 | else
17 | LocalSciTEPath = %A_ScriptDir%\..\user
18 |
19 | if 1 = /silent
20 | isSilent := true
21 | if 1 = /doUpdate
22 | {
23 | if !A_IsAdmin
24 | ExitApp
25 | curRev = %2%
26 | toFetch = %3%
27 | curRev += 0
28 | toFetch += 0
29 | goto _doUpdate
30 | }
31 |
32 | if isSilent
33 | {
34 | FileRead, lastUpdate, %LocalSciTEPath%\$LASTUPDATE
35 | if (lastUpdate = today)
36 | ExitApp
37 | }
38 |
39 | curVer := GetSciTEVersion()
40 | if !curVer
41 | ExitApp
42 |
43 | f = %A_Temp%\%A_TickCount%.txt
44 | if !isSilent
45 | ToolTip, Fetching update info...
46 | try
47 | {
48 | URLDownloadToFile, %baseurl%/upd/version.txt, %f%
49 | FileRead, latestVer, %f%
50 | URLDownloadToFile, %baseurl%/upd/revision.txt, %f%
51 | FileRead, latestRev, %f%
52 | if !isSilent
53 | ToolTip
54 | }catch
55 | {
56 | if !isSilent
57 | {
58 | ToolTip
59 | MsgBox, 16, SciTE4AutoHotkey Updater, Can't connect to the Internet!
60 | }
61 | ExitApp
62 | }
63 |
64 | ; Guard against allegedly 'user friendly' proxies that block HTTP access to unauthorized websites
65 | if RegExMatch(latestVer, "[^0-9\.\-]") || RegExMatch(latestRev, "\D")
66 | {
67 | ; Bad luck, try again tomorrow
68 | FileDelete, %LocalSciTEPath%\$LASTUPDATE
69 | FileAppend, %today%, %LocalSciTEPath%\$LASTUPDATE
70 | ExitApp
71 | }
72 |
73 | if (curVer < latestVer)
74 | {
75 | MsgBox, 36, SciTE4AutoHotkey Updater,
76 | (LTrim
77 | There is a new SciTE4AutoHotkey version.
78 |
79 | Current version:`t%curVer%
80 | Latest version:`t%latestVer%
81 |
82 | Do you wish to download and install it? (a website will be opened)
83 | Keep in mind that your current version is no longer supported and
84 | you aren't able anymore to receive hotfixes and definition updates
85 | until you upgrade to the latest version.
86 | )
87 | IfMsgBox, Yes
88 | Run, %baseurl%/
89 | ExitApp
90 | }
91 |
92 | FileRead, curRev, ..\$REVISION
93 | if curRev =
94 | curRev := 0
95 |
96 | if (curRev >= latestRev)
97 | {
98 | FileDelete, %LocalSciTEPath%\$LASTUPDATE
99 | FileAppend, %today%, %LocalSciTEPath%\$LASTUPDATE
100 | if !isSilent
101 | MsgBox, 64, SciTE4AutoHotkey Updater, SciTE4AutoHotkey is up to date.
102 | ExitApp
103 | }
104 |
105 | toFetch := latestRev - curRev
106 |
107 | MsgBox, 36, SciTE4AutoHotkey Updater,
108 | (
109 | There are %toFetch% update(s) available for SciTE4AutoHotkey.
110 |
111 | Do you wish to download and install them?
112 | )
113 | IfMsgBox, No
114 | ExitApp
115 |
116 | CloseSciTE()
117 |
118 | if !isPortable && !A_IsAdmin
119 | {
120 | Run, *RunAs "%A_AhkPath%" "%A_ScriptFullPath%" /doUpdate %curRev% %toFetch%
121 | ExitApp
122 | }
123 |
124 | _doUpdate:
125 |
126 | Gui, Add, Text, x12 y10 w390 h20 vMainLabel, Please wait whilst updates are being processed...
127 | Gui, Add, ListView, x12 y30 w390 h180 NoSortHdr NoSort -LV0x10 LV0x1, #|Status|Title|Description
128 | Gui, Show, w411 h226, SciTE4AutoHotkey Updater
129 | Gui, +OwnDialogs
130 |
131 | Loop, % toFetch
132 | {
133 | i := curRev + A_Index
134 | LV_Add("", i, "Queued", "<>", "<>")
135 | }
136 | LV_ModifyCol()
137 |
138 | Loop, % toFetch
139 | {
140 | i := curRev + A_Index
141 | LV_Modify(A_Index, "", i, "Downloading...", "<>", "<>")
142 | LV_ModifyCol()
143 |
144 | try
145 | {
146 | URLDownloadToFile, %baseurl%/upd/%i%.bin, %A_Temp%\S4AHKupd_%i%.bin
147 |
148 | upd := new Update(A_Temp "\S4AHKupd_" i ".bin", "{912B7AED-660B-4BC4-8DA3-34E394D9BBBA}")
149 | LV_Modify(A_Index, "", i, "Running...", upd.title, upd.descr)
150 | LV_ModifyCol()
151 |
152 | updfold = %A_Temp%\SciTEUpdate%A_Now%
153 | FileCreateDir, %updfold%
154 | upd.Run(updfold)
155 | FileRemoveDir, %updfold%, 1
156 |
157 | IfExist, ..\$REVISION
158 | FileDelete, ..\$REVISION
159 | FileAppend, %i%, ..\$REVISION
160 |
161 | LV_Modify(A_Index, "", i, "Done!", upd.title, upd.descr)
162 | LV_ModifyCol()
163 |
164 | upd := ""
165 | }catch e
166 | {
167 | GuiControl,, MainLabel, There were errors during the update.
168 | updDone := 1
169 | MsgBox, 16, SciTE4AutoHotkey Updater, % "There was an error during the update!`n" e.message "`nwhat: " e.what "`nextra: " e.extra
170 | return
171 | }
172 | }
173 |
174 | FileDelete, %LocalSciTEPath%\$LASTUPDATE
175 | FileAppend, %today%, %LocalSciTEPath%\$LASTUPDATE
176 |
177 | GuiControl,, MainLabel, You may now close this window and reopen SciTE.
178 | updDone := 1
179 | MsgBox, 64, SciTE4AutoHotkey Updater, SciTE4AutoHotkey was successfully updated!
180 | return
181 |
182 | GuiClose:
183 | if !updDone
184 | {
185 | MsgBox, 48, SciTE4AutoHotkey Updater, You cannot stop the updating process.
186 | return
187 | }
188 | ExitApp
189 |
190 | /*
191 | Format of a SciTE4AutoHotkey update file:
192 |
193 | typedef struct
194 | {
195 | char magic[4]; // fUPD
196 | byte_t guid[16]; // program GUID
197 | int revision;
198 | int fileCount;
199 | int scriptFile;
200 | int infoOff;
201 | } updateHeader_t;
202 |
203 | typedef struct
204 | {
205 | int dataLen;
206 | byte_t data[dataLen];
207 | } updateFile_t;
208 |
209 | typedef struct
210 | {
211 | int nameLen, descrLen;
212 | char name[nameLen]; // UTF-8
213 | char descr[descrLen]; // UTF-8
214 | } updateInfo_t;
215 | */
216 |
217 | class Update
218 | {
219 | __New(filename, reqGUID)
220 | {
221 | f := FileOpen(filename, "r", "UTF-8-RAW")
222 | if f.Read(4) != "fUPD"
223 | throw Exception("Invalid update file!", 0, filename)
224 | if ReadGUID(f) != reqGUID
225 | throw Exception("Invalid update file!", 0, filename)
226 | this.f := f
227 | this.revision := f.ReadUInt()
228 | this.fileCount := f.ReadUInt()
229 | this.scriptID := f.ReadUInt()
230 | infoPos := f.ReadUInt()
231 | this.filePos := f.Pos
232 | f.Pos := infoPos
233 | titleLen := f.ReadUInt(), descrLen := f.ReadUInt()
234 | VarSetCapacity(buf, infoSize := titleLen + descrLen) ; + 2)
235 | f.RawRead(buf, infoSize)
236 | this.title := StrGet(&buf, titleLen, "UTF-8")
237 | this.descr := StrGet(&buf + titleLen, descrLen, "UTF-8")
238 | }
239 |
240 | Run(target)
241 | {
242 | sID := this.scriptID
243 | f := this.f
244 | f.Pos := this.filePos
245 | Loop, % this.fileCount
246 | {
247 | id := A_Index-1
248 | size := f.ReadUInt()
249 | if !size
250 | continue
251 | f2 := FileOpen(target "\" (id != sID ? id ".bin" : "update.ahk"), "w")
252 | VarSetCapacity(buf, size)
253 | f.RawRead(buf, size)
254 | f2.RawWrite(buf, size)
255 | f2 := ""
256 | }
257 | VarSetCapacity(buf, 0)
258 |
259 | FileCreateDir, %target%\Lib
260 | FileCopy, %A_ScriptDir%\Lib\SUpd.ahk, %target%\Lib\SUpd.ahk
261 |
262 | RunWait, "%A_AhkPath%" "%target%\update.ahk"
263 | if ErrorLevel != 0
264 | throw Exception("Update failed.", 0, "Revision " this.revision)
265 | }
266 |
267 | __Delete()
268 | {
269 | this.f.Close()
270 | }
271 | }
272 |
273 | GetSciTEVersion()
274 | {
275 | o := GetSciTEInstance()
276 | return o ? o.Version : ""
277 | }
278 |
279 | CloseSciTE()
280 | {
281 | o := GetSciTEInstance()
282 | if !o
283 | return
284 | hWnd := o.SciTEHandle
285 | o := ""
286 | WinClose, ahk_id %hwnd%
287 | WinWaitClose, ahk_id %hwnd%,, 5
288 | if ErrorLevel = 1
289 | ExitApp
290 | }
291 |
292 | ReadGUID(f)
293 | {
294 | VarSetCapacity(bGUID, 16)
295 | f.RawRead(bGUID, 16)
296 | VarSetCapacity(guid, 100)
297 | DllCall("ole32\StringFromGUID2", "ptr", &bGUID, "ptr", &guid, "int", 50)
298 | return StrGet(&guid, "UTF-16")
299 | }
300 |
--------------------------------------------------------------------------------
/source/tools/SmartGUI/grid.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fincs/SciTE4AutoHotkey/f194e5fbc7f0c04689fc39acb198d9ca9a46e7a9/source/tools/SmartGUI/grid.gif
--------------------------------------------------------------------------------
/source/tools/SmartGUI/smartgui.icl:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fincs/SciTE4AutoHotkey/f194e5fbc7f0c04689fc39acb198d9ca9a46e7a9/source/tools/SmartGUI/smartgui.icl
--------------------------------------------------------------------------------
/source/tools/SmartGUI/splash.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fincs/SciTE4AutoHotkey/f194e5fbc7f0c04689fc39acb198d9ca9a46e7a9/source/tools/SmartGUI/splash.gif
--------------------------------------------------------------------------------
/source/tools/WindowSpy.ahk:
--------------------------------------------------------------------------------
1 | ;
2 | ; Window Spy
3 | ;
4 |
5 | #NoEnv
6 | #NoTrayIcon
7 | #SingleInstance Ignore
8 | SetWorkingDir, %A_ScriptDir%
9 | SetBatchLines, -1
10 | CoordMode, Pixel, Screen
11 |
12 | IfExist, ..\toolicon.icl ; Seems useful enough to support standalone operation.
13 | Menu, Tray, Icon, ..\toolicon.icl, 9
14 |
15 | txtNotFrozen := "(Hold Ctrl or Shift to suspend updates)"
16 | txtFrozen := "(Updates suspended)"
17 | txtMouseCtrl := "Control Under Mouse Position"
18 | txtFocusCtrl := "Focused Control"
19 |
20 | Gui, New, hwndhGui AlwaysOnTop Resize MinSize
21 | Gui, Add, Text,, Window Title, Class and Process:
22 | Gui, Add, Checkbox, yp xp+200 w120 Right vCtrl_FollowMouse, Follow Mouse
23 | Gui, Add, Edit, xm w320 r4 ReadOnly -Wrap vCtrl_Title
24 | Gui, Add, Text,, Mouse Position:
25 | Gui, Add, Edit, w320 r4 ReadOnly vCtrl_MousePos
26 | Gui, Add, Text, w320 vCtrl_CtrlLabel, % txtFocusCtrl ":"
27 | Gui, Add, Edit, w320 r4 ReadOnly vCtrl_Ctrl
28 | Gui, Add, Text,, Active Window Position:
29 | Gui, Add, Edit, w320 r2 ReadOnly vCtrl_Pos
30 | Gui, Add, Text,, Status Bar Text:
31 | Gui, Add, Edit, w320 r2 ReadOnly vCtrl_SBText
32 | Gui, Add, Checkbox, vCtrl_IsSlow, Slow TitleMatchMode
33 | Gui, Add, Text,, Visible Text:
34 | Gui, Add, Edit, w320 r2 ReadOnly vCtrl_VisText
35 | Gui, Add, Text,, All Text:
36 | Gui, Add, Edit, w320 r2 ReadOnly vCtrl_AllText
37 | Gui, Add, Text, w320 r1 vCtrl_Freeze, % txtNotFrozen
38 | Gui, Show, NoActivate, Window Spy
39 | GetClientSize(hGui, temp)
40 | horzMargin := temp*96//A_ScreenDPI - 320
41 | SetTimer, Update, 250
42 | return
43 |
44 | GuiSize:
45 | Gui %hGui%:Default
46 | if !horzMargin
47 | return
48 | SetTimer, Update, % A_EventInfo=1 ? "Off" : "On" ; Suspend on minimize
49 | ctrlW := A_GuiWidth - horzMargin
50 | list = Title,MousePos,Ctrl,Pos,SBText,VisText,AllText,Freeze
51 | Loop, Parse, list, `,
52 | GuiControl, Move, Ctrl_%A_LoopField%, w%ctrlW%
53 | return
54 |
55 | Update:
56 | Gui %hGui%:Default
57 | GuiControlGet, Ctrl_FollowMouse
58 | CoordMode, Mouse, Screen
59 | MouseGetPos, msX, msY, msWin, msCtrl
60 | actWin := WinExist("A")
61 | if Ctrl_FollowMouse
62 | {
63 | curWin := msWin
64 | curCtrl := msCtrl
65 | WinExist("ahk_id " curWin)
66 | }
67 | else
68 | {
69 | curWin := actWin
70 | ControlGetFocus, curCtrl
71 | }
72 | WinGetTitle, t1
73 | WinGetClass, t2
74 | if (curWin = hGui || t2 = "MultitaskingViewFrame") ; Our Gui || Alt-tab
75 | {
76 | UpdateText("Ctrl_Freeze", txtFrozen)
77 | return
78 | }
79 | UpdateText("Ctrl_Freeze", txtNotFrozen)
80 | WinGet, t3, ProcessName
81 | WinGet, t4, PID
82 | UpdateText("Ctrl_Title", t1 "`nahk_class " t2 "`nahk_exe " t3 "`nahk_pid " t4)
83 | CoordMode, Mouse, Relative
84 | MouseGetPos, mrX, mrY
85 | CoordMode, Mouse, Client
86 | MouseGetPos, mcX, mcY
87 | PixelGetColor, mClr, %msX%, %msY%, RGB
88 | mClr := SubStr(mClr, 3)
89 | UpdateText("Ctrl_MousePos", "Screen:`t" msX ", " msY " (less often used)`nWindow:`t" mrX ", " mrY " (default)`nClient:`t" mcX ", " mcY " (recommended)"
90 | . "`nColor:`t" mClr " (Red=" SubStr(mClr, 1, 2) " Green=" SubStr(mClr, 3, 2) " Blue=" SubStr(mClr, 5) ")")
91 | UpdateText("Ctrl_CtrlLabel", (Ctrl_FollowMouse ? txtMouseCtrl : txtFocusCtrl) ":")
92 | if (curCtrl)
93 | {
94 | ControlGetText, ctrlTxt, %curCtrl%
95 | cText := "ClassNN:`t" curCtrl "`nText:`t" textMangle(ctrlTxt)
96 | ControlGetPos cX, cY, cW, cH, %curCtrl%
97 | cText .= "`n`tx: " cX "`ty: " cY "`tw: " cW "`th: " cH
98 | WinToClient(curWin, cX, cY)
99 | ControlGet, curCtrlHwnd, Hwnd,, % curCtrl
100 | GetClientSize(curCtrlHwnd, cW, cH)
101 | cText .= "`nClient:`tx: " cX "`ty: " cY "`tw: " cW "`th: " cH
102 | }
103 | else
104 | cText := ""
105 | UpdateText("Ctrl_Ctrl", cText)
106 | WinGetPos, wX, wY, wW, wH
107 | GetClientSize(curWin, wcW, wcH)
108 | UpdateText("Ctrl_Pos", "`tx: " wX "`ty: " wY "`tw: " wW "`th: " wH "`nClient:`tx: 0`ty: 0`tw: " wcW "`th: " wcH)
109 | sbTxt := ""
110 | Loop
111 | {
112 | StatusBarGetText, ovi, %A_Index%
113 | if ovi =
114 | break
115 | sbTxt .= "(" A_Index "):`t" textMangle(ovi) "`n"
116 | }
117 | StringTrimRight, sbTxt, sbTxt, 1
118 | UpdateText("Ctrl_SBText", sbTxt)
119 | GuiControlGet, bSlow,, Ctrl_IsSlow
120 | if bSlow
121 | {
122 | DetectHiddenText, Off
123 | WinGetText, ovVisText
124 | DetectHiddenText, On
125 | WinGetText, ovAllText
126 | }
127 | else
128 | {
129 | ovVisText := WinGetTextFast(false)
130 | ovAllText := WinGetTextFast(true)
131 | }
132 | UpdateText("Ctrl_VisText", ovVisText)
133 | UpdateText("Ctrl_AllText", ovAllText)
134 | return
135 |
136 | GuiClose:
137 | ExitApp
138 |
139 | WinGetTextFast(detect_hidden)
140 | {
141 | ; WinGetText ALWAYS uses the "Slow" mode - TitleMatchMode only affects the
142 | ; WinText/ExcludeText parameters. In "Fast" mode, GetWindowText() is used
143 | ; to retrieve the text of each control.
144 | WinGet controls, ControlListHwnd
145 | static WINDOW_TEXT_SIZE := 32767 ; Defined in AutoHotkey source.
146 | VarSetCapacity(buf, WINDOW_TEXT_SIZE * (A_IsUnicode ? 2 : 1))
147 | text := ""
148 | Loop Parse, controls, `n
149 | {
150 | if !detect_hidden && !DllCall("IsWindowVisible", "ptr", A_LoopField)
151 | continue
152 | if !DllCall("GetWindowText", "ptr", A_LoopField, "str", buf, "int", WINDOW_TEXT_SIZE)
153 | continue
154 | text .= buf "`r`n"
155 | }
156 | return text
157 | }
158 |
159 | UpdateText(ControlID, NewText)
160 | {
161 | ; Unlike using a pure GuiControl, this function causes the text of the
162 | ; controls to be updated only when the text has changed, preventing periodic
163 | ; flickering (especially on older systems).
164 | static OldText := {}
165 | global hGui
166 | if (OldText[ControlID] != NewText)
167 | {
168 | GuiControl, %hGui%:, % ControlID, % NewText
169 | OldText[ControlID] := NewText
170 | }
171 | }
172 |
173 | GetClientSize(hWnd, ByRef w := "", ByRef h := "")
174 | {
175 | VarSetCapacity(rect, 16)
176 | DllCall("GetClientRect", "ptr", hWnd, "ptr", &rect)
177 | w := NumGet(rect, 8, "int")
178 | h := NumGet(rect, 12, "int")
179 | }
180 |
181 | WinToClient(hWnd, ByRef x, ByRef y)
182 | {
183 | WinGetPos wX, wY,,, ahk_id %hWnd%
184 | x += wX, y += wY
185 | VarSetCapacity(pt, 8), NumPut(y, NumPut(x, pt, "int"), "int")
186 | if !DllCall("ScreenToClient", "ptr", hWnd, "ptr", &pt)
187 | return false
188 | x := NumGet(pt, 0, "int"), y := NumGet(pt, 4, "int")
189 | return true
190 | }
191 |
192 | textMangle(x)
193 | {
194 | if pos := InStr(x, "`n")
195 | x := SubStr(x, 1, pos-1), elli := true
196 | if StrLen(x) > 40
197 | {
198 | StringLeft, x, x, 40
199 | elli := true
200 | }
201 | if elli
202 | x .= " (...)"
203 | return x
204 | }
205 |
206 | ~*Ctrl::
207 | ~*Shift::
208 | SetTimer, Update, Off
209 | UpdateText("Ctrl_Freeze", txtFrozen)
210 | return
211 |
212 | ~*Ctrl up::
213 | ~*Shift up::
214 | SetTimer, Update, On
215 | return
216 |
--------------------------------------------------------------------------------
/source/tools/__AhkVer.ahk:
--------------------------------------------------------------------------------
1 | #NoTrayIcon
2 | #NoEnv
3 | FileDelete, %A_Temp%\__AhkVer.txt
4 | FileAppend, % "AutoHotkey v" A_AhkVersion (A_PtrSize ? A_PtrSize = 8 ? " (64-bit)" : " (32-bit " (A_IsUnicode ? "Unicode)" : "ANSI)") : " (Legacy)"), %A_Temp%\__AhkVer.txt
5 |
--------------------------------------------------------------------------------
/source/tools/s4ahk-big.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fincs/SciTE4AutoHotkey/f194e5fbc7f0c04689fc39acb198d9ca9a46e7a9/source/tools/s4ahk-big.png
--------------------------------------------------------------------------------
/source/tools/s4ahk-small.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/fincs/SciTE4AutoHotkey/f194e5fbc7f0c04689fc39acb198d9ca9a46e7a9/source/tools/s4ahk-small.png
--------------------------------------------------------------------------------
/syntaxgen/Common.ahk:
--------------------------------------------------------------------------------
1 | #Requires AutoHotkey v2-b+
2 |
3 | FileRewrite(path, contents) {
4 | try FileDelete path
5 | FileAppend contents, path, "`n"
6 | }
7 |
8 | ControlFlowCasing(item) {
9 | if item == 'Loop' or item ~= "^If.+"
10 | return item
11 | else
12 | return StrLower(item)
13 | }
14 |
15 | CreateKeywordList(arr) {
16 | build := "", cline := ""
17 | for x in arr {
18 | x := StrLower(x)
19 | pline := cline " " x
20 | if StrLen(pline) > 78 {
21 | build .= cline " \`n"
22 | cline := x
23 | } else {
24 | cline .= " " x
25 | }
26 | }
27 | return SubStr(build cline, 2) "`n"
28 | }
29 |
30 | CreateApiList(arr, prefix := "", suffix := "") {
31 | build := ""
32 | for x in arr {
33 | build .= prefix x suffix "`n"
34 | }
35 | return build
36 | }
37 |
38 | class Set extends Map {
39 | __New(p*) {
40 | super.__New()
41 | super.CaseSense := "Off"
42 | for x in p {
43 | this.Add(x)
44 | }
45 | }
46 |
47 | Add(value) {
48 | super[value] := true
49 | }
50 |
51 | Filter(other) {
52 | for key in other {
53 | try this.Delete(key)
54 | }
55 | }
56 |
57 | static FilterAll(sets*) {
58 | for cur in sets {
59 | Loop A_Index-1 {
60 | cur.Filter(sets[A_Index])
61 | }
62 | }
63 | }
64 | }
65 |
--------------------------------------------------------------------------------
/syntaxgen/CreateAhk1.ahk:
--------------------------------------------------------------------------------
1 | #Requires AutoHotkey v2-b+
2 | #Include "Common.ahk"
3 |
4 | FileEncoding "UTF-8-RAW"
5 | SetWorkingDir A_ScriptDir "\..\source"
6 |
7 | if A_PtrSize != 4 {
8 | MsgBox "This script only works with the 32-bit version of AutoHotkey."
9 | ExitApp
10 | }
11 |
12 | g_ahk2DocsPath := A_WorkingDir "\..\..\AutoHotkey_v1_Docs"
13 |
14 | sc := ComObject("ScriptControl"), sc.Language := "JScript"
15 | sc.AddCode(FileRead(g_ahk2DocsPath "\docs\static\source\data_index.js"))
16 | ji := sc.Eval("indexData")
17 | if !ji || !ji.length
18 | throw Error("Failed to read/parse data_index.js")
19 |
20 | g_directives := Set()
21 | g_controlFlow := Set()
22 | g_reserved := Set(
23 | "true", "false", "base", "extends", "__Get", "__Set", "__Call", "__Delete", "__New",
24 | "Parse", "Files", "Read", "Reg",
25 | "ahk_id", "ahk_class", "ahk_pid", "ahk_exe", "ahk_group",
26 | )
27 | g_knownVars := Set("this")
28 | g_knownFuncs := Set()
29 | g_knownCmds := Set()
30 |
31 | ignoreKeywords := Set("default")
32 |
33 | Loop ji.length {
34 | item_name := ji.%A_Index-1%.0
35 | item_path := ji.%A_Index-1%.1
36 | try item_type := ji.%A_Index-1%.2
37 | catch Any
38 | item_type := -1
39 |
40 | if !RegExMatch(item_name, "^(#?[a-zA-Z_][0-9a-zA-Z_]*)", &o) or ignoreKeywords.Has(o[1])
41 | continue
42 |
43 | /*
44 | 0 - directive
45 | 1 - built-in var
46 | 2 - built-in function
47 | 3 - control flow statement
48 | 4 - operator
49 | 5 - declaration
50 | 6 - command
51 | 99 - Ahk2Exe compiler
52 | */
53 |
54 | item_name := o[1]
55 | switch item_type {
56 | ; Directives
57 | case 0: g_directives.Add SubStr(item_name, 2) ; remove initial #
58 | case 1: g_knownVars.Add item_name
59 | case 2: g_knownFuncs.Add item_name
60 | case 6: g_knownCmds.Add item_name
61 | case 4,5: g_reserved.Add item_name
62 | case 3: g_controlFlow.Add ControlFlowCasing(item_name)
63 | }
64 | }
65 |
66 | ; Make sure each keyword is only in the first keyword set it appears in
67 | ;Set.FilterAll(g_controlFlow, g_reserved, g_knownFuncs, g_knownCmds, g_knownVars)
68 | Set.FilterAll(g_controlFlow, g_reserved, g_knownFuncs, g_knownVars)
69 | Set.FilterAll(g_controlFlow, g_reserved, g_knownCmds, g_knownVars)
70 |
71 | props := "# This file is autogenerated by " A_ScriptName " - DO NOT UPDATE MANUALLY`n`n"
72 | props .= "ahk1.keywords.directives=\`n"
73 | props .= CreateKeywordList(g_directives) "`n"
74 | props .= "ahk1.keywords.flow=\`n"
75 | props .= CreateKeywordList(g_controlFlow) "`n"
76 | props .= "ahk1.keywords.reserved=\`n"
77 | props .= CreateKeywordList(g_reserved) "`n"
78 | props .= "ahk1.keywords.known.vars=\`n"
79 | props .= CreateKeywordList(g_knownVars) "`n"
80 | props .= "ahk1.keywords.known.funcs=\`n"
81 | props .= CreateKeywordList(g_knownFuncs) "`n"
82 | props .= "ahk1.keywords.known.cmds=\`n"
83 | props .= CreateKeywordList(g_knownCmds)
84 |
85 | FileRewrite "ahk1.keywords.properties", props
86 |
87 | api := CreateApiList(g_directives, "#")
88 | api .= CreateApiList(g_controlFlow)
89 | api .= CreateApiList(g_reserved)
90 | api .= CreateApiList(g_knownVars)
91 | api .= CreateApiList(g_knownFuncs)
92 | api .= CreateApiList(g_knownCmds)
93 |
94 | FileRewrite "ahk1.standard.api", api
95 |
--------------------------------------------------------------------------------
/syntaxgen/CreateAhk2.ahk:
--------------------------------------------------------------------------------
1 | #Requires AutoHotkey v2-b+
2 | #Include "Common.ahk"
3 |
4 | FileEncoding "UTF-8-RAW"
5 | SetWorkingDir A_ScriptDir "\..\source"
6 |
7 | if A_PtrSize != 4 {
8 | MsgBox "This script only works with the 32-bit version of AutoHotkey."
9 | ExitApp
10 | }
11 |
12 | g_ahk2DocsPath := A_WorkingDir "\..\..\AutoHotkey_v2_Docs"
13 |
14 | sc := ComObject("ScriptControl"), sc.Language := "JScript"
15 | sc.AddCode(FileRead(g_ahk2DocsPath "\docs\static\source\data_index.js"))
16 | ji := sc.Eval("indexData")
17 | if !ji || !ji.length
18 | throw Error("Failed to read/parse data_index.js")
19 |
20 | ; XX: Overrides for expression-directives. For some reason these are tagged as
21 | ; taking a string, even though they really take an integer (or a boolean).
22 | g_directivesExpr := Set("ClipboardTimeout","HotIfTimeout","InputLevel","MaxThreads",
23 | "MaxThreadsBuffer","MaxThreadsPerHotkey","SuspendExempt","UseHook","WinActivateForce")
24 | g_directivesStr := Set()
25 |
26 | ; XX: Some of these have missing entries - manually add them in.
27 | ; We also recategorize true/false as reserved words, as they aren't actually variables.
28 | g_controlFlow := Set("Loop")
29 | g_reserved := Set("as", "contains", "false", "in", "IsSet", "super", "true", "unset")
30 | g_knownVars := Set("this", "ThisHotkey")
31 | g_knownFuncs := Set()
32 | g_knownClasses := Set()
33 |
34 | g_knownProps := Set(
35 | ; Meta-properties and other conventions
36 | "__Item", "__Class", "Ptr", "Size", "Handle", "Hwnd",
37 |
38 | ; Any
39 | "base",
40 |
41 | ; Func
42 | "Name", "IsBuiltIn", "IsVariadic", "MinParams", "MaxParams",
43 |
44 | ; Class
45 | "Prototype",
46 |
47 | ; Array
48 | "Length", "Capacity",
49 |
50 | ; Map
51 | "Count", "Capacity", "CaseSense", "Default",
52 |
53 | ; Error
54 | "Message", "What", "Extra", "File", "Line", "Stack",
55 |
56 | ; File
57 | "Pos", "Length", "AtEOF", "Encoding",
58 | )
59 |
60 | g_knownMethods := Set(
61 | ; Meta-methods and other conventions
62 | "__Init", "__New", "__Delete", "__Get", "__Set", "__Call", "__Enum", "Call",
63 |
64 | ; Any
65 | "GetMethod", "HasBase", "HasMethod", "HasProp",
66 |
67 | ; Object
68 | "Clone", "DefineProp", "DeleteProp", "GetOwnPropDesc", "HasOwnProp", "OwnProps",
69 |
70 | ; Func
71 | "Bind", "IsByRef", "IsOptional",
72 |
73 | ; Array
74 | "Clone", "Delete", "Has", "InsertAt", "Pop", "Push", "RemoveAt",
75 |
76 | ; Map
77 | "Clear", "Clone", "Delete", "Get", "Has", "Set",
78 |
79 | ; File
80 | "Read", "Write", "ReadLine", "WriteLine", "RawRead", "RawWrite", "Seek", "Close",
81 |
82 | )
83 |
84 | ; File methods
85 | for typ in ["UInt","Int","Int64","Short","UShort","Char","UChar","Double","Float"] {
86 | g_knownMethods.Add "Read" typ
87 | g_knownMethods.Add "Write" typ
88 | }
89 |
90 | ignoreKeywords := Set("byref", "default")
91 |
92 | Loop ji.length {
93 | item_name := ji.%A_Index-1%.0
94 | item_path := ji.%A_Index-1%.1
95 | try item_type := ji.%A_Index-1%.2
96 | catch Any
97 | item_type := -1
98 |
99 | if !RegExMatch(item_name, "^(#?[a-zA-Z_][0-9a-zA-Z_]*)", &o) or ignoreKeywords.Has(o[1])
100 | continue
101 |
102 | /*
103 | 0 - directive
104 | 1 - built-in var
105 | 2 - built-in function
106 | 3 - control flow statement
107 | 4 - operator
108 | 5 - declaration
109 | 6 - built-in class
110 | 99 - Ahk2Exe compiler
111 | */
112 |
113 | item_name := o[1]
114 | switch item_type {
115 | ; Directives
116 | case 0:
117 | item_name := SubStr(item_name, 2) ; remove initial #
118 | if InStr(ji.%A_Index-1%.3, 'E')
119 | g_directivesExpr.Add item_name
120 | else
121 | g_directivesStr.Add item_name
122 |
123 | ; Other keyword types
124 | case 1: g_knownVars.Add item_name
125 | case 2: g_knownFuncs.Add item_name
126 | case 6: g_knownClasses.Add item_name
127 | case 4,5: g_reserved.Add item_name
128 | case 3: g_controlFlow.Add ControlFlowCasing(item_name)
129 | }
130 | }
131 |
132 | try g_reserved.Delete "class"
133 |
134 | ; Make sure each keyword is only in the first keyword set it appears in
135 | Set.FilterAll(g_directivesExpr, g_directivesStr)
136 | Set.FilterAll(g_controlFlow, g_reserved, g_knownClasses, g_knownFuncs, g_knownVars)
137 | Set.FilterAll(g_knownMethods, g_knownProps)
138 |
139 | props := "# This file is autogenerated by " A_ScriptName " - DO NOT UPDATE MANUALLY`n`n"
140 | props .= "ahk2.keywords.directives.expr=\`n"
141 | props .= CreateKeywordList(g_directivesExpr) "`n"
142 | props .= "ahk2.keywords.directives.str=\`n"
143 | props .= CreateKeywordList(g_directivesStr) "`n"
144 | props .= "ahk2.keywords.flow=\`n"
145 | props .= CreateKeywordList(g_controlFlow) "`n"
146 | props .= "ahk2.keywords.reserved=\`n"
147 | props .= CreateKeywordList(g_reserved) "`n"
148 | props .= "ahk2.keywords.known.vars=\`n"
149 | props .= CreateKeywordList(g_knownVars) "`n"
150 | props .= "ahk2.keywords.known.funcs=\`n"
151 | props .= CreateKeywordList(g_knownFuncs) "`n"
152 | props .= "ahk2.keywords.known.classes=\`n"
153 | props .= CreateKeywordList(g_knownClasses) "`n"
154 | props .= "ahk2.keywords.known.props=\`n"
155 | props .= CreateKeywordList(g_knownProps) "`n"
156 | props .= "ahk2.keywords.known.methods=\`n"
157 | props .= CreateKeywordList(g_knownMethods)
158 |
159 | FileRewrite "ahk2.keywords.properties", props
160 |
161 | api := CreateApiList(["default", "class", "extends", "get", "set", "Parse", "Read", "Files", "Reg"])
162 | api .= CreateApiList(g_directivesExpr, "#")
163 | api .= CreateApiList(g_directivesStr, "#")
164 | api .= CreateApiList(g_controlFlow)
165 | api .= CreateApiList(g_reserved)
166 | api .= CreateApiList(g_knownVars)
167 | api .= CreateApiList(g_knownFuncs)
168 | api .= CreateApiList(g_knownClasses)
169 | api .= CreateApiList(g_knownProps, ".")
170 | api .= CreateApiList(g_knownMethods, ".")
171 |
172 | FileRewrite "ahk2.standard.api", api
173 |
--------------------------------------------------------------------------------
/syntaxgen/CreateKeys.ahk:
--------------------------------------------------------------------------------
1 | #Requires AutoHotkey v2-b+
2 | #Include "Common.ahk"
3 |
4 | FileEncoding "UTF-8-RAW"
5 | SetWorkingDir A_ScriptDir "\..\source"
6 |
7 | g_namedKeys := Set(
8 | ; --- Mouse ---
9 |
10 | ; General buttons
11 | 'LButton', 'RButton', 'MButton',
12 | ; Advanced buttons
13 | 'XButton1', 'XButton2',
14 | ; Wheel
15 | 'WheelDown', 'WheelUp', 'WheelLeft', 'WheelRight',
16 |
17 | ; --- Keyboard ---
18 |
19 | ; General keys
20 | 'CapsLock', 'Space', 'Tab', 'Enter', 'Escape', 'Esc', 'Backspace', 'BS',
21 | ; Cursor control keys
22 | 'ScrollLock', 'Delete', 'Del', 'Insert', 'Ins', 'Home', 'End', 'PgUp', 'PgDn',
23 | 'Up', 'Down', 'Left', 'Right',
24 | ; Named numpad keys
25 | 'NumpadIns', 'NumpadEnd', 'NumpadDown', 'NumpadPgDn', 'NumpadLeft', 'NumpadClear',
26 | 'NumpadRight', 'NumpadHome', 'NumpadUp', 'NumpadPgUp', 'NumpadDot', 'NumpadDel',
27 | 'NumLock', 'NumpadDiv', 'NumpadMult', 'NumpadAdd', 'NumpadSub', 'NumpadEnter',
28 | ; Modifier keys
29 | 'LWin', 'RWin', 'Control', 'Ctrl', 'Alt', 'Shift', 'LControl', 'LCtrl', 'RControl',
30 | 'RCtrl', 'LShift', 'RShift', 'LAlt', 'RAlt',
31 | ; Multimedia keys
32 | 'Browser_Back', 'Browser_Forward', 'Browser_Refresh', 'Browser_Stop', 'Browser_Search',
33 | 'Browser_Favorites', 'Browser_Home', 'Volume_Mute', 'Volume_Down', 'Volume_Up',
34 | 'Media_Next', 'Media_Prev', 'Media_Stop', 'Media_Play_Pause', 'Launch_Mail',
35 | 'Launch_Media', 'Launch_App1', 'Launch_App2',
36 | ; Other keys
37 | 'AppsKey', 'PrintScreen', 'CtrlBreak', 'Pause', 'Help', 'Sleep',
38 |
39 | ; --- Others ---
40 |
41 | ; Special AltTab actions (these aren't actually keys, but they are used as "remap" targets)
42 | 'AltTab', 'ShiftAltTab', 'AltTabMenu', 'AltTabAndMenu', 'AltTabMenuDismiss',
43 | )
44 |
45 | ; Add numbered numpad keys
46 | Loop 10
47 | g_namedKeys.Add('Numpad' (A_Index-1))
48 |
49 | ; Add function keys
50 | Loop 24
51 | g_namedKeys.Add('F' A_Index)
52 |
53 | props := "# This file is autogenerated by " A_ScriptName " - DO NOT UPDATE MANUALLY`n`n"
54 | props .= "ahk.keywords.named.keys=\`n"
55 | props .= CreateKeywordList(g_namedKeys)
56 |
57 | FileRewrite "ahk.keys.properties", props
58 |
59 | api := CreateApiList(g_namedKeys)
60 |
61 | FileRewrite "ahk.keys.api", api
62 |
--------------------------------------------------------------------------------