fix build under newer KConfig by bump cmake min version
							
								
								
									
										45
									
								
								3rdparty/scintilla552/CMakeLists.txt
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,45 @@
 | 
			
		||||
# this file is actually the CMake version of ScintillaEdit.pro
 | 
			
		||||
cmake_minimum_required(VERSION 3.10)
 | 
			
		||||
 | 
			
		||||
project(scintilla-qt)
 | 
			
		||||
 | 
			
		||||
find_package(Qt6 REQUIRED
 | 
			
		||||
    COMPONENTS Widgets Core5Compat
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
add_library(${PROJECT_NAME} SHARED)
 | 
			
		||||
 | 
			
		||||
set(CMAKE_CXX_STANDARD 17)
 | 
			
		||||
 | 
			
		||||
file(GLOB_RECURSE SRCS CONFIGURE_DEPENDS
 | 
			
		||||
    "${CMAKE_CURRENT_SOURCE_DIR}/scintilla/include/*.h"
 | 
			
		||||
    "${CMAKE_CURRENT_SOURCE_DIR}/scintilla/src/*.h"
 | 
			
		||||
    "${CMAKE_CURRENT_SOURCE_DIR}/scintilla/src/*.cxx"
 | 
			
		||||
    "${CMAKE_CURRENT_SOURCE_DIR}/scintilla/qt/ScintillaEditBase/*.h"
 | 
			
		||||
    "${CMAKE_CURRENT_SOURCE_DIR}/scintilla/qt/ScintillaEditBase/*.cpp"
 | 
			
		||||
    "${CMAKE_CURRENT_SOURCE_DIR}/scintilla/qt/ScintillaEdit/*.h"
 | 
			
		||||
    "${CMAKE_CURRENT_SOURCE_DIR}/scintilla/qt/ScintillaEdit/*.cpp"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
target_sources(${PROJECT_NAME}
 | 
			
		||||
PRIVATE
 | 
			
		||||
    ${SRCS}
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
target_compile_definitions(${PROJECT_NAME}
 | 
			
		||||
PRIVATE
 | 
			
		||||
    -DSCINTILLA_QT=1 -DMAKING_LIBRARY=1
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
target_include_directories(${PROJECT_NAME}
 | 
			
		||||
PUBLIC
 | 
			
		||||
    ${CMAKE_CURRENT_SOURCE_DIR}/scintilla/include
 | 
			
		||||
    ${CMAKE_CURRENT_SOURCE_DIR}/scintilla/src
 | 
			
		||||
    ${CMAKE_CURRENT_SOURCE_DIR}/scintilla/qt/ScintillaEditBase
 | 
			
		||||
    ${CMAKE_CURRENT_SOURCE_DIR}/scintilla/qt/ScintillaEdit
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
target_link_libraries(${PROJECT_NAME}
 | 
			
		||||
PUBLIC
 | 
			
		||||
    Qt::Widgets Qt::Core5Compat
 | 
			
		||||
)
 | 
			
		||||
							
								
								
									
										20
									
								
								3rdparty/scintilla552/README.md
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,20 @@
 | 
			
		||||
# About Scintilla
 | 
			
		||||
 | 
			
		||||
## Source
 | 
			
		||||
 | 
			
		||||
The vendored Scintilla source code is fetched from their official website [^1]. Version is 5.5.2. All vendored code are inside the `scintilla` folder.
 | 
			
		||||
 | 
			
		||||
[^1]: https://www.scintilla.org/ScintillaDownload.html
 | 
			
		||||
 | 
			
		||||
## How to update
 | 
			
		||||
 | 
			
		||||
To update the vendored code to the newer version, do the following steps.
 | 
			
		||||
 | 
			
		||||
1. Download the ZIP archive of the new version, unzip it and replace the `scintilla` folder.
 | 
			
		||||
2. Under `scintilla/qt/ScintillaEdit`, run `WidgetGen.py` to generate `ScintillaEdit.h` and `ScintillaEdit.cpp`.
 | 
			
		||||
3. Reconfigure project, start to build, and see if it fails. If so, review the change of `ScintillaEdit.pro` and see if we need to update the `CMakeLists.txt` in this folder (along with this `README.md` file).
 | 
			
		||||
4. Done, we can commit the change now.
 | 
			
		||||
 | 
			
		||||
The folder name that this sub-project lives at currently indicates the Scintilla version that we uses. If updated, consider also update the folder name as well.
 | 
			
		||||
 | 
			
		||||
The Lexilla project also depends on Scintilla's include files, so Lexilla's `CMakeLists.txt` also needs to be updated if the folder name changed.
 | 
			
		||||
							
								
								
									
										4
									
								
								3rdparty/scintilla552/scintilla/.editorconfig
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,4 @@
 | 
			
		||||
root = true
 | 
			
		||||
 | 
			
		||||
[**]
 | 
			
		||||
indent_style = tab
 | 
			
		||||
							
								
								
									
										6
									
								
								3rdparty/scintilla552/scintilla/.hg_archival.txt
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,6 @@
 | 
			
		||||
repo: bdf8c3ef2fb01ea24578e726337888e706d10b92
 | 
			
		||||
node: 89b33986893b9442cf354098725876d7470274ec
 | 
			
		||||
branch: default
 | 
			
		||||
latesttag: rel-5-5-2
 | 
			
		||||
latesttagdistance: 1
 | 
			
		||||
changessincelatesttag: 1
 | 
			
		||||
							
								
								
									
										48
									
								
								3rdparty/scintilla552/scintilla/.hgeol
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,48 @@
 | 
			
		||||
[patterns]
 | 
			
		||||
**.cxx = native
 | 
			
		||||
**.cpp = native
 | 
			
		||||
**.c = native
 | 
			
		||||
**.h = native
 | 
			
		||||
**.m = native
 | 
			
		||||
**.mm = native
 | 
			
		||||
**.iface = native
 | 
			
		||||
**.template = native
 | 
			
		||||
**.mk = native
 | 
			
		||||
**.py = native
 | 
			
		||||
**.rc = native
 | 
			
		||||
**.html = native
 | 
			
		||||
**.bat = native
 | 
			
		||||
**.mak = native
 | 
			
		||||
**.def = native
 | 
			
		||||
**.manifest = native
 | 
			
		||||
**.properties = native
 | 
			
		||||
**.styled = native
 | 
			
		||||
**.asp = native
 | 
			
		||||
**.php = native
 | 
			
		||||
**.vb = native
 | 
			
		||||
**.d = native
 | 
			
		||||
**.lua = native
 | 
			
		||||
**.nim = native
 | 
			
		||||
**.pl = native
 | 
			
		||||
**.p6 = native
 | 
			
		||||
**.rb = native
 | 
			
		||||
**.tcl = native
 | 
			
		||||
**.err = native
 | 
			
		||||
**.mms = native
 | 
			
		||||
**.tex = native
 | 
			
		||||
**.txt = native
 | 
			
		||||
**.pch = native
 | 
			
		||||
**.hgeol = native
 | 
			
		||||
**.dsp = native
 | 
			
		||||
**.sln = native
 | 
			
		||||
**.vcproj = native
 | 
			
		||||
**.pro = native
 | 
			
		||||
**.gen = native
 | 
			
		||||
**makefile = native
 | 
			
		||||
README = native
 | 
			
		||||
**.bmp = BIN
 | 
			
		||||
**.cur = BIN
 | 
			
		||||
**.ico = BIN
 | 
			
		||||
**.jpg = BIN
 | 
			
		||||
**.png = BIN
 | 
			
		||||
tgzsrc = LF
 | 
			
		||||
							
								
								
									
										81
									
								
								3rdparty/scintilla552/scintilla/.hgignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,81 @@
 | 
			
		||||
syntax: glob
 | 
			
		||||
*.o
 | 
			
		||||
*.a
 | 
			
		||||
*.asm
 | 
			
		||||
*.lib
 | 
			
		||||
*.obj
 | 
			
		||||
*.iobj
 | 
			
		||||
__pycache__
 | 
			
		||||
*.pyc
 | 
			
		||||
*.dll
 | 
			
		||||
*.so
 | 
			
		||||
*.dylib
 | 
			
		||||
*.framework
 | 
			
		||||
*.pyd
 | 
			
		||||
*.exe
 | 
			
		||||
*.exp
 | 
			
		||||
*.lib
 | 
			
		||||
*.pdb
 | 
			
		||||
*.ipdb
 | 
			
		||||
*.res
 | 
			
		||||
*.bak
 | 
			
		||||
*.sbr
 | 
			
		||||
*.suo
 | 
			
		||||
*.aps
 | 
			
		||||
*.sln
 | 
			
		||||
*.vcxproj.*
 | 
			
		||||
*.idb
 | 
			
		||||
*.bsc
 | 
			
		||||
*.intermediate.manifest
 | 
			
		||||
*.lastbuildstate
 | 
			
		||||
*.cache
 | 
			
		||||
*.ilk
 | 
			
		||||
*.ncb
 | 
			
		||||
*.tlog
 | 
			
		||||
*.sdf
 | 
			
		||||
gtk/*.plist
 | 
			
		||||
win32/*.plist
 | 
			
		||||
*.opt
 | 
			
		||||
*.plg
 | 
			
		||||
*.pbxbtree
 | 
			
		||||
*.mode1v3
 | 
			
		||||
*.pbxuser
 | 
			
		||||
*.pbproj
 | 
			
		||||
*.tgz
 | 
			
		||||
*.log
 | 
			
		||||
*.xcbkptlist
 | 
			
		||||
*.xcuserstate
 | 
			
		||||
xcuserdata/
 | 
			
		||||
*.xcsettings
 | 
			
		||||
xcschememanagement.plist
 | 
			
		||||
.DS_Store
 | 
			
		||||
Release
 | 
			
		||||
Debug
 | 
			
		||||
x64
 | 
			
		||||
ARM64
 | 
			
		||||
cocoa/build
 | 
			
		||||
cocoa/ScintillaFramework/build
 | 
			
		||||
cocoa/ScintillaTest/build
 | 
			
		||||
macosx/SciTest/build
 | 
			
		||||
*.cppcheck
 | 
			
		||||
Makefile.Debug
 | 
			
		||||
Makefile.Release
 | 
			
		||||
*_resource.rc
 | 
			
		||||
moc_*
 | 
			
		||||
*.pro.user
 | 
			
		||||
.qmake.stash
 | 
			
		||||
ScintillaEdit.cpp
 | 
			
		||||
ScintillaEdit.h
 | 
			
		||||
ScintillaConstants.py
 | 
			
		||||
ScintillaEditBase.intermediate.manifest
 | 
			
		||||
ScintillaEdit.intermediate.manifest
 | 
			
		||||
qt/*/Makefile
 | 
			
		||||
cov-int
 | 
			
		||||
.vs
 | 
			
		||||
meson-private
 | 
			
		||||
meson-logs
 | 
			
		||||
build.ninja
 | 
			
		||||
.ninja*
 | 
			
		||||
compile_commands.json
 | 
			
		||||
.vscode
 | 
			
		||||
VTune Profiler Results
 | 
			
		||||
							
								
								
									
										213
									
								
								3rdparty/scintilla552/scintilla/.hgtags
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,213 @@
 | 
			
		||||
01f406ccdce315e9870c44036e18ebf0fa74df22 rel-1-64
 | 
			
		||||
038d4e745187fddd764fda49b12b878ece14c0bd rel-1-63
 | 
			
		||||
03dff61592cf2abbabd9e383f1c8417af3e9d87b rel-1-34
 | 
			
		||||
11a62bd24819d0044dcf4b8621f79924cab781bd rel-1-56
 | 
			
		||||
1804bf43c2443fb8db7468a36e8022891dfc32c5 rel-1-73
 | 
			
		||||
1c4055eaf77fb0e2730adcba2b04a9c40318bdf1 rel-1-74
 | 
			
		||||
2abff14b87854b56df577a96d6d87e06bbb44251 rel-1-27
 | 
			
		||||
3a80173ef6320433ac4ab05ff97774f186d878ba rel-1-75
 | 
			
		||||
4107ec8a3a14b68b832dd12ce568d6517da063f1 rel-2-03
 | 
			
		||||
4479fb32e7238069d4ed81d7e586b6bcbc2a94ce rel-1-39
 | 
			
		||||
4af05ea4430505d34c9832313c1e5aaac7a54237 rel-1-61
 | 
			
		||||
4b0ff01c39b7b9c7aa65d1965bd49daaffe05ea8 rel-1-40
 | 
			
		||||
4ec090359e447b59d24c3e970fc9faede13ec187 rel-1-45
 | 
			
		||||
4f3e52891003743da45d4464020f59849240d278 rel-1-37
 | 
			
		||||
4f77dabcfbab1de33dc2ef89029a4536a1c6c697 rel-1-25
 | 
			
		||||
4ff6778c456258929c6f9074bdc03d90c28968bf rel-2-00
 | 
			
		||||
58c51367e4127167fe7be54681b788618732d65b rel-1-51
 | 
			
		||||
668816d0fd5d75dee228bca98b183969c4b1de53 rel-1-52
 | 
			
		||||
67a79ce06212780dc0592bbcf3a3172244cf18c8 rel-1-76
 | 
			
		||||
67aaa980e972a75e9aa11e1fbfe66b4b9c1d78fe rel-1-48
 | 
			
		||||
6a3e91c35d19e241621c10b2a37c6233e33c1c0a rel-1-66
 | 
			
		||||
6a3e91c35d19e241621c10b2a37c6233e33c1c0a rel-1-66-carbon
 | 
			
		||||
6aa816d746280a68821eb90efad0fb5f2d3b751e rel-1-35
 | 
			
		||||
6b44857e410f45ad5c9e9b48a481fb902c20a2dc rel-1-26
 | 
			
		||||
6b9c7f104c6160507212e5412ba79ecffc6f9057 initial
 | 
			
		||||
7681410bf25abb8fa8f51552fd61ec83bdf1a8b0 rel-1-65
 | 
			
		||||
7c87fe602c2c1fd973eb89675813192723f7f368 rel-1-30
 | 
			
		||||
85fbbc9b421bdc97a34bead08cdd34cf4c6271f3 rel-1-58
 | 
			
		||||
86d8875ed69c96026e9ec4b77fff3f9d369bfcb6 rel-1-60
 | 
			
		||||
87f60a6fb558871ef85a781e5d03321f77e1d11a rel-1-38
 | 
			
		||||
89b230d9f013855747841b3b3bc8b229259e0c81 rel-1-79
 | 
			
		||||
8af30946bc0ad1196ddf51b51545929cab3fa2e6 rel-1-69
 | 
			
		||||
8c2d64c399e5d823e2b2ef547a260357be0428c0 rel-1-54
 | 
			
		||||
8d11fc4c543f6228d73fa385ec9fca5723f8c832 rel-2-11
 | 
			
		||||
94801bf860900c9dde428db66c5e01a63e521c05 rel-1-44
 | 
			
		||||
988c66dff88ed44913d8d6303f7e136c19f5d6ea rel-2-02
 | 
			
		||||
9d268dfb34560f2aeb817148ca746814fd85115d rel-1-46
 | 
			
		||||
9e813ff6f15778dd6c6d2f6ab20f9aa8e91b2e47 rel-1-47
 | 
			
		||||
9eda4d6efdd657f2ce8ad1034bdd20998f573a40 rel-1-49
 | 
			
		||||
a313740fe8b8ee9df5cfc6f4bae7c665d160f4dd rel-1-78
 | 
			
		||||
a5905b21afdbee56912e039eeb2e2f7fdcf155df rel-1-42
 | 
			
		||||
ade751c9a7e7945e48428e32cdf41d6f7d189f08 rel-1-62
 | 
			
		||||
ae7bd57a9dcedb67467a4b43a27bdf802479bc9e rel-1-33
 | 
			
		||||
af2def618260df6bde2fdb3fd1f22ad532b18270 rel-1-77
 | 
			
		||||
b618c255982d76d4d554c456888cd705b1a52d33 rel-1-68
 | 
			
		||||
b6b5e68dd21fa2f5015e1b45f5b1880aa1c9ecef rel-1-55
 | 
			
		||||
bd0f312842328a1118c43ebd54899916f1009b86 rel-1-57
 | 
			
		||||
c019d05d7131f21ccf7abedb979ca29f2ff5fe32 rel-1-71
 | 
			
		||||
c2c0575d28f000d925d4c0ec689df9b1e572af2d rel-1-43
 | 
			
		||||
c6733869c489c4e39aeb84ffe5d28378e9fb121d rel-1-31
 | 
			
		||||
cc4d999c38f16be78e8ba54749bd4e3711b66882 rel-1-41
 | 
			
		||||
d125f70deea4580ead7cb72814bdb17ad9c16258 rel-1-36
 | 
			
		||||
d2316766e67ea2a10effe85e6e27ea7b520df409 rel-1-70
 | 
			
		||||
d940969f5c6f78c252ac110884aa89014c7d1349 rel-2-10
 | 
			
		||||
ed67316cd7395abf840d8c9d10eb6a23f693d4fc rel-1-28
 | 
			
		||||
ee4e67b4a9fe76e85230216340dc7eff3978fbf8 rel-1-59
 | 
			
		||||
f04248111a542b559402f0e08253b613d7dec849 rel-1-32
 | 
			
		||||
f394f7465aa354dfdea57599f8c7d0e424313144 rel-1-53
 | 
			
		||||
f4d4bb4d5fd70e9affe63460161cf2779f9dfdb3 rel-1-24
 | 
			
		||||
f6af29ca9c6e9ffd457d9f6b9477d03f2d944f64 rel-1-67
 | 
			
		||||
f99c7dfc2bffb16cd478633526b4cba883e266ab rel-2-12
 | 
			
		||||
fd3e6bb269b1c38e003202dc5856cf120667ed88 rel-1-72
 | 
			
		||||
fdf95390299493c05c0e11c3c2ef98293c552908 rel-1-50
 | 
			
		||||
fe112bae056a00c5e0b7218dd3903b16e3d43d24 rel-1-23
 | 
			
		||||
ffde119d297ecdce968737c68f0e21410a0c36c4 rel-2-20
 | 
			
		||||
bae0795bc8950108a5265dd3a1b231dbb1c0a92f rel-2-21
 | 
			
		||||
91d53a344450102a73387dd591cecc4294574891 rel-2-22
 | 
			
		||||
338e9c43eb8339b293aa5cb069aa84c60bbac6ba rel-2-23
 | 
			
		||||
3a0d1edb7ae5478426346dab2219e10606238bd0 rel-2-24
 | 
			
		||||
930e2f7d36165066fffd5cef6225c7774a2d7996 rel-2-25
 | 
			
		||||
221dae018a0dd86d4adc91370dfc507ca078b452 rel-2-26
 | 
			
		||||
02d0b25c22c3a4d672aca5fa37b3e5bffc30fa32 rel-2-27
 | 
			
		||||
265b4ffceb4a356fd7917ce938051e8a206bac3e rel-2-28
 | 
			
		||||
6f590a14726334be3256c55e8bab9119c71f3160 rel-2-29
 | 
			
		||||
7a59b936e02452b66dff32264e5bc72c038ade19 rel-3-0-0
 | 
			
		||||
ad485b918c5a81dbf591eab1916afa3d600b0639 rel-3-0-1
 | 
			
		||||
16f620503ab2e3ae463e39c36f897385fd73b9d1 rel-3-0-2
 | 
			
		||||
d147d5b894708a5c7d3e7b81513fe02f0075e62c rel-3-0-3
 | 
			
		||||
2faf55888eeb76e40d5b286cd45f4f40c331b1c2 rel-3-0-4
 | 
			
		||||
a9219577729080874f5f46e0a634d5d117cc2eed rel-3-1-0
 | 
			
		||||
ae4d2f897a8fd92294f61d4d56e90e7700a912df rel-3-2-0
 | 
			
		||||
41bdec833d4a9bb108bd3e4890371b22d1132f1a rel-3-2-1
 | 
			
		||||
183c117293e78c4264dca7afac9f66cb5d585ddc rel-3-2-2
 | 
			
		||||
7d54d6d61ace06828cb0850b53a8008672d67f33 rel-3-2-3
 | 
			
		||||
1092d3d2495955cfe1a227e360e14d5358b5136f rel-3-2-4
 | 
			
		||||
74f6ed8c5737db179f791d6fe6cab2dc119f65fb rel-3-2-5
 | 
			
		||||
04c9afc26342f4c1b9492c4b27efb33585d6a56d rel-3-3-0
 | 
			
		||||
5f9c0934513bf8d9dfe64127ad19cb95800415e9 scitex-3-3-0
 | 
			
		||||
d2022a5e4948379ab0aa89b510b850209d6cbb01 rel-3-3-1
 | 
			
		||||
d887fce163757c50ec95ed204d50b02675db830c rel-3-3-2
 | 
			
		||||
1cd0ebd585926933259e776ac380ef17a20e2d5d rel-3-3-3
 | 
			
		||||
e1c3afb1c5d42c664558839b1d68ed4dcc50e5d1 rel-3-3-4
 | 
			
		||||
c343e43079c4458fae69f82ff3b6569b7bba0821 rel-3-3-5
 | 
			
		||||
da3cbb774e02f626fd9ee5446608f0f63665042a rel-3-3-6
 | 
			
		||||
5693714a8b0b30e481ba4f089f2ecc93fc80c80d rel-3-3-7
 | 
			
		||||
61cdae165698c4b904349094f596ae519c5be6a0 rel-3-3-8
 | 
			
		||||
d086394244f486c3f628518db177c265d694b8e7 rel-3-3-9
 | 
			
		||||
eea0ac7e5c8ff58e3145ddbb8b271c51965780bf rel-3-4-0
 | 
			
		||||
e73e34b23c598ab42e44e77141f6138555ed9d62 rel-3-4-1
 | 
			
		||||
a4286bbf7081a4eb570bc62a9e5f7beef51e83a1 rel-3-4-2
 | 
			
		||||
a3c10db89cc33783cf5a0c8d76d482bb1434af89 rel-3-4-3
 | 
			
		||||
0df282b2c489231eb4fdc2cdaa6dfb7f6283a9c0 rel-3-4-4
 | 
			
		||||
a431f85e13c9499923b79d4890e8642604863a27 rel-3-5-0
 | 
			
		||||
01c4696a39a913866f9852e06aff66d48ff39722 rel-3-5-1
 | 
			
		||||
a797ff255bdf2085f0475b9202527da6a16d507a rel-3-5-2
 | 
			
		||||
8b21bf82adac0a3fe9923b7148d183b7a6792dde rel-3-5-3
 | 
			
		||||
16ffc2a3ae1554d2c49513a44188224f8235f13c rel-3-5-4
 | 
			
		||||
1916c3602692d06f410df15b100b55ee79ae46f9 rel-3-5-5
 | 
			
		||||
1916c3602692d06f410df15b100b55ee79ae46f9 rel-3-5-5
 | 
			
		||||
0000000000000000000000000000000000000000 rel-3-5-5
 | 
			
		||||
0000000000000000000000000000000000000000 rel-3-5-5
 | 
			
		||||
dea417bad80a9225d72b4f839ab04b1f7ffd936f rel-3-5-5
 | 
			
		||||
e9bfc7a0cb83a972e8bfa5dbaa8aabd359549b57 rel-3-5-6
 | 
			
		||||
49ce1d4c2dea737f1e4c92858921dd403a61cb20 rel-3-5-7
 | 
			
		||||
87a4e0fa293ec1dc47d9d4d4288a139a5e240c6f rel-3-6-0
 | 
			
		||||
59165fbb6b9d51efae82d13ce1c4471310b90bde rel-3-6-1
 | 
			
		||||
d906ba5d62cbb79a3b25d29aa4dae3f3d1fdf22a rel-3-6-2
 | 
			
		||||
e575024931f89fbc70e06d1faaf73a2e8721a2da rel-3-6-3
 | 
			
		||||
d2d4928e3e6a3e79ed7dbfd949968d5fc9818424 rel-3-6-4
 | 
			
		||||
afd67be6f0b141ba23be25ea1f472258bb4d976f rel-3-6-5
 | 
			
		||||
bfdfb44eb77717778c7a3ac2c3726903e66c81b8 rel-3-6-6
 | 
			
		||||
f9ff5b9b1a485d742fb7bfae14ba323a3f990663 rel-3-6-7
 | 
			
		||||
13cdacbbe2515620b0f582c4c274b17cae06180c rel-3-7-0
 | 
			
		||||
a7dfda6c85859a9aa9f5c4ae43af005d3b7ce5fb rel-3-7-1
 | 
			
		||||
e02540a3097449da69003d37c116c9b2104e3448 rel-3-7-2
 | 
			
		||||
e99b1a2bfbf808a12ec988bcab2121b6c4cbb556 rel-3-7-3
 | 
			
		||||
535c34f64993f3ef7367e773950e22a37d2475be rel-3-7-4
 | 
			
		||||
535c34f64993f3ef7367e773950e22a37d2475be rel-3-7-4
 | 
			
		||||
0000000000000000000000000000000000000000 rel-3-7-4
 | 
			
		||||
0000000000000000000000000000000000000000 rel-3-7-4
 | 
			
		||||
ddcae5344fa5390b352c1075d01e95379e145b43 rel-3-7-4
 | 
			
		||||
7c0d4e81e9388f87a648208b834f58516797be31 rel-3-7-5
 | 
			
		||||
ec8e68de4ddba09c062e427e774355a2f8c6e1c0 rel-4-0-0
 | 
			
		||||
bd5c44cb0ab8518410475a9c0f48935e1b9f6c11 rel-4-0-1
 | 
			
		||||
96becb885ce4f0e9c95286128713d503bf2644fd rel-4-0-2
 | 
			
		||||
1bf8b7c5099584e8a267a96f1a361e59a48f62b7 rel-4-0-3
 | 
			
		||||
d48bdae67b339304c76435aa4ba4d6fe9176848a rel-4-0-4
 | 
			
		||||
b9ab83221b03910ae4c6871bf61cf3b138abae2c rel-4-0-5
 | 
			
		||||
0dc20d87a4f93ea3d51469c7f0ae5afe136b8473 rel-4-1-0
 | 
			
		||||
892c361b3969dcd7919db73dea54c40793218288 rel-4-1-1
 | 
			
		||||
892c361b3969dcd7919db73dea54c40793218288 rel-4-1-1
 | 
			
		||||
0000000000000000000000000000000000000000 rel-4-1-1
 | 
			
		||||
0000000000000000000000000000000000000000 rel-4-1-1
 | 
			
		||||
fcf47c3528327f7c29332bee7b06478e130b4c45 rel-4-1-1
 | 
			
		||||
927e7d62e9177d09711bf9dce41f28842bbbdc5c rel-4-1-2
 | 
			
		||||
1484a537b3803312278ace83c334b34178be3f76 rel-4-1-3
 | 
			
		||||
cd35899fef5ea18e099c61577daf1133cd21bed4 rel-4-1-4
 | 
			
		||||
cd35899fef5ea18e099c61577daf1133cd21bed4 rel-4-1-4
 | 
			
		||||
45a4a9d10821af1f925727ed4c5725888752d233 rel-4-1-4
 | 
			
		||||
72074cd809c599d30230126b9f07ec2ee752a4d8 rel-4-1-5
 | 
			
		||||
72074cd809c599d30230126b9f07ec2ee752a4d8 rel-4-1-5
 | 
			
		||||
0000000000000000000000000000000000000000 rel-4-1-5
 | 
			
		||||
0000000000000000000000000000000000000000 rel-4-1-5
 | 
			
		||||
6a6bf370ae9ff7771331e1cc2cc1a1adf5bc9e00 rel-4-1-5
 | 
			
		||||
6ccb029fd955cc69c186acd5b3e677e01f4590e3 rel-4-1-6
 | 
			
		||||
8fdc0159b0df23b8b1d5abc31c80b757aa206a44 rel-4-1-7
 | 
			
		||||
70fe3bd38a3d8567acdb57a7d554f3c78aea6315 rel-4-2-0
 | 
			
		||||
4f8c3b19095af4f0d333f1b6aa1ff1e3a69d9f4c rel-4-2-1
 | 
			
		||||
1b8ce5991cb9e5c27fe2701e6d61c35e697e7207 rel-4-2-2
 | 
			
		||||
01a9cbbef0f001bc38bead54c9e993e1f35c3977 rel-4-2-3
 | 
			
		||||
7137777f9be8bbdd6eacf3b17b6778eb2e7fa4fe rel-4-3-0
 | 
			
		||||
32e2c934bcc6d09c711958eab8e924851fd82bd3 rel-4-3-1
 | 
			
		||||
c4e53c985ef6fdf0c4ef660a8c39d8976c42a921 rel-4-3-2
 | 
			
		||||
4c6aee014e729256c92dc836a661c73eae0fc79a rel-4-3-3
 | 
			
		||||
12e2a7acacecd22d7ec4b0d18f99452f77f7b5b0 rel-4-4-0
 | 
			
		||||
41a534b0add8069329e3ccaf6d933fbfaf0078e5 rel-4-4-2
 | 
			
		||||
e454eae1f1eb65e6a9676696540358cbcad47b25 rel-4-4-3
 | 
			
		||||
f422793aa52f30e0ff6c9a9261303ce2b97be30b rel-4-4-4
 | 
			
		||||
71b428eed36a7f52a07cbcbd31979c2340f8d925 rel-4-4-5
 | 
			
		||||
64a5230d30ba2385450a3323d4e79b05ce261096 rel-4-4-6
 | 
			
		||||
64a5230d30ba2385450a3323d4e79b05ce261096 rel-4-4-6
 | 
			
		||||
0000000000000000000000000000000000000000 rel-4-4-6
 | 
			
		||||
0000000000000000000000000000000000000000 rel-4-4-6
 | 
			
		||||
1b54292f459098031062d16af79f0eef4e785cd0 rel-4-4-6
 | 
			
		||||
70561ad12a873e641720cb8a60286a49b1a7c951 start-5
 | 
			
		||||
8c2f906208a2f6de5b8d07e4a5e0033ac639a1f6 rel-5-0-0
 | 
			
		||||
6b462b5bd706461acfd6b81c4484794710dd0299 start-platform-changes
 | 
			
		||||
91a02e4309053a9fb6d05a3d1586d7217168ae95 rel-5-0-1
 | 
			
		||||
91a02e4309053a9fb6d05a3d1586d7217168ae95 rel-5-0-1
 | 
			
		||||
52d56f79dc0f38a401457d81ff61a5006142ba65 rel-5-0-1
 | 
			
		||||
5b51130729ea2c0971d3d6ce608c08a64a44f8d1 rel-5-0-2
 | 
			
		||||
e4a0d6eb9c84702e9e9ca6a79d079412a7e6d173 rel-5-0-3
 | 
			
		||||
b152bb68c5843e368e217809fba5dd1b122367ce rel-5-1-0
 | 
			
		||||
8075a4c6e184836186f0bc997dfa5d57d475bd20 rel-5-1-1
 | 
			
		||||
b45f5b5ee3e3b4de00e47093a478c83b931ac534 rel-5-1-2
 | 
			
		||||
beeb51d2c64560c6db7554c0e291a322eea5c3bd rel-5-1-3
 | 
			
		||||
ae7f6a2ad9ad485d58845248987262c3a6962d8b rel-5-1-4
 | 
			
		||||
c9556e17e892216db2a5734903fc6dbe57110a0c rel-5-1-5
 | 
			
		||||
b6b3e7f6ef41ce8b3efe3c22d96adfc854763a81 rel-5-2-0
 | 
			
		||||
c37b11edab223903183f0471c3463507dc9669d8 rel-5-2-1
 | 
			
		||||
2d3ce0c81e64818c79e560da1e1bf7185e650880 rel-5-2-2
 | 
			
		||||
03d65839fa48877340bdac4b40a4aca467ef06a7 rel-5-2-3
 | 
			
		||||
7dd0480eccaa12ea7f8e799005a748f4b3aa3669 rel-5-2-4
 | 
			
		||||
dddfab2f1d052afc677cb6e693d1d859877e45b7 rel-5-3-0
 | 
			
		||||
072c537a8b358e670e57744b3b17d41feab35370 rel-5-3-1
 | 
			
		||||
cd20da25b81f68b300143828ab94887448dac385 rel-5-3-2
 | 
			
		||||
da729553c76b8769b7400a381b1785cee50216a1 rel-5-3-3
 | 
			
		||||
10f4ff8763bc0b2c862bc1732fe940472e07cc5a rel-5-3-4
 | 
			
		||||
1c5360ebe7b0c824c535d0d10a788be573b3adc3 rel-5-3-5
 | 
			
		||||
57bcb62d635cc6bd2ef8c295fc2a53c5d86a433f rel-5-3-6
 | 
			
		||||
540baa6ea9e0a08eadf952e6d944d04fa74b5d5c rel-5-3-7
 | 
			
		||||
540baa6ea9e0a08eadf952e6d944d04fa74b5d5c rel-5-3-7
 | 
			
		||||
0000000000000000000000000000000000000000 rel-5-3-7
 | 
			
		||||
0000000000000000000000000000000000000000 rel-5-3-7
 | 
			
		||||
cc94762d429e3e2b1cd25c1e4337200ff4acb676 rel-5-3-7
 | 
			
		||||
14acdf9e85ac028eea63e8504b5af42f3462ffd3 rel-5-3-8
 | 
			
		||||
d5477c63f5f60a2869a1b46cafb1687c020701f9 rel-5-4-0
 | 
			
		||||
07bf3219bad2334df18cbc1c5e778d2e694331dc rel-5-4-1
 | 
			
		||||
741427d54cd52799a697ee93fc13e406fd5d7d48 rel-5-4-2
 | 
			
		||||
c171b756efc76359f0795ca0a1bfb7eb16d4c04b rel-5-4-3
 | 
			
		||||
3a219b13a5d88a9e1bfe6ff76c91a07e08e59003 rel-5-5-0
 | 
			
		||||
26e6c52345337236815c1221c99a4540c78596c5 rel-5-5-1
 | 
			
		||||
8d3fb4e5905454cc46a33141d07654dddfeb3b44 rel-5-5-2
 | 
			
		||||
							
								
								
									
										20
									
								
								3rdparty/scintilla552/scintilla/CONTRIBUTING
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,20 @@
 | 
			
		||||
Fixes should be posted to the Bug Tracker
 | 
			
		||||
http://sourceforge.net/p/scintilla/bugs/
 | 
			
		||||
 | 
			
		||||
Features should be posted to the Feature Request Tracker
 | 
			
		||||
http://sourceforge.net/p/scintilla/feature-requests/
 | 
			
		||||
 | 
			
		||||
Either send unified diffs (or patch files) or zip archives with whole files.
 | 
			
		||||
Mercurial patch files are best as they include author information and commit
 | 
			
		||||
messages.
 | 
			
		||||
 | 
			
		||||
Questions should go to the scintilla-interest mailing list
 | 
			
		||||
https://groups.google.com/forum/#!forum/scintilla-interest
 | 
			
		||||
 | 
			
		||||
Code should follow the guidelines at
 | 
			
		||||
http://www.scintilla.org/SciCoding.html
 | 
			
		||||
 | 
			
		||||
Do not use SourceForge's Merge Request mechanism or message sending
 | 
			
		||||
feature as no one is monitoring these.
 | 
			
		||||
The neilh @ scintilla.org account receives much spam and is only checked
 | 
			
		||||
occasionally. Almost all Scintilla mail should go to the mailing list.
 | 
			
		||||
							
								
								
									
										20
									
								
								3rdparty/scintilla552/scintilla/License.txt
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,20 @@
 | 
			
		||||
License for Lexilla, Scintilla, and SciTE
 | 
			
		||||
 | 
			
		||||
Copyright 1998-2021 by Neil Hodgson <neilh@scintilla.org>
 | 
			
		||||
 | 
			
		||||
All Rights Reserved
 | 
			
		||||
 | 
			
		||||
Permission to use, copy, modify, and distribute this software and its
 | 
			
		||||
documentation for any purpose and without fee is hereby granted,
 | 
			
		||||
provided that the above copyright notice appear in all copies and that
 | 
			
		||||
both that copyright notice and this permission notice appear in
 | 
			
		||||
supporting documentation.
 | 
			
		||||
 | 
			
		||||
NEIL HODGSON DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS
 | 
			
		||||
SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
 | 
			
		||||
AND FITNESS, IN NO EVENT SHALL NEIL HODGSON BE LIABLE FOR ANY
 | 
			
		||||
SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
 | 
			
		||||
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
 | 
			
		||||
WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
 | 
			
		||||
TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE
 | 
			
		||||
OR PERFORMANCE OF THIS SOFTWARE.
 | 
			
		||||
							
								
								
									
										92
									
								
								3rdparty/scintilla552/scintilla/README
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,92 @@
 | 
			
		||||
README for building of Scintilla, Lexilla, and SciTE
 | 
			
		||||
 | 
			
		||||
Scintilla and Lexilla can be built by themselves.
 | 
			
		||||
To build SciTE, Scintilla and Lexilla should first be built.
 | 
			
		||||
 | 
			
		||||
See lexilla/README for information on building Lexilla.
 | 
			
		||||
 | 
			
		||||
*** GTK+/Linux version ***
 | 
			
		||||
 | 
			
		||||
You must first have GTK+ 2.24 or later and GCC (7.1 or better) installed.
 | 
			
		||||
Clang may be used by adding CLANG=1 to the make command line.
 | 
			
		||||
Other C++ compilers may work but may require tweaking the make file.
 | 
			
		||||
Either GTK+ 2.x or 3.x may be used with 2.x the default and 3.x
 | 
			
		||||
chosen with the make argument GTK3=1.
 | 
			
		||||
 | 
			
		||||
To build Scintilla, use the makefile located in the scintilla/gtk directory
 | 
			
		||||
	cd scintilla/gtk
 | 
			
		||||
	make
 | 
			
		||||
	cd ../..
 | 
			
		||||
 | 
			
		||||
To build and install SciTE, use the makefile located in the scite/gtk directory
 | 
			
		||||
	cd scite/gtk
 | 
			
		||||
	make
 | 
			
		||||
	sudo make install
 | 
			
		||||
 | 
			
		||||
This installs SciTE into $prefix/bin. The value of $prefix is determined from
 | 
			
		||||
the location of Gnome if it is installed. This is usually /usr if installed
 | 
			
		||||
with Linux or /usr/local if built from source. If Gnome is not installed
 | 
			
		||||
/usr/bin is used as the prefix. The prefix can be overridden on the command
 | 
			
		||||
line like "make prefix=/opt" but the same value should be used for both make
 | 
			
		||||
and make install as this location is compiled into the executable. The global
 | 
			
		||||
properties file is installed at $prefix/share/scite/SciTEGlobal.properties.
 | 
			
		||||
The language specific properties files are also installed into this directory.
 | 
			
		||||
 | 
			
		||||
To remove SciTE
 | 
			
		||||
	sudo make uninstall
 | 
			
		||||
 | 
			
		||||
To clean the object files which may be needed to change $prefix
 | 
			
		||||
	make clean
 | 
			
		||||
 | 
			
		||||
The current make file supports static and dynamic linking between SciTE, Scintilla, and Lexilla.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
*** Windows version ***
 | 
			
		||||
 | 
			
		||||
A C++ 17 compiler is required.
 | 
			
		||||
Visual Studio 2019 is the development system used for most development
 | 
			
		||||
although Mingw-w64 9.2 is also supported.
 | 
			
		||||
 | 
			
		||||
To build Scintilla, make in the scintilla/win32 directory
 | 
			
		||||
		cd scintilla\win32
 | 
			
		||||
GCC:		mingw32-make
 | 
			
		||||
Visual C++:	nmake -f scintilla.mak
 | 
			
		||||
		cd ..\..
 | 
			
		||||
 | 
			
		||||
To build SciTE, use the makefiles located in the scite/win32 directory
 | 
			
		||||
		cd scite\win32
 | 
			
		||||
GCC:		mingw32-make
 | 
			
		||||
Visual C++: 	nmake -f scite.mak
 | 
			
		||||
 | 
			
		||||
An executable SciTE will now be in scite/bin.
 | 
			
		||||
 | 
			
		||||
*** GTK+/Windows version ***
 | 
			
		||||
 | 
			
		||||
Mingw-w64 is known to work. Other compilers will probably not work.
 | 
			
		||||
 | 
			
		||||
Only Scintilla will build with GTK+ on Windows. SciTE will not work.
 | 
			
		||||
 | 
			
		||||
Make builds both a static library version of Scintilla with lexers (scintilla.a) and
 | 
			
		||||
a shared library without lexers (libscintilla.so or or libscintilla.dll).
 | 
			
		||||
 | 
			
		||||
To build Scintilla, make in the scintilla/gtk directory
 | 
			
		||||
	cd scintilla\gtk
 | 
			
		||||
	mingw32-make
 | 
			
		||||
 | 
			
		||||
*** macOS Cocoa version ***
 | 
			
		||||
 | 
			
		||||
Xcode 9.2 or later may be used to build Scintilla on macOS.
 | 
			
		||||
 | 
			
		||||
There is no open source version of SciTE for macOS but there is a commercial
 | 
			
		||||
version available through the App Store.
 | 
			
		||||
 | 
			
		||||
To build Scintilla, run xcodebuild in the scintilla/cocoa/ScintillaFramework or 
 | 
			
		||||
scintilla/cocoa/Scintilla directory
 | 
			
		||||
 | 
			
		||||
        cd cocoa/Scintilla
 | 
			
		||||
 | 
			
		||||
	xcodebuild
 | 
			
		||||
 | 
			
		||||
*** Qt version ***
 | 
			
		||||
 | 
			
		||||
See the qt/README file to build Scintilla with Qt.
 | 
			
		||||
							
								
								
									
										1
									
								
								3rdparty/scintilla552/scintilla/bin/__init__.py
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1 @@
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										1
									
								
								3rdparty/scintilla552/scintilla/bin/empty.txt
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1 @@
 | 
			
		||||
This empty files ensures that the directory is created.
 | 
			
		||||
							
								
								
									
										3532
									
								
								3rdparty/scintilla552/scintilla/call/ScintillaCall.cxx
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										36
									
								
								3rdparty/scintilla552/scintilla/cocoa/DictionaryForCF.h
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,36 @@
 | 
			
		||||
/**
 | 
			
		||||
 * Scintilla source code edit control
 | 
			
		||||
 * @file DictionaryForCF.h - Wrapper for CFMutableDictionary
 | 
			
		||||
 *
 | 
			
		||||
 * Copyright 2024 Neil Hodgson.
 | 
			
		||||
 * This file is dual licensed under LGPL v2.1 and the Scintilla license (http://www.scintilla.org/License.txt).
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#ifndef DICTIONARYFORCF_H
 | 
			
		||||
#define DICTIONARYFORCF_H
 | 
			
		||||
 | 
			
		||||
class DictionaryForCF {
 | 
			
		||||
	CFMutableDictionaryRef dict;
 | 
			
		||||
public:
 | 
			
		||||
	DictionaryForCF() noexcept :
 | 
			
		||||
	dict(::CFDictionaryCreateMutable(kCFAllocatorDefault, 2,
 | 
			
		||||
					 &kCFTypeDictionaryKeyCallBacks,
 | 
			
		||||
					 &kCFTypeDictionaryValueCallBacks)) {
 | 
			
		||||
	}
 | 
			
		||||
	~DictionaryForCF() {
 | 
			
		||||
		::CFRelease(dict);
 | 
			
		||||
	}
 | 
			
		||||
	CFMutableDictionaryRef get() const noexcept {
 | 
			
		||||
		return dict;
 | 
			
		||||
	}
 | 
			
		||||
	void SetValue(const void *key, const void *value) noexcept {
 | 
			
		||||
		::CFDictionarySetValue(dict, key, value);
 | 
			
		||||
	}
 | 
			
		||||
	void SetItem(const void *key, CFNumberType theType, const void *valuePtr) noexcept {
 | 
			
		||||
		CFNumberRef number = ::CFNumberCreate(kCFAllocatorDefault, theType, valuePtr);
 | 
			
		||||
		::CFDictionarySetValue(dict, key, number);
 | 
			
		||||
		::CFRelease(number);
 | 
			
		||||
	}
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
							
								
								
									
										53
									
								
								3rdparty/scintilla552/scintilla/cocoa/InfoBar.h
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,53 @@
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Scintilla source code edit control
 | 
			
		||||
 * @file InfoBar.h - Implements special info bar with zoom info, caret position etc. to be used with
 | 
			
		||||
 *             ScintillaView.
 | 
			
		||||
 *
 | 
			
		||||
 * Mike Lischke <mlischke@sun.com>
 | 
			
		||||
 *
 | 
			
		||||
 * Copyright 2009 Sun Microsystems, Inc. All rights reserved.
 | 
			
		||||
 * This file is dual licensed under LGPL v2.1 and the Scintilla license (http://www.scintilla.org/License.txt).
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#import <Cocoa/Cocoa.h>
 | 
			
		||||
#import "InfoBarCommunicator.h"
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Extended text cell for vertically aligned text.
 | 
			
		||||
 */
 | 
			
		||||
@interface VerticallyCenteredTextFieldCell : NSTextFieldCell {
 | 
			
		||||
	BOOL mIsEditingOrSelecting;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@end
 | 
			
		||||
 | 
			
		||||
@interface InfoBar : NSView <InfoBarCommunicator> {
 | 
			
		||||
@private
 | 
			
		||||
	NSImage *mBackground;
 | 
			
		||||
	IBDisplay mDisplayMask;
 | 
			
		||||
 | 
			
		||||
	float mScaleFactor;
 | 
			
		||||
	NSPopUpButton *mZoomPopup;
 | 
			
		||||
 | 
			
		||||
	int mCurrentCaretX;
 | 
			
		||||
	int mCurrentCaretY;
 | 
			
		||||
	NSTextField *mCaretPositionLabel;
 | 
			
		||||
	NSTextField *mStatusTextLabel;
 | 
			
		||||
 | 
			
		||||
	id <InfoBarCommunicator> mCallback;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
- (void) notify: (NotificationType) type message: (NSString *) message location: (NSPoint) location
 | 
			
		||||
	  value: (float) value;
 | 
			
		||||
- (void) setCallback: (id <InfoBarCommunicator>) callback;
 | 
			
		||||
 | 
			
		||||
- (void) createItems;
 | 
			
		||||
- (void) positionSubViews;
 | 
			
		||||
- (void) setDisplay: (IBDisplay) display;
 | 
			
		||||
- (void) zoomItemAction: (id) sender;
 | 
			
		||||
- (void) setScaleFactor: (float) newScaleFactor adjustPopup: (BOOL) flag;
 | 
			
		||||
- (void) setCaretPosition: (NSPoint) position;
 | 
			
		||||
- (void) sizeToFit;
 | 
			
		||||
 | 
			
		||||
@end
 | 
			
		||||
							
								
								
									
										410
									
								
								3rdparty/scintilla552/scintilla/cocoa/InfoBar.mm
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,410 @@
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Scintilla source code edit control
 | 
			
		||||
 * @file InfoBar.mm - Implements special info bar with zoom info, caret position etc. to be used with
 | 
			
		||||
 *              ScintillaView.
 | 
			
		||||
 *
 | 
			
		||||
 * Mike Lischke <mlischke@sun.com>
 | 
			
		||||
 *
 | 
			
		||||
 * Copyright 2009 Sun Microsystems, Inc. All rights reserved.
 | 
			
		||||
 * This file is dual licensed under LGPL v2.1 and the Scintilla license (http://www.scintilla.org/License.txt).
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#include <cmath>
 | 
			
		||||
 | 
			
		||||
#import "InfoBar.h"
 | 
			
		||||
 | 
			
		||||
//--------------------------------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
@implementation VerticallyCenteredTextFieldCell
 | 
			
		||||
 | 
			
		||||
// Inspired by code from Daniel Jalkut, Red Sweater Software.
 | 
			
		||||
 | 
			
		||||
- (NSRect) drawingRectForBounds: (NSRect) theRect {
 | 
			
		||||
	// Get the parent's idea of where we should draw
 | 
			
		||||
	NSRect newRect = [super drawingRectForBounds: theRect];
 | 
			
		||||
 | 
			
		||||
	// When the text field is being edited or selected, we have to turn off the magic because it
 | 
			
		||||
	// screws up the configuration of the field editor. We sneak around this by intercepting
 | 
			
		||||
	// selectWithFrame and editWithFrame and sneaking a reduced, centered rect in at the last minute.
 | 
			
		||||
	if (mIsEditingOrSelecting == NO) {
 | 
			
		||||
		// Get our ideal size for current text
 | 
			
		||||
		NSSize textSize = [self cellSizeForBounds: theRect];
 | 
			
		||||
 | 
			
		||||
		// Center that in the proposed rect
 | 
			
		||||
		CGFloat heightDelta = newRect.size.height - textSize.height;
 | 
			
		||||
		if (heightDelta > 0) {
 | 
			
		||||
			newRect.size.height -= heightDelta;
 | 
			
		||||
			newRect.origin.y += std::ceil(heightDelta / 2);
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return newRect;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
//--------------------------------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
- (void) selectWithFrame: (NSRect) aRect inView: (NSView *) controlView editor: (NSText *) textObj
 | 
			
		||||
		delegate: (id) anObject start: (NSInteger) selStart length: (NSInteger) selLength {
 | 
			
		||||
	aRect = [self drawingRectForBounds: aRect];
 | 
			
		||||
	mIsEditingOrSelecting = YES;
 | 
			
		||||
	[super selectWithFrame: aRect
 | 
			
		||||
			inView: controlView
 | 
			
		||||
			editor: textObj
 | 
			
		||||
		      delegate: anObject
 | 
			
		||||
			 start: selStart
 | 
			
		||||
			length: selLength];
 | 
			
		||||
	mIsEditingOrSelecting = NO;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
//--------------------------------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
- (void) editWithFrame: (NSRect) aRect inView: (NSView *) controlView editor: (NSText *) textObj
 | 
			
		||||
	      delegate: (id) anObject event: (NSEvent *) theEvent {
 | 
			
		||||
	aRect = [self drawingRectForBounds: aRect];
 | 
			
		||||
	mIsEditingOrSelecting = YES;
 | 
			
		||||
	[super editWithFrame: aRect
 | 
			
		||||
		      inView: controlView
 | 
			
		||||
		      editor: textObj
 | 
			
		||||
		    delegate: anObject
 | 
			
		||||
		       event: theEvent];
 | 
			
		||||
	mIsEditingOrSelecting = NO;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@end
 | 
			
		||||
 | 
			
		||||
//--------------------------------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
@implementation InfoBar
 | 
			
		||||
 | 
			
		||||
- (instancetype) initWithFrame: (NSRect) frame {
 | 
			
		||||
	self = [super initWithFrame: frame];
 | 
			
		||||
	if (self) {
 | 
			
		||||
		NSBundle *bundle = [NSBundle bundleForClass: [InfoBar class]];
 | 
			
		||||
 | 
			
		||||
		NSString *path = [bundle pathForResource: @"info_bar_bg" ofType: @"tiff" inDirectory: nil];
 | 
			
		||||
		// macOS 10.13 introduced bug where pathForResource: fails on SMB share
 | 
			
		||||
		if (path == nil) {
 | 
			
		||||
			path = [bundle.bundlePath stringByAppendingPathComponent: @"Resources/info_bar_bg.tiff"];
 | 
			
		||||
		}
 | 
			
		||||
		mBackground = [[NSImage alloc] initWithContentsOfFile: path];
 | 
			
		||||
		if (!mBackground.valid)
 | 
			
		||||
			NSLog(@"Background image for info bar is invalid.");
 | 
			
		||||
 | 
			
		||||
		mScaleFactor = 1.0;
 | 
			
		||||
		mCurrentCaretX = 0;
 | 
			
		||||
		mCurrentCaretY = 0;
 | 
			
		||||
		[self createItems];
 | 
			
		||||
		self.clipsToBounds = TRUE;
 | 
			
		||||
	}
 | 
			
		||||
	return self;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
//--------------------------------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Called by a connected component (usually the info bar) if something changed there.
 | 
			
		||||
 *
 | 
			
		||||
 * @param type The type of the notification.
 | 
			
		||||
 * @param message Carries the new status message if the type is a status message change.
 | 
			
		||||
 * @param location Carries the new location (e.g. caret) if the type is a caret change or similar type.
 | 
			
		||||
 * @param value Carries the new zoom value if the type is a zoom change.
 | 
			
		||||
 */
 | 
			
		||||
- (void) notify: (NotificationType) type message: (NSString *) message location: (NSPoint) location
 | 
			
		||||
	  value: (float) value {
 | 
			
		||||
	switch (type) {
 | 
			
		||||
	case IBNZoomChanged:
 | 
			
		||||
		[self setScaleFactor: value adjustPopup: YES];
 | 
			
		||||
		break;
 | 
			
		||||
	case IBNCaretChanged:
 | 
			
		||||
		[self setCaretPosition: location];
 | 
			
		||||
		break;
 | 
			
		||||
	case IBNStatusChanged:
 | 
			
		||||
		mStatusTextLabel.stringValue = message;
 | 
			
		||||
		break;
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
//--------------------------------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Used to set a protocol object we can use to send change notifications to.
 | 
			
		||||
 */
 | 
			
		||||
- (void) setCallback: (id <InfoBarCommunicator>) callback {
 | 
			
		||||
	mCallback = callback;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
//--------------------------------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
static NSString *DefaultScaleMenuLabels[] = {
 | 
			
		||||
	@"20%", @"30%", @"50%", @"75%", @"100%", @"130%", @"160%", @"200%", @"250%", @"300%"
 | 
			
		||||
};
 | 
			
		||||
static float DefaultScaleMenuFactors[] = {
 | 
			
		||||
	0.2f, 0.3f, 0.5f, 0.75f, 1.0f, 1.3f, 1.6f, 2.0f, 2.5f, 3.0f
 | 
			
		||||
};
 | 
			
		||||
static unsigned DefaultScaleMenuSelectedItemIndex = 4;
 | 
			
		||||
static float BarFontSize = 10.0;
 | 
			
		||||
 | 
			
		||||
- (void) createItems {
 | 
			
		||||
	// 1) The zoom popup.
 | 
			
		||||
	unsigned numberOfDefaultItems = sizeof(DefaultScaleMenuLabels) / sizeof(NSString *);
 | 
			
		||||
 | 
			
		||||
	// Create the popup button.
 | 
			
		||||
	mZoomPopup = [[NSPopUpButton alloc] initWithFrame: NSMakeRect(0.0, 0.0, 1.0, 1.0) pullsDown: NO];
 | 
			
		||||
 | 
			
		||||
	// No border or background please.
 | 
			
		||||
	[mZoomPopup.cell setBordered: NO];
 | 
			
		||||
	[mZoomPopup.cell setArrowPosition: NSPopUpArrowAtBottom];
 | 
			
		||||
 | 
			
		||||
	// Fill it.
 | 
			
		||||
	for (unsigned count = 0; count < numberOfDefaultItems; count++) {
 | 
			
		||||
		[mZoomPopup addItemWithTitle: NSLocalizedStringFromTable(DefaultScaleMenuLabels[count], @"ZoomValues", nil)];
 | 
			
		||||
		id currentItem = [mZoomPopup itemAtIndex: count];
 | 
			
		||||
		if (DefaultScaleMenuFactors[count] != 0.0)
 | 
			
		||||
			[currentItem setRepresentedObject: @(DefaultScaleMenuFactors[count])];
 | 
			
		||||
	}
 | 
			
		||||
	[mZoomPopup selectItemAtIndex: DefaultScaleMenuSelectedItemIndex];
 | 
			
		||||
 | 
			
		||||
	// Hook it up.
 | 
			
		||||
	mZoomPopup.target = self;
 | 
			
		||||
	mZoomPopup.action = @selector(zoomItemAction:);
 | 
			
		||||
 | 
			
		||||
	// Set a suitable font.
 | 
			
		||||
	mZoomPopup.font = [NSFont menuBarFontOfSize: BarFontSize];
 | 
			
		||||
 | 
			
		||||
	// Make sure the popup is big enough to fit the cells.
 | 
			
		||||
	[mZoomPopup sizeToFit];
 | 
			
		||||
 | 
			
		||||
	// Don't let it become first responder
 | 
			
		||||
	[mZoomPopup setRefusesFirstResponder: YES];
 | 
			
		||||
 | 
			
		||||
	// put it in the scrollview.
 | 
			
		||||
	[self addSubview: mZoomPopup];
 | 
			
		||||
 | 
			
		||||
	// 2) The caret position label.
 | 
			
		||||
	Class oldCellClass = [NSTextField cellClass];
 | 
			
		||||
	[NSTextField setCellClass: [VerticallyCenteredTextFieldCell class]];
 | 
			
		||||
 | 
			
		||||
	mCaretPositionLabel = [[NSTextField alloc] initWithFrame: NSMakeRect(0.0, 0.0, 50.0, 1.0)];
 | 
			
		||||
	[mCaretPositionLabel setBezeled: NO];
 | 
			
		||||
	[mCaretPositionLabel setBordered: NO];
 | 
			
		||||
	[mCaretPositionLabel setEditable: NO];
 | 
			
		||||
	[mCaretPositionLabel setSelectable: NO];
 | 
			
		||||
	[mCaretPositionLabel setDrawsBackground: NO];
 | 
			
		||||
	mCaretPositionLabel.font = [NSFont menuBarFontOfSize: BarFontSize];
 | 
			
		||||
 | 
			
		||||
	NSTextFieldCell *cell = mCaretPositionLabel.cell;
 | 
			
		||||
	cell.placeholderString = @"0:0";
 | 
			
		||||
	cell.alignment = NSTextAlignmentCenter;
 | 
			
		||||
 | 
			
		||||
	[self addSubview: mCaretPositionLabel];
 | 
			
		||||
 | 
			
		||||
	// 3) The status text.
 | 
			
		||||
	mStatusTextLabel = [[NSTextField alloc] initWithFrame: NSMakeRect(0.0, 0.0, 1.0, 1.0)];
 | 
			
		||||
	[mStatusTextLabel setBezeled: NO];
 | 
			
		||||
	[mStatusTextLabel setBordered: NO];
 | 
			
		||||
	[mStatusTextLabel setEditable: NO];
 | 
			
		||||
	[mStatusTextLabel setSelectable: NO];
 | 
			
		||||
	[mStatusTextLabel setDrawsBackground: NO];
 | 
			
		||||
	mStatusTextLabel.font = [NSFont menuBarFontOfSize: BarFontSize];
 | 
			
		||||
 | 
			
		||||
	cell = mStatusTextLabel.cell;
 | 
			
		||||
	cell.placeholderString = @"";
 | 
			
		||||
 | 
			
		||||
	[self addSubview: mStatusTextLabel];
 | 
			
		||||
 | 
			
		||||
	// Restore original cell class so that everything else doesn't get broken
 | 
			
		||||
	[NSTextField setCellClass: oldCellClass];
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
//--------------------------------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
//--------------------------------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Fill the background.
 | 
			
		||||
 */
 | 
			
		||||
- (void) drawRect: (NSRect) rect {
 | 
			
		||||
	[[NSColor controlBackgroundColor] set];
 | 
			
		||||
	[NSBezierPath fillRect: rect];
 | 
			
		||||
 | 
			
		||||
	// Since the background is seamless, we don't need to take care for the proper offset.
 | 
			
		||||
	// Simply tile the background over the invalid rectangle.
 | 
			
		||||
	if (mBackground.size.width != 0) {
 | 
			
		||||
		NSPoint target = {rect.origin.x, 0};
 | 
			
		||||
		while (target.x < rect.origin.x + rect.size.width) {
 | 
			
		||||
			[mBackground drawAtPoint: target fromRect: NSZeroRect operation: NSCompositingOperationSourceOver fraction: 1];
 | 
			
		||||
			target.x += mBackground.size.width;
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// Draw separator lines between items.
 | 
			
		||||
	NSRect verticalLineRect;
 | 
			
		||||
	CGFloat component = 190.0 / 255.0;
 | 
			
		||||
	NSColor *lineColor = [NSColor colorWithDeviceRed: component green: component blue: component alpha: 1];
 | 
			
		||||
 | 
			
		||||
	if (mDisplayMask & IBShowZoom) {
 | 
			
		||||
		verticalLineRect = mZoomPopup.frame;
 | 
			
		||||
		verticalLineRect.origin.x += verticalLineRect.size.width + 1.0;
 | 
			
		||||
		verticalLineRect.size.width = 1.0;
 | 
			
		||||
		if (NSIntersectsRect(rect, verticalLineRect)) {
 | 
			
		||||
			[lineColor set];
 | 
			
		||||
			NSRectFill(verticalLineRect);
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	if (mDisplayMask & IBShowCaretPosition) {
 | 
			
		||||
		verticalLineRect = mCaretPositionLabel.frame;
 | 
			
		||||
		verticalLineRect.origin.x += verticalLineRect.size.width + 1.0;
 | 
			
		||||
		verticalLineRect.size.width = 1.0;
 | 
			
		||||
		if (NSIntersectsRect(rect, verticalLineRect)) {
 | 
			
		||||
			[lineColor set];
 | 
			
		||||
			NSRectFill(verticalLineRect);
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
//--------------------------------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
- (BOOL) isOpaque {
 | 
			
		||||
	return YES;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
//--------------------------------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Used to reposition our content depending on the size of the view.
 | 
			
		||||
 */
 | 
			
		||||
- (void) setFrame: (NSRect) newFrame {
 | 
			
		||||
	super.frame = newFrame;
 | 
			
		||||
	[self positionSubViews];
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
//--------------------------------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
- (void) positionSubViews {
 | 
			
		||||
	NSRect currentBounds = {{0, 0}, {0, self.frame.size.height}};
 | 
			
		||||
	if (mDisplayMask & IBShowZoom) {
 | 
			
		||||
		[mZoomPopup setHidden: NO];
 | 
			
		||||
		currentBounds.size.width = mZoomPopup.frame.size.width;
 | 
			
		||||
		mZoomPopup.frame = currentBounds;
 | 
			
		||||
		currentBounds.origin.x += currentBounds.size.width + 1; // Add 1 for the separator.
 | 
			
		||||
	} else
 | 
			
		||||
		[mZoomPopup setHidden: YES];
 | 
			
		||||
 | 
			
		||||
	if (mDisplayMask & IBShowCaretPosition) {
 | 
			
		||||
		[mCaretPositionLabel setHidden: NO];
 | 
			
		||||
		currentBounds.size.width = mCaretPositionLabel.frame.size.width;
 | 
			
		||||
		mCaretPositionLabel.frame = currentBounds;
 | 
			
		||||
		currentBounds.origin.x += currentBounds.size.width + 1;
 | 
			
		||||
	} else
 | 
			
		||||
		[mCaretPositionLabel setHidden: YES];
 | 
			
		||||
 | 
			
		||||
	if (mDisplayMask & IBShowStatusText) {
 | 
			
		||||
		// The status text always takes the rest of the available space.
 | 
			
		||||
		[mStatusTextLabel setHidden: NO];
 | 
			
		||||
		currentBounds.size.width = self.frame.size.width - currentBounds.origin.x;
 | 
			
		||||
		mStatusTextLabel.frame = currentBounds;
 | 
			
		||||
	} else
 | 
			
		||||
		[mStatusTextLabel setHidden: YES];
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
//--------------------------------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Used to switch the visible parts of the info bar.
 | 
			
		||||
 *
 | 
			
		||||
 * @param display Bitwise ORed IBDisplay values which determine what to show on the bar.
 | 
			
		||||
 */
 | 
			
		||||
- (void) setDisplay: (IBDisplay) display {
 | 
			
		||||
	if (mDisplayMask != display) {
 | 
			
		||||
		mDisplayMask = display;
 | 
			
		||||
		[self positionSubViews];
 | 
			
		||||
		self.needsDisplay = YES;
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
//--------------------------------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Handler for selection changes in the zoom menu.
 | 
			
		||||
 */
 | 
			
		||||
- (void) zoomItemAction: (id) sender {
 | 
			
		||||
	NSNumber *selectedFactorObject = [[sender selectedCell] representedObject];
 | 
			
		||||
 | 
			
		||||
	if (selectedFactorObject == nil) {
 | 
			
		||||
		NSLog(@"Scale popup action: setting arbitrary zoom factors is not yet supported.");
 | 
			
		||||
		return;
 | 
			
		||||
	} else {
 | 
			
		||||
		[self setScaleFactor: selectedFactorObject.floatValue adjustPopup: NO];
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
//--------------------------------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
- (void) setScaleFactor: (float) newScaleFactor adjustPopup: (BOOL) flag {
 | 
			
		||||
	if (mScaleFactor != newScaleFactor) {
 | 
			
		||||
		mScaleFactor = newScaleFactor;
 | 
			
		||||
		if (flag) {
 | 
			
		||||
			unsigned count = 0;
 | 
			
		||||
			unsigned numberOfDefaultItems = sizeof(DefaultScaleMenuFactors) / sizeof(float);
 | 
			
		||||
 | 
			
		||||
			// We only work with some preset zoom values. If the given value does not correspond
 | 
			
		||||
			// to one then show no selection.
 | 
			
		||||
			while (count < numberOfDefaultItems && (std::abs(newScaleFactor - DefaultScaleMenuFactors[count]) > 0.07))
 | 
			
		||||
				count++;
 | 
			
		||||
			if (count == numberOfDefaultItems)
 | 
			
		||||
				[mZoomPopup selectItemAtIndex: -1];
 | 
			
		||||
			else {
 | 
			
		||||
				[mZoomPopup selectItemAtIndex: count];
 | 
			
		||||
 | 
			
		||||
				// Set scale factor to found preset value if it comes close.
 | 
			
		||||
				mScaleFactor = DefaultScaleMenuFactors[count];
 | 
			
		||||
			}
 | 
			
		||||
		} else {
 | 
			
		||||
			// Internally set. Notify owner.
 | 
			
		||||
			[mCallback notify: IBNZoomChanged message: nil location: NSZeroPoint value: newScaleFactor];
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
//--------------------------------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Called from the notification method to update the caret position display.
 | 
			
		||||
 */
 | 
			
		||||
- (void) setCaretPosition: (NSPoint) position {
 | 
			
		||||
	// Make the position one-based.
 | 
			
		||||
	int newX = (int) position.x + 1;
 | 
			
		||||
	int newY = (int) position.y + 1;
 | 
			
		||||
 | 
			
		||||
	if (mCurrentCaretX != newX || mCurrentCaretY != newY) {
 | 
			
		||||
		mCurrentCaretX = newX;
 | 
			
		||||
		mCurrentCaretY = newY;
 | 
			
		||||
 | 
			
		||||
		mCaretPositionLabel.stringValue = [NSString stringWithFormat: @"%d:%d", newX, newY];
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
//--------------------------------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Makes the bar resize to the smallest width that can accommodate the currently enabled items.
 | 
			
		||||
 */
 | 
			
		||||
- (void) sizeToFit {
 | 
			
		||||
	NSRect frame = self.frame;
 | 
			
		||||
	frame.size.width = 0;
 | 
			
		||||
	if (mDisplayMask & IBShowZoom)
 | 
			
		||||
		frame.size.width += mZoomPopup.frame.size.width;
 | 
			
		||||
 | 
			
		||||
	if (mDisplayMask & IBShowCaretPosition)
 | 
			
		||||
		frame.size.width += mCaretPositionLabel.frame.size.width;
 | 
			
		||||
 | 
			
		||||
	if (mDisplayMask & IBShowStatusText)
 | 
			
		||||
		frame.size.width += mStatusTextLabel.frame.size.width;
 | 
			
		||||
 | 
			
		||||
	self.frame = frame;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@end
 | 
			
		||||
							
								
								
									
										35
									
								
								3rdparty/scintilla552/scintilla/cocoa/InfoBarCommunicator.h
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,35 @@
 | 
			
		||||
/*
 | 
			
		||||
 * InfoBarCommunicator.h - Definitions of a communication protocol and other data types used for
 | 
			
		||||
 *                         the info bar implementation.
 | 
			
		||||
 *
 | 
			
		||||
 * Mike Lischke <mlischke@sun.com>
 | 
			
		||||
 *
 | 
			
		||||
 * Copyright 2009 Sun Microsystems, Inc. All rights reserved.
 | 
			
		||||
 * This file is dual licensed under LGPL v2.1 and the Scintilla license (http://www.scintilla.org/License.txt).
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
typedef NS_OPTIONS(NSUInteger, IBDisplay) {
 | 
			
		||||
	IBShowZoom          = 0x01,
 | 
			
		||||
	IBShowCaretPosition = 0x02,
 | 
			
		||||
	IBShowStatusText    = 0x04,
 | 
			
		||||
	IBShowAll           = 0xFF
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * The info bar communicator protocol is used for communication between ScintillaView and its
 | 
			
		||||
 * information bar component. Using this protocol decouples any potential info target from the main
 | 
			
		||||
 * ScintillaView implementation. The protocol is used two-way.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
typedef NS_ENUM(NSInteger, NotificationType) {
 | 
			
		||||
	IBNZoomChanged,    // The user selected another zoom value.
 | 
			
		||||
	IBNCaretChanged,   // The caret in the editor changed.
 | 
			
		||||
	IBNStatusChanged,  // The application set a new status message.
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
@protocol InfoBarCommunicator
 | 
			
		||||
- (void) notify: (NotificationType) type message: (NSString *) message location: (NSPoint) location
 | 
			
		||||
	  value: (float) value;
 | 
			
		||||
- (void) setCallback: (id <InfoBarCommunicator>) callback;
 | 
			
		||||
@end
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										142
									
								
								3rdparty/scintilla552/scintilla/cocoa/PlatCocoa.h
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,142 @@
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Copyright 2009 Sun Microsystems, Inc. All rights reserved.
 | 
			
		||||
 * This file is dual licensed under LGPL v2.1 and the Scintilla license (http://www.scintilla.org/License.txt).
 | 
			
		||||
 * @file PlatCocoa.h
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#ifndef PLATCOCOA_H
 | 
			
		||||
#define PLATCOCOA_H
 | 
			
		||||
 | 
			
		||||
#include <cstdlib>
 | 
			
		||||
#include <cassert>
 | 
			
		||||
#include <cstring>
 | 
			
		||||
#include <cstdio>
 | 
			
		||||
 | 
			
		||||
#include <Cocoa/Cocoa.h>
 | 
			
		||||
 | 
			
		||||
#include "ScintillaTypes.h"
 | 
			
		||||
#include "ScintillaMessages.h"
 | 
			
		||||
 | 
			
		||||
#include "Debugging.h"
 | 
			
		||||
#include "Geometry.h"
 | 
			
		||||
#include "Platform.h"
 | 
			
		||||
 | 
			
		||||
#include "DictionaryForCF.h"
 | 
			
		||||
#include "QuartzTextLayout.h"
 | 
			
		||||
 | 
			
		||||
NSRect PRectangleToNSRect(const Scintilla::Internal::PRectangle &rc);
 | 
			
		||||
Scintilla::Internal::PRectangle NSRectToPRectangle(const NSRect &rc);
 | 
			
		||||
CFStringEncoding EncodingFromCharacterSet(bool unicode, Scintilla::CharacterSet characterSet);
 | 
			
		||||
 | 
			
		||||
@interface ScintillaContextMenu : NSMenu {
 | 
			
		||||
	Scintilla::Internal::ScintillaCocoa *owner;
 | 
			
		||||
}
 | 
			
		||||
- (void) handleCommand: (NSMenuItem *) sender;
 | 
			
		||||
- (void) setOwner: (Scintilla::Internal::ScintillaCocoa *) newOwner;
 | 
			
		||||
 | 
			
		||||
@end
 | 
			
		||||
 | 
			
		||||
namespace Scintilla::Internal {
 | 
			
		||||
 | 
			
		||||
// A class to do the actual text rendering for us using Quartz 2D.
 | 
			
		||||
class SurfaceImpl : public Surface {
 | 
			
		||||
private:
 | 
			
		||||
	SurfaceMode mode;
 | 
			
		||||
 | 
			
		||||
	CGContextRef gc;
 | 
			
		||||
 | 
			
		||||
	/** If the surface is a bitmap context, contains a reference to the bitmap data. */
 | 
			
		||||
	std::unique_ptr<uint8_t[]> bitmapData;
 | 
			
		||||
	/** If the surface is a bitmap context, stores the dimensions of the bitmap. */
 | 
			
		||||
	int bitmapWidth;
 | 
			
		||||
	int bitmapHeight;
 | 
			
		||||
 | 
			
		||||
	/** Set the CGContext's fill colour to the specified desired colour. */
 | 
			
		||||
	void FillColour(ColourRGBA fill);
 | 
			
		||||
 | 
			
		||||
	void PenColourAlpha(ColourRGBA fore);
 | 
			
		||||
 | 
			
		||||
	void SetFillStroke(FillStroke fillStroke);
 | 
			
		||||
 | 
			
		||||
	// 24-bit RGB+A bitmap data constants
 | 
			
		||||
	static const int BITS_PER_COMPONENT = 8;
 | 
			
		||||
	static const int BITS_PER_PIXEL = BITS_PER_COMPONENT * 4;
 | 
			
		||||
	static const int BYTES_PER_PIXEL = BITS_PER_PIXEL / 8;
 | 
			
		||||
 | 
			
		||||
	bool UnicodeMode() const noexcept;
 | 
			
		||||
	void Clear();
 | 
			
		||||
 | 
			
		||||
public:
 | 
			
		||||
	SurfaceImpl();
 | 
			
		||||
	SurfaceImpl(const SurfaceImpl *surface, int width, int height);
 | 
			
		||||
	~SurfaceImpl() override;
 | 
			
		||||
 | 
			
		||||
	void Init(WindowID wid) override;
 | 
			
		||||
	void Init(SurfaceID sid, WindowID wid) override;
 | 
			
		||||
	std::unique_ptr<Surface> AllocatePixMap(int width, int height) override;
 | 
			
		||||
	std::unique_ptr<SurfaceImpl> AllocatePixMapImplementation(int width, int height);
 | 
			
		||||
	CGContextRef GetContext() { return gc; }
 | 
			
		||||
 | 
			
		||||
	void SetMode(SurfaceMode mode) override;
 | 
			
		||||
 | 
			
		||||
	void Release() noexcept override;
 | 
			
		||||
	int SupportsFeature(Scintilla::Supports feature) noexcept override;
 | 
			
		||||
	bool Initialised() override;
 | 
			
		||||
 | 
			
		||||
	/** Returns a CGImageRef that represents the surface. Returns NULL if this is not possible. */
 | 
			
		||||
	CGImageRef CreateImage();
 | 
			
		||||
	void CopyImageRectangle(SurfaceImpl *source, PRectangle srcRect, PRectangle dstRect);
 | 
			
		||||
 | 
			
		||||
	int LogPixelsY() override;
 | 
			
		||||
	int PixelDivisions() override;
 | 
			
		||||
	int DeviceHeightFont(int points) override;
 | 
			
		||||
	void LineDraw(Point start, Point end, Stroke stroke) override;
 | 
			
		||||
	void PolyLine(const Point *pts, size_t npts, Stroke stroke) override;
 | 
			
		||||
	void Polygon(const Scintilla::Internal::Point *pts, size_t npts, FillStroke fillStroke) override;
 | 
			
		||||
	void RectangleDraw(PRectangle rc, FillStroke fillStroke) override;
 | 
			
		||||
	void RectangleFrame(PRectangle rc, Stroke stroke) override;
 | 
			
		||||
	void FillRectangle(PRectangle rc, Fill fill) override;
 | 
			
		||||
	void FillRectangleAligned(PRectangle rc, Fill fill) override;
 | 
			
		||||
	void FillRectangle(PRectangle rc, Surface &surfacePattern) override;
 | 
			
		||||
	void RoundedRectangle(PRectangle rc, FillStroke fillStroke) override;
 | 
			
		||||
	void AlphaRectangle(PRectangle rc, XYPOSITION cornerSize, FillStroke fillStroke) override;
 | 
			
		||||
	void GradientRectangle(PRectangle rc, const std::vector<ColourStop> &stops, GradientOptions options) override;
 | 
			
		||||
	void DrawRGBAImage(PRectangle rc, int width, int height, const unsigned char *pixelsImage) override;
 | 
			
		||||
	void Ellipse(PRectangle rc, FillStroke fillStroke) override;
 | 
			
		||||
	void Stadium(PRectangle rc, FillStroke fillStroke, Ends ends) override;
 | 
			
		||||
	void Copy(PRectangle rc, Scintilla::Internal::Point from, Surface &surfaceSource) override;
 | 
			
		||||
	std::unique_ptr<IScreenLineLayout> Layout(const IScreenLine *screenLine) override;
 | 
			
		||||
 | 
			
		||||
	void DrawTextNoClip(PRectangle rc, const Font *font_, XYPOSITION ybase, std::string_view text, ColourRGBA fore,
 | 
			
		||||
			    ColourRGBA back) override;
 | 
			
		||||
	void DrawTextClipped(PRectangle rc, const Font *font_, XYPOSITION ybase, std::string_view text, ColourRGBA fore,
 | 
			
		||||
			     ColourRGBA back) override;
 | 
			
		||||
	void DrawTextTransparent(PRectangle rc, const Font *font_, XYPOSITION ybase, std::string_view text, ColourRGBA fore) override;
 | 
			
		||||
	void MeasureWidths(const Font *font_, std::string_view text, XYPOSITION *positions) override;
 | 
			
		||||
	XYPOSITION WidthText(const Font *font_, std::string_view text) override;
 | 
			
		||||
 | 
			
		||||
	void DrawTextNoClipUTF8(PRectangle rc, const Font *font_, XYPOSITION ybase, std::string_view text, ColourRGBA fore,
 | 
			
		||||
			    ColourRGBA back) override;
 | 
			
		||||
	void DrawTextClippedUTF8(PRectangle rc, const Font *font_, XYPOSITION ybase, std::string_view text, ColourRGBA fore,
 | 
			
		||||
			     ColourRGBA back) override;
 | 
			
		||||
	void DrawTextTransparentUTF8(PRectangle rc, const Font *font_, XYPOSITION ybase, std::string_view text, ColourRGBA fore) override;
 | 
			
		||||
	void MeasureWidthsUTF8(const Font *font_, std::string_view text, XYPOSITION *positions) override;
 | 
			
		||||
	XYPOSITION WidthTextUTF8(const Font *font_, std::string_view text) override;
 | 
			
		||||
 | 
			
		||||
	XYPOSITION Ascent(const Font *font_) override;
 | 
			
		||||
	XYPOSITION Descent(const Font *font_) override;
 | 
			
		||||
	XYPOSITION InternalLeading(const Font *font_) override;
 | 
			
		||||
	XYPOSITION Height(const Font *font_) override;
 | 
			
		||||
	XYPOSITION AverageCharWidth(const Font *font_) override;
 | 
			
		||||
 | 
			
		||||
	void SetClip(PRectangle rc) override;
 | 
			
		||||
	void PopClip() override;
 | 
			
		||||
	void FlushCachedState() override;
 | 
			
		||||
	void FlushDrawing() override;
 | 
			
		||||
 | 
			
		||||
}; // SurfaceImpl class
 | 
			
		||||
 | 
			
		||||
} // Scintilla namespace
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
							
								
								
									
										2380
									
								
								3rdparty/scintilla552/scintilla/cocoa/PlatCocoa.mm
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										101
									
								
								3rdparty/scintilla552/scintilla/cocoa/QuartzTextLayout.h
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,101 @@
 | 
			
		||||
/*
 | 
			
		||||
 *  QuartzTextLayout.h
 | 
			
		||||
 *
 | 
			
		||||
 *  Original Code by Evan Jones on Wed Oct 02 2002.
 | 
			
		||||
 *  Contributors:
 | 
			
		||||
 *  Shane Caraveo, ActiveState
 | 
			
		||||
 *  Bernd Paradies, Adobe
 | 
			
		||||
 *
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#ifndef QUARTZTEXTLAYOUT_H
 | 
			
		||||
#define QUARTZTEXTLAYOUT_H
 | 
			
		||||
 | 
			
		||||
#include <Cocoa/Cocoa.h>
 | 
			
		||||
 | 
			
		||||
#include "QuartzTextStyle.h"
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class QuartzTextLayout {
 | 
			
		||||
public:
 | 
			
		||||
	/** Create a text layout for drawing. */
 | 
			
		||||
	QuartzTextLayout(std::string_view sv, CFStringEncoding encoding, const QuartzTextStyle *r) {
 | 
			
		||||
		encodingUsed = encoding;
 | 
			
		||||
		const UInt8 *puiBuffer = reinterpret_cast<const UInt8 *>(sv.data());
 | 
			
		||||
		CFStringRef str = CFStringCreateWithBytes(NULL, puiBuffer, sv.length(), encodingUsed, false);
 | 
			
		||||
		if (!str) {
 | 
			
		||||
			// Failed to decode bytes into string with given encoding so try
 | 
			
		||||
			// MacRoman which should accept any byte.
 | 
			
		||||
			encodingUsed = kCFStringEncodingMacRoman;
 | 
			
		||||
			str = CFStringCreateWithBytes(NULL, puiBuffer, sv.length(), encodingUsed, false);
 | 
			
		||||
		}
 | 
			
		||||
		if (!str) {
 | 
			
		||||
			return;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		stringLength = CFStringGetLength(str);
 | 
			
		||||
 | 
			
		||||
		CFMutableDictionaryRef stringAttribs = r->getCTStyle();
 | 
			
		||||
 | 
			
		||||
		mString = ::CFAttributedStringCreate(NULL, str, stringAttribs);
 | 
			
		||||
 | 
			
		||||
		mLine = ::CTLineCreateWithAttributedString(mString);
 | 
			
		||||
 | 
			
		||||
		CFRelease(str);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	~QuartzTextLayout() {
 | 
			
		||||
		if (mString) {
 | 
			
		||||
			CFRelease(mString);
 | 
			
		||||
			mString = NULL;
 | 
			
		||||
		}
 | 
			
		||||
		if (mLine) {
 | 
			
		||||
			CFRelease(mLine);
 | 
			
		||||
			mLine = NULL;
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/** Draw the text layout into a CGContext at the specified position.
 | 
			
		||||
	* @param gc The CGContext in which to draw the text.
 | 
			
		||||
	* @param x The x axis position to draw the baseline in the current CGContext.
 | 
			
		||||
	* @param y The y axis position to draw the baseline in the current CGContext. */
 | 
			
		||||
	void draw(CGContextRef gc, double x, double y) {
 | 
			
		||||
		if (!mLine)
 | 
			
		||||
			return;
 | 
			
		||||
 | 
			
		||||
		::CGContextSetTextMatrix(gc, CGAffineTransformMakeScale(1.0, -1.0));
 | 
			
		||||
 | 
			
		||||
		// Set the text drawing position.
 | 
			
		||||
		::CGContextSetTextPosition(gc, x, y);
 | 
			
		||||
 | 
			
		||||
		// And finally, draw!
 | 
			
		||||
		::CTLineDraw(mLine, gc);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	float MeasureStringWidth() {
 | 
			
		||||
		if (mLine == NULL)
 | 
			
		||||
			return 0.0f;
 | 
			
		||||
 | 
			
		||||
		return static_cast<float>(::CTLineGetTypographicBounds(mLine, NULL, NULL, NULL));
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	CTLineRef getCTLine() {
 | 
			
		||||
		return mLine;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	CFIndex getStringLength() {
 | 
			
		||||
		return stringLength;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	CFStringEncoding getEncoding() {
 | 
			
		||||
		return encodingUsed;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
private:
 | 
			
		||||
	CFAttributedStringRef mString = NULL;
 | 
			
		||||
	CTLineRef mLine = NULL;
 | 
			
		||||
	CFIndex stringLength = 0;
 | 
			
		||||
	CFStringEncoding encodingUsed = kCFStringEncodingMacRoman;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
							
								
								
									
										95
									
								
								3rdparty/scintilla552/scintilla/cocoa/QuartzTextStyle.h
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,95 @@
 | 
			
		||||
/*
 | 
			
		||||
 *  QuartzTextStyle.h
 | 
			
		||||
 *
 | 
			
		||||
 *  Created by Evan Jones on Wed Oct 02 2002.
 | 
			
		||||
 *
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#ifndef QUARTZTEXTSTYLE_H
 | 
			
		||||
#define QUARTZTEXTSTYLE_H
 | 
			
		||||
 | 
			
		||||
#include "QuartzTextStyleAttribute.h"
 | 
			
		||||
 | 
			
		||||
class QuartzTextStyle {
 | 
			
		||||
public:
 | 
			
		||||
	QuartzTextStyle() {
 | 
			
		||||
		fontRef = NULL;
 | 
			
		||||
		styleDict = CFDictionaryCreateMutable(kCFAllocatorDefault, 2,
 | 
			
		||||
						      &kCFTypeDictionaryKeyCallBacks,
 | 
			
		||||
						      &kCFTypeDictionaryValueCallBacks);
 | 
			
		||||
 | 
			
		||||
		characterSet = Scintilla::CharacterSet::Ansi;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	QuartzTextStyle(const QuartzTextStyle *other) {
 | 
			
		||||
		// Does not copy font colour attribute
 | 
			
		||||
		fontRef = static_cast<CTFontRef>(CFRetain(other->fontRef));
 | 
			
		||||
		styleDict = CFDictionaryCreateMutable(kCFAllocatorDefault, 2,
 | 
			
		||||
						      &kCFTypeDictionaryKeyCallBacks,
 | 
			
		||||
						      &kCFTypeDictionaryValueCallBacks);
 | 
			
		||||
		CFDictionaryAddValue(styleDict, kCTFontAttributeName, fontRef);
 | 
			
		||||
		characterSet = other->characterSet;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	~QuartzTextStyle() {
 | 
			
		||||
		if (styleDict != NULL) {
 | 
			
		||||
			CFRelease(styleDict);
 | 
			
		||||
			styleDict = NULL;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		if (fontRef) {
 | 
			
		||||
			CFRelease(fontRef);
 | 
			
		||||
			fontRef = NULL;
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	CFMutableDictionaryRef getCTStyle() const {
 | 
			
		||||
		return styleDict;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	void setCTStyleColour(CGColor *inColour) {
 | 
			
		||||
		CFDictionarySetValue(styleDict, kCTForegroundColorAttributeName, inColour);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	float getAscent() const {
 | 
			
		||||
		return static_cast<float>(::CTFontGetAscent(fontRef));
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	float getDescent() const {
 | 
			
		||||
		return static_cast<float>(::CTFontGetDescent(fontRef));
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	float getLeading() const {
 | 
			
		||||
		return static_cast<float>(::CTFontGetLeading(fontRef));
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	void setFontRef(CTFontRef inRef, Scintilla::CharacterSet characterSet_) {
 | 
			
		||||
		fontRef = inRef;
 | 
			
		||||
		characterSet = characterSet_;
 | 
			
		||||
 | 
			
		||||
		if (styleDict != NULL)
 | 
			
		||||
			CFRelease(styleDict);
 | 
			
		||||
 | 
			
		||||
		styleDict = CFDictionaryCreateMutable(kCFAllocatorDefault, 2,
 | 
			
		||||
						      &kCFTypeDictionaryKeyCallBacks,
 | 
			
		||||
						      &kCFTypeDictionaryValueCallBacks);
 | 
			
		||||
 | 
			
		||||
		CFDictionaryAddValue(styleDict, kCTFontAttributeName, fontRef);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	CTFontRef getFontRef() const noexcept {
 | 
			
		||||
		return fontRef;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	Scintilla::CharacterSet getCharacterSet() const noexcept {
 | 
			
		||||
		return characterSet;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
private:
 | 
			
		||||
	CFMutableDictionaryRef styleDict;
 | 
			
		||||
	CTFontRef fontRef;
 | 
			
		||||
	Scintilla::CharacterSet characterSet;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										101
									
								
								3rdparty/scintilla552/scintilla/cocoa/QuartzTextStyleAttribute.h
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,101 @@
 | 
			
		||||
/**
 | 
			
		||||
 *  QuartzTextStyleAttribute.h
 | 
			
		||||
 *
 | 
			
		||||
 *  Original Code by Evan Jones on Wed Oct 02 2002.
 | 
			
		||||
 *  Contributors:
 | 
			
		||||
 *  Shane Caraveo, ActiveState
 | 
			
		||||
 *  Bernd Paradies, Adobe
 | 
			
		||||
 *
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#ifndef QUARTZTEXTSTYLEATTRIBUTE_H
 | 
			
		||||
#define QUARTZTEXTSTYLEATTRIBUTE_H
 | 
			
		||||
 | 
			
		||||
// Convert from a FontWeight value to a floating point value to pass to CoreText.
 | 
			
		||||
// This was defined based on Cocoa's NSFontWeight* values, discussion by other open
 | 
			
		||||
// source projects then tweaked until most values produced visibly different results.
 | 
			
		||||
inline double WeightFromEnumeration(Scintilla::FontWeight weight) {
 | 
			
		||||
	switch (static_cast<int>(weight)/100) {
 | 
			
		||||
		case 0: return -1.0;
 | 
			
		||||
		case 1: return -0.7;
 | 
			
		||||
		case 2: return -0.5;
 | 
			
		||||
		case 3: return -0.23;
 | 
			
		||||
		case 4: return 0.0;
 | 
			
		||||
		case 5: return 0.2;
 | 
			
		||||
		case 6: return 0.3;
 | 
			
		||||
		case 7: return 0.4;
 | 
			
		||||
		case 8: return 0.6;
 | 
			
		||||
		case 9: return 0.8;
 | 
			
		||||
	}
 | 
			
		||||
	return 0.0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Convert from a FontStretch value to a floating point value to pass to CoreText.
 | 
			
		||||
// This was defined based on values used by other open source projects then tweaked
 | 
			
		||||
// until most values produced reasonable results.
 | 
			
		||||
inline double StretchFromEnumeration(Scintilla::FontStretch stretch) {
 | 
			
		||||
	switch (stretch) {
 | 
			
		||||
		case Scintilla::FontStretch::UltraCondensed: return -0.8;
 | 
			
		||||
		case Scintilla::FontStretch::ExtraCondensed: return -0.3;
 | 
			
		||||
		case Scintilla::FontStretch::Condensed: return -0.23;
 | 
			
		||||
		case Scintilla::FontStretch::SemiCondensed: return -0.1;
 | 
			
		||||
		case Scintilla::FontStretch::Normal: return 0.0;
 | 
			
		||||
		case Scintilla::FontStretch::SemiExpanded: return 0.1;
 | 
			
		||||
		case Scintilla::FontStretch::Expanded: return 0.2;
 | 
			
		||||
		case Scintilla::FontStretch::ExtraExpanded: return 0.3;
 | 
			
		||||
		case Scintilla::FontStretch::UltraExpanded: return 0.7;
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
class QuartzFont {
 | 
			
		||||
public:
 | 
			
		||||
	/** Create a font style from a name. */
 | 
			
		||||
	QuartzFont(const char *name, size_t length, float size, Scintilla::FontWeight weight, Scintilla::FontStretch stretch, bool italic) {
 | 
			
		||||
		assert(name != NULL && length > 0 && name[length] == '\0');
 | 
			
		||||
 | 
			
		||||
		CFStringRef fontName = CFStringCreateWithCString(kCFAllocatorDefault, name, kCFStringEncodingMacRoman);
 | 
			
		||||
		assert(fontName != NULL);
 | 
			
		||||
 | 
			
		||||
		// Specify the weight, stretch, and italics
 | 
			
		||||
		DictionaryForCF traits;
 | 
			
		||||
		const double weightValue = WeightFromEnumeration(weight);
 | 
			
		||||
		traits.SetItem(kCTFontWeightTrait, kCFNumberCGFloatType, &weightValue);
 | 
			
		||||
		const double stretchValue = StretchFromEnumeration(stretch);
 | 
			
		||||
		traits.SetItem(kCTFontWidthTrait, kCFNumberCGFloatType, &stretchValue);
 | 
			
		||||
		if (italic) {
 | 
			
		||||
			const int italicValue = kCTFontTraitItalic;
 | 
			
		||||
			traits.SetItem(kCTFontSymbolicTrait, kCFNumberIntType, &italicValue);
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		// create a font decriptor and then a font with that descriptor
 | 
			
		||||
		DictionaryForCF attributes;
 | 
			
		||||
		attributes.SetValue(kCTFontTraitsAttribute, traits.get());
 | 
			
		||||
		attributes.SetValue(kCTFontNameAttribute, fontName);
 | 
			
		||||
 | 
			
		||||
		CTFontDescriptorRef desc = ::CTFontDescriptorCreateWithAttributes(attributes.get());
 | 
			
		||||
		fontid = ::CTFontCreateWithFontDescriptor(desc, size, NULL);
 | 
			
		||||
		CFRelease(desc);
 | 
			
		||||
		if (!fontid) {
 | 
			
		||||
			// Traits failed so use base font
 | 
			
		||||
			fontid = ::CTFontCreateWithName(fontName, size, NULL);
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		if (!fontid) {
 | 
			
		||||
			// Failed to create requested font so use font always present
 | 
			
		||||
			fontid = ::CTFontCreateWithName((CFStringRef)@"Monaco", size, NULL);
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		CFRelease(fontName);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	CTFontRef getFontID() {
 | 
			
		||||
		return fontid;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
private:
 | 
			
		||||
	CTFontRef fontid;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										24
									
								
								3rdparty/scintilla552/scintilla/cocoa/Scintilla/Info.plist
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,24 @@
 | 
			
		||||
<?xml version="1.0" encoding="UTF-8"?>
 | 
			
		||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
 | 
			
		||||
<plist version="1.0">
 | 
			
		||||
<dict>
 | 
			
		||||
	<key>CFBundleDevelopmentRegion</key>
 | 
			
		||||
	<string>$(DEVELOPMENT_LANGUAGE)</string>
 | 
			
		||||
	<key>CFBundleExecutable</key>
 | 
			
		||||
	<string>$(EXECUTABLE_NAME)</string>
 | 
			
		||||
	<key>CFBundleIdentifier</key>
 | 
			
		||||
	<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
 | 
			
		||||
	<key>CFBundleInfoDictionaryVersion</key>
 | 
			
		||||
	<string>6.0</string>
 | 
			
		||||
	<key>CFBundleName</key>
 | 
			
		||||
	<string>$(PRODUCT_NAME)</string>
 | 
			
		||||
	<key>CFBundlePackageType</key>
 | 
			
		||||
	<string>$(PRODUCT_BUNDLE_PACKAGE_TYPE)</string>
 | 
			
		||||
	<key>CFBundleShortVersionString</key>
 | 
			
		||||
	<string>5.5.2</string>
 | 
			
		||||
	<key>CFBundleVersion</key>
 | 
			
		||||
	<string>$(CURRENT_PROJECT_VERSION)</string>
 | 
			
		||||
	<key>NSHumanReadableCopyright</key>
 | 
			
		||||
	<string>Copyright © 2020 Neil Hodgson. All rights reserved.</string>
 | 
			
		||||
</dict>
 | 
			
		||||
</plist>
 | 
			
		||||
							
								
								
									
										773
									
								
								3rdparty/scintilla552/scintilla/cocoa/Scintilla/Scintilla.xcodeproj/project.pbxproj
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,773 @@
 | 
			
		||||
// !$*UTF8*$!
 | 
			
		||||
{
 | 
			
		||||
	archiveVersion = 1;
 | 
			
		||||
	classes = {
 | 
			
		||||
	};
 | 
			
		||||
	objectVersion = 54;
 | 
			
		||||
	objects = {
 | 
			
		||||
 | 
			
		||||
/* Begin PBXBuildFile section */
 | 
			
		||||
		2807B4EA28964CA40063A31A /* ChangeHistory.cxx in Sources */ = {isa = PBXBuildFile; fileRef = 2807B4E828964CA40063A31A /* ChangeHistory.cxx */; };
 | 
			
		||||
		2807B4EB28964CA40063A31A /* ChangeHistory.h in Headers */ = {isa = PBXBuildFile; fileRef = 2807B4E928964CA40063A31A /* ChangeHistory.h */; };
 | 
			
		||||
		282936DF24E2D55D00C84BA2 /* QuartzTextLayout.h in Headers */ = {isa = PBXBuildFile; fileRef = 282936D324E2D55D00C84BA2 /* QuartzTextLayout.h */; };
 | 
			
		||||
		282936E024E2D55D00C84BA2 /* InfoBar.mm in Sources */ = {isa = PBXBuildFile; fileRef = 282936D424E2D55D00C84BA2 /* InfoBar.mm */; };
 | 
			
		||||
		282936E124E2D55D00C84BA2 /* QuartzTextStyleAttribute.h in Headers */ = {isa = PBXBuildFile; fileRef = 282936D524E2D55D00C84BA2 /* QuartzTextStyleAttribute.h */; };
 | 
			
		||||
		282936E224E2D55D00C84BA2 /* ScintillaCocoa.h in Headers */ = {isa = PBXBuildFile; fileRef = 282936D624E2D55D00C84BA2 /* ScintillaCocoa.h */; };
 | 
			
		||||
		282936E324E2D55D00C84BA2 /* PlatCocoa.mm in Sources */ = {isa = PBXBuildFile; fileRef = 282936D724E2D55D00C84BA2 /* PlatCocoa.mm */; };
 | 
			
		||||
		282936E424E2D55D00C84BA2 /* PlatCocoa.h in Headers */ = {isa = PBXBuildFile; fileRef = 282936D824E2D55D00C84BA2 /* PlatCocoa.h */; };
 | 
			
		||||
		282936E524E2D55D00C84BA2 /* InfoBarCommunicator.h in Headers */ = {isa = PBXBuildFile; fileRef = 282936D924E2D55D00C84BA2 /* InfoBarCommunicator.h */; settings = {ATTRIBUTES = (Public, ); }; };
 | 
			
		||||
		282936E624E2D55D00C84BA2 /* InfoBar.h in Headers */ = {isa = PBXBuildFile; fileRef = 282936DA24E2D55D00C84BA2 /* InfoBar.h */; settings = {ATTRIBUTES = (Public, ); }; };
 | 
			
		||||
		282936E724E2D55D00C84BA2 /* QuartzTextStyle.h in Headers */ = {isa = PBXBuildFile; fileRef = 282936DB24E2D55D00C84BA2 /* QuartzTextStyle.h */; };
 | 
			
		||||
		282936E824E2D55D00C84BA2 /* ScintillaView.mm in Sources */ = {isa = PBXBuildFile; fileRef = 282936DC24E2D55D00C84BA2 /* ScintillaView.mm */; };
 | 
			
		||||
		282936E924E2D55D00C84BA2 /* ScintillaCocoa.mm in Sources */ = {isa = PBXBuildFile; fileRef = 282936DD24E2D55D00C84BA2 /* ScintillaCocoa.mm */; };
 | 
			
		||||
		282936EA24E2D55D00C84BA2 /* ScintillaView.h in Headers */ = {isa = PBXBuildFile; fileRef = 282936DE24E2D55D00C84BA2 /* ScintillaView.h */; settings = {ATTRIBUTES = (Public, ); }; };
 | 
			
		||||
		2829372E24E2D58800C84BA2 /* DBCS.cxx in Sources */ = {isa = PBXBuildFile; fileRef = 282936EB24E2D58400C84BA2 /* DBCS.cxx */; };
 | 
			
		||||
		2829372F24E2D58800C84BA2 /* ElapsedPeriod.h in Headers */ = {isa = PBXBuildFile; fileRef = 282936EC24E2D58400C84BA2 /* ElapsedPeriod.h */; };
 | 
			
		||||
		2829373024E2D58800C84BA2 /* CallTip.h in Headers */ = {isa = PBXBuildFile; fileRef = 282936ED24E2D58400C84BA2 /* CallTip.h */; };
 | 
			
		||||
		2829373124E2D58800C84BA2 /* PositionCache.h in Headers */ = {isa = PBXBuildFile; fileRef = 282936EE24E2D58400C84BA2 /* PositionCache.h */; };
 | 
			
		||||
		2829373224E2D58800C84BA2 /* KeyMap.h in Headers */ = {isa = PBXBuildFile; fileRef = 282936EF24E2D58400C84BA2 /* KeyMap.h */; };
 | 
			
		||||
		2829373324E2D58800C84BA2 /* LineMarker.cxx in Sources */ = {isa = PBXBuildFile; fileRef = 282936F024E2D58400C84BA2 /* LineMarker.cxx */; };
 | 
			
		||||
		2829373524E2D58800C84BA2 /* Style.h in Headers */ = {isa = PBXBuildFile; fileRef = 282936F224E2D58400C84BA2 /* Style.h */; };
 | 
			
		||||
		2829373624E2D58800C84BA2 /* UniqueString.cxx in Sources */ = {isa = PBXBuildFile; fileRef = 282936F324E2D58400C84BA2 /* UniqueString.cxx */; };
 | 
			
		||||
		2829373724E2D58800C84BA2 /* RunStyles.h in Headers */ = {isa = PBXBuildFile; fileRef = 282936F424E2D58400C84BA2 /* RunStyles.h */; };
 | 
			
		||||
		2829373824E2D58800C84BA2 /* RESearch.h in Headers */ = {isa = PBXBuildFile; fileRef = 282936F524E2D58400C84BA2 /* RESearch.h */; };
 | 
			
		||||
		2829373924E2D58800C84BA2 /* Indicator.cxx in Sources */ = {isa = PBXBuildFile; fileRef = 282936F624E2D58400C84BA2 /* Indicator.cxx */; };
 | 
			
		||||
		2829373A24E2D58800C84BA2 /* MarginView.h in Headers */ = {isa = PBXBuildFile; fileRef = 282936F724E2D58400C84BA2 /* MarginView.h */; };
 | 
			
		||||
		2829373B24E2D58800C84BA2 /* Position.h in Headers */ = {isa = PBXBuildFile; fileRef = 282936F824E2D58400C84BA2 /* Position.h */; };
 | 
			
		||||
		2829373C24E2D58800C84BA2 /* CaseFolder.cxx in Sources */ = {isa = PBXBuildFile; fileRef = 282936F924E2D58400C84BA2 /* CaseFolder.cxx */; };
 | 
			
		||||
		2829373D24E2D58800C84BA2 /* PerLine.h in Headers */ = {isa = PBXBuildFile; fileRef = 282936FA24E2D58400C84BA2 /* PerLine.h */; };
 | 
			
		||||
		2829373E24E2D58800C84BA2 /* Indicator.h in Headers */ = {isa = PBXBuildFile; fileRef = 282936FB24E2D58400C84BA2 /* Indicator.h */; };
 | 
			
		||||
		2829373F24E2D58800C84BA2 /* UniConversion.h in Headers */ = {isa = PBXBuildFile; fileRef = 282936FC24E2D58400C84BA2 /* UniConversion.h */; };
 | 
			
		||||
		2829374024E2D58800C84BA2 /* XPM.cxx in Sources */ = {isa = PBXBuildFile; fileRef = 282936FD24E2D58400C84BA2 /* XPM.cxx */; };
 | 
			
		||||
		2829374124E2D58800C84BA2 /* CharClassify.h in Headers */ = {isa = PBXBuildFile; fileRef = 282936FE24E2D58400C84BA2 /* CharClassify.h */; };
 | 
			
		||||
		2829374224E2D58800C84BA2 /* Decoration.h in Headers */ = {isa = PBXBuildFile; fileRef = 282936FF24E2D58400C84BA2 /* Decoration.h */; };
 | 
			
		||||
		2829374524E2D58800C84BA2 /* PositionCache.cxx in Sources */ = {isa = PBXBuildFile; fileRef = 2829370224E2D58500C84BA2 /* PositionCache.cxx */; };
 | 
			
		||||
		2829374724E2D58800C84BA2 /* Style.cxx in Sources */ = {isa = PBXBuildFile; fileRef = 2829370424E2D58500C84BA2 /* Style.cxx */; };
 | 
			
		||||
		2829374824E2D58800C84BA2 /* RESearch.cxx in Sources */ = {isa = PBXBuildFile; fileRef = 2829370524E2D58500C84BA2 /* RESearch.cxx */; };
 | 
			
		||||
		2829374924E2D58800C84BA2 /* CallTip.cxx in Sources */ = {isa = PBXBuildFile; fileRef = 2829370624E2D58500C84BA2 /* CallTip.cxx */; };
 | 
			
		||||
		2829374A24E2D58800C84BA2 /* ContractionState.h in Headers */ = {isa = PBXBuildFile; fileRef = 2829370724E2D58500C84BA2 /* ContractionState.h */; };
 | 
			
		||||
		2829374B24E2D58800C84BA2 /* Decoration.cxx in Sources */ = {isa = PBXBuildFile; fileRef = 2829370824E2D58500C84BA2 /* Decoration.cxx */; };
 | 
			
		||||
		2829374C24E2D58800C84BA2 /* DBCS.h in Headers */ = {isa = PBXBuildFile; fileRef = 2829370924E2D58500C84BA2 /* DBCS.h */; };
 | 
			
		||||
		2829374D24E2D58800C84BA2 /* AutoComplete.h in Headers */ = {isa = PBXBuildFile; fileRef = 2829370A24E2D58500C84BA2 /* AutoComplete.h */; };
 | 
			
		||||
		2829374E24E2D58800C84BA2 /* KeyMap.cxx in Sources */ = {isa = PBXBuildFile; fileRef = 2829370B24E2D58500C84BA2 /* KeyMap.cxx */; };
 | 
			
		||||
		2829374F24E2D58800C84BA2 /* ViewStyle.h in Headers */ = {isa = PBXBuildFile; fileRef = 2829370C24E2D58500C84BA2 /* ViewStyle.h */; };
 | 
			
		||||
		2829375024E2D58800C84BA2 /* Selection.cxx in Sources */ = {isa = PBXBuildFile; fileRef = 2829370D24E2D58500C84BA2 /* Selection.cxx */; };
 | 
			
		||||
		2829375124E2D58800C84BA2 /* ContractionState.cxx in Sources */ = {isa = PBXBuildFile; fileRef = 2829370E24E2D58500C84BA2 /* ContractionState.cxx */; };
 | 
			
		||||
		2829375224E2D58800C84BA2 /* UniConversion.cxx in Sources */ = {isa = PBXBuildFile; fileRef = 2829370F24E2D58500C84BA2 /* UniConversion.cxx */; };
 | 
			
		||||
		2829375324E2D58800C84BA2 /* PerLine.cxx in Sources */ = {isa = PBXBuildFile; fileRef = 2829371024E2D58500C84BA2 /* PerLine.cxx */; };
 | 
			
		||||
		2829375424E2D58800C84BA2 /* SparseVector.h in Headers */ = {isa = PBXBuildFile; fileRef = 2829371124E2D58500C84BA2 /* SparseVector.h */; };
 | 
			
		||||
		2829375524E2D58800C84BA2 /* EditModel.cxx in Sources */ = {isa = PBXBuildFile; fileRef = 2829371224E2D58500C84BA2 /* EditModel.cxx */; };
 | 
			
		||||
		2829375624E2D58800C84BA2 /* EditView.h in Headers */ = {isa = PBXBuildFile; fileRef = 2829371324E2D58600C84BA2 /* EditView.h */; };
 | 
			
		||||
		2829375724E2D58800C84BA2 /* CaseConvert.cxx in Sources */ = {isa = PBXBuildFile; fileRef = 2829371424E2D58600C84BA2 /* CaseConvert.cxx */; };
 | 
			
		||||
		2829375824E2D58800C84BA2 /* CharClassify.cxx in Sources */ = {isa = PBXBuildFile; fileRef = 2829371524E2D58600C84BA2 /* CharClassify.cxx */; };
 | 
			
		||||
		2829375924E2D58800C84BA2 /* AutoComplete.cxx in Sources */ = {isa = PBXBuildFile; fileRef = 2829371624E2D58600C84BA2 /* AutoComplete.cxx */; };
 | 
			
		||||
		2829375A24E2D58800C84BA2 /* ViewStyle.cxx in Sources */ = {isa = PBXBuildFile; fileRef = 2829371724E2D58600C84BA2 /* ViewStyle.cxx */; };
 | 
			
		||||
		2829375B24E2D58800C84BA2 /* MarginView.cxx in Sources */ = {isa = PBXBuildFile; fileRef = 2829371824E2D58600C84BA2 /* MarginView.cxx */; };
 | 
			
		||||
		2829375C24E2D58800C84BA2 /* CellBuffer.h in Headers */ = {isa = PBXBuildFile; fileRef = 2829371924E2D58600C84BA2 /* CellBuffer.h */; };
 | 
			
		||||
		2829375D24E2D58800C84BA2 /* Document.cxx in Sources */ = {isa = PBXBuildFile; fileRef = 2829371A24E2D58600C84BA2 /* Document.cxx */; };
 | 
			
		||||
		2829375E24E2D58800C84BA2 /* LineMarker.h in Headers */ = {isa = PBXBuildFile; fileRef = 2829371B24E2D58600C84BA2 /* LineMarker.h */; };
 | 
			
		||||
		2829375F24E2D58800C84BA2 /* Editor.h in Headers */ = {isa = PBXBuildFile; fileRef = 2829371C24E2D58600C84BA2 /* Editor.h */; };
 | 
			
		||||
		2829376024E2D58800C84BA2 /* XPM.h in Headers */ = {isa = PBXBuildFile; fileRef = 2829371D24E2D58600C84BA2 /* XPM.h */; };
 | 
			
		||||
		2829376124E2D58800C84BA2 /* ScintillaBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 2829371E24E2D58600C84BA2 /* ScintillaBase.h */; };
 | 
			
		||||
		2829376224E2D58800C84BA2 /* Partitioning.h in Headers */ = {isa = PBXBuildFile; fileRef = 2829371F24E2D58700C84BA2 /* Partitioning.h */; };
 | 
			
		||||
		2829376424E2D58800C84BA2 /* SplitVector.h in Headers */ = {isa = PBXBuildFile; fileRef = 2829372124E2D58700C84BA2 /* SplitVector.h */; };
 | 
			
		||||
		2829376524E2D58800C84BA2 /* UniqueString.h in Headers */ = {isa = PBXBuildFile; fileRef = 2829372224E2D58700C84BA2 /* UniqueString.h */; };
 | 
			
		||||
		2829376624E2D58800C84BA2 /* CaseConvert.h in Headers */ = {isa = PBXBuildFile; fileRef = 2829372324E2D58700C84BA2 /* CaseConvert.h */; };
 | 
			
		||||
		2829376724E2D58800C84BA2 /* ScintillaBase.cxx in Sources */ = {isa = PBXBuildFile; fileRef = 2829372424E2D58700C84BA2 /* ScintillaBase.cxx */; };
 | 
			
		||||
		2829376824E2D58800C84BA2 /* CaseFolder.h in Headers */ = {isa = PBXBuildFile; fileRef = 2829372524E2D58700C84BA2 /* CaseFolder.h */; };
 | 
			
		||||
		2829376924E2D58800C84BA2 /* CellBuffer.cxx in Sources */ = {isa = PBXBuildFile; fileRef = 2829372624E2D58700C84BA2 /* CellBuffer.cxx */; };
 | 
			
		||||
		2829376A24E2D58800C84BA2 /* EditModel.h in Headers */ = {isa = PBXBuildFile; fileRef = 2829372724E2D58700C84BA2 /* EditModel.h */; };
 | 
			
		||||
		2829376B24E2D58800C84BA2 /* Editor.cxx in Sources */ = {isa = PBXBuildFile; fileRef = 2829372824E2D58700C84BA2 /* Editor.cxx */; };
 | 
			
		||||
		2829376C24E2D58800C84BA2 /* Selection.h in Headers */ = {isa = PBXBuildFile; fileRef = 2829372924E2D58700C84BA2 /* Selection.h */; };
 | 
			
		||||
		2829376D24E2D58800C84BA2 /* RunStyles.cxx in Sources */ = {isa = PBXBuildFile; fileRef = 2829372A24E2D58800C84BA2 /* RunStyles.cxx */; };
 | 
			
		||||
		2829376F24E2D58800C84BA2 /* Document.h in Headers */ = {isa = PBXBuildFile; fileRef = 2829372C24E2D58800C84BA2 /* Document.h */; };
 | 
			
		||||
		2829377024E2D58800C84BA2 /* EditView.cxx in Sources */ = {isa = PBXBuildFile; fileRef = 2829372D24E2D58800C84BA2 /* EditView.cxx */; };
 | 
			
		||||
		282937AA24E2D60E00C84BA2 /* res in Resources */ = {isa = PBXBuildFile; fileRef = 282937A924E2D60E00C84BA2 /* res */; };
 | 
			
		||||
		2867917C26BB448C007C2905 /* mac_cursor_busy.png in Resources */ = {isa = PBXBuildFile; fileRef = 2867917626BB448C007C2905 /* mac_cursor_busy.png */; };
 | 
			
		||||
		2867917D26BB448C007C2905 /* mac_cursor_flipped@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 2867917726BB448C007C2905 /* mac_cursor_flipped@2x.png */; };
 | 
			
		||||
		2867917E26BB448C007C2905 /* info_bar_bg.png in Resources */ = {isa = PBXBuildFile; fileRef = 2867917826BB448C007C2905 /* info_bar_bg.png */; };
 | 
			
		||||
		2867917F26BB448C007C2905 /* mac_cursor_busy@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 2867917926BB448C007C2905 /* mac_cursor_busy@2x.png */; };
 | 
			
		||||
		2867918026BB448C007C2905 /* mac_cursor_flipped.png in Resources */ = {isa = PBXBuildFile; fileRef = 2867917A26BB448C007C2905 /* mac_cursor_flipped.png */; };
 | 
			
		||||
		2867918126BB448C007C2905 /* info_bar_bg@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = 2867917B26BB448C007C2905 /* info_bar_bg@2x.png */; };
 | 
			
		||||
		286F8E6325F84F7400EC8D60 /* Sci_Position.h in Headers */ = {isa = PBXBuildFile; fileRef = 286F8E5F25F84F7400EC8D60 /* Sci_Position.h */; settings = {ATTRIBUTES = (Public, ); }; };
 | 
			
		||||
		286F8E6425F84F7400EC8D60 /* ILexer.h in Headers */ = {isa = PBXBuildFile; fileRef = 286F8E6025F84F7400EC8D60 /* ILexer.h */; settings = {ATTRIBUTES = (Public, ); }; };
 | 
			
		||||
		286F8E6525F84F7400EC8D60 /* ILoader.h in Headers */ = {isa = PBXBuildFile; fileRef = 286F8E6125F84F7400EC8D60 /* ILoader.h */; settings = {ATTRIBUTES = (Public, ); }; };
 | 
			
		||||
		286F8E6625F84F7400EC8D60 /* Scintilla.h in Headers */ = {isa = PBXBuildFile; fileRef = 286F8E6225F84F7400EC8D60 /* Scintilla.h */; settings = {ATTRIBUTES = (Public, ); }; };
 | 
			
		||||
		286F8EDE260448C300EC8D60 /* Platform.h in Headers */ = {isa = PBXBuildFile; fileRef = 286F8EDB260448C300EC8D60 /* Platform.h */; };
 | 
			
		||||
		286F8EDF260448C300EC8D60 /* Geometry.cxx in Sources */ = {isa = PBXBuildFile; fileRef = 286F8EDC260448C300EC8D60 /* Geometry.cxx */; };
 | 
			
		||||
		286F8EE0260448C300EC8D60 /* Geometry.h in Headers */ = {isa = PBXBuildFile; fileRef = 286F8EDD260448C300EC8D60 /* Geometry.h */; };
 | 
			
		||||
		287F3C6A246F90240040E76F /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 287F3C69246F90240040E76F /* Cocoa.framework */; };
 | 
			
		||||
		287F3C6C246F90300040E76F /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 287F3C6B246F90300040E76F /* QuartzCore.framework */; };
 | 
			
		||||
		28B962A52B6AF44F00ACCD96 /* UndoHistory.cxx in Sources */ = {isa = PBXBuildFile; fileRef = 28B962A32B6AF44F00ACCD96 /* UndoHistory.cxx */; };
 | 
			
		||||
		28B962A62B6AF44F00ACCD96 /* UndoHistory.h in Headers */ = {isa = PBXBuildFile; fileRef = 28B962A42B6AF44F00ACCD96 /* UndoHistory.h */; };
 | 
			
		||||
		28CC23042C6F10F300D75568 /* DictionaryForCF.h in Headers */ = {isa = PBXBuildFile; fileRef = 28CC23032C6F10F300D75568 /* DictionaryForCF.h */; };
 | 
			
		||||
		28EA9CAE255894B4007710C4 /* CharacterCategoryMap.cxx in Sources */ = {isa = PBXBuildFile; fileRef = 28EA9CAA255894B4007710C4 /* CharacterCategoryMap.cxx */; };
 | 
			
		||||
		28EA9CAF255894B4007710C4 /* CharacterType.cxx in Sources */ = {isa = PBXBuildFile; fileRef = 28EA9CAB255894B4007710C4 /* CharacterType.cxx */; };
 | 
			
		||||
		28EA9CB0255894B4007710C4 /* CharacterCategoryMap.h in Headers */ = {isa = PBXBuildFile; fileRef = 28EA9CAC255894B4007710C4 /* CharacterCategoryMap.h */; };
 | 
			
		||||
		28EA9CB1255894B4007710C4 /* CharacterType.h in Headers */ = {isa = PBXBuildFile; fileRef = 28EA9CAD255894B4007710C4 /* CharacterType.h */; };
 | 
			
		||||
/* End PBXBuildFile section */
 | 
			
		||||
 | 
			
		||||
/* Begin PBXFileReference section */
 | 
			
		||||
		2807B4E828964CA40063A31A /* ChangeHistory.cxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = ChangeHistory.cxx; path = ../../src/ChangeHistory.cxx; sourceTree = "<group>"; };
 | 
			
		||||
		2807B4E928964CA40063A31A /* ChangeHistory.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ChangeHistory.h; path = ../../src/ChangeHistory.h; sourceTree = "<group>"; };
 | 
			
		||||
		282936D324E2D55D00C84BA2 /* QuartzTextLayout.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = QuartzTextLayout.h; path = ../QuartzTextLayout.h; sourceTree = "<group>"; };
 | 
			
		||||
		282936D424E2D55D00C84BA2 /* InfoBar.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = InfoBar.mm; path = ../InfoBar.mm; sourceTree = "<group>"; };
 | 
			
		||||
		282936D524E2D55D00C84BA2 /* QuartzTextStyleAttribute.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = QuartzTextStyleAttribute.h; path = ../QuartzTextStyleAttribute.h; sourceTree = "<group>"; };
 | 
			
		||||
		282936D624E2D55D00C84BA2 /* ScintillaCocoa.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ScintillaCocoa.h; path = ../ScintillaCocoa.h; sourceTree = "<group>"; };
 | 
			
		||||
		282936D724E2D55D00C84BA2 /* PlatCocoa.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = PlatCocoa.mm; path = ../PlatCocoa.mm; sourceTree = "<group>"; };
 | 
			
		||||
		282936D824E2D55D00C84BA2 /* PlatCocoa.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PlatCocoa.h; path = ../PlatCocoa.h; sourceTree = "<group>"; };
 | 
			
		||||
		282936D924E2D55D00C84BA2 /* InfoBarCommunicator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = InfoBarCommunicator.h; path = ../InfoBarCommunicator.h; sourceTree = "<group>"; };
 | 
			
		||||
		282936DA24E2D55D00C84BA2 /* InfoBar.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = InfoBar.h; path = ../InfoBar.h; sourceTree = "<group>"; };
 | 
			
		||||
		282936DB24E2D55D00C84BA2 /* QuartzTextStyle.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = QuartzTextStyle.h; path = ../QuartzTextStyle.h; sourceTree = "<group>"; };
 | 
			
		||||
		282936DC24E2D55D00C84BA2 /* ScintillaView.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = ScintillaView.mm; path = ../ScintillaView.mm; sourceTree = "<group>"; };
 | 
			
		||||
		282936DD24E2D55D00C84BA2 /* ScintillaCocoa.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = ScintillaCocoa.mm; path = ../ScintillaCocoa.mm; sourceTree = "<group>"; };
 | 
			
		||||
		282936DE24E2D55D00C84BA2 /* ScintillaView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ScintillaView.h; path = ../ScintillaView.h; sourceTree = "<group>"; };
 | 
			
		||||
		282936EB24E2D58400C84BA2 /* DBCS.cxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = DBCS.cxx; path = ../../src/DBCS.cxx; sourceTree = "<group>"; };
 | 
			
		||||
		282936EC24E2D58400C84BA2 /* ElapsedPeriod.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ElapsedPeriod.h; path = ../../src/ElapsedPeriod.h; sourceTree = "<group>"; };
 | 
			
		||||
		282936ED24E2D58400C84BA2 /* CallTip.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CallTip.h; path = ../../src/CallTip.h; sourceTree = "<group>"; };
 | 
			
		||||
		282936EE24E2D58400C84BA2 /* PositionCache.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PositionCache.h; path = ../../src/PositionCache.h; sourceTree = "<group>"; };
 | 
			
		||||
		282936EF24E2D58400C84BA2 /* KeyMap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = KeyMap.h; path = ../../src/KeyMap.h; sourceTree = "<group>"; };
 | 
			
		||||
		282936F024E2D58400C84BA2 /* LineMarker.cxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = LineMarker.cxx; path = ../../src/LineMarker.cxx; sourceTree = "<group>"; };
 | 
			
		||||
		282936F224E2D58400C84BA2 /* Style.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Style.h; path = ../../src/Style.h; sourceTree = "<group>"; };
 | 
			
		||||
		282936F324E2D58400C84BA2 /* UniqueString.cxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = UniqueString.cxx; path = ../../src/UniqueString.cxx; sourceTree = "<group>"; };
 | 
			
		||||
		282936F424E2D58400C84BA2 /* RunStyles.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RunStyles.h; path = ../../src/RunStyles.h; sourceTree = "<group>"; };
 | 
			
		||||
		282936F524E2D58400C84BA2 /* RESearch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RESearch.h; path = ../../src/RESearch.h; sourceTree = "<group>"; };
 | 
			
		||||
		282936F624E2D58400C84BA2 /* Indicator.cxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Indicator.cxx; path = ../../src/Indicator.cxx; sourceTree = "<group>"; };
 | 
			
		||||
		282936F724E2D58400C84BA2 /* MarginView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MarginView.h; path = ../../src/MarginView.h; sourceTree = "<group>"; };
 | 
			
		||||
		282936F824E2D58400C84BA2 /* Position.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Position.h; path = ../../src/Position.h; sourceTree = "<group>"; };
 | 
			
		||||
		282936F924E2D58400C84BA2 /* CaseFolder.cxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = CaseFolder.cxx; path = ../../src/CaseFolder.cxx; sourceTree = "<group>"; };
 | 
			
		||||
		282936FA24E2D58400C84BA2 /* PerLine.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PerLine.h; path = ../../src/PerLine.h; sourceTree = "<group>"; };
 | 
			
		||||
		282936FB24E2D58400C84BA2 /* Indicator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Indicator.h; path = ../../src/Indicator.h; sourceTree = "<group>"; };
 | 
			
		||||
		282936FC24E2D58400C84BA2 /* UniConversion.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = UniConversion.h; path = ../../src/UniConversion.h; sourceTree = "<group>"; };
 | 
			
		||||
		282936FD24E2D58400C84BA2 /* XPM.cxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = XPM.cxx; path = ../../src/XPM.cxx; sourceTree = "<group>"; };
 | 
			
		||||
		282936FE24E2D58400C84BA2 /* CharClassify.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CharClassify.h; path = ../../src/CharClassify.h; sourceTree = "<group>"; };
 | 
			
		||||
		282936FF24E2D58400C84BA2 /* Decoration.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Decoration.h; path = ../../src/Decoration.h; sourceTree = "<group>"; };
 | 
			
		||||
		2829370224E2D58500C84BA2 /* PositionCache.cxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = PositionCache.cxx; path = ../../src/PositionCache.cxx; sourceTree = "<group>"; };
 | 
			
		||||
		2829370424E2D58500C84BA2 /* Style.cxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Style.cxx; path = ../../src/Style.cxx; sourceTree = "<group>"; };
 | 
			
		||||
		2829370524E2D58500C84BA2 /* RESearch.cxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RESearch.cxx; path = ../../src/RESearch.cxx; sourceTree = "<group>"; };
 | 
			
		||||
		2829370624E2D58500C84BA2 /* CallTip.cxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = CallTip.cxx; path = ../../src/CallTip.cxx; sourceTree = "<group>"; };
 | 
			
		||||
		2829370724E2D58500C84BA2 /* ContractionState.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ContractionState.h; path = ../../src/ContractionState.h; sourceTree = "<group>"; };
 | 
			
		||||
		2829370824E2D58500C84BA2 /* Decoration.cxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Decoration.cxx; path = ../../src/Decoration.cxx; sourceTree = "<group>"; };
 | 
			
		||||
		2829370924E2D58500C84BA2 /* DBCS.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DBCS.h; path = ../../src/DBCS.h; sourceTree = "<group>"; };
 | 
			
		||||
		2829370A24E2D58500C84BA2 /* AutoComplete.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AutoComplete.h; path = ../../src/AutoComplete.h; sourceTree = "<group>"; };
 | 
			
		||||
		2829370B24E2D58500C84BA2 /* KeyMap.cxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = KeyMap.cxx; path = ../../src/KeyMap.cxx; sourceTree = "<group>"; };
 | 
			
		||||
		2829370C24E2D58500C84BA2 /* ViewStyle.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ViewStyle.h; path = ../../src/ViewStyle.h; sourceTree = "<group>"; };
 | 
			
		||||
		2829370D24E2D58500C84BA2 /* Selection.cxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Selection.cxx; path = ../../src/Selection.cxx; sourceTree = "<group>"; };
 | 
			
		||||
		2829370E24E2D58500C84BA2 /* ContractionState.cxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = ContractionState.cxx; path = ../../src/ContractionState.cxx; sourceTree = "<group>"; };
 | 
			
		||||
		2829370F24E2D58500C84BA2 /* UniConversion.cxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = UniConversion.cxx; path = ../../src/UniConversion.cxx; sourceTree = "<group>"; };
 | 
			
		||||
		2829371024E2D58500C84BA2 /* PerLine.cxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = PerLine.cxx; path = ../../src/PerLine.cxx; sourceTree = "<group>"; };
 | 
			
		||||
		2829371124E2D58500C84BA2 /* SparseVector.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SparseVector.h; path = ../../src/SparseVector.h; sourceTree = "<group>"; };
 | 
			
		||||
		2829371224E2D58500C84BA2 /* EditModel.cxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = EditModel.cxx; path = ../../src/EditModel.cxx; sourceTree = "<group>"; };
 | 
			
		||||
		2829371324E2D58600C84BA2 /* EditView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = EditView.h; path = ../../src/EditView.h; sourceTree = "<group>"; };
 | 
			
		||||
		2829371424E2D58600C84BA2 /* CaseConvert.cxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = CaseConvert.cxx; path = ../../src/CaseConvert.cxx; sourceTree = "<group>"; };
 | 
			
		||||
		2829371524E2D58600C84BA2 /* CharClassify.cxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = CharClassify.cxx; path = ../../src/CharClassify.cxx; sourceTree = "<group>"; };
 | 
			
		||||
		2829371624E2D58600C84BA2 /* AutoComplete.cxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = AutoComplete.cxx; path = ../../src/AutoComplete.cxx; sourceTree = "<group>"; };
 | 
			
		||||
		2829371724E2D58600C84BA2 /* ViewStyle.cxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = ViewStyle.cxx; path = ../../src/ViewStyle.cxx; sourceTree = "<group>"; };
 | 
			
		||||
		2829371824E2D58600C84BA2 /* MarginView.cxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = MarginView.cxx; path = ../../src/MarginView.cxx; sourceTree = "<group>"; };
 | 
			
		||||
		2829371924E2D58600C84BA2 /* CellBuffer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CellBuffer.h; path = ../../src/CellBuffer.h; sourceTree = "<group>"; };
 | 
			
		||||
		2829371A24E2D58600C84BA2 /* Document.cxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Document.cxx; path = ../../src/Document.cxx; sourceTree = "<group>"; };
 | 
			
		||||
		2829371B24E2D58600C84BA2 /* LineMarker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = LineMarker.h; path = ../../src/LineMarker.h; sourceTree = "<group>"; };
 | 
			
		||||
		2829371C24E2D58600C84BA2 /* Editor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Editor.h; path = ../../src/Editor.h; sourceTree = "<group>"; };
 | 
			
		||||
		2829371D24E2D58600C84BA2 /* XPM.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = XPM.h; path = ../../src/XPM.h; sourceTree = "<group>"; };
 | 
			
		||||
		2829371E24E2D58600C84BA2 /* ScintillaBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ScintillaBase.h; path = ../../src/ScintillaBase.h; sourceTree = "<group>"; };
 | 
			
		||||
		2829371F24E2D58700C84BA2 /* Partitioning.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Partitioning.h; path = ../../src/Partitioning.h; sourceTree = "<group>"; };
 | 
			
		||||
		2829372124E2D58700C84BA2 /* SplitVector.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SplitVector.h; path = ../../src/SplitVector.h; sourceTree = "<group>"; };
 | 
			
		||||
		2829372224E2D58700C84BA2 /* UniqueString.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = UniqueString.h; path = ../../src/UniqueString.h; sourceTree = "<group>"; };
 | 
			
		||||
		2829372324E2D58700C84BA2 /* CaseConvert.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CaseConvert.h; path = ../../src/CaseConvert.h; sourceTree = "<group>"; };
 | 
			
		||||
		2829372424E2D58700C84BA2 /* ScintillaBase.cxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = ScintillaBase.cxx; path = ../../src/ScintillaBase.cxx; sourceTree = "<group>"; };
 | 
			
		||||
		2829372524E2D58700C84BA2 /* CaseFolder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CaseFolder.h; path = ../../src/CaseFolder.h; sourceTree = "<group>"; };
 | 
			
		||||
		2829372624E2D58700C84BA2 /* CellBuffer.cxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = CellBuffer.cxx; path = ../../src/CellBuffer.cxx; sourceTree = "<group>"; };
 | 
			
		||||
		2829372724E2D58700C84BA2 /* EditModel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = EditModel.h; path = ../../src/EditModel.h; sourceTree = "<group>"; };
 | 
			
		||||
		2829372824E2D58700C84BA2 /* Editor.cxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Editor.cxx; path = ../../src/Editor.cxx; sourceTree = "<group>"; };
 | 
			
		||||
		2829372924E2D58700C84BA2 /* Selection.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Selection.h; path = ../../src/Selection.h; sourceTree = "<group>"; };
 | 
			
		||||
		2829372A24E2D58800C84BA2 /* RunStyles.cxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RunStyles.cxx; path = ../../src/RunStyles.cxx; sourceTree = "<group>"; };
 | 
			
		||||
		2829372C24E2D58800C84BA2 /* Document.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Document.h; path = ../../src/Document.h; sourceTree = "<group>"; };
 | 
			
		||||
		2829372D24E2D58800C84BA2 /* EditView.cxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = EditView.cxx; path = ../../src/EditView.cxx; sourceTree = "<group>"; };
 | 
			
		||||
		282937A924E2D60E00C84BA2 /* res */ = {isa = PBXFileReference; lastKnownFileType = folder; name = res; path = ../res; sourceTree = "<group>"; };
 | 
			
		||||
		282937AF24E2D80E00C84BA2 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
 | 
			
		||||
		2867917626BB448C007C2905 /* mac_cursor_busy.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = mac_cursor_busy.png; path = ../res/mac_cursor_busy.png; sourceTree = "<group>"; };
 | 
			
		||||
		2867917726BB448C007C2905 /* mac_cursor_flipped@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "mac_cursor_flipped@2x.png"; path = "../res/mac_cursor_flipped@2x.png"; sourceTree = "<group>"; };
 | 
			
		||||
		2867917826BB448C007C2905 /* info_bar_bg.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = info_bar_bg.png; path = ../res/info_bar_bg.png; sourceTree = "<group>"; };
 | 
			
		||||
		2867917926BB448C007C2905 /* mac_cursor_busy@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "mac_cursor_busy@2x.png"; path = "../res/mac_cursor_busy@2x.png"; sourceTree = "<group>"; };
 | 
			
		||||
		2867917A26BB448C007C2905 /* mac_cursor_flipped.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = mac_cursor_flipped.png; path = ../res/mac_cursor_flipped.png; sourceTree = "<group>"; };
 | 
			
		||||
		2867917B26BB448C007C2905 /* info_bar_bg@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "info_bar_bg@2x.png"; path = "../res/info_bar_bg@2x.png"; sourceTree = "<group>"; };
 | 
			
		||||
		286F8E5F25F84F7400EC8D60 /* Sci_Position.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Sci_Position.h; path = ../../include/Sci_Position.h; sourceTree = "<group>"; };
 | 
			
		||||
		286F8E6025F84F7400EC8D60 /* ILexer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ILexer.h; path = ../../include/ILexer.h; sourceTree = "<group>"; };
 | 
			
		||||
		286F8E6125F84F7400EC8D60 /* ILoader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ILoader.h; path = ../../include/ILoader.h; sourceTree = "<group>"; };
 | 
			
		||||
		286F8E6225F84F7400EC8D60 /* Scintilla.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Scintilla.h; path = ../../include/Scintilla.h; sourceTree = "<group>"; };
 | 
			
		||||
		286F8EDB260448C300EC8D60 /* Platform.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Platform.h; path = ../../src/Platform.h; sourceTree = "<group>"; };
 | 
			
		||||
		286F8EDC260448C300EC8D60 /* Geometry.cxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Geometry.cxx; path = ../../src/Geometry.cxx; sourceTree = "<group>"; };
 | 
			
		||||
		286F8EDD260448C300EC8D60 /* Geometry.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Geometry.h; path = ../../src/Geometry.h; sourceTree = "<group>"; };
 | 
			
		||||
		287F3C41246F8DC70040E76F /* Scintilla.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Scintilla.framework; sourceTree = BUILT_PRODUCTS_DIR; };
 | 
			
		||||
		287F3C69246F90240040E76F /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = System/Library/Frameworks/Cocoa.framework; sourceTree = SDKROOT; };
 | 
			
		||||
		287F3C6B246F90300040E76F /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; };
 | 
			
		||||
		287F3E0F246F9AE50040E76F /* module.modulemap */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = "sourcecode.module-map"; path = module.modulemap; sourceTree = SOURCE_ROOT; };
 | 
			
		||||
		28B962A32B6AF44F00ACCD96 /* UndoHistory.cxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = UndoHistory.cxx; path = ../../src/UndoHistory.cxx; sourceTree = "<group>"; };
 | 
			
		||||
		28B962A42B6AF44F00ACCD96 /* UndoHistory.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = UndoHistory.h; path = ../../src/UndoHistory.h; sourceTree = "<group>"; };
 | 
			
		||||
		28CC23032C6F10F300D75568 /* DictionaryForCF.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DictionaryForCF.h; path = ../DictionaryForCF.h; sourceTree = "<group>"; };
 | 
			
		||||
		28EA9CAA255894B4007710C4 /* CharacterCategoryMap.cxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = CharacterCategoryMap.cxx; path = ../../src/CharacterCategoryMap.cxx; sourceTree = "<group>"; };
 | 
			
		||||
		28EA9CAB255894B4007710C4 /* CharacterType.cxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = CharacterType.cxx; path = ../../src/CharacterType.cxx; sourceTree = "<group>"; };
 | 
			
		||||
		28EA9CAC255894B4007710C4 /* CharacterCategoryMap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CharacterCategoryMap.h; path = ../../src/CharacterCategoryMap.h; sourceTree = "<group>"; };
 | 
			
		||||
		28EA9CAD255894B4007710C4 /* CharacterType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CharacterType.h; path = ../../src/CharacterType.h; sourceTree = "<group>"; };
 | 
			
		||||
/* End PBXFileReference section */
 | 
			
		||||
 | 
			
		||||
/* Begin PBXFrameworksBuildPhase section */
 | 
			
		||||
		287F3C3E246F8DC70040E76F /* Frameworks */ = {
 | 
			
		||||
			isa = PBXFrameworksBuildPhase;
 | 
			
		||||
			buildActionMask = 2147483647;
 | 
			
		||||
			files = (
 | 
			
		||||
				287F3C6C246F90300040E76F /* QuartzCore.framework in Frameworks */,
 | 
			
		||||
				287F3C6A246F90240040E76F /* Cocoa.framework in Frameworks */,
 | 
			
		||||
			);
 | 
			
		||||
			runOnlyForDeploymentPostprocessing = 0;
 | 
			
		||||
		};
 | 
			
		||||
/* End PBXFrameworksBuildPhase section */
 | 
			
		||||
 | 
			
		||||
/* Begin PBXGroup section */
 | 
			
		||||
		287F3C37246F8DC70040E76F = {
 | 
			
		||||
			isa = PBXGroup;
 | 
			
		||||
			children = (
 | 
			
		||||
				287F3C4D246F8E4A0040E76F /* Backend */,
 | 
			
		||||
				287F3C4E246F8E560040E76F /* Classes */,
 | 
			
		||||
				287F3C4F246F8E6E0040E76F /* Resources */,
 | 
			
		||||
				287F3C42246F8DC70040E76F /* Products */,
 | 
			
		||||
				287F3C68246F90240040E76F /* Frameworks */,
 | 
			
		||||
			);
 | 
			
		||||
			sourceTree = "<group>";
 | 
			
		||||
		};
 | 
			
		||||
		287F3C42246F8DC70040E76F /* Products */ = {
 | 
			
		||||
			isa = PBXGroup;
 | 
			
		||||
			children = (
 | 
			
		||||
				287F3C41246F8DC70040E76F /* Scintilla.framework */,
 | 
			
		||||
			);
 | 
			
		||||
			name = Products;
 | 
			
		||||
			sourceTree = "<group>";
 | 
			
		||||
		};
 | 
			
		||||
		287F3C4D246F8E4A0040E76F /* Backend */ = {
 | 
			
		||||
			isa = PBXGroup;
 | 
			
		||||
			children = (
 | 
			
		||||
				2829371624E2D58600C84BA2 /* AutoComplete.cxx */,
 | 
			
		||||
				2829370A24E2D58500C84BA2 /* AutoComplete.h */,
 | 
			
		||||
				2829370624E2D58500C84BA2 /* CallTip.cxx */,
 | 
			
		||||
				282936ED24E2D58400C84BA2 /* CallTip.h */,
 | 
			
		||||
				2829371424E2D58600C84BA2 /* CaseConvert.cxx */,
 | 
			
		||||
				2829372324E2D58700C84BA2 /* CaseConvert.h */,
 | 
			
		||||
				282936F924E2D58400C84BA2 /* CaseFolder.cxx */,
 | 
			
		||||
				2829372524E2D58700C84BA2 /* CaseFolder.h */,
 | 
			
		||||
				2829372624E2D58700C84BA2 /* CellBuffer.cxx */,
 | 
			
		||||
				2829371924E2D58600C84BA2 /* CellBuffer.h */,
 | 
			
		||||
				2807B4E828964CA40063A31A /* ChangeHistory.cxx */,
 | 
			
		||||
				2807B4E928964CA40063A31A /* ChangeHistory.h */,
 | 
			
		||||
				28EA9CAA255894B4007710C4 /* CharacterCategoryMap.cxx */,
 | 
			
		||||
				28EA9CAC255894B4007710C4 /* CharacterCategoryMap.h */,
 | 
			
		||||
				28EA9CAB255894B4007710C4 /* CharacterType.cxx */,
 | 
			
		||||
				28EA9CAD255894B4007710C4 /* CharacterType.h */,
 | 
			
		||||
				2829371524E2D58600C84BA2 /* CharClassify.cxx */,
 | 
			
		||||
				282936FE24E2D58400C84BA2 /* CharClassify.h */,
 | 
			
		||||
				2829370E24E2D58500C84BA2 /* ContractionState.cxx */,
 | 
			
		||||
				2829370724E2D58500C84BA2 /* ContractionState.h */,
 | 
			
		||||
				282936EB24E2D58400C84BA2 /* DBCS.cxx */,
 | 
			
		||||
				2829370924E2D58500C84BA2 /* DBCS.h */,
 | 
			
		||||
				2829370824E2D58500C84BA2 /* Decoration.cxx */,
 | 
			
		||||
				282936FF24E2D58400C84BA2 /* Decoration.h */,
 | 
			
		||||
				2829371A24E2D58600C84BA2 /* Document.cxx */,
 | 
			
		||||
				2829372C24E2D58800C84BA2 /* Document.h */,
 | 
			
		||||
				2829371224E2D58500C84BA2 /* EditModel.cxx */,
 | 
			
		||||
				2829372724E2D58700C84BA2 /* EditModel.h */,
 | 
			
		||||
				2829372824E2D58700C84BA2 /* Editor.cxx */,
 | 
			
		||||
				2829371C24E2D58600C84BA2 /* Editor.h */,
 | 
			
		||||
				2829372D24E2D58800C84BA2 /* EditView.cxx */,
 | 
			
		||||
				2829371324E2D58600C84BA2 /* EditView.h */,
 | 
			
		||||
				282936EC24E2D58400C84BA2 /* ElapsedPeriod.h */,
 | 
			
		||||
				286F8EDC260448C300EC8D60 /* Geometry.cxx */,
 | 
			
		||||
				286F8EDD260448C300EC8D60 /* Geometry.h */,
 | 
			
		||||
				286F8E6025F84F7400EC8D60 /* ILexer.h */,
 | 
			
		||||
				286F8E6125F84F7400EC8D60 /* ILoader.h */,
 | 
			
		||||
				282936F624E2D58400C84BA2 /* Indicator.cxx */,
 | 
			
		||||
				282936FB24E2D58400C84BA2 /* Indicator.h */,
 | 
			
		||||
				2829370B24E2D58500C84BA2 /* KeyMap.cxx */,
 | 
			
		||||
				282936EF24E2D58400C84BA2 /* KeyMap.h */,
 | 
			
		||||
				282936F024E2D58400C84BA2 /* LineMarker.cxx */,
 | 
			
		||||
				2829371B24E2D58600C84BA2 /* LineMarker.h */,
 | 
			
		||||
				2829371824E2D58600C84BA2 /* MarginView.cxx */,
 | 
			
		||||
				282936F724E2D58400C84BA2 /* MarginView.h */,
 | 
			
		||||
				2829371F24E2D58700C84BA2 /* Partitioning.h */,
 | 
			
		||||
				2829371024E2D58500C84BA2 /* PerLine.cxx */,
 | 
			
		||||
				282936FA24E2D58400C84BA2 /* PerLine.h */,
 | 
			
		||||
				286F8EDB260448C300EC8D60 /* Platform.h */,
 | 
			
		||||
				282936F824E2D58400C84BA2 /* Position.h */,
 | 
			
		||||
				2829370224E2D58500C84BA2 /* PositionCache.cxx */,
 | 
			
		||||
				282936EE24E2D58400C84BA2 /* PositionCache.h */,
 | 
			
		||||
				2829370524E2D58500C84BA2 /* RESearch.cxx */,
 | 
			
		||||
				282936F524E2D58400C84BA2 /* RESearch.h */,
 | 
			
		||||
				2829372A24E2D58800C84BA2 /* RunStyles.cxx */,
 | 
			
		||||
				282936F424E2D58400C84BA2 /* RunStyles.h */,
 | 
			
		||||
				286F8E5F25F84F7400EC8D60 /* Sci_Position.h */,
 | 
			
		||||
				286F8E6225F84F7400EC8D60 /* Scintilla.h */,
 | 
			
		||||
				2829372424E2D58700C84BA2 /* ScintillaBase.cxx */,
 | 
			
		||||
				2829371E24E2D58600C84BA2 /* ScintillaBase.h */,
 | 
			
		||||
				2829370D24E2D58500C84BA2 /* Selection.cxx */,
 | 
			
		||||
				2829372924E2D58700C84BA2 /* Selection.h */,
 | 
			
		||||
				2829371124E2D58500C84BA2 /* SparseVector.h */,
 | 
			
		||||
				2829372124E2D58700C84BA2 /* SplitVector.h */,
 | 
			
		||||
				2829370424E2D58500C84BA2 /* Style.cxx */,
 | 
			
		||||
				282936F224E2D58400C84BA2 /* Style.h */,
 | 
			
		||||
				28B962A32B6AF44F00ACCD96 /* UndoHistory.cxx */,
 | 
			
		||||
				28B962A42B6AF44F00ACCD96 /* UndoHistory.h */,
 | 
			
		||||
				2829370F24E2D58500C84BA2 /* UniConversion.cxx */,
 | 
			
		||||
				282936FC24E2D58400C84BA2 /* UniConversion.h */,
 | 
			
		||||
				282936F324E2D58400C84BA2 /* UniqueString.cxx */,
 | 
			
		||||
				2829372224E2D58700C84BA2 /* UniqueString.h */,
 | 
			
		||||
				2829371724E2D58600C84BA2 /* ViewStyle.cxx */,
 | 
			
		||||
				2829370C24E2D58500C84BA2 /* ViewStyle.h */,
 | 
			
		||||
				282936FD24E2D58400C84BA2 /* XPM.cxx */,
 | 
			
		||||
				2829371D24E2D58600C84BA2 /* XPM.h */,
 | 
			
		||||
			);
 | 
			
		||||
			name = Backend;
 | 
			
		||||
			sourceTree = "<group>";
 | 
			
		||||
		};
 | 
			
		||||
		287F3C4E246F8E560040E76F /* Classes */ = {
 | 
			
		||||
			isa = PBXGroup;
 | 
			
		||||
			children = (
 | 
			
		||||
				28CC23032C6F10F300D75568 /* DictionaryForCF.h */,
 | 
			
		||||
				282936DA24E2D55D00C84BA2 /* InfoBar.h */,
 | 
			
		||||
				282936D424E2D55D00C84BA2 /* InfoBar.mm */,
 | 
			
		||||
				282936D924E2D55D00C84BA2 /* InfoBarCommunicator.h */,
 | 
			
		||||
				287F3E0F246F9AE50040E76F /* module.modulemap */,
 | 
			
		||||
				282936D824E2D55D00C84BA2 /* PlatCocoa.h */,
 | 
			
		||||
				282936D724E2D55D00C84BA2 /* PlatCocoa.mm */,
 | 
			
		||||
				282936D324E2D55D00C84BA2 /* QuartzTextLayout.h */,
 | 
			
		||||
				282936DB24E2D55D00C84BA2 /* QuartzTextStyle.h */,
 | 
			
		||||
				282936D524E2D55D00C84BA2 /* QuartzTextStyleAttribute.h */,
 | 
			
		||||
				282936D624E2D55D00C84BA2 /* ScintillaCocoa.h */,
 | 
			
		||||
				282936DD24E2D55D00C84BA2 /* ScintillaCocoa.mm */,
 | 
			
		||||
				282936DE24E2D55D00C84BA2 /* ScintillaView.h */,
 | 
			
		||||
				282936DC24E2D55D00C84BA2 /* ScintillaView.mm */,
 | 
			
		||||
			);
 | 
			
		||||
			name = Classes;
 | 
			
		||||
			sourceTree = "<group>";
 | 
			
		||||
		};
 | 
			
		||||
		287F3C4F246F8E6E0040E76F /* Resources */ = {
 | 
			
		||||
			isa = PBXGroup;
 | 
			
		||||
			children = (
 | 
			
		||||
				282937AF24E2D80E00C84BA2 /* Info.plist */,
 | 
			
		||||
				2867917826BB448C007C2905 /* info_bar_bg.png */,
 | 
			
		||||
				2867917B26BB448C007C2905 /* info_bar_bg@2x.png */,
 | 
			
		||||
				2867917626BB448C007C2905 /* mac_cursor_busy.png */,
 | 
			
		||||
				2867917926BB448C007C2905 /* mac_cursor_busy@2x.png */,
 | 
			
		||||
				2867917A26BB448C007C2905 /* mac_cursor_flipped.png */,
 | 
			
		||||
				2867917726BB448C007C2905 /* mac_cursor_flipped@2x.png */,
 | 
			
		||||
				282937A924E2D60E00C84BA2 /* res */,
 | 
			
		||||
			);
 | 
			
		||||
			name = Resources;
 | 
			
		||||
			sourceTree = "<group>";
 | 
			
		||||
		};
 | 
			
		||||
		287F3C68246F90240040E76F /* Frameworks */ = {
 | 
			
		||||
			isa = PBXGroup;
 | 
			
		||||
			children = (
 | 
			
		||||
				287F3C6B246F90300040E76F /* QuartzCore.framework */,
 | 
			
		||||
				287F3C69246F90240040E76F /* Cocoa.framework */,
 | 
			
		||||
			);
 | 
			
		||||
			name = Frameworks;
 | 
			
		||||
			sourceTree = "<group>";
 | 
			
		||||
		};
 | 
			
		||||
/* End PBXGroup section */
 | 
			
		||||
 | 
			
		||||
/* Begin PBXHeadersBuildPhase section */
 | 
			
		||||
		287F3C3C246F8DC70040E76F /* Headers */ = {
 | 
			
		||||
			isa = PBXHeadersBuildPhase;
 | 
			
		||||
			buildActionMask = 2147483647;
 | 
			
		||||
			files = (
 | 
			
		||||
				2829374C24E2D58800C84BA2 /* DBCS.h in Headers */,
 | 
			
		||||
				2829373024E2D58800C84BA2 /* CallTip.h in Headers */,
 | 
			
		||||
				2829374224E2D58800C84BA2 /* Decoration.h in Headers */,
 | 
			
		||||
				2829375624E2D58800C84BA2 /* EditView.h in Headers */,
 | 
			
		||||
				2829375424E2D58800C84BA2 /* SparseVector.h in Headers */,
 | 
			
		||||
				286F8E6325F84F7400EC8D60 /* Sci_Position.h in Headers */,
 | 
			
		||||
				2829373224E2D58800C84BA2 /* KeyMap.h in Headers */,
 | 
			
		||||
				2829373E24E2D58800C84BA2 /* Indicator.h in Headers */,
 | 
			
		||||
				286F8EDE260448C300EC8D60 /* Platform.h in Headers */,
 | 
			
		||||
				2829375C24E2D58800C84BA2 /* CellBuffer.h in Headers */,
 | 
			
		||||
				2829373F24E2D58800C84BA2 /* UniConversion.h in Headers */,
 | 
			
		||||
				2829373D24E2D58800C84BA2 /* PerLine.h in Headers */,
 | 
			
		||||
				2829373724E2D58800C84BA2 /* RunStyles.h in Headers */,
 | 
			
		||||
				28EA9CB0255894B4007710C4 /* CharacterCategoryMap.h in Headers */,
 | 
			
		||||
				282936E624E2D55D00C84BA2 /* InfoBar.h in Headers */,
 | 
			
		||||
				2829375E24E2D58800C84BA2 /* LineMarker.h in Headers */,
 | 
			
		||||
				2829376824E2D58800C84BA2 /* CaseFolder.h in Headers */,
 | 
			
		||||
				286F8E6425F84F7400EC8D60 /* ILexer.h in Headers */,
 | 
			
		||||
				2829376524E2D58800C84BA2 /* UniqueString.h in Headers */,
 | 
			
		||||
				2829375F24E2D58800C84BA2 /* Editor.h in Headers */,
 | 
			
		||||
				2829376624E2D58800C84BA2 /* CaseConvert.h in Headers */,
 | 
			
		||||
				2829374F24E2D58800C84BA2 /* ViewStyle.h in Headers */,
 | 
			
		||||
				282936DF24E2D55D00C84BA2 /* QuartzTextLayout.h in Headers */,
 | 
			
		||||
				2829376A24E2D58800C84BA2 /* EditModel.h in Headers */,
 | 
			
		||||
				282936E724E2D55D00C84BA2 /* QuartzTextStyle.h in Headers */,
 | 
			
		||||
				2829376F24E2D58800C84BA2 /* Document.h in Headers */,
 | 
			
		||||
				2829374A24E2D58800C84BA2 /* ContractionState.h in Headers */,
 | 
			
		||||
				2829376024E2D58800C84BA2 /* XPM.h in Headers */,
 | 
			
		||||
				28B962A62B6AF44F00ACCD96 /* UndoHistory.h in Headers */,
 | 
			
		||||
				2829372F24E2D58800C84BA2 /* ElapsedPeriod.h in Headers */,
 | 
			
		||||
				28EA9CB1255894B4007710C4 /* CharacterType.h in Headers */,
 | 
			
		||||
				2829373A24E2D58800C84BA2 /* MarginView.h in Headers */,
 | 
			
		||||
				286F8E6525F84F7400EC8D60 /* ILoader.h in Headers */,
 | 
			
		||||
				282936EA24E2D55D00C84BA2 /* ScintillaView.h in Headers */,
 | 
			
		||||
				282936E124E2D55D00C84BA2 /* QuartzTextStyleAttribute.h in Headers */,
 | 
			
		||||
				2829376224E2D58800C84BA2 /* Partitioning.h in Headers */,
 | 
			
		||||
				286F8E6625F84F7400EC8D60 /* Scintilla.h in Headers */,
 | 
			
		||||
				2829376424E2D58800C84BA2 /* SplitVector.h in Headers */,
 | 
			
		||||
				2829373B24E2D58800C84BA2 /* Position.h in Headers */,
 | 
			
		||||
				282936E224E2D55D00C84BA2 /* ScintillaCocoa.h in Headers */,
 | 
			
		||||
				2829373524E2D58800C84BA2 /* Style.h in Headers */,
 | 
			
		||||
				28CC23042C6F10F300D75568 /* DictionaryForCF.h in Headers */,
 | 
			
		||||
				282936E424E2D55D00C84BA2 /* PlatCocoa.h in Headers */,
 | 
			
		||||
				2807B4EB28964CA40063A31A /* ChangeHistory.h in Headers */,
 | 
			
		||||
				2829376C24E2D58800C84BA2 /* Selection.h in Headers */,
 | 
			
		||||
				2829376124E2D58800C84BA2 /* ScintillaBase.h in Headers */,
 | 
			
		||||
				2829373824E2D58800C84BA2 /* RESearch.h in Headers */,
 | 
			
		||||
				282936E524E2D55D00C84BA2 /* InfoBarCommunicator.h in Headers */,
 | 
			
		||||
				2829374D24E2D58800C84BA2 /* AutoComplete.h in Headers */,
 | 
			
		||||
				2829374124E2D58800C84BA2 /* CharClassify.h in Headers */,
 | 
			
		||||
				2829373124E2D58800C84BA2 /* PositionCache.h in Headers */,
 | 
			
		||||
				286F8EE0260448C300EC8D60 /* Geometry.h in Headers */,
 | 
			
		||||
			);
 | 
			
		||||
			runOnlyForDeploymentPostprocessing = 0;
 | 
			
		||||
		};
 | 
			
		||||
/* End PBXHeadersBuildPhase section */
 | 
			
		||||
 | 
			
		||||
/* Begin PBXNativeTarget section */
 | 
			
		||||
		287F3C40246F8DC70040E76F /* Scintilla */ = {
 | 
			
		||||
			isa = PBXNativeTarget;
 | 
			
		||||
			buildConfigurationList = 287F3C49246F8DC70040E76F /* Build configuration list for PBXNativeTarget "Scintilla" */;
 | 
			
		||||
			buildPhases = (
 | 
			
		||||
				287F3C3C246F8DC70040E76F /* Headers */,
 | 
			
		||||
				287F3C3F246F8DC70040E76F /* Resources */,
 | 
			
		||||
				287F3C3D246F8DC70040E76F /* Sources */,
 | 
			
		||||
				287F3C3E246F8DC70040E76F /* Frameworks */,
 | 
			
		||||
			);
 | 
			
		||||
			buildRules = (
 | 
			
		||||
			);
 | 
			
		||||
			dependencies = (
 | 
			
		||||
			);
 | 
			
		||||
			name = Scintilla;
 | 
			
		||||
			productName = Scintilla;
 | 
			
		||||
			productReference = 287F3C41246F8DC70040E76F /* Scintilla.framework */;
 | 
			
		||||
			productType = "com.apple.product-type.framework";
 | 
			
		||||
		};
 | 
			
		||||
/* End PBXNativeTarget section */
 | 
			
		||||
 | 
			
		||||
/* Begin PBXProject section */
 | 
			
		||||
		287F3C38246F8DC70040E76F /* Project object */ = {
 | 
			
		||||
			isa = PBXProject;
 | 
			
		||||
			attributes = {
 | 
			
		||||
				BuildIndependentTargetsInParallel = YES;
 | 
			
		||||
				LastUpgradeCheck = 1500;
 | 
			
		||||
				ORGANIZATIONNAME = "Neil Hodgson";
 | 
			
		||||
				TargetAttributes = {
 | 
			
		||||
					287F3C40246F8DC70040E76F = {
 | 
			
		||||
						CreatedOnToolsVersion = 11.4.1;
 | 
			
		||||
					};
 | 
			
		||||
				};
 | 
			
		||||
			};
 | 
			
		||||
			buildConfigurationList = 287F3C3B246F8DC70040E76F /* Build configuration list for PBXProject "Scintilla" */;
 | 
			
		||||
			compatibilityVersion = "Xcode 9.3";
 | 
			
		||||
			developmentRegion = en;
 | 
			
		||||
			hasScannedForEncodings = 0;
 | 
			
		||||
			knownRegions = (
 | 
			
		||||
				en,
 | 
			
		||||
				Base,
 | 
			
		||||
			);
 | 
			
		||||
			mainGroup = 287F3C37246F8DC70040E76F;
 | 
			
		||||
			productRefGroup = 287F3C42246F8DC70040E76F /* Products */;
 | 
			
		||||
			projectDirPath = "";
 | 
			
		||||
			projectRoot = "";
 | 
			
		||||
			targets = (
 | 
			
		||||
				287F3C40246F8DC70040E76F /* Scintilla */,
 | 
			
		||||
			);
 | 
			
		||||
		};
 | 
			
		||||
/* End PBXProject section */
 | 
			
		||||
 | 
			
		||||
/* Begin PBXResourcesBuildPhase section */
 | 
			
		||||
		287F3C3F246F8DC70040E76F /* Resources */ = {
 | 
			
		||||
			isa = PBXResourcesBuildPhase;
 | 
			
		||||
			buildActionMask = 2147483647;
 | 
			
		||||
			files = (
 | 
			
		||||
				2867917C26BB448C007C2905 /* mac_cursor_busy.png in Resources */,
 | 
			
		||||
				2867918126BB448C007C2905 /* info_bar_bg@2x.png in Resources */,
 | 
			
		||||
				282937AA24E2D60E00C84BA2 /* res in Resources */,
 | 
			
		||||
				2867917F26BB448C007C2905 /* mac_cursor_busy@2x.png in Resources */,
 | 
			
		||||
				2867917E26BB448C007C2905 /* info_bar_bg.png in Resources */,
 | 
			
		||||
				2867918026BB448C007C2905 /* mac_cursor_flipped.png in Resources */,
 | 
			
		||||
				2867917D26BB448C007C2905 /* mac_cursor_flipped@2x.png in Resources */,
 | 
			
		||||
			);
 | 
			
		||||
			runOnlyForDeploymentPostprocessing = 0;
 | 
			
		||||
		};
 | 
			
		||||
/* End PBXResourcesBuildPhase section */
 | 
			
		||||
 | 
			
		||||
/* Begin PBXSourcesBuildPhase section */
 | 
			
		||||
		287F3C3D246F8DC70040E76F /* Sources */ = {
 | 
			
		||||
			isa = PBXSourcesBuildPhase;
 | 
			
		||||
			buildActionMask = 2147483647;
 | 
			
		||||
			files = (
 | 
			
		||||
				2829375024E2D58800C84BA2 /* Selection.cxx in Sources */,
 | 
			
		||||
				2829375224E2D58800C84BA2 /* UniConversion.cxx in Sources */,
 | 
			
		||||
				282936E324E2D55D00C84BA2 /* PlatCocoa.mm in Sources */,
 | 
			
		||||
				282936E924E2D55D00C84BA2 /* ScintillaCocoa.mm in Sources */,
 | 
			
		||||
				2829372E24E2D58800C84BA2 /* DBCS.cxx in Sources */,
 | 
			
		||||
				2829375924E2D58800C84BA2 /* AutoComplete.cxx in Sources */,
 | 
			
		||||
				2829375724E2D58800C84BA2 /* CaseConvert.cxx in Sources */,
 | 
			
		||||
				2829374524E2D58800C84BA2 /* PositionCache.cxx in Sources */,
 | 
			
		||||
				2829375B24E2D58800C84BA2 /* MarginView.cxx in Sources */,
 | 
			
		||||
				2829373924E2D58800C84BA2 /* Indicator.cxx in Sources */,
 | 
			
		||||
				2829375D24E2D58800C84BA2 /* Document.cxx in Sources */,
 | 
			
		||||
				2829375524E2D58800C84BA2 /* EditModel.cxx in Sources */,
 | 
			
		||||
				2829375124E2D58800C84BA2 /* ContractionState.cxx in Sources */,
 | 
			
		||||
				2829374924E2D58800C84BA2 /* CallTip.cxx in Sources */,
 | 
			
		||||
				2807B4EA28964CA40063A31A /* ChangeHistory.cxx in Sources */,
 | 
			
		||||
				2829375824E2D58800C84BA2 /* CharClassify.cxx in Sources */,
 | 
			
		||||
				2829373324E2D58800C84BA2 /* LineMarker.cxx in Sources */,
 | 
			
		||||
				2829374E24E2D58800C84BA2 /* KeyMap.cxx in Sources */,
 | 
			
		||||
				2829376D24E2D58800C84BA2 /* RunStyles.cxx in Sources */,
 | 
			
		||||
				28EA9CAF255894B4007710C4 /* CharacterType.cxx in Sources */,
 | 
			
		||||
				2829376B24E2D58800C84BA2 /* Editor.cxx in Sources */,
 | 
			
		||||
				2829373C24E2D58800C84BA2 /* CaseFolder.cxx in Sources */,
 | 
			
		||||
				2829374824E2D58800C84BA2 /* RESearch.cxx in Sources */,
 | 
			
		||||
				2829377024E2D58800C84BA2 /* EditView.cxx in Sources */,
 | 
			
		||||
				28B962A52B6AF44F00ACCD96 /* UndoHistory.cxx in Sources */,
 | 
			
		||||
				2829376724E2D58800C84BA2 /* ScintillaBase.cxx in Sources */,
 | 
			
		||||
				2829374724E2D58800C84BA2 /* Style.cxx in Sources */,
 | 
			
		||||
				2829375A24E2D58800C84BA2 /* ViewStyle.cxx in Sources */,
 | 
			
		||||
				282936E024E2D55D00C84BA2 /* InfoBar.mm in Sources */,
 | 
			
		||||
				28EA9CAE255894B4007710C4 /* CharacterCategoryMap.cxx in Sources */,
 | 
			
		||||
				2829374024E2D58800C84BA2 /* XPM.cxx in Sources */,
 | 
			
		||||
				2829374B24E2D58800C84BA2 /* Decoration.cxx in Sources */,
 | 
			
		||||
				286F8EDF260448C300EC8D60 /* Geometry.cxx in Sources */,
 | 
			
		||||
				2829373624E2D58800C84BA2 /* UniqueString.cxx in Sources */,
 | 
			
		||||
				282936E824E2D55D00C84BA2 /* ScintillaView.mm in Sources */,
 | 
			
		||||
				2829376924E2D58800C84BA2 /* CellBuffer.cxx in Sources */,
 | 
			
		||||
				2829375324E2D58800C84BA2 /* PerLine.cxx in Sources */,
 | 
			
		||||
			);
 | 
			
		||||
			runOnlyForDeploymentPostprocessing = 0;
 | 
			
		||||
		};
 | 
			
		||||
/* End PBXSourcesBuildPhase section */
 | 
			
		||||
 | 
			
		||||
/* Begin XCBuildConfiguration section */
 | 
			
		||||
		287F3C47246F8DC70040E76F /* Debug */ = {
 | 
			
		||||
			isa = XCBuildConfiguration;
 | 
			
		||||
			buildSettings = {
 | 
			
		||||
				ALWAYS_SEARCH_USER_PATHS = NO;
 | 
			
		||||
				CLANG_ANALYZER_NONNULL = YES;
 | 
			
		||||
				CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
 | 
			
		||||
				CLANG_CXX_LANGUAGE_STANDARD = "c++17";
 | 
			
		||||
				CLANG_CXX_LIBRARY = "libc++";
 | 
			
		||||
				CLANG_ENABLE_MODULES = YES;
 | 
			
		||||
				CLANG_ENABLE_OBJC_ARC = YES;
 | 
			
		||||
				CLANG_ENABLE_OBJC_WEAK = YES;
 | 
			
		||||
				CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
 | 
			
		||||
				CLANG_WARN_BOOL_CONVERSION = YES;
 | 
			
		||||
				CLANG_WARN_COMMA = YES;
 | 
			
		||||
				CLANG_WARN_CONSTANT_CONVERSION = YES;
 | 
			
		||||
				CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
 | 
			
		||||
				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
 | 
			
		||||
				CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
 | 
			
		||||
				CLANG_WARN_EMPTY_BODY = YES;
 | 
			
		||||
				CLANG_WARN_ENUM_CONVERSION = YES;
 | 
			
		||||
				CLANG_WARN_INFINITE_RECURSION = YES;
 | 
			
		||||
				CLANG_WARN_INT_CONVERSION = YES;
 | 
			
		||||
				CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
 | 
			
		||||
				CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
 | 
			
		||||
				CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
 | 
			
		||||
				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
 | 
			
		||||
				CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO;
 | 
			
		||||
				CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
 | 
			
		||||
				CLANG_WARN_STRICT_PROTOTYPES = YES;
 | 
			
		||||
				CLANG_WARN_SUSPICIOUS_MOVE = YES;
 | 
			
		||||
				CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
 | 
			
		||||
				CLANG_WARN_UNREACHABLE_CODE = YES;
 | 
			
		||||
				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
 | 
			
		||||
				COPY_PHASE_STRIP = NO;
 | 
			
		||||
				CURRENT_PROJECT_VERSION = 5.5.2;
 | 
			
		||||
				DEAD_CODE_STRIPPING = YES;
 | 
			
		||||
				DEBUG_INFORMATION_FORMAT = dwarf;
 | 
			
		||||
				ENABLE_STRICT_OBJC_MSGSEND = YES;
 | 
			
		||||
				ENABLE_TESTABILITY = YES;
 | 
			
		||||
				ENABLE_USER_SCRIPT_SANDBOXING = YES;
 | 
			
		||||
				GCC_C_LANGUAGE_STANDARD = gnu11;
 | 
			
		||||
				GCC_DYNAMIC_NO_PIC = NO;
 | 
			
		||||
				GCC_NO_COMMON_BLOCKS = YES;
 | 
			
		||||
				GCC_OPTIMIZATION_LEVEL = 0;
 | 
			
		||||
				GCC_PREPROCESSOR_DEFINITIONS = (
 | 
			
		||||
					DEBUG,
 | 
			
		||||
					"$(inherited)",
 | 
			
		||||
				);
 | 
			
		||||
				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
 | 
			
		||||
				GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
 | 
			
		||||
				GCC_WARN_UNDECLARED_SELECTOR = YES;
 | 
			
		||||
				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
 | 
			
		||||
				GCC_WARN_UNUSED_FUNCTION = YES;
 | 
			
		||||
				GCC_WARN_UNUSED_VARIABLE = YES;
 | 
			
		||||
				MACOSX_DEPLOYMENT_TARGET = 10.13;
 | 
			
		||||
				MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
 | 
			
		||||
				MTL_FAST_MATH = YES;
 | 
			
		||||
				ONLY_ACTIVE_ARCH = YES;
 | 
			
		||||
				"OTHER_LDFLAGS[arch=*]" = "-Wl,-ld_classic";
 | 
			
		||||
				SDKROOT = macosx;
 | 
			
		||||
				VERSIONING_SYSTEM = "apple-generic";
 | 
			
		||||
				VERSION_INFO_PREFIX = "";
 | 
			
		||||
			};
 | 
			
		||||
			name = Debug;
 | 
			
		||||
		};
 | 
			
		||||
		287F3C48246F8DC70040E76F /* Release */ = {
 | 
			
		||||
			isa = XCBuildConfiguration;
 | 
			
		||||
			buildSettings = {
 | 
			
		||||
				ALWAYS_SEARCH_USER_PATHS = NO;
 | 
			
		||||
				CLANG_ANALYZER_NONNULL = YES;
 | 
			
		||||
				CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
 | 
			
		||||
				CLANG_CXX_LANGUAGE_STANDARD = "c++17";
 | 
			
		||||
				CLANG_CXX_LIBRARY = "libc++";
 | 
			
		||||
				CLANG_ENABLE_MODULES = YES;
 | 
			
		||||
				CLANG_ENABLE_OBJC_ARC = YES;
 | 
			
		||||
				CLANG_ENABLE_OBJC_WEAK = YES;
 | 
			
		||||
				CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
 | 
			
		||||
				CLANG_WARN_BOOL_CONVERSION = YES;
 | 
			
		||||
				CLANG_WARN_COMMA = YES;
 | 
			
		||||
				CLANG_WARN_CONSTANT_CONVERSION = YES;
 | 
			
		||||
				CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
 | 
			
		||||
				CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
 | 
			
		||||
				CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
 | 
			
		||||
				CLANG_WARN_EMPTY_BODY = YES;
 | 
			
		||||
				CLANG_WARN_ENUM_CONVERSION = YES;
 | 
			
		||||
				CLANG_WARN_INFINITE_RECURSION = YES;
 | 
			
		||||
				CLANG_WARN_INT_CONVERSION = YES;
 | 
			
		||||
				CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
 | 
			
		||||
				CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
 | 
			
		||||
				CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
 | 
			
		||||
				CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
 | 
			
		||||
				CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO;
 | 
			
		||||
				CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
 | 
			
		||||
				CLANG_WARN_STRICT_PROTOTYPES = YES;
 | 
			
		||||
				CLANG_WARN_SUSPICIOUS_MOVE = YES;
 | 
			
		||||
				CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
 | 
			
		||||
				CLANG_WARN_UNREACHABLE_CODE = YES;
 | 
			
		||||
				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
 | 
			
		||||
				COPY_PHASE_STRIP = NO;
 | 
			
		||||
				CURRENT_PROJECT_VERSION = 5.5.2;
 | 
			
		||||
				DEAD_CODE_STRIPPING = YES;
 | 
			
		||||
				DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
 | 
			
		||||
				ENABLE_NS_ASSERTIONS = NO;
 | 
			
		||||
				ENABLE_STRICT_OBJC_MSGSEND = YES;
 | 
			
		||||
				ENABLE_USER_SCRIPT_SANDBOXING = YES;
 | 
			
		||||
				GCC_C_LANGUAGE_STANDARD = gnu11;
 | 
			
		||||
				GCC_NO_COMMON_BLOCKS = YES;
 | 
			
		||||
				GCC_PREPROCESSOR_DEFINITIONS = NDEBUG;
 | 
			
		||||
				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
 | 
			
		||||
				GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
 | 
			
		||||
				GCC_WARN_UNDECLARED_SELECTOR = YES;
 | 
			
		||||
				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
 | 
			
		||||
				GCC_WARN_UNUSED_FUNCTION = YES;
 | 
			
		||||
				GCC_WARN_UNUSED_VARIABLE = YES;
 | 
			
		||||
				MACOSX_DEPLOYMENT_TARGET = 10.13;
 | 
			
		||||
				MTL_ENABLE_DEBUG_INFO = NO;
 | 
			
		||||
				MTL_FAST_MATH = YES;
 | 
			
		||||
				"OTHER_LDFLAGS[arch=*]" = "-Wl,-ld_classic";
 | 
			
		||||
				SDKROOT = macosx;
 | 
			
		||||
				VERSIONING_SYSTEM = "apple-generic";
 | 
			
		||||
				VERSION_INFO_PREFIX = "";
 | 
			
		||||
			};
 | 
			
		||||
			name = Release;
 | 
			
		||||
		};
 | 
			
		||||
		287F3C4A246F8DC70040E76F /* Debug */ = {
 | 
			
		||||
			isa = XCBuildConfiguration;
 | 
			
		||||
			buildSettings = {
 | 
			
		||||
				CLANG_CXX_LANGUAGE_STANDARD = "c++17";
 | 
			
		||||
				CLANG_WARN_UNGUARDED_AVAILABILITY = YES;
 | 
			
		||||
				CODE_SIGN_IDENTITY = "-";
 | 
			
		||||
				CODE_SIGN_STYLE = Manual;
 | 
			
		||||
				COMBINE_HIDPI_IMAGES = YES;
 | 
			
		||||
				CURRENT_PROJECT_VERSION = 5.5.2;
 | 
			
		||||
				DEAD_CODE_STRIPPING = YES;
 | 
			
		||||
				DEFINES_MODULE = YES;
 | 
			
		||||
				DEVELOPMENT_TEAM = "";
 | 
			
		||||
				DYLIB_COMPATIBILITY_VERSION = 1;
 | 
			
		||||
				DYLIB_CURRENT_VERSION = 1;
 | 
			
		||||
				DYLIB_INSTALL_NAME_BASE = "@rpath";
 | 
			
		||||
				GCC_PREPROCESSOR_DEFINITIONS = DEBUG;
 | 
			
		||||
				HEADER_SEARCH_PATHS = (
 | 
			
		||||
					../../include,
 | 
			
		||||
					../../src,
 | 
			
		||||
				);
 | 
			
		||||
				INFOPLIST_FILE = Info.plist;
 | 
			
		||||
				INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
 | 
			
		||||
				LD_RUNPATH_SEARCH_PATHS = (
 | 
			
		||||
					"$(inherited)",
 | 
			
		||||
					"@executable_path/../Frameworks",
 | 
			
		||||
					"@loader_path/Frameworks",
 | 
			
		||||
				);
 | 
			
		||||
				MACOSX_DEPLOYMENT_TARGET = 10.13;
 | 
			
		||||
				PRODUCT_BUNDLE_IDENTIFIER = org.scintilla.Scintilla;
 | 
			
		||||
				PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
 | 
			
		||||
				PROVISIONING_PROFILE_SPECIFIER = "";
 | 
			
		||||
				SKIP_INSTALL = YES;
 | 
			
		||||
			};
 | 
			
		||||
			name = Debug;
 | 
			
		||||
		};
 | 
			
		||||
		287F3C4B246F8DC70040E76F /* Release */ = {
 | 
			
		||||
			isa = XCBuildConfiguration;
 | 
			
		||||
			buildSettings = {
 | 
			
		||||
				CLANG_CXX_LANGUAGE_STANDARD = "c++17";
 | 
			
		||||
				CLANG_WARN_UNGUARDED_AVAILABILITY = YES;
 | 
			
		||||
				CODE_SIGN_IDENTITY = "-";
 | 
			
		||||
				CODE_SIGN_STYLE = Manual;
 | 
			
		||||
				COMBINE_HIDPI_IMAGES = YES;
 | 
			
		||||
				CURRENT_PROJECT_VERSION = 5.5.2;
 | 
			
		||||
				DEAD_CODE_STRIPPING = YES;
 | 
			
		||||
				DEFINES_MODULE = YES;
 | 
			
		||||
				DEVELOPMENT_TEAM = "";
 | 
			
		||||
				DYLIB_COMPATIBILITY_VERSION = 1;
 | 
			
		||||
				DYLIB_CURRENT_VERSION = 1;
 | 
			
		||||
				DYLIB_INSTALL_NAME_BASE = "@rpath";
 | 
			
		||||
				GCC_PREPROCESSOR_DEFINITIONS = NDEBUG;
 | 
			
		||||
				HEADER_SEARCH_PATHS = (
 | 
			
		||||
					../../include,
 | 
			
		||||
					../../src,
 | 
			
		||||
				);
 | 
			
		||||
				INFOPLIST_FILE = Info.plist;
 | 
			
		||||
				INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
 | 
			
		||||
				LD_RUNPATH_SEARCH_PATHS = (
 | 
			
		||||
					"$(inherited)",
 | 
			
		||||
					"@executable_path/../Frameworks",
 | 
			
		||||
					"@loader_path/Frameworks",
 | 
			
		||||
				);
 | 
			
		||||
				MACOSX_DEPLOYMENT_TARGET = 10.13;
 | 
			
		||||
				PRODUCT_BUNDLE_IDENTIFIER = org.scintilla.Scintilla;
 | 
			
		||||
				PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)";
 | 
			
		||||
				PROVISIONING_PROFILE_SPECIFIER = "";
 | 
			
		||||
				SKIP_INSTALL = YES;
 | 
			
		||||
			};
 | 
			
		||||
			name = Release;
 | 
			
		||||
		};
 | 
			
		||||
/* End XCBuildConfiguration section */
 | 
			
		||||
 | 
			
		||||
/* Begin XCConfigurationList section */
 | 
			
		||||
		287F3C3B246F8DC70040E76F /* Build configuration list for PBXProject "Scintilla" */ = {
 | 
			
		||||
			isa = XCConfigurationList;
 | 
			
		||||
			buildConfigurations = (
 | 
			
		||||
				287F3C47246F8DC70040E76F /* Debug */,
 | 
			
		||||
				287F3C48246F8DC70040E76F /* Release */,
 | 
			
		||||
			);
 | 
			
		||||
			defaultConfigurationIsVisible = 0;
 | 
			
		||||
			defaultConfigurationName = Release;
 | 
			
		||||
		};
 | 
			
		||||
		287F3C49246F8DC70040E76F /* Build configuration list for PBXNativeTarget "Scintilla" */ = {
 | 
			
		||||
			isa = XCConfigurationList;
 | 
			
		||||
			buildConfigurations = (
 | 
			
		||||
				287F3C4A246F8DC70040E76F /* Debug */,
 | 
			
		||||
				287F3C4B246F8DC70040E76F /* Release */,
 | 
			
		||||
			);
 | 
			
		||||
			defaultConfigurationIsVisible = 0;
 | 
			
		||||
			defaultConfigurationName = Release;
 | 
			
		||||
		};
 | 
			
		||||
/* End XCConfigurationList section */
 | 
			
		||||
	};
 | 
			
		||||
	rootObject = 287F3C38246F8DC70040E76F /* Project object */;
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										7
									
								
								3rdparty/scintilla552/scintilla/cocoa/Scintilla/Scintilla.xcodeproj/project.xcworkspace/contents.xcworkspacedata
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,7 @@
 | 
			
		||||
<?xml version="1.0" encoding="UTF-8"?>
 | 
			
		||||
<Workspace
 | 
			
		||||
   version = "1.0">
 | 
			
		||||
   <FileRef
 | 
			
		||||
      location = "self:Scintilla.xcodeproj">
 | 
			
		||||
   </FileRef>
 | 
			
		||||
</Workspace>
 | 
			
		||||
@ -0,0 +1,8 @@
 | 
			
		||||
<?xml version="1.0" encoding="UTF-8"?>
 | 
			
		||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
 | 
			
		||||
<plist version="1.0">
 | 
			
		||||
<dict>
 | 
			
		||||
	<key>IDEDidComputeMac32BitWarning</key>
 | 
			
		||||
	<true/>
 | 
			
		||||
</dict>
 | 
			
		||||
</plist>
 | 
			
		||||
							
								
								
									
										10
									
								
								3rdparty/scintilla552/scintilla/cocoa/Scintilla/module.modulemap
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,10 @@
 | 
			
		||||
framework module Scintilla {
 | 
			
		||||
  umbrella header "ScintillaView.h"
 | 
			
		||||
  module InfoBar {
 | 
			
		||||
    header "InfoBar.h"
 | 
			
		||||
  }
 | 
			
		||||
  // ILexer.h is not included as Swift doesn't yet interoperate with C++
 | 
			
		||||
  exclude header "ILexer.h"
 | 
			
		||||
  export *
 | 
			
		||||
  module * { export * }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										270
									
								
								3rdparty/scintilla552/scintilla/cocoa/ScintillaCocoa.h
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,270 @@
 | 
			
		||||
/*
 | 
			
		||||
 * ScintillaCocoa.h
 | 
			
		||||
 *
 | 
			
		||||
 * Mike Lischke <mlischke@sun.com>
 | 
			
		||||
 *
 | 
			
		||||
 * Based on ScintillaMacOSX.h
 | 
			
		||||
 * Original code by Evan Jones on Sun Sep 01 2002.
 | 
			
		||||
 *  Contributors:
 | 
			
		||||
 *  Shane Caraveo, ActiveState
 | 
			
		||||
 *  Bernd Paradies, Adobe
 | 
			
		||||
 *
 | 
			
		||||
 * Copyright 2009 Sun Microsystems, Inc. All rights reserved.
 | 
			
		||||
 * This file is dual licensed under LGPL v2.1 and the Scintilla license (http://www.scintilla.org/License.txt).
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#include <cstddef>
 | 
			
		||||
#include <cstdlib>
 | 
			
		||||
#include <cstdint>
 | 
			
		||||
#include <cstdio>
 | 
			
		||||
#include <ctime>
 | 
			
		||||
 | 
			
		||||
#include <stdexcept>
 | 
			
		||||
#include <string>
 | 
			
		||||
#include <vector>
 | 
			
		||||
#include <map>
 | 
			
		||||
#include <set>
 | 
			
		||||
#include <memory>
 | 
			
		||||
 | 
			
		||||
#include "ILoader.h"
 | 
			
		||||
#include "ILexer.h"
 | 
			
		||||
 | 
			
		||||
#include "CharacterCategoryMap.h"
 | 
			
		||||
#include "Position.h"
 | 
			
		||||
#include "UniqueString.h"
 | 
			
		||||
#include "SplitVector.h"
 | 
			
		||||
#include "Partitioning.h"
 | 
			
		||||
#include "RunStyles.h"
 | 
			
		||||
#include "ContractionState.h"
 | 
			
		||||
#include "CellBuffer.h"
 | 
			
		||||
#include "CallTip.h"
 | 
			
		||||
#include "KeyMap.h"
 | 
			
		||||
#include "Indicator.h"
 | 
			
		||||
#include "LineMarker.h"
 | 
			
		||||
#include "Style.h"
 | 
			
		||||
#include "ViewStyle.h"
 | 
			
		||||
#include "CharClassify.h"
 | 
			
		||||
#include "Decoration.h"
 | 
			
		||||
#include "CaseFolder.h"
 | 
			
		||||
#include "Document.h"
 | 
			
		||||
#include "CaseConvert.h"
 | 
			
		||||
#include "UniConversion.h"
 | 
			
		||||
#include "DBCS.h"
 | 
			
		||||
#include "Selection.h"
 | 
			
		||||
#include "PositionCache.h"
 | 
			
		||||
#include "EditModel.h"
 | 
			
		||||
#include "MarginView.h"
 | 
			
		||||
#include "EditView.h"
 | 
			
		||||
#include "Editor.h"
 | 
			
		||||
 | 
			
		||||
#include "AutoComplete.h"
 | 
			
		||||
#include "ScintillaBase.h"
 | 
			
		||||
 | 
			
		||||
extern "C" NSString *ScintillaRecPboardType;
 | 
			
		||||
 | 
			
		||||
@class SCIContentView;
 | 
			
		||||
@class SCIMarginView;
 | 
			
		||||
@class ScintillaView;
 | 
			
		||||
 | 
			
		||||
@class FindHighlightLayer;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Helper class to be used as timer target (NSTimer).
 | 
			
		||||
 */
 | 
			
		||||
@interface TimerTarget : NSObject {
 | 
			
		||||
	void *mTarget;
 | 
			
		||||
	NSNotificationQueue *notificationQueue;
 | 
			
		||||
}
 | 
			
		||||
- (id) init: (void *) target;
 | 
			
		||||
- (void) timerFired: (NSTimer *) timer;
 | 
			
		||||
- (void) idleTimerFired: (NSTimer *) timer;
 | 
			
		||||
- (void) idleTriggered: (NSNotification *) notification;
 | 
			
		||||
@end
 | 
			
		||||
 | 
			
		||||
namespace Scintilla::Internal {
 | 
			
		||||
 | 
			
		||||
CGContextRef CGContextCurrent();
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Main scintilla class, implemented for macOS (Cocoa).
 | 
			
		||||
 */
 | 
			
		||||
class ScintillaCocoa : public ScintillaBase {
 | 
			
		||||
private:
 | 
			
		||||
	__weak ScintillaView *sciView;
 | 
			
		||||
	TimerTarget *timerTarget;
 | 
			
		||||
	NSEvent *lastMouseEvent;
 | 
			
		||||
 | 
			
		||||
	__weak id<ScintillaNotificationProtocol> delegate;
 | 
			
		||||
 | 
			
		||||
	SciNotifyFunc	notifyProc;
 | 
			
		||||
	intptr_t notifyObj;
 | 
			
		||||
 | 
			
		||||
	bool capturedMouse;
 | 
			
		||||
	bool isFirstResponder;
 | 
			
		||||
	bool isActive;
 | 
			
		||||
 | 
			
		||||
	Point sizeClient;
 | 
			
		||||
 | 
			
		||||
	bool enteredSetScrollingSize;
 | 
			
		||||
 | 
			
		||||
	bool GetPasteboardData(NSPasteboard *board, SelectionText *selectedText);
 | 
			
		||||
	void SetPasteboardData(NSPasteboard *board, const SelectionText &selectedText);
 | 
			
		||||
	Sci::Position TargetAsUTF8(char *text) const;
 | 
			
		||||
	Sci::Position EncodedFromUTF8(const char *utf8, char *encoded) const;
 | 
			
		||||
 | 
			
		||||
	int scrollSpeed;
 | 
			
		||||
	int scrollTicks;
 | 
			
		||||
	CFRunLoopObserverRef observer;
 | 
			
		||||
 | 
			
		||||
	FindHighlightLayer *layerFindIndicator;
 | 
			
		||||
 | 
			
		||||
protected:
 | 
			
		||||
	Point GetVisibleOriginInMain() const override;
 | 
			
		||||
	Point ClientSize() const override;
 | 
			
		||||
	PRectangle GetClientRectangle() const override;
 | 
			
		||||
	PRectangle GetClientDrawingRectangle() override;
 | 
			
		||||
	Point ConvertPoint(NSPoint point);
 | 
			
		||||
	void RedrawRect(PRectangle rc) override;
 | 
			
		||||
	void DiscardOverdraw() override;
 | 
			
		||||
	void Redraw() override;
 | 
			
		||||
 | 
			
		||||
	void Init();
 | 
			
		||||
	std::unique_ptr<CaseFolder> CaseFolderForEncoding() override;
 | 
			
		||||
	std::string CaseMapString(const std::string &s, CaseMapping caseMapping) override;
 | 
			
		||||
	void CancelModes() override;
 | 
			
		||||
 | 
			
		||||
public:
 | 
			
		||||
	ScintillaCocoa(ScintillaView *sciView_, SCIContentView *viewContent, SCIMarginView *viewMargin);
 | 
			
		||||
	// Deleted so ScintillaCocoa objects can not be copied.
 | 
			
		||||
	ScintillaCocoa(const ScintillaCocoa &) = delete;
 | 
			
		||||
	ScintillaCocoa &operator=(const ScintillaCocoa &) = delete;
 | 
			
		||||
	~ScintillaCocoa() override;
 | 
			
		||||
	void Finalise() override;
 | 
			
		||||
 | 
			
		||||
	void SetDelegate(id<ScintillaNotificationProtocol> delegate_);
 | 
			
		||||
	void RegisterNotifyCallback(intptr_t windowid, SciNotifyFunc callback);
 | 
			
		||||
	sptr_t WndProc(Scintilla::Message iMessage, uptr_t wParam, sptr_t lParam) override;
 | 
			
		||||
 | 
			
		||||
	NSScrollView *ScrollContainer() const;
 | 
			
		||||
	SCIContentView *ContentView();
 | 
			
		||||
 | 
			
		||||
	bool SyncPaint(void *gc, PRectangle rc);
 | 
			
		||||
	bool Draw(NSRect rect, CGContextRef gc);
 | 
			
		||||
	void PaintMargin(NSRect aRect);
 | 
			
		||||
 | 
			
		||||
	sptr_t DefWndProc(Scintilla::Message iMessage, uptr_t wParam, sptr_t lParam) override;
 | 
			
		||||
	void TickFor(TickReason reason) override;
 | 
			
		||||
	bool FineTickerRunning(TickReason reason) override;
 | 
			
		||||
	void FineTickerStart(TickReason reason, int millis, int tolerance) override;
 | 
			
		||||
	void FineTickerCancel(TickReason reason) override;
 | 
			
		||||
	bool SetIdle(bool on) override;
 | 
			
		||||
	void SetMouseCapture(bool on) override;
 | 
			
		||||
	bool HaveMouseCapture() override;
 | 
			
		||||
	void WillDraw(NSRect rect);
 | 
			
		||||
	void ScrollText(Sci::Line linesToMove) override;
 | 
			
		||||
	void SetVerticalScrollPos() override;
 | 
			
		||||
	void SetHorizontalScrollPos() override;
 | 
			
		||||
	bool ModifyScrollBars(Sci::Line nMax, Sci::Line nPage) override;
 | 
			
		||||
	bool SetScrollingSize();
 | 
			
		||||
	void Resize();
 | 
			
		||||
	void UpdateForScroll();
 | 
			
		||||
 | 
			
		||||
	// Notifications for the owner.
 | 
			
		||||
	void NotifyChange() override;
 | 
			
		||||
	void NotifyFocus(bool focus) override;
 | 
			
		||||
	void NotifyParent(Scintilla::NotificationData scn) override;
 | 
			
		||||
	void NotifyURIDropped(const char *uri);
 | 
			
		||||
 | 
			
		||||
	bool HasSelection();
 | 
			
		||||
	bool CanUndo();
 | 
			
		||||
	bool CanRedo();
 | 
			
		||||
	void CopyToClipboard(const SelectionText &selectedText) override;
 | 
			
		||||
	void Copy() override;
 | 
			
		||||
	bool CanPaste() override;
 | 
			
		||||
	void Paste() override;
 | 
			
		||||
	void Paste(bool rectangular);
 | 
			
		||||
	void CTPaint(void *gc, NSRect rc);
 | 
			
		||||
	void CallTipMouseDown(NSPoint pt);
 | 
			
		||||
	void CreateCallTipWindow(PRectangle rc) override;
 | 
			
		||||
	void AddToPopUp(const char *label, int cmd = 0, bool enabled = true) override;
 | 
			
		||||
	void ClaimSelection() override;
 | 
			
		||||
 | 
			
		||||
	NSPoint GetCaretPosition();
 | 
			
		||||
 | 
			
		||||
	std::string UTF8FromEncoded(std::string_view encoded) const override;
 | 
			
		||||
	std::string EncodedFromUTF8(std::string_view utf8) const override;
 | 
			
		||||
 | 
			
		||||
	static sptr_t DirectFunction(sptr_t ptr, unsigned int iMessage, uptr_t wParam, sptr_t lParam);
 | 
			
		||||
	static sptr_t DirectStatusFunction(sptr_t ptr, unsigned int iMessage, uptr_t wParam, sptr_t lParam, int *pStatus);
 | 
			
		||||
 | 
			
		||||
	NSTimer *timers[static_cast<size_t>(TickReason::platform)+1];
 | 
			
		||||
	void TimerFired(NSTimer *timer);
 | 
			
		||||
	void IdleTimerFired();
 | 
			
		||||
	static void UpdateObserver(CFRunLoopObserverRef observer, CFRunLoopActivity activity, void *sci);
 | 
			
		||||
	void ObserverAdd();
 | 
			
		||||
	void ObserverRemove();
 | 
			
		||||
	void IdleWork() override;
 | 
			
		||||
	void QueueIdleWork(WorkItems items, Sci::Position upTo) override;
 | 
			
		||||
	ptrdiff_t InsertText(NSString *input, Scintilla::CharacterSource charSource);
 | 
			
		||||
	NSRange PositionsFromCharacters(NSRange rangeCharacters) const;
 | 
			
		||||
	NSRange CharactersFromPositions(NSRange rangePositions) const;
 | 
			
		||||
	NSString *RangeTextAsString(NSRange rangePositions) const;
 | 
			
		||||
	NSInteger VisibleLineForIndex(NSInteger index);
 | 
			
		||||
	NSRange RangeForVisibleLine(NSInteger lineVisible);
 | 
			
		||||
	NSRect FrameForRange(NSRange rangeCharacters);
 | 
			
		||||
	NSRect GetBounds() const;
 | 
			
		||||
	void SelectOnlyMainSelection();
 | 
			
		||||
	void ConvertSelectionVirtualSpace();
 | 
			
		||||
	bool ClearAllSelections();
 | 
			
		||||
	void CompositionStart();
 | 
			
		||||
	void CompositionCommit();
 | 
			
		||||
	void CompositionUndo();
 | 
			
		||||
	void SetDocPointer(Document *document) override;
 | 
			
		||||
 | 
			
		||||
	bool KeyboardInput(NSEvent *event);
 | 
			
		||||
	void MouseDown(NSEvent *event);
 | 
			
		||||
	void RightMouseDown(NSEvent *event);
 | 
			
		||||
	void MouseMove(NSEvent *event);
 | 
			
		||||
	void MouseUp(NSEvent *event);
 | 
			
		||||
	void MouseEntered(NSEvent *event);
 | 
			
		||||
	void MouseExited(NSEvent *event);
 | 
			
		||||
	void MouseWheel(NSEvent *event);
 | 
			
		||||
 | 
			
		||||
	// Drag and drop
 | 
			
		||||
	void StartDrag() override;
 | 
			
		||||
	bool GetDragData(id <NSDraggingInfo> info, NSPasteboard &pasteBoard, SelectionText *selectedText);
 | 
			
		||||
	NSDragOperation DraggingEntered(id <NSDraggingInfo> info);
 | 
			
		||||
	NSDragOperation DraggingUpdated(id <NSDraggingInfo> info);
 | 
			
		||||
	void DraggingExited(id <NSDraggingInfo> info);
 | 
			
		||||
	bool PerformDragOperation(id <NSDraggingInfo> info);
 | 
			
		||||
	void DragScroll();
 | 
			
		||||
 | 
			
		||||
	// Promote some methods needed for NSResponder actions.
 | 
			
		||||
	void SelectAll() override;
 | 
			
		||||
	void DeleteBackward();
 | 
			
		||||
	void Cut() override;
 | 
			
		||||
	void Undo() override;
 | 
			
		||||
	void Redo() override;
 | 
			
		||||
 | 
			
		||||
	bool ShouldDisplayPopupOnMargin();
 | 
			
		||||
	bool ShouldDisplayPopupOnText();
 | 
			
		||||
	NSMenu *CreateContextMenu(NSEvent *event);
 | 
			
		||||
	void HandleCommand(NSInteger command);
 | 
			
		||||
 | 
			
		||||
	void SetFirstResponder(bool isFirstResponder_);
 | 
			
		||||
	void ActiveStateChanged(bool isActive_);
 | 
			
		||||
	void SetFocusActiveState();
 | 
			
		||||
	void UpdateBaseElements() override;
 | 
			
		||||
 | 
			
		||||
	void WindowWillMove();
 | 
			
		||||
 | 
			
		||||
	// Find indicator
 | 
			
		||||
	void ShowFindIndicatorForRange(NSRange charRange, BOOL retaining);
 | 
			
		||||
	void MoveFindIndicatorWithBounce(BOOL bounce);
 | 
			
		||||
	void HideFindIndicator();
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										2774
									
								
								3rdparty/scintilla552/scintilla/cocoa/ScintillaCocoa.mm
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										31
									
								
								3rdparty/scintilla552/scintilla/cocoa/ScintillaTest/AppController.h
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,31 @@
 | 
			
		||||
/**
 | 
			
		||||
 * AppController.h
 | 
			
		||||
 * SciTest
 | 
			
		||||
 *
 | 
			
		||||
 * Created by Mike Lischke on 01.04.09.
 | 
			
		||||
 * Copyright 2009 Sun Microsystems, Inc. All rights reserved.
 | 
			
		||||
 * This file is dual licensed under LGPL v2.1 and the Scintilla license (http://www.scintilla.org/License.txt).
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#import <Cocoa/Cocoa.h>
 | 
			
		||||
 | 
			
		||||
#include <dlfcn.h>
 | 
			
		||||
 | 
			
		||||
#import "Scintilla/ILexer.h"
 | 
			
		||||
#import "Scintilla/ScintillaView.h"
 | 
			
		||||
#import "Scintilla/InfoBar.h"
 | 
			
		||||
#include <SciLexer.h>
 | 
			
		||||
#include <Lexilla.h>
 | 
			
		||||
 | 
			
		||||
@interface AppController : NSObject {
 | 
			
		||||
  IBOutlet NSBox *mEditHost;
 | 
			
		||||
  ScintillaView* mEditor;
 | 
			
		||||
  ScintillaView* sciExtra;	// For testing Scintilla tear-down
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
- (void) awakeFromNib;
 | 
			
		||||
- (void) setupEditor;
 | 
			
		||||
- (IBAction) searchText: (id) sender;
 | 
			
		||||
- (IBAction) addRemoveExtra: (id) sender;
 | 
			
		||||
 | 
			
		||||
@end
 | 
			
		||||
							
								
								
									
										321
									
								
								3rdparty/scintilla552/scintilla/cocoa/ScintillaTest/AppController.mm
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,321 @@
 | 
			
		||||
/**
 | 
			
		||||
 * AppController.mm
 | 
			
		||||
 * ScintillaTest
 | 
			
		||||
 *
 | 
			
		||||
 * Created by Mike Lischke on 01.04.09.
 | 
			
		||||
 * Copyright 2009 Sun Microsystems, Inc. All rights reserved.
 | 
			
		||||
 * This file is dual licensed under LGPL v2.1 and the Scintilla license (http://www.scintilla.org/License.txt).
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#import "AppController.h"
 | 
			
		||||
 | 
			
		||||
const char major_keywords[] =
 | 
			
		||||
  "accessible add all alter analyze and as asc asensitive "
 | 
			
		||||
  "before between bigint binary blob both by "
 | 
			
		||||
  "call cascade case change char character check collate column condition connection constraint "
 | 
			
		||||
    "continue convert create cross current_date current_time current_timestamp current_user cursor "
 | 
			
		||||
  "database databases day_hour day_microsecond day_minute day_second dec decimal declare default "
 | 
			
		||||
    "delayed delete desc describe deterministic distinct distinctrow div double drop dual "
 | 
			
		||||
  "each else elseif enclosed escaped exists exit explain "
 | 
			
		||||
  "false fetch float float4 float8 for force foreign from fulltext "
 | 
			
		||||
  "goto grant group "
 | 
			
		||||
  "having high_priority hour_microsecond hour_minute hour_second "
 | 
			
		||||
  "if ignore in index infile inner inout insensitive insert int int1 int2 int3 int4 int8 integer "
 | 
			
		||||
    "interval into is iterate "
 | 
			
		||||
  "join "
 | 
			
		||||
  "key keys kill "
 | 
			
		||||
  "label leading leave left like limit linear lines load localtime localtimestamp lock long "
 | 
			
		||||
    "longblob longtext loop low_priority "
 | 
			
		||||
  "master_ssl_verify_server_cert match mediumblob mediumint mediumtext middleint minute_microsecond "
 | 
			
		||||
    "minute_second mod modifies "
 | 
			
		||||
  "natural not no_write_to_binlog null numeric "
 | 
			
		||||
  "on optimize option optionally or order out outer outfile "
 | 
			
		||||
  "precision primary procedure purge "
 | 
			
		||||
  "range read reads read_only read_write real references regexp release rename repeat replace "
 | 
			
		||||
    "require restrict return revoke right rlike "
 | 
			
		||||
  "schema schemas second_microsecond select sensitive separator set show smallint spatial specific "
 | 
			
		||||
    "sql sqlexception sqlstate sqlwarning sql_big_result sql_calc_found_rows sql_small_result ssl "
 | 
			
		||||
    "starting straight_join "
 | 
			
		||||
  "table terminated then tinyblob tinyint tinytext to trailing trigger true "
 | 
			
		||||
  "undo union unique unlock unsigned update upgrade usage use using utc_date utc_time utc_timestamp "
 | 
			
		||||
  "values varbinary varchar varcharacter varying "
 | 
			
		||||
  "when where while with write "
 | 
			
		||||
  "xor "
 | 
			
		||||
  "year_month "
 | 
			
		||||
  "zerofill";
 | 
			
		||||
 | 
			
		||||
const char procedure_keywords[] = // Not reserved words but intrinsic part of procedure definitions.
 | 
			
		||||
  "begin comment end";
 | 
			
		||||
 | 
			
		||||
const char client_keywords[] = // Definition of keywords only used by clients, not the server itself.
 | 
			
		||||
  "delimiter";
 | 
			
		||||
 | 
			
		||||
const char user_keywords[] = // Definition of own keywords, not used by MySQL.
 | 
			
		||||
  "edit";
 | 
			
		||||
 | 
			
		||||
//--------------------------------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
@implementation AppController
 | 
			
		||||
 | 
			
		||||
- (void) awakeFromNib
 | 
			
		||||
{
 | 
			
		||||
  // Manually set up the scintilla editor. Create an instance and dock it to our edit host.
 | 
			
		||||
  // Leave some free space around the new view to avoid overlapping with the box borders.
 | 
			
		||||
  NSRect newFrame = mEditHost.frame;
 | 
			
		||||
  newFrame.size.width -= 2 * newFrame.origin.x;
 | 
			
		||||
  newFrame.size.height -= 3 * newFrame.origin.y;
 | 
			
		||||
 | 
			
		||||
  mEditor = [[[ScintillaView alloc] initWithFrame: newFrame] autorelease];
 | 
			
		||||
 | 
			
		||||
  [mEditHost.contentView addSubview: mEditor];
 | 
			
		||||
  [mEditor setAutoresizesSubviews: YES];
 | 
			
		||||
  [mEditor setAutoresizingMask: NSViewWidthSizable | NSViewHeightSizable];
 | 
			
		||||
 | 
			
		||||
  // Let's load some text for the editor, as initial content.
 | 
			
		||||
  NSString *sql = [self exampleText];
 | 
			
		||||
 | 
			
		||||
  [mEditor setString: sql];
 | 
			
		||||
 | 
			
		||||
  [self setupEditor];
 | 
			
		||||
 | 
			
		||||
  sciExtra = nil;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
- (NSString *) exampleText
 | 
			
		||||
{
 | 
			
		||||
  NSError* error = nil;
 | 
			
		||||
 | 
			
		||||
  NSString* path = [[NSBundle mainBundle] pathForResource: @"TestData"
 | 
			
		||||
                                                   ofType: @"sql" inDirectory: nil];
 | 
			
		||||
 | 
			
		||||
  NSString *sql = [NSString stringWithContentsOfFile: path
 | 
			
		||||
                                            encoding: NSUTF8StringEncoding
 | 
			
		||||
                                               error: &error];
 | 
			
		||||
 | 
			
		||||
  if (error && [[error domain] isEqual: NSCocoaErrorDomain])
 | 
			
		||||
    NSLog(@"%@", error);
 | 
			
		||||
 | 
			
		||||
  return sql;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
//--------------------------------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Initialize scintilla editor (styles, colors, markers, folding etc.].
 | 
			
		||||
 */
 | 
			
		||||
- (void) setupEditor
 | 
			
		||||
{
 | 
			
		||||
  // Lexer type is MySQL.
 | 
			
		||||
  void *lexillaDL = dlopen(LEXILLA_LIB LEXILLA_EXTENSION, RTLD_LAZY);
 | 
			
		||||
  if (lexillaDL) {
 | 
			
		||||
    Lexilla::CreateLexerFn createLexer =
 | 
			
		||||
	  reinterpret_cast<Lexilla::CreateLexerFn>(dlsym(lexillaDL, LEXILLA_CREATELEXER));
 | 
			
		||||
    if (createLexer) {
 | 
			
		||||
      Scintilla::ILexer5 *pLexer = createLexer("mysql");
 | 
			
		||||
      [mEditor setReferenceProperty: SCI_SETILEXER parameter: nil value: pLexer];
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  [mEditor suspendDrawing: TRUE];
 | 
			
		||||
 | 
			
		||||
  // Keywords to highlight. Indices are:
 | 
			
		||||
  // 0 - Major keywords (reserved keywords)
 | 
			
		||||
  // 1 - Normal keywords (everything not reserved but integral part of the language)
 | 
			
		||||
  // 2 - Database objects
 | 
			
		||||
  // 3 - Function keywords
 | 
			
		||||
  // 4 - System variable keywords
 | 
			
		||||
  // 5 - Procedure keywords (keywords used in procedures like "begin" and "end")
 | 
			
		||||
  // 6..8 - User keywords 1..3
 | 
			
		||||
  [mEditor setReferenceProperty: SCI_SETKEYWORDS parameter: 0 value: major_keywords];
 | 
			
		||||
  [mEditor setReferenceProperty: SCI_SETKEYWORDS parameter: 5 value: procedure_keywords];
 | 
			
		||||
  [mEditor setReferenceProperty: SCI_SETKEYWORDS parameter: 6 value: client_keywords];
 | 
			
		||||
  [mEditor setReferenceProperty: SCI_SETKEYWORDS parameter: 7 value: user_keywords];
 | 
			
		||||
 | 
			
		||||
  // Colors and styles for various syntactic elements. First the default style.
 | 
			
		||||
  [mEditor setStringProperty: SCI_STYLESETFONT parameter: STYLE_DEFAULT value: @"Helvetica"];
 | 
			
		||||
  // [mEditor setStringProperty: SCI_STYLESETFONT parameter: STYLE_DEFAULT value: @"Monospac821 BT"]; // Very pleasing programmer's font.
 | 
			
		||||
  [mEditor setGeneralProperty: SCI_STYLESETSIZE parameter: STYLE_DEFAULT value: 14];
 | 
			
		||||
  [mEditor setColorProperty: SCI_STYLESETFORE parameter: STYLE_DEFAULT value: [NSColor blackColor]];
 | 
			
		||||
 | 
			
		||||
  [mEditor setGeneralProperty: SCI_STYLECLEARALL parameter: 0 value: 0];
 | 
			
		||||
 | 
			
		||||
  [mEditor setColorProperty: SCI_STYLESETFORE parameter: SCE_MYSQL_DEFAULT value: [NSColor blackColor]];
 | 
			
		||||
  [mEditor setColorProperty: SCI_STYLESETFORE parameter: SCE_MYSQL_COMMENT fromHTML: @"#097BF7"];
 | 
			
		||||
  [mEditor setColorProperty: SCI_STYLESETFORE parameter: SCE_MYSQL_COMMENTLINE fromHTML: @"#097BF7"];
 | 
			
		||||
  [mEditor setColorProperty: SCI_STYLESETFORE parameter: SCE_MYSQL_HIDDENCOMMAND fromHTML: @"#097BF7"];
 | 
			
		||||
  [mEditor setColorProperty: SCI_STYLESETBACK parameter: SCE_MYSQL_HIDDENCOMMAND fromHTML: @"#F0F0F0"];
 | 
			
		||||
 | 
			
		||||
  [mEditor setColorProperty: SCI_STYLESETFORE parameter: SCE_MYSQL_VARIABLE fromHTML: @"378EA5"];
 | 
			
		||||
  [mEditor setColorProperty: SCI_STYLESETFORE parameter: SCE_MYSQL_SYSTEMVARIABLE fromHTML: @"378EA5"];
 | 
			
		||||
  [mEditor setColorProperty: SCI_STYLESETFORE parameter: SCE_MYSQL_KNOWNSYSTEMVARIABLE fromHTML: @"#3A37A5"];
 | 
			
		||||
 | 
			
		||||
  [mEditor setColorProperty: SCI_STYLESETFORE parameter: SCE_MYSQL_NUMBER fromHTML: @"#7F7F00"];
 | 
			
		||||
  [mEditor setColorProperty: SCI_STYLESETFORE parameter: SCE_MYSQL_SQSTRING fromHTML: @"#FFAA3E"];
 | 
			
		||||
 | 
			
		||||
  // Note: if we were using ANSI quotes we would set the DQSTRING to the same color as the
 | 
			
		||||
  //       the back tick string.
 | 
			
		||||
  [mEditor setColorProperty: SCI_STYLESETFORE parameter: SCE_MYSQL_DQSTRING fromHTML: @"#274A6D"];
 | 
			
		||||
 | 
			
		||||
  // Keyword highlighting.
 | 
			
		||||
  [mEditor setColorProperty: SCI_STYLESETFORE parameter: SCE_MYSQL_MAJORKEYWORD fromHTML: @"#007F00"];
 | 
			
		||||
  [mEditor setGeneralProperty: SCI_STYLESETBOLD parameter: SCE_MYSQL_MAJORKEYWORD value: 1];
 | 
			
		||||
  [mEditor setColorProperty: SCI_STYLESETFORE parameter: SCE_MYSQL_KEYWORD fromHTML: @"#007F00"];
 | 
			
		||||
  [mEditor setGeneralProperty: SCI_STYLESETBOLD parameter: SCE_MYSQL_KEYWORD value: 1];
 | 
			
		||||
  [mEditor setColorProperty: SCI_STYLESETFORE parameter: SCE_MYSQL_PROCEDUREKEYWORD fromHTML: @"#56007F"];
 | 
			
		||||
  [mEditor setGeneralProperty: SCI_STYLESETBOLD parameter: SCE_MYSQL_PROCEDUREKEYWORD value: 1];
 | 
			
		||||
  [mEditor setColorProperty: SCI_STYLESETFORE parameter: SCE_MYSQL_USER1 fromHTML: @"#808080"];
 | 
			
		||||
  [mEditor setColorProperty: SCI_STYLESETFORE parameter: SCE_MYSQL_USER2 fromHTML: @"#808080"];
 | 
			
		||||
  [mEditor setColorProperty: SCI_STYLESETBACK parameter: SCE_MYSQL_USER2 fromHTML: @"#F0E0E0"];
 | 
			
		||||
 | 
			
		||||
  // The following 3 styles have no impact as we did not set a keyword list for any of them.
 | 
			
		||||
  [mEditor setColorProperty: SCI_STYLESETFORE parameter: SCE_MYSQL_DATABASEOBJECT value: [NSColor redColor]];
 | 
			
		||||
  [mEditor setColorProperty: SCI_STYLESETFORE parameter: SCE_MYSQL_FUNCTION value: [NSColor redColor]];
 | 
			
		||||
 | 
			
		||||
  [mEditor setColorProperty: SCI_STYLESETFORE parameter: SCE_MYSQL_IDENTIFIER value: [NSColor blackColor]];
 | 
			
		||||
  [mEditor setColorProperty: SCI_STYLESETFORE parameter: SCE_MYSQL_QUOTEDIDENTIFIER fromHTML: @"#274A6D"];
 | 
			
		||||
  [mEditor setGeneralProperty: SCI_STYLESETBOLD parameter: SCE_SQL_OPERATOR value: 1];
 | 
			
		||||
 | 
			
		||||
  // Line number style.
 | 
			
		||||
  [mEditor setColorProperty: SCI_STYLESETFORE parameter: STYLE_LINENUMBER fromHTML: @"#F0F0F0"];
 | 
			
		||||
  [mEditor setColorProperty: SCI_STYLESETBACK parameter: STYLE_LINENUMBER fromHTML: @"#808080"];
 | 
			
		||||
 | 
			
		||||
  [mEditor setGeneralProperty: SCI_SETMARGINTYPEN parameter: 0 value: SC_MARGIN_NUMBER];
 | 
			
		||||
	[mEditor setGeneralProperty: SCI_SETMARGINWIDTHN parameter: 0 value: 35];
 | 
			
		||||
 | 
			
		||||
  // Markers.
 | 
			
		||||
  [mEditor setGeneralProperty: SCI_SETMARGINWIDTHN parameter: 1 value: 16];
 | 
			
		||||
 | 
			
		||||
  // Some special lexer properties.
 | 
			
		||||
  [mEditor setLexerProperty: @"fold" value: @"1"];
 | 
			
		||||
  [mEditor setLexerProperty: @"fold.compact" value: @"0"];
 | 
			
		||||
  [mEditor setLexerProperty: @"fold.comment" value: @"1"];
 | 
			
		||||
  [mEditor setLexerProperty: @"fold.preprocessor" value: @"1"];
 | 
			
		||||
 | 
			
		||||
  // Folder setup.
 | 
			
		||||
  [mEditor setGeneralProperty: SCI_SETMARGINWIDTHN parameter: 2 value: 16];
 | 
			
		||||
  [mEditor setGeneralProperty: SCI_SETMARGINMASKN parameter: 2 value: SC_MASK_FOLDERS];
 | 
			
		||||
  [mEditor setGeneralProperty: SCI_SETMARGINSENSITIVEN parameter: 2 value: 1];
 | 
			
		||||
  [mEditor setGeneralProperty: SCI_MARKERDEFINE parameter: SC_MARKNUM_FOLDEROPEN value: SC_MARK_BOXMINUS];
 | 
			
		||||
  [mEditor setGeneralProperty: SCI_MARKERDEFINE parameter: SC_MARKNUM_FOLDER value: SC_MARK_BOXPLUS];
 | 
			
		||||
  [mEditor setGeneralProperty: SCI_MARKERDEFINE parameter: SC_MARKNUM_FOLDERSUB value: SC_MARK_VLINE];
 | 
			
		||||
  [mEditor setGeneralProperty: SCI_MARKERDEFINE parameter: SC_MARKNUM_FOLDERTAIL value: SC_MARK_LCORNER];
 | 
			
		||||
  [mEditor setGeneralProperty: SCI_MARKERDEFINE parameter: SC_MARKNUM_FOLDEREND value: SC_MARK_BOXPLUSCONNECTED];
 | 
			
		||||
  [mEditor setGeneralProperty: SCI_MARKERDEFINE parameter: SC_MARKNUM_FOLDEROPENMID value: SC_MARK_BOXMINUSCONNECTED];
 | 
			
		||||
  [mEditor setGeneralProperty
 | 
			
		||||
   : SCI_MARKERDEFINE parameter: SC_MARKNUM_FOLDERMIDTAIL value: SC_MARK_TCORNER];
 | 
			
		||||
  for (int n= 25; n < 32; ++n) // Markers 25..31 are reserved for folding.
 | 
			
		||||
  {
 | 
			
		||||
    [mEditor setColorProperty: SCI_MARKERSETFORE parameter: n value: [NSColor whiteColor]];
 | 
			
		||||
    [mEditor setColorProperty: SCI_MARKERSETBACK parameter: n value: [NSColor blackColor]];
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  // Init markers & indicators for highlighting of syntax errors.
 | 
			
		||||
  [mEditor setColorProperty: SCI_INDICSETFORE parameter: 0 value: [NSColor redColor]];
 | 
			
		||||
  [mEditor setGeneralProperty: SCI_INDICSETUNDER parameter: 0 value: 1];
 | 
			
		||||
  [mEditor setGeneralProperty: SCI_INDICSETSTYLE parameter: 0 value: INDIC_SQUIGGLE];
 | 
			
		||||
 | 
			
		||||
  [mEditor setColorProperty: SCI_MARKERSETBACK parameter: 0 fromHTML: @"#B1151C"];
 | 
			
		||||
 | 
			
		||||
  [mEditor setColorProperty: SCI_SETSELBACK parameter: 1 value: [NSColor selectedTextBackgroundColor]];
 | 
			
		||||
  [mEditor setGeneralProperty: SCI_SETMULTIPLESELECTION parameter: 1 value: 0];
 | 
			
		||||
 | 
			
		||||
  // Uncomment if you wanna see auto wrapping in action.
 | 
			
		||||
  //[mEditor setGeneralProperty: SCI_SETWRAPMODE parameter: SC_WRAP_WORD value: 0];
 | 
			
		||||
 | 
			
		||||
  [mEditor suspendDrawing: FALSE];
 | 
			
		||||
 | 
			
		||||
  InfoBar* infoBar = [[[InfoBar alloc] initWithFrame: NSMakeRect(0, 0, 400, 0)] autorelease];
 | 
			
		||||
  [infoBar setDisplay: IBShowAll];
 | 
			
		||||
  [mEditor setInfoBar: infoBar top: NO];
 | 
			
		||||
  [mEditor setStatusText: @"Operation complete"];
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
//--------------------------------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
/* XPM */
 | 
			
		||||
static const char * box_xpm[] = {
 | 
			
		||||
	"12 12 2 1",
 | 
			
		||||
	" 	c None",
 | 
			
		||||
	".	c #800000",
 | 
			
		||||
	"   .........",
 | 
			
		||||
	"  .   .   ..",
 | 
			
		||||
	" .   .   . .",
 | 
			
		||||
	".........  .",
 | 
			
		||||
	".   .   .  .",
 | 
			
		||||
	".   .   . ..",
 | 
			
		||||
	".   .   .. .",
 | 
			
		||||
	".........  .",
 | 
			
		||||
	".   .   .  .",
 | 
			
		||||
	".   .   . . ",
 | 
			
		||||
	".   .   ..  ",
 | 
			
		||||
	".........   "};
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
- (void) showAutocompletion
 | 
			
		||||
{
 | 
			
		||||
	const char *words = "Babylon-5?1 Battlestar-Galactica Millennium-Falcon?2 Moya?2 Serenity Voyager";
 | 
			
		||||
	[mEditor setGeneralProperty: SCI_AUTOCSETIGNORECASE parameter: 1 value:0];
 | 
			
		||||
	[mEditor setGeneralProperty: SCI_REGISTERIMAGE parameter: 1 value:(sptr_t)box_xpm];
 | 
			
		||||
	const int imSize = 12;
 | 
			
		||||
	[mEditor setGeneralProperty: SCI_RGBAIMAGESETWIDTH parameter: imSize value:0];
 | 
			
		||||
	[mEditor setGeneralProperty: SCI_RGBAIMAGESETHEIGHT parameter: imSize value:0];
 | 
			
		||||
	char image[imSize * imSize * 4];
 | 
			
		||||
	for (size_t y = 0; y < imSize; y++) {
 | 
			
		||||
		for (size_t x = 0; x < imSize; x++) {
 | 
			
		||||
			char *p = image + (y * imSize + x) * 4;
 | 
			
		||||
			p[0] = 0xFF;
 | 
			
		||||
			p[1] = 0xA0;
 | 
			
		||||
			p[2] = 0;
 | 
			
		||||
			p[3] = x * 23;
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	[mEditor setGeneralProperty: SCI_REGISTERRGBAIMAGE parameter: 2 value:(sptr_t)image];
 | 
			
		||||
	[mEditor setGeneralProperty: SCI_AUTOCSHOW parameter: 0 value:(sptr_t)words];
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
- (IBAction) searchText: (id) sender
 | 
			
		||||
{
 | 
			
		||||
  NSSearchField* searchField = (NSSearchField*) sender;
 | 
			
		||||
  [mEditor findAndHighlightText: [searchField stringValue]
 | 
			
		||||
                      matchCase: NO
 | 
			
		||||
                      wholeWord: NO
 | 
			
		||||
                       scrollTo: YES
 | 
			
		||||
                           wrap: YES];
 | 
			
		||||
 | 
			
		||||
  long matchStart = [mEditor getGeneralProperty: SCI_GETSELECTIONSTART parameter: 0];
 | 
			
		||||
  long matchEnd = [mEditor getGeneralProperty: SCI_GETSELECTIONEND parameter: 0];
 | 
			
		||||
  [mEditor setGeneralProperty: SCI_FINDINDICATORFLASH parameter: matchStart value:matchEnd];
 | 
			
		||||
 | 
			
		||||
  if ([[searchField stringValue] isEqualToString: @"XX"])
 | 
			
		||||
    [self showAutocompletion];
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
- (IBAction) addRemoveExtra: (id) sender
 | 
			
		||||
{
 | 
			
		||||
	if (sciExtra) {
 | 
			
		||||
		[sciExtra removeFromSuperview];
 | 
			
		||||
		sciExtra = nil;
 | 
			
		||||
	} else {
 | 
			
		||||
		NSRect newFrame = mEditHost.frame;
 | 
			
		||||
		newFrame.origin.x += newFrame.size.width + 5;
 | 
			
		||||
		newFrame.origin.y += 46;
 | 
			
		||||
		newFrame.size.width = 96;
 | 
			
		||||
		newFrame.size.height -= 60;
 | 
			
		||||
 | 
			
		||||
		sciExtra = [[[ScintillaView alloc] initWithFrame: newFrame] autorelease];
 | 
			
		||||
		[[[mEditHost window]contentView] addSubview: sciExtra];
 | 
			
		||||
		[sciExtra setGeneralProperty: SCI_SETWRAPMODE parameter: SC_WRAP_WORD value: 1];
 | 
			
		||||
		NSString *sql = [self exampleText];
 | 
			
		||||
		[sciExtra setString: sql];
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
-(IBAction) setFontQuality: (id) sender
 | 
			
		||||
{
 | 
			
		||||
    [ScintillaView directCall:mEditor message:SCI_SETFONTQUALITY wParam:[sender tag] lParam:0];
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@end
 | 
			
		||||
 | 
			
		||||
//--------------------------------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										28
									
								
								3rdparty/scintilla552/scintilla/cocoa/ScintillaTest/Info.plist
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,28 @@
 | 
			
		||||
<?xml version="1.0" encoding="UTF-8"?>
 | 
			
		||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
 | 
			
		||||
<plist version="1.0">
 | 
			
		||||
<dict>
 | 
			
		||||
	<key>CFBundleDevelopmentRegion</key>
 | 
			
		||||
	<string>English</string>
 | 
			
		||||
	<key>CFBundleExecutable</key>
 | 
			
		||||
	<string>${EXECUTABLE_NAME}</string>
 | 
			
		||||
	<key>CFBundleIconFile</key>
 | 
			
		||||
	<string></string>
 | 
			
		||||
	<key>CFBundleIdentifier</key>
 | 
			
		||||
	<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
 | 
			
		||||
	<key>CFBundleInfoDictionaryVersion</key>
 | 
			
		||||
	<string>6.0</string>
 | 
			
		||||
	<key>CFBundleName</key>
 | 
			
		||||
	<string>${PRODUCT_NAME}</string>
 | 
			
		||||
	<key>CFBundlePackageType</key>
 | 
			
		||||
	<string>APPL</string>
 | 
			
		||||
	<key>CFBundleSignature</key>
 | 
			
		||||
	<string>????</string>
 | 
			
		||||
	<key>CFBundleVersion</key>
 | 
			
		||||
	<string>1.0</string>
 | 
			
		||||
	<key>NSMainNibFile</key>
 | 
			
		||||
	<string>MainMenu</string>
 | 
			
		||||
	<key>NSPrincipalClass</key>
 | 
			
		||||
	<string>NSApplication</string>
 | 
			
		||||
</dict>
 | 
			
		||||
</plist>
 | 
			
		||||
							
								
								
									
										20
									
								
								3rdparty/scintilla552/scintilla/cocoa/ScintillaTest/Scintilla-Info.plist
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,20 @@
 | 
			
		||||
<?xml version="1.0" encoding="UTF-8"?>
 | 
			
		||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
 | 
			
		||||
<plist version="1.0">
 | 
			
		||||
<dict>
 | 
			
		||||
	<key>CFBundleDevelopmentRegion</key>
 | 
			
		||||
	<string>English</string>
 | 
			
		||||
	<key>CFBundleExecutable</key>
 | 
			
		||||
	<string>${EXECUTABLE_NAME}</string>
 | 
			
		||||
	<key>CFBundleIdentifier</key>
 | 
			
		||||
	<string>com.sun.${PRODUCT_NAME:identifier}</string>
 | 
			
		||||
	<key>CFBundleInfoDictionaryVersion</key>
 | 
			
		||||
	<string>6.0</string>
 | 
			
		||||
	<key>CFBundlePackageType</key>
 | 
			
		||||
	<string>FMWK</string>
 | 
			
		||||
	<key>CFBundleSignature</key>
 | 
			
		||||
	<string>????</string>
 | 
			
		||||
	<key>CFBundleVersion</key>
 | 
			
		||||
	<string>1.0</string>
 | 
			
		||||
</dict>
 | 
			
		||||
</plist>
 | 
			
		||||
							
								
								
									
										474
									
								
								3rdparty/scintilla552/scintilla/cocoa/ScintillaTest/ScintillaTest.xcodeproj/project.pbxproj
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,474 @@
 | 
			
		||||
// !$*UTF8*$!
 | 
			
		||||
{
 | 
			
		||||
	archiveVersion = 1;
 | 
			
		||||
	classes = {
 | 
			
		||||
	};
 | 
			
		||||
	objectVersion = 54;
 | 
			
		||||
	objects = {
 | 
			
		||||
 | 
			
		||||
/* Begin PBXBuildFile section */
 | 
			
		||||
		1DDD58160DA1D0A300B32029 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 1DDD58140DA1D0A300B32029 /* MainMenu.xib */; };
 | 
			
		||||
		271FA52C0F850BE20033D021 /* AppController.mm in Sources */ = {isa = PBXBuildFile; fileRef = 271FA52B0F850BE20033D021 /* AppController.mm */; };
 | 
			
		||||
		2791F4490FC1A8E9009DBCF9 /* TestData.sql in Resources */ = {isa = PBXBuildFile; fileRef = 2791F4480FC1A8E9009DBCF9 /* TestData.sql */; };
 | 
			
		||||
		286F8E5125F8474400EC8D60 /* Scintilla.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 286F8E4E25F845B000EC8D60 /* Scintilla.framework */; };
 | 
			
		||||
		286F8E5225F8474400EC8D60 /* Scintilla.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = 286F8E4E25F845B000EC8D60 /* Scintilla.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
 | 
			
		||||
		286F8E7525F8506B00EC8D60 /* liblexilla.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 286F8E7325F8504800EC8D60 /* liblexilla.dylib */; };
 | 
			
		||||
		286F8E7625F8506B00EC8D60 /* liblexilla.dylib in CopyFiles */ = {isa = PBXBuildFile; fileRef = 286F8E7325F8504800EC8D60 /* liblexilla.dylib */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
 | 
			
		||||
		8D11072B0486CEB800E47090 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */; };
 | 
			
		||||
		8D11072D0486CEB800E47090 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 29B97316FDCFA39411CA2CEA /* main.m */; settings = {ATTRIBUTES = (); }; };
 | 
			
		||||
		8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; };
 | 
			
		||||
/* End PBXBuildFile section */
 | 
			
		||||
 | 
			
		||||
/* Begin PBXContainerItemProxy section */
 | 
			
		||||
		286F8E4D25F845B000EC8D60 /* PBXContainerItemProxy */ = {
 | 
			
		||||
			isa = PBXContainerItemProxy;
 | 
			
		||||
			containerPortal = 286F8E4925F845B000EC8D60 /* Scintilla.xcodeproj */;
 | 
			
		||||
			proxyType = 2;
 | 
			
		||||
			remoteGlobalIDString = 287F3C41246F8DC70040E76F;
 | 
			
		||||
			remoteInfo = Scintilla;
 | 
			
		||||
		};
 | 
			
		||||
		286F8E7225F8504800EC8D60 /* PBXContainerItemProxy */ = {
 | 
			
		||||
			isa = PBXContainerItemProxy;
 | 
			
		||||
			containerPortal = 286F8E6E25F8504800EC8D60 /* Lexilla.xcodeproj */;
 | 
			
		||||
			proxyType = 2;
 | 
			
		||||
			remoteGlobalIDString = 280262A5246DF655000DF3B8;
 | 
			
		||||
			remoteInfo = lexilla;
 | 
			
		||||
		};
 | 
			
		||||
/* End PBXContainerItemProxy section */
 | 
			
		||||
 | 
			
		||||
/* Begin PBXCopyFilesBuildPhase section */
 | 
			
		||||
		272133C20F973596006BE49A /* CopyFiles */ = {
 | 
			
		||||
			isa = PBXCopyFilesBuildPhase;
 | 
			
		||||
			buildActionMask = 2147483647;
 | 
			
		||||
			dstPath = "";
 | 
			
		||||
			dstSubfolderSpec = 10;
 | 
			
		||||
			files = (
 | 
			
		||||
				286F8E7625F8506B00EC8D60 /* liblexilla.dylib in CopyFiles */,
 | 
			
		||||
				286F8E5225F8474400EC8D60 /* Scintilla.framework in CopyFiles */,
 | 
			
		||||
			);
 | 
			
		||||
			runOnlyForDeploymentPostprocessing = 0;
 | 
			
		||||
		};
 | 
			
		||||
/* End PBXCopyFilesBuildPhase section */
 | 
			
		||||
 | 
			
		||||
/* Begin PBXFileReference section */
 | 
			
		||||
		1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = "<absolute>"; };
 | 
			
		||||
		13E42FB307B3F0F600E4EEF1 /* CoreData.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreData.framework; path = /System/Library/Frameworks/CoreData.framework; sourceTree = "<absolute>"; };
 | 
			
		||||
		271FA52A0F850BE20033D021 /* AppController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AppController.h; sourceTree = "<group>"; };
 | 
			
		||||
		271FA52B0F850BE20033D021 /* AppController.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = AppController.mm; sourceTree = "<group>"; wrapsLines = 0; };
 | 
			
		||||
		2791F4480FC1A8E9009DBCF9 /* TestData.sql */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = TestData.sql; sourceTree = "<group>"; };
 | 
			
		||||
		286F8E4925F845B000EC8D60 /* Scintilla.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = Scintilla.xcodeproj; path = ../Scintilla/Scintilla.xcodeproj; sourceTree = "<group>"; };
 | 
			
		||||
		286F8E6E25F8504800EC8D60 /* Lexilla.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = Lexilla.xcodeproj; path = ../../../lexilla/src/Lexilla/Lexilla.xcodeproj; sourceTree = "<group>"; };
 | 
			
		||||
		28E78A40224C33FE00456881 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; };
 | 
			
		||||
		28E78A41224C33FE00456881 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = en.lproj/MainMenu.xib; sourceTree = "<group>"; };
 | 
			
		||||
		29B97316FDCFA39411CA2CEA /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
 | 
			
		||||
		29B97324FDCFA39411CA2CEA /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = "<absolute>"; };
 | 
			
		||||
		29B97325FDCFA39411CA2CEA /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = "<absolute>"; };
 | 
			
		||||
		32CA4F630368D1EE00C91783 /* ScintillaTest_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ScintillaTest_Prefix.pch; sourceTree = "<group>"; };
 | 
			
		||||
		8D1107310486CEB800E47090 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
 | 
			
		||||
		8D1107320486CEB800E47090 /* ScintillaTest.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = ScintillaTest.app; sourceTree = BUILT_PRODUCTS_DIR; };
 | 
			
		||||
/* End PBXFileReference section */
 | 
			
		||||
 | 
			
		||||
/* Begin PBXFrameworksBuildPhase section */
 | 
			
		||||
		8D11072E0486CEB800E47090 /* Frameworks */ = {
 | 
			
		||||
			isa = PBXFrameworksBuildPhase;
 | 
			
		||||
			buildActionMask = 2147483647;
 | 
			
		||||
			files = (
 | 
			
		||||
				286F8E5125F8474400EC8D60 /* Scintilla.framework in Frameworks */,
 | 
			
		||||
				286F8E7525F8506B00EC8D60 /* liblexilla.dylib in Frameworks */,
 | 
			
		||||
				8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */,
 | 
			
		||||
			);
 | 
			
		||||
			runOnlyForDeploymentPostprocessing = 0;
 | 
			
		||||
		};
 | 
			
		||||
/* End PBXFrameworksBuildPhase section */
 | 
			
		||||
 | 
			
		||||
/* Begin PBXGroup section */
 | 
			
		||||
		080E96DDFE201D6D7F000001 /* Classes */ = {
 | 
			
		||||
			isa = PBXGroup;
 | 
			
		||||
			children = (
 | 
			
		||||
				271FA52A0F850BE20033D021 /* AppController.h */,
 | 
			
		||||
				271FA52B0F850BE20033D021 /* AppController.mm */,
 | 
			
		||||
			);
 | 
			
		||||
			name = Classes;
 | 
			
		||||
			sourceTree = "<group>";
 | 
			
		||||
		};
 | 
			
		||||
		1058C7A0FEA54F0111CA2CBB /* Linked Frameworks */ = {
 | 
			
		||||
			isa = PBXGroup;
 | 
			
		||||
			children = (
 | 
			
		||||
				1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */,
 | 
			
		||||
			);
 | 
			
		||||
			name = "Linked Frameworks";
 | 
			
		||||
			sourceTree = "<group>";
 | 
			
		||||
		};
 | 
			
		||||
		1058C7A2FEA54F0111CA2CBB /* Other Frameworks */ = {
 | 
			
		||||
			isa = PBXGroup;
 | 
			
		||||
			children = (
 | 
			
		||||
				29B97324FDCFA39411CA2CEA /* AppKit.framework */,
 | 
			
		||||
				13E42FB307B3F0F600E4EEF1 /* CoreData.framework */,
 | 
			
		||||
				29B97325FDCFA39411CA2CEA /* Foundation.framework */,
 | 
			
		||||
			);
 | 
			
		||||
			name = "Other Frameworks";
 | 
			
		||||
			sourceTree = "<group>";
 | 
			
		||||
		};
 | 
			
		||||
		19C28FACFE9D520D11CA2CBB /* Products */ = {
 | 
			
		||||
			isa = PBXGroup;
 | 
			
		||||
			children = (
 | 
			
		||||
				8D1107320486CEB800E47090 /* ScintillaTest.app */,
 | 
			
		||||
			);
 | 
			
		||||
			name = Products;
 | 
			
		||||
			sourceTree = "<group>";
 | 
			
		||||
		};
 | 
			
		||||
		286F8E4A25F845B000EC8D60 /* Products */ = {
 | 
			
		||||
			isa = PBXGroup;
 | 
			
		||||
			children = (
 | 
			
		||||
				286F8E4E25F845B000EC8D60 /* Scintilla.framework */,
 | 
			
		||||
			);
 | 
			
		||||
			name = Products;
 | 
			
		||||
			sourceTree = "<group>";
 | 
			
		||||
		};
 | 
			
		||||
		286F8E6F25F8504800EC8D60 /* Products */ = {
 | 
			
		||||
			isa = PBXGroup;
 | 
			
		||||
			children = (
 | 
			
		||||
				286F8E7325F8504800EC8D60 /* liblexilla.dylib */,
 | 
			
		||||
			);
 | 
			
		||||
			name = Products;
 | 
			
		||||
			sourceTree = "<group>";
 | 
			
		||||
		};
 | 
			
		||||
		29B97314FDCFA39411CA2CEA /* ScintillaTest */ = {
 | 
			
		||||
			isa = PBXGroup;
 | 
			
		||||
			children = (
 | 
			
		||||
				286F8E6E25F8504800EC8D60 /* Lexilla.xcodeproj */,
 | 
			
		||||
				286F8E4925F845B000EC8D60 /* Scintilla.xcodeproj */,
 | 
			
		||||
				080E96DDFE201D6D7F000001 /* Classes */,
 | 
			
		||||
				29B97315FDCFA39411CA2CEA /* Other Sources */,
 | 
			
		||||
				29B97317FDCFA39411CA2CEA /* Resources */,
 | 
			
		||||
				29B97323FDCFA39411CA2CEA /* Frameworks */,
 | 
			
		||||
				19C28FACFE9D520D11CA2CBB /* Products */,
 | 
			
		||||
			);
 | 
			
		||||
			name = ScintillaTest;
 | 
			
		||||
			sourceTree = "<group>";
 | 
			
		||||
		};
 | 
			
		||||
		29B97315FDCFA39411CA2CEA /* Other Sources */ = {
 | 
			
		||||
			isa = PBXGroup;
 | 
			
		||||
			children = (
 | 
			
		||||
				32CA4F630368D1EE00C91783 /* ScintillaTest_Prefix.pch */,
 | 
			
		||||
				29B97316FDCFA39411CA2CEA /* main.m */,
 | 
			
		||||
			);
 | 
			
		||||
			name = "Other Sources";
 | 
			
		||||
			sourceTree = "<group>";
 | 
			
		||||
		};
 | 
			
		||||
		29B97317FDCFA39411CA2CEA /* Resources */ = {
 | 
			
		||||
			isa = PBXGroup;
 | 
			
		||||
			children = (
 | 
			
		||||
				2791F4480FC1A8E9009DBCF9 /* TestData.sql */,
 | 
			
		||||
				8D1107310486CEB800E47090 /* Info.plist */,
 | 
			
		||||
				089C165CFE840E0CC02AAC07 /* InfoPlist.strings */,
 | 
			
		||||
				1DDD58140DA1D0A300B32029 /* MainMenu.xib */,
 | 
			
		||||
			);
 | 
			
		||||
			name = Resources;
 | 
			
		||||
			sourceTree = "<group>";
 | 
			
		||||
		};
 | 
			
		||||
		29B97323FDCFA39411CA2CEA /* Frameworks */ = {
 | 
			
		||||
			isa = PBXGroup;
 | 
			
		||||
			children = (
 | 
			
		||||
				1058C7A0FEA54F0111CA2CBB /* Linked Frameworks */,
 | 
			
		||||
				1058C7A2FEA54F0111CA2CBB /* Other Frameworks */,
 | 
			
		||||
			);
 | 
			
		||||
			name = Frameworks;
 | 
			
		||||
			sourceTree = "<group>";
 | 
			
		||||
		};
 | 
			
		||||
/* End PBXGroup section */
 | 
			
		||||
 | 
			
		||||
/* Begin PBXNativeTarget section */
 | 
			
		||||
		8D1107260486CEB800E47090 /* ScintillaTest */ = {
 | 
			
		||||
			isa = PBXNativeTarget;
 | 
			
		||||
			buildConfigurationList = C01FCF4A08A954540054247B /* Build configuration list for PBXNativeTarget "ScintillaTest" */;
 | 
			
		||||
			buildPhases = (
 | 
			
		||||
				8D1107290486CEB800E47090 /* Resources */,
 | 
			
		||||
				8D11072C0486CEB800E47090 /* Sources */,
 | 
			
		||||
				8D11072E0486CEB800E47090 /* Frameworks */,
 | 
			
		||||
				272133C20F973596006BE49A /* CopyFiles */,
 | 
			
		||||
			);
 | 
			
		||||
			buildRules = (
 | 
			
		||||
			);
 | 
			
		||||
			dependencies = (
 | 
			
		||||
			);
 | 
			
		||||
			name = ScintillaTest;
 | 
			
		||||
			productInstallPath = "$(HOME)/Applications";
 | 
			
		||||
			productName = ScintillaTest;
 | 
			
		||||
			productReference = 8D1107320486CEB800E47090 /* ScintillaTest.app */;
 | 
			
		||||
			productType = "com.apple.product-type.application";
 | 
			
		||||
		};
 | 
			
		||||
/* End PBXNativeTarget section */
 | 
			
		||||
 | 
			
		||||
/* Begin PBXProject section */
 | 
			
		||||
		29B97313FDCFA39411CA2CEA /* Project object */ = {
 | 
			
		||||
			isa = PBXProject;
 | 
			
		||||
			attributes = {
 | 
			
		||||
				BuildIndependentTargetsInParallel = YES;
 | 
			
		||||
				LastUpgradeCheck = 1500;
 | 
			
		||||
			};
 | 
			
		||||
			buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "ScintillaTest" */;
 | 
			
		||||
			compatibilityVersion = "Xcode 3.2";
 | 
			
		||||
			developmentRegion = en;
 | 
			
		||||
			hasScannedForEncodings = 1;
 | 
			
		||||
			knownRegions = (
 | 
			
		||||
				Base,
 | 
			
		||||
				en,
 | 
			
		||||
			);
 | 
			
		||||
			mainGroup = 29B97314FDCFA39411CA2CEA /* ScintillaTest */;
 | 
			
		||||
			projectDirPath = "";
 | 
			
		||||
			projectReferences = (
 | 
			
		||||
				{
 | 
			
		||||
					ProductGroup = 286F8E6F25F8504800EC8D60 /* Products */;
 | 
			
		||||
					ProjectRef = 286F8E6E25F8504800EC8D60 /* Lexilla.xcodeproj */;
 | 
			
		||||
				},
 | 
			
		||||
				{
 | 
			
		||||
					ProductGroup = 286F8E4A25F845B000EC8D60 /* Products */;
 | 
			
		||||
					ProjectRef = 286F8E4925F845B000EC8D60 /* Scintilla.xcodeproj */;
 | 
			
		||||
				},
 | 
			
		||||
			);
 | 
			
		||||
			projectRoot = "";
 | 
			
		||||
			targets = (
 | 
			
		||||
				8D1107260486CEB800E47090 /* ScintillaTest */,
 | 
			
		||||
			);
 | 
			
		||||
		};
 | 
			
		||||
/* End PBXProject section */
 | 
			
		||||
 | 
			
		||||
/* Begin PBXReferenceProxy section */
 | 
			
		||||
		286F8E4E25F845B000EC8D60 /* Scintilla.framework */ = {
 | 
			
		||||
			isa = PBXReferenceProxy;
 | 
			
		||||
			fileType = wrapper.framework;
 | 
			
		||||
			path = Scintilla.framework;
 | 
			
		||||
			remoteRef = 286F8E4D25F845B000EC8D60 /* PBXContainerItemProxy */;
 | 
			
		||||
			sourceTree = BUILT_PRODUCTS_DIR;
 | 
			
		||||
		};
 | 
			
		||||
		286F8E7325F8504800EC8D60 /* liblexilla.dylib */ = {
 | 
			
		||||
			isa = PBXReferenceProxy;
 | 
			
		||||
			fileType = "compiled.mach-o.dylib";
 | 
			
		||||
			path = liblexilla.dylib;
 | 
			
		||||
			remoteRef = 286F8E7225F8504800EC8D60 /* PBXContainerItemProxy */;
 | 
			
		||||
			sourceTree = BUILT_PRODUCTS_DIR;
 | 
			
		||||
		};
 | 
			
		||||
/* End PBXReferenceProxy section */
 | 
			
		||||
 | 
			
		||||
/* Begin PBXResourcesBuildPhase section */
 | 
			
		||||
		8D1107290486CEB800E47090 /* Resources */ = {
 | 
			
		||||
			isa = PBXResourcesBuildPhase;
 | 
			
		||||
			buildActionMask = 2147483647;
 | 
			
		||||
			files = (
 | 
			
		||||
				8D11072B0486CEB800E47090 /* InfoPlist.strings in Resources */,
 | 
			
		||||
				1DDD58160DA1D0A300B32029 /* MainMenu.xib in Resources */,
 | 
			
		||||
				2791F4490FC1A8E9009DBCF9 /* TestData.sql in Resources */,
 | 
			
		||||
			);
 | 
			
		||||
			runOnlyForDeploymentPostprocessing = 0;
 | 
			
		||||
		};
 | 
			
		||||
/* End PBXResourcesBuildPhase section */
 | 
			
		||||
 | 
			
		||||
/* Begin PBXSourcesBuildPhase section */
 | 
			
		||||
		8D11072C0486CEB800E47090 /* Sources */ = {
 | 
			
		||||
			isa = PBXSourcesBuildPhase;
 | 
			
		||||
			buildActionMask = 2147483647;
 | 
			
		||||
			files = (
 | 
			
		||||
				8D11072D0486CEB800E47090 /* main.m in Sources */,
 | 
			
		||||
				271FA52C0F850BE20033D021 /* AppController.mm in Sources */,
 | 
			
		||||
			);
 | 
			
		||||
			runOnlyForDeploymentPostprocessing = 0;
 | 
			
		||||
		};
 | 
			
		||||
/* End PBXSourcesBuildPhase section */
 | 
			
		||||
 | 
			
		||||
/* Begin PBXVariantGroup section */
 | 
			
		||||
		089C165CFE840E0CC02AAC07 /* InfoPlist.strings */ = {
 | 
			
		||||
			isa = PBXVariantGroup;
 | 
			
		||||
			children = (
 | 
			
		||||
				28E78A40224C33FE00456881 /* en */,
 | 
			
		||||
			);
 | 
			
		||||
			name = InfoPlist.strings;
 | 
			
		||||
			sourceTree = "<group>";
 | 
			
		||||
		};
 | 
			
		||||
		1DDD58140DA1D0A300B32029 /* MainMenu.xib */ = {
 | 
			
		||||
			isa = PBXVariantGroup;
 | 
			
		||||
			children = (
 | 
			
		||||
				28E78A41224C33FE00456881 /* en */,
 | 
			
		||||
			);
 | 
			
		||||
			name = MainMenu.xib;
 | 
			
		||||
			sourceTree = "<group>";
 | 
			
		||||
		};
 | 
			
		||||
/* End PBXVariantGroup section */
 | 
			
		||||
 | 
			
		||||
/* Begin XCBuildConfiguration section */
 | 
			
		||||
		C01FCF4B08A954540054247B /* Debug */ = {
 | 
			
		||||
			isa = XCBuildConfiguration;
 | 
			
		||||
			buildSettings = {
 | 
			
		||||
				ALWAYS_SEARCH_USER_PATHS = NO;
 | 
			
		||||
				CLANG_ENABLE_OBJC_WEAK = YES;
 | 
			
		||||
				CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO;
 | 
			
		||||
				CODE_SIGN_IDENTITY = "-";
 | 
			
		||||
				COMBINE_HIDPI_IMAGES = YES;
 | 
			
		||||
				COPY_PHASE_STRIP = NO;
 | 
			
		||||
				DEAD_CODE_STRIPPING = YES;
 | 
			
		||||
				FRAMEWORK_SEARCH_PATHS = "$(inherited)";
 | 
			
		||||
				GCC_DYNAMIC_NO_PIC = NO;
 | 
			
		||||
				GCC_MODEL_TUNING = G5;
 | 
			
		||||
				GCC_OPTIMIZATION_LEVEL = 0;
 | 
			
		||||
				GCC_PRECOMPILE_PREFIX_HEADER = YES;
 | 
			
		||||
				GCC_PREFIX_HEADER = ScintillaTest_Prefix.pch;
 | 
			
		||||
				GCC_PREPROCESSOR_DEFINITIONS = SCI_LEXER;
 | 
			
		||||
				HEADER_SEARCH_PATHS = "";
 | 
			
		||||
				INFOPLIST_FILE = Info.plist;
 | 
			
		||||
				INSTALL_PATH = "$(HOME)/Applications";
 | 
			
		||||
				LD_RUNPATH_SEARCH_PATHS = (
 | 
			
		||||
					"$(LD_RUNPATH_SEARCH_PATHS_$(IS_MACCATALYST))",
 | 
			
		||||
					"@executable_path/../Frameworks",
 | 
			
		||||
				);
 | 
			
		||||
				LIBRARY_SEARCH_PATHS = "$(inherited)";
 | 
			
		||||
				MACOSX_DEPLOYMENT_TARGET = 10.13;
 | 
			
		||||
				OTHER_LDFLAGS = "";
 | 
			
		||||
				PRODUCT_BUNDLE_IDENTIFIER = "com.sun.${PRODUCT_NAME:identifier}";
 | 
			
		||||
				PRODUCT_NAME = ScintillaTest;
 | 
			
		||||
				SDKROOT = macosx;
 | 
			
		||||
				USER_HEADER_SEARCH_PATHS = "";
 | 
			
		||||
			};
 | 
			
		||||
			name = Debug;
 | 
			
		||||
		};
 | 
			
		||||
		C01FCF4C08A954540054247B /* Release */ = {
 | 
			
		||||
			isa = XCBuildConfiguration;
 | 
			
		||||
			buildSettings = {
 | 
			
		||||
				ALWAYS_SEARCH_USER_PATHS = NO;
 | 
			
		||||
				CLANG_ENABLE_OBJC_WEAK = YES;
 | 
			
		||||
				CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO;
 | 
			
		||||
				CODE_SIGN_IDENTITY = "-";
 | 
			
		||||
				COMBINE_HIDPI_IMAGES = YES;
 | 
			
		||||
				DEAD_CODE_STRIPPING = YES;
 | 
			
		||||
				DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
 | 
			
		||||
				FRAMEWORK_SEARCH_PATHS = "$(inherited)";
 | 
			
		||||
				GCC_MODEL_TUNING = G5;
 | 
			
		||||
				GCC_PRECOMPILE_PREFIX_HEADER = YES;
 | 
			
		||||
				GCC_PREFIX_HEADER = ScintillaTest_Prefix.pch;
 | 
			
		||||
				GCC_PREPROCESSOR_DEFINITIONS = SCI_LEXER;
 | 
			
		||||
				HEADER_SEARCH_PATHS = "";
 | 
			
		||||
				INFOPLIST_FILE = Info.plist;
 | 
			
		||||
				INSTALL_PATH = "$(HOME)/Applications";
 | 
			
		||||
				LD_RUNPATH_SEARCH_PATHS = (
 | 
			
		||||
					"$(LD_RUNPATH_SEARCH_PATHS_$(IS_MACCATALYST))",
 | 
			
		||||
					"@executable_path/../Frameworks",
 | 
			
		||||
				);
 | 
			
		||||
				LIBRARY_SEARCH_PATHS = "$(inherited)";
 | 
			
		||||
				MACOSX_DEPLOYMENT_TARGET = 10.13;
 | 
			
		||||
				OTHER_LDFLAGS = "";
 | 
			
		||||
				PRODUCT_BUNDLE_IDENTIFIER = "com.sun.${PRODUCT_NAME:identifier}";
 | 
			
		||||
				PRODUCT_NAME = ScintillaTest;
 | 
			
		||||
				SDKROOT = macosx;
 | 
			
		||||
				USER_HEADER_SEARCH_PATHS = "";
 | 
			
		||||
			};
 | 
			
		||||
			name = Release;
 | 
			
		||||
		};
 | 
			
		||||
		C01FCF4F08A954540054247B /* Debug */ = {
 | 
			
		||||
			isa = XCBuildConfiguration;
 | 
			
		||||
			buildSettings = {
 | 
			
		||||
				CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
 | 
			
		||||
				CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
 | 
			
		||||
				CLANG_WARN_BOOL_CONVERSION = YES;
 | 
			
		||||
				CLANG_WARN_COMMA = YES;
 | 
			
		||||
				CLANG_WARN_CONSTANT_CONVERSION = YES;
 | 
			
		||||
				CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
 | 
			
		||||
				CLANG_WARN_EMPTY_BODY = YES;
 | 
			
		||||
				CLANG_WARN_ENUM_CONVERSION = YES;
 | 
			
		||||
				CLANG_WARN_INFINITE_RECURSION = YES;
 | 
			
		||||
				CLANG_WARN_INT_CONVERSION = YES;
 | 
			
		||||
				CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
 | 
			
		||||
				CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
 | 
			
		||||
				CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
 | 
			
		||||
				CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO;
 | 
			
		||||
				CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
 | 
			
		||||
				CLANG_WARN_STRICT_PROTOTYPES = YES;
 | 
			
		||||
				CLANG_WARN_SUSPICIOUS_MOVE = YES;
 | 
			
		||||
				CLANG_WARN_UNREACHABLE_CODE = YES;
 | 
			
		||||
				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
 | 
			
		||||
				DEAD_CODE_STRIPPING = YES;
 | 
			
		||||
				ENABLE_STRICT_OBJC_MSGSEND = YES;
 | 
			
		||||
				ENABLE_TESTABILITY = YES;
 | 
			
		||||
				ENABLE_USER_SCRIPT_SANDBOXING = YES;
 | 
			
		||||
				GCC_C_LANGUAGE_STANDARD = c99;
 | 
			
		||||
				GCC_NO_COMMON_BLOCKS = YES;
 | 
			
		||||
				GCC_OPTIMIZATION_LEVEL = 0;
 | 
			
		||||
				GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
 | 
			
		||||
				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
 | 
			
		||||
				GCC_WARN_ABOUT_RETURN_TYPE = YES;
 | 
			
		||||
				GCC_WARN_UNDECLARED_SELECTOR = YES;
 | 
			
		||||
				GCC_WARN_UNINITIALIZED_AUTOS = YES;
 | 
			
		||||
				GCC_WARN_UNUSED_FUNCTION = YES;
 | 
			
		||||
				GCC_WARN_UNUSED_VARIABLE = YES;
 | 
			
		||||
				MACOSX_DEPLOYMENT_TARGET = 10.13;
 | 
			
		||||
				ONLY_ACTIVE_ARCH = YES;
 | 
			
		||||
				OTHER_LDFLAGS = "";
 | 
			
		||||
				SDKROOT = macosx;
 | 
			
		||||
				SYSTEM_HEADER_SEARCH_PATHS = "../../../lexilla/**";
 | 
			
		||||
			};
 | 
			
		||||
			name = Debug;
 | 
			
		||||
		};
 | 
			
		||||
		C01FCF5008A954540054247B /* Release */ = {
 | 
			
		||||
			isa = XCBuildConfiguration;
 | 
			
		||||
			buildSettings = {
 | 
			
		||||
				CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
 | 
			
		||||
				CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
 | 
			
		||||
				CLANG_WARN_BOOL_CONVERSION = YES;
 | 
			
		||||
				CLANG_WARN_COMMA = YES;
 | 
			
		||||
				CLANG_WARN_CONSTANT_CONVERSION = YES;
 | 
			
		||||
				CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
 | 
			
		||||
				CLANG_WARN_EMPTY_BODY = YES;
 | 
			
		||||
				CLANG_WARN_ENUM_CONVERSION = YES;
 | 
			
		||||
				CLANG_WARN_INFINITE_RECURSION = YES;
 | 
			
		||||
				CLANG_WARN_INT_CONVERSION = YES;
 | 
			
		||||
				CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
 | 
			
		||||
				CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
 | 
			
		||||
				CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
 | 
			
		||||
				CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO;
 | 
			
		||||
				CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
 | 
			
		||||
				CLANG_WARN_STRICT_PROTOTYPES = YES;
 | 
			
		||||
				CLANG_WARN_SUSPICIOUS_MOVE = YES;
 | 
			
		||||
				CLANG_WARN_UNREACHABLE_CODE = YES;
 | 
			
		||||
				CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
 | 
			
		||||
				DEAD_CODE_STRIPPING = YES;
 | 
			
		||||
				ENABLE_STRICT_OBJC_MSGSEND = YES;
 | 
			
		||||
				ENABLE_USER_SCRIPT_SANDBOXING = YES;
 | 
			
		||||
				GCC_C_LANGUAGE_STANDARD = c99;
 | 
			
		||||
				GCC_NO_COMMON_BLOCKS = YES;
 | 
			
		||||
				GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
 | 
			
		||||
				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
 | 
			
		||||
				GCC_WARN_ABOUT_RETURN_TYPE = YES;
 | 
			
		||||
				GCC_WARN_UNDECLARED_SELECTOR = YES;
 | 
			
		||||
				GCC_WARN_UNINITIALIZED_AUTOS = YES;
 | 
			
		||||
				GCC_WARN_UNUSED_FUNCTION = YES;
 | 
			
		||||
				GCC_WARN_UNUSED_VARIABLE = YES;
 | 
			
		||||
				MACOSX_DEPLOYMENT_TARGET = 10.13;
 | 
			
		||||
				OTHER_LDFLAGS = "";
 | 
			
		||||
				SDKROOT = macosx;
 | 
			
		||||
				SYSTEM_HEADER_SEARCH_PATHS = "../../../lexilla/**";
 | 
			
		||||
			};
 | 
			
		||||
			name = Release;
 | 
			
		||||
		};
 | 
			
		||||
/* End XCBuildConfiguration section */
 | 
			
		||||
 | 
			
		||||
/* Begin XCConfigurationList section */
 | 
			
		||||
		C01FCF4A08A954540054247B /* Build configuration list for PBXNativeTarget "ScintillaTest" */ = {
 | 
			
		||||
			isa = XCConfigurationList;
 | 
			
		||||
			buildConfigurations = (
 | 
			
		||||
				C01FCF4B08A954540054247B /* Debug */,
 | 
			
		||||
				C01FCF4C08A954540054247B /* Release */,
 | 
			
		||||
			);
 | 
			
		||||
			defaultConfigurationIsVisible = 0;
 | 
			
		||||
			defaultConfigurationName = Release;
 | 
			
		||||
		};
 | 
			
		||||
		C01FCF4E08A954540054247B /* Build configuration list for PBXProject "ScintillaTest" */ = {
 | 
			
		||||
			isa = XCConfigurationList;
 | 
			
		||||
			buildConfigurations = (
 | 
			
		||||
				C01FCF4F08A954540054247B /* Debug */,
 | 
			
		||||
				C01FCF5008A954540054247B /* Release */,
 | 
			
		||||
			);
 | 
			
		||||
			defaultConfigurationIsVisible = 0;
 | 
			
		||||
			defaultConfigurationName = Release;
 | 
			
		||||
		};
 | 
			
		||||
/* End XCConfigurationList section */
 | 
			
		||||
	};
 | 
			
		||||
	rootObject = 29B97313FDCFA39411CA2CEA /* Project object */;
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										7
									
								
								3rdparty/scintilla552/scintilla/cocoa/ScintillaTest/ScintillaTest.xcodeproj/project.xcworkspace/contents.xcworkspacedata
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,7 @@
 | 
			
		||||
<?xml version="1.0" encoding="UTF-8"?>
 | 
			
		||||
<Workspace
 | 
			
		||||
   version = "1.0">
 | 
			
		||||
   <FileRef
 | 
			
		||||
      location = "self:ScintillaTest.xcodeproj">
 | 
			
		||||
   </FileRef>
 | 
			
		||||
</Workspace>
 | 
			
		||||
@ -0,0 +1,8 @@
 | 
			
		||||
<?xml version="1.0" encoding="UTF-8"?>
 | 
			
		||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
 | 
			
		||||
<plist version="1.0">
 | 
			
		||||
<dict>
 | 
			
		||||
	<key>IDEDidComputeMac32BitWarning</key>
 | 
			
		||||
	<true/>
 | 
			
		||||
</dict>
 | 
			
		||||
</plist>
 | 
			
		||||
							
								
								
									
										7
									
								
								3rdparty/scintilla552/scintilla/cocoa/ScintillaTest/ScintillaTest_Prefix.pch
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,7 @@
 | 
			
		||||
//
 | 
			
		||||
// Prefix header for all source files of the 'ScintillaTest' target in the 'ScintillaTest' project
 | 
			
		||||
//
 | 
			
		||||
 | 
			
		||||
#ifdef __OBJC__
 | 
			
		||||
    #import <Cocoa/Cocoa.h>
 | 
			
		||||
#endif
 | 
			
		||||
							
								
								
									
										215
									
								
								3rdparty/scintilla552/scintilla/cocoa/ScintillaTest/TestData.sql
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,215 @@
 | 
			
		||||
-- MySQL Administrator dump 1.4
 | 
			
		||||
--
 | 
			
		||||
-- ------------------------------------------------------
 | 
			
		||||
-- Server version	5.0.45
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
 | 
			
		||||
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
 | 
			
		||||
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
 | 
			
		||||
/*!40101 SET NAMES utf8 */;
 | 
			
		||||
 | 
			
		||||
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
 | 
			
		||||
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
 | 
			
		||||
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO,ANSI_QUOTES' */;
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Foldable multiline comment.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
-- {
 | 
			
		||||
-- Create schema sakila
 | 
			
		||||
-- }
 | 
			
		||||
 | 
			
		||||
CREATE DATABASE IF NOT EXISTS sakila;
 | 
			
		||||
USE sakila;
 | 
			
		||||
DROP TABLE IF EXISTS "sakila"."actor_info";
 | 
			
		||||
DROP VIEW IF EXISTS "sakila"."actor_info";
 | 
			
		||||
CREATE TABLE "sakila"."actor_info" (
 | 
			
		||||
  "actor_id" smallint(5) unsigned,
 | 
			
		||||
  "first_name" varchar(45),
 | 
			
		||||
  "last_name" varchar(45),
 | 
			
		||||
  "film_info" varchar(341)
 | 
			
		||||
);
 | 
			
		||||
DROP TABLE IF EXISTS "sakila"."actor";
 | 
			
		||||
CREATE TABLE  "sakila"."actor" (
 | 
			
		||||
  "actor_id" smallint(5) unsigned NOT NULL auto_increment,
 | 
			
		||||
  "first_name" varchar(45) NOT NULL,
 | 
			
		||||
  "last_name" varchar(45) NOT NULL,
 | 
			
		||||
  "last_update" timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
 | 
			
		||||
  PRIMARY KEY  ("actor_id"),
 | 
			
		||||
  KEY "idx_actor_last_name" ("last_name")
 | 
			
		||||
) ENGINE=InnoDB AUTO_INCREMENT=201 DEFAULT CHARSET=utf8;
 | 
			
		||||
INSERT INTO "sakila"."actor" VALUES  (1,'PENELOPE','GUINESS','2006-02-15 04:34:33'),
 | 
			
		||||
 (2,'NICK','WAHLBERG','2006-02-15 04:34:33'),
 | 
			
		||||
 (3,'ED','CHASE','2006-02-15 04:34:33'),
 | 
			
		||||
 (4,'JENNIFER','DAVIS','2006-02-15 04:34:33'),
 | 
			
		||||
 (149,'RUSSELL','TEMPLE','2006-02-15 04:34:33'),
 | 
			
		||||
 (150,'JAYNE','NOLTE','2006-02-15 04:34:33'),
 | 
			
		||||
 (151,'GEOFFREY','HESTON','2006-02-15 04:34:33'),
 | 
			
		||||
 (152,'BEN','HARRIS','2006-02-15 04:34:33'),
 | 
			
		||||
 (153,'MINNIE','KILMER','2006-02-15 04:34:33'),
 | 
			
		||||
 (154,'MERYL','GIBSON','2006-02-15 04:34:33'),
 | 
			
		||||
 (155,'IAN','TANDY','2006-02-15 04:34:33'),
 | 
			
		||||
 (156,'FAY','WOOD','2006-02-15 04:34:33'),
 | 
			
		||||
 (157,'GRETA','MALDEN','2006-02-15 04:34:33'),
 | 
			
		||||
 (158,'VIVIEN','BASINGER','2006-02-15 04:34:33'),
 | 
			
		||||
 (159,'LAURA','BRODY','2006-02-15 04:34:33'),
 | 
			
		||||
 (160,'CHRIS','DEPP','2006-02-15 04:34:33'),
 | 
			
		||||
 (161,'HARVEY','HOPE','2006-02-15 04:34:33'),
 | 
			
		||||
 (162,'OPRAH','KILMER','2006-02-15 04:34:33'),
 | 
			
		||||
 (163,'CHRISTOPHER','WEST','2006-02-15 04:34:33'),
 | 
			
		||||
 (164,'HUMPHREY','WILLIS','2006-02-15 04:34:33'),
 | 
			
		||||
 (165,'AL','GARLAND','2006-02-15 04:34:33'),
 | 
			
		||||
 (166,'NICK','DEGENERES','2006-02-15 04:34:33'),
 | 
			
		||||
 (167,'LAURENCE','BULLOCK','2006-02-15 04:34:33'),
 | 
			
		||||
 (168,'WILL','WILSON','2006-02-15 04:34:33'),
 | 
			
		||||
 (169,'KENNETH','HOFFMAN','2006-02-15 04:34:33'),
 | 
			
		||||
 (170,'MENA','HOPPER','2006-02-15 04:34:33'),
 | 
			
		||||
 (171,'OLYMPIA','PFEIFFER','2006-02-15 04:34:33'),
 | 
			
		||||
 (190,'AUDREY','BAILEY','2006-02-15 04:34:33'),
 | 
			
		||||
 (191,'GREGORY','GOODING','2006-02-15 04:34:33'),
 | 
			
		||||
 (192,'JOHN','SUVARI','2006-02-15 04:34:33'),
 | 
			
		||||
 (193,'BURT','TEMPLE','2006-02-15 04:34:33'),
 | 
			
		||||
 (194,'MERYL','ALLEN','2006-02-15 04:34:33'),
 | 
			
		||||
 (195,'JAYNE','SILVERSTONE','2006-02-15 04:34:33'),
 | 
			
		||||
 (196,'BELA','WALKEN','2006-02-15 04:34:33'),
 | 
			
		||||
 (197,'REESE','WEST','2006-02-15 04:34:33'),
 | 
			
		||||
 (198,'MARY','KEITEL','2006-02-15 04:34:33'),
 | 
			
		||||
 (199,'JULIA','FAWCETT','2006-02-15 04:34:33'),
 | 
			
		||||
 (200,'THORA','TEMPLE','2006-02-15 04:34:33');
 | 
			
		||||
 | 
			
		||||
DROP TRIGGER /*!50030 IF EXISTS */ "sakila"."payment_date";
 | 
			
		||||
 | 
			
		||||
DELIMITER $$
 | 
			
		||||
 | 
			
		||||
CREATE DEFINER = "root"@"localhost" TRIGGER  "sakila"."payment_date" BEFORE INSERT ON "payment" FOR EACH ROW SET NEW.payment_date = NOW() $$
 | 
			
		||||
 | 
			
		||||
DELIMITER ;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
DROP TABLE IF EXISTS "sakila"."sales_by_store";
 | 
			
		||||
DROP VIEW IF EXISTS "sakila"."sales_by_store";
 | 
			
		||||
CREATE ALGORITHM=UNDEFINED DEFINER="root"@"localhost" SQL SECURITY DEFINER VIEW "sakila"."sales_by_store" AS select concat("c"."city",_utf8',',"cy"."country") AS "store",concat("m"."first_name",_utf8' ',"m"."last_name") AS "manager",sum("p"."amount") AS "total_sales" from ((((((("sakila"."payment" "p" join "sakila"."rental" "r" on(("p"."rental_id" = "r"."rental_id"))) join "sakila"."inventory" "i" on(("r"."inventory_id" = "i"."inventory_id"))) join "sakila"."store" "s" on(("i"."store_id" = "s"."store_id"))) join "sakila"."address" "a" on(("s"."address_id" = "a"."address_id"))) join "sakila"."city" "c" on(("a"."city_id" = "c"."city_id"))) join "sakila"."country" "cy" on(("c"."country_id" = "cy"."country_id"))) join "sakila"."staff" "m" on(("s"."manager_staff_id" = "m"."staff_id"))) group by "s"."store_id" order by "cy"."country","c"."city";
 | 
			
		||||
 | 
			
		||||
--
 | 
			
		||||
-- View structure for view `staff_list`
 | 
			
		||||
--
 | 
			
		||||
 | 
			
		||||
CREATE VIEW staff_list 
 | 
			
		||||
AS 
 | 
			
		||||
SELECT s.staff_id AS ID, CONCAT(s.first_name, _utf8' ', s.last_name) AS name, a.address AS address, a.postal_code AS `zip code`, a.phone AS phone,
 | 
			
		||||
	city.city AS city, country.country AS country, s.store_id AS SID 
 | 
			
		||||
FROM staff AS s JOIN address AS a ON s.address_id = a.address_id JOIN city ON a.city_id = city.city_id 
 | 
			
		||||
	JOIN country ON city.country_id = country.country_id;
 | 
			
		||||
 | 
			
		||||
--
 | 
			
		||||
-- View structure for view `actor_info`
 | 
			
		||||
--
 | 
			
		||||
 | 
			
		||||
CREATE DEFINER=CURRENT_USER SQL SECURITY INVOKER VIEW actor_info 
 | 
			
		||||
AS
 | 
			
		||||
SELECT      
 | 
			
		||||
a.actor_id,
 | 
			
		||||
a.first_name,
 | 
			
		||||
a.last_name,
 | 
			
		||||
GROUP_CONCAT(DISTINCT CONCAT(c.name, ': ',
 | 
			
		||||
		(SELECT GROUP_CONCAT(f.title ORDER BY f.title SEPARATOR ', ')
 | 
			
		||||
                    FROM sakila.film f
 | 
			
		||||
                    INNER JOIN sakila.film_category fc
 | 
			
		||||
                      ON f.film_id = fc.film_id
 | 
			
		||||
                    INNER JOIN sakila.film_actor fa
 | 
			
		||||
                      ON f.film_id = fa.film_id
 | 
			
		||||
                    WHERE fc.category_id = c.category_id
 | 
			
		||||
                    AND fa.actor_id = a.actor_id
 | 
			
		||||
                 )
 | 
			
		||||
             )
 | 
			
		||||
             ORDER BY c.name SEPARATOR '; ')
 | 
			
		||||
AS film_info
 | 
			
		||||
FROM sakila.actor a
 | 
			
		||||
LEFT JOIN sakila.film_actor fa
 | 
			
		||||
  ON a.actor_id = fa.actor_id
 | 
			
		||||
LEFT JOIN sakila.film_category fc
 | 
			
		||||
  ON fa.film_id = fc.film_id
 | 
			
		||||
LEFT JOIN sakila.category c
 | 
			
		||||
  ON fc.category_id = c.category_id
 | 
			
		||||
GROUP BY a.actor_id, a.first_name, a.last_name;
 | 
			
		||||
 | 
			
		||||
DELIMITER $$
 | 
			
		||||
 | 
			
		||||
CREATE FUNCTION get_customer_balance(p_customer_id INT, p_effective_date DATETIME) RETURNS DECIMAL(5,2)
 | 
			
		||||
    DETERMINISTIC
 | 
			
		||||
    READS SQL DATA
 | 
			
		||||
BEGIN
 | 
			
		||||
 | 
			
		||||
       #OK, WE NEED TO CALCULATE THE CURRENT BALANCE GIVEN A CUSTOMER_ID AND A DATE
 | 
			
		||||
       #THAT WE WANT THE BALANCE TO BE EFFECTIVE FOR. THE BALANCE IS:
 | 
			
		||||
       #   1) RENTAL FEES FOR ALL PREVIOUS RENTALS
 | 
			
		||||
       #   2) ONE DOLLAR FOR EVERY DAY THE PREVIOUS RENTALS ARE OVERDUE
 | 
			
		||||
       #   3) IF A FILM IS MORE THAN RENTAL_DURATION * 2 OVERDUE, CHARGE THE REPLACEMENT_COST
 | 
			
		||||
       #   4) SUBTRACT ALL PAYMENTS MADE BEFORE THE DATE SPECIFIED
 | 
			
		||||
 | 
			
		||||
  DECLARE v_rentfees DECIMAL(5,2); #FEES PAID TO RENT THE VIDEOS INITIALLY
 | 
			
		||||
  DECLARE v_overfees INTEGER;      #LATE FEES FOR PRIOR RENTALS
 | 
			
		||||
  DECLARE v_payments DECIMAL(5,2); #SUM OF PAYMENTS MADE PREVIOUSLY
 | 
			
		||||
 | 
			
		||||
  SELECT IFNULL(SUM(film.rental_rate),0) INTO v_rentfees
 | 
			
		||||
    FROM film, inventory, rental
 | 
			
		||||
    WHERE film.film_id = inventory.film_id
 | 
			
		||||
      AND inventory.inventory_id = rental.inventory_id
 | 
			
		||||
      AND rental.rental_date <= p_effective_date
 | 
			
		||||
      AND rental.customer_id = p_customer_id;
 | 
			
		||||
 | 
			
		||||
  SELECT IFNULL(SUM(IF((TO_DAYS(rental.return_date) - TO_DAYS(rental.rental_date)) > film.rental_duration,
 | 
			
		||||
        ((TO_DAYS(rental.return_date) - TO_DAYS(rental.rental_date)) - film.rental_duration),0)),0) INTO v_overfees
 | 
			
		||||
    FROM rental, inventory, film
 | 
			
		||||
    WHERE film.film_id = inventory.film_id
 | 
			
		||||
      AND inventory.inventory_id = rental.inventory_id
 | 
			
		||||
      AND rental.rental_date <= p_effective_date
 | 
			
		||||
      AND rental.customer_id = p_customer_id;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  SELECT IFNULL(SUM(payment.amount),0) INTO v_payments
 | 
			
		||||
    FROM payment
 | 
			
		||||
 | 
			
		||||
    WHERE payment.payment_date <= p_effective_date
 | 
			
		||||
    AND payment.customer_id = p_customer_id;
 | 
			
		||||
 | 
			
		||||
  RETURN v_rentfees + v_overfees - v_payments;
 | 
			
		||||
END $$
 | 
			
		||||
 | 
			
		||||
DELIMITER ;
 | 
			
		||||
 | 
			
		||||
DELIMITER $$
 | 
			
		||||
 | 
			
		||||
CREATE FUNCTION inventory_in_stock(p_inventory_id INT) RETURNS BOOLEAN
 | 
			
		||||
READS SQL DATA
 | 
			
		||||
BEGIN
 | 
			
		||||
    DECLARE v_rentals INT;
 | 
			
		||||
    DECLARE v_out     INT;
 | 
			
		||||
 | 
			
		||||
    #AN ITEM IS IN-STOCK IF THERE ARE EITHER NO ROWS IN THE rental TABLE
 | 
			
		||||
    #FOR THE ITEM OR ALL ROWS HAVE return_date POPULATED
 | 
			
		||||
 | 
			
		||||
    SELECT COUNT(*) INTO v_rentals
 | 
			
		||||
    FROM rental
 | 
			
		||||
    WHERE inventory_id = p_inventory_id;
 | 
			
		||||
 | 
			
		||||
    IF v_rentals = 0 THEN
 | 
			
		||||
      RETURN TRUE;
 | 
			
		||||
    END IF;
 | 
			
		||||
 | 
			
		||||
    SELECT COUNT(rental_id) INTO v_out
 | 
			
		||||
    FROM inventory LEFT JOIN rental USING(inventory_id)
 | 
			
		||||
    WHERE inventory.inventory_id = p_inventory_id
 | 
			
		||||
    AND rental.return_date IS NULL;
 | 
			
		||||
 | 
			
		||||
    IF v_out > 0 THEN
 | 
			
		||||
      RETURN FALSE;
 | 
			
		||||
    ELSE
 | 
			
		||||
      RETURN TRUE;
 | 
			
		||||
    END IF;
 | 
			
		||||
END $$
 | 
			
		||||
 | 
			
		||||
DELIMITER ;
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										
											BIN
										
									
								
								3rdparty/scintilla552/scintilla/cocoa/ScintillaTest/en.lproj/InfoPlist.strings
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										609
									
								
								3rdparty/scintilla552/scintilla/cocoa/ScintillaTest/en.lproj/MainMenu.xib
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,609 @@
 | 
			
		||||
<?xml version="1.0" encoding="UTF-8"?>
 | 
			
		||||
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="12120" systemVersion="16E195" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none">
 | 
			
		||||
    <dependencies>
 | 
			
		||||
        <deployment identifier="macosx"/>
 | 
			
		||||
        <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="12120"/>
 | 
			
		||||
        <capability name="box content view" minToolsVersion="7.0"/>
 | 
			
		||||
        <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
 | 
			
		||||
    </dependencies>
 | 
			
		||||
    <objects>
 | 
			
		||||
        <customObject id="-2" userLabel="File's Owner" customClass="NSApplication"/>
 | 
			
		||||
        <customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
 | 
			
		||||
        <customObject id="-3" userLabel="Application" customClass="NSObject"/>
 | 
			
		||||
        <menu title="AMainMenu" systemMenu="main" id="29" userLabel="MainMenu">
 | 
			
		||||
            <items>
 | 
			
		||||
                <menuItem title="NewApplication" id="56">
 | 
			
		||||
                    <menu key="submenu" title="NewApplication" systemMenu="apple" id="57">
 | 
			
		||||
                        <items>
 | 
			
		||||
                            <menuItem title="About NewApplication" id="58">
 | 
			
		||||
                                <modifierMask key="keyEquivalentModifierMask"/>
 | 
			
		||||
                                <connections>
 | 
			
		||||
                                    <action selector="orderFrontStandardAboutPanel:" target="-2" id="142"/>
 | 
			
		||||
                                </connections>
 | 
			
		||||
                            </menuItem>
 | 
			
		||||
                            <menuItem isSeparatorItem="YES" id="236">
 | 
			
		||||
                                <modifierMask key="keyEquivalentModifierMask" command="YES"/>
 | 
			
		||||
                            </menuItem>
 | 
			
		||||
                            <menuItem title="Preferences…" keyEquivalent="," id="129" userLabel="121"/>
 | 
			
		||||
                            <menuItem isSeparatorItem="YES" id="143">
 | 
			
		||||
                                <modifierMask key="keyEquivalentModifierMask" command="YES"/>
 | 
			
		||||
                            </menuItem>
 | 
			
		||||
                            <menuItem title="Services" id="131">
 | 
			
		||||
                                <menu key="submenu" title="Services" systemMenu="services" id="130"/>
 | 
			
		||||
                            </menuItem>
 | 
			
		||||
                            <menuItem isSeparatorItem="YES" id="144">
 | 
			
		||||
                                <modifierMask key="keyEquivalentModifierMask" command="YES"/>
 | 
			
		||||
                            </menuItem>
 | 
			
		||||
                            <menuItem title="Hide NewApplication" keyEquivalent="h" id="134">
 | 
			
		||||
                                <connections>
 | 
			
		||||
                                    <action selector="hide:" target="-1" id="367"/>
 | 
			
		||||
                                </connections>
 | 
			
		||||
                            </menuItem>
 | 
			
		||||
                            <menuItem title="Hide Others" keyEquivalent="h" id="145">
 | 
			
		||||
                                <modifierMask key="keyEquivalentModifierMask" option="YES" command="YES"/>
 | 
			
		||||
                                <connections>
 | 
			
		||||
                                    <action selector="hideOtherApplications:" target="-1" id="368"/>
 | 
			
		||||
                                </connections>
 | 
			
		||||
                            </menuItem>
 | 
			
		||||
                            <menuItem title="Show All" id="150">
 | 
			
		||||
                                <connections>
 | 
			
		||||
                                    <action selector="unhideAllApplications:" target="-1" id="370"/>
 | 
			
		||||
                                </connections>
 | 
			
		||||
                            </menuItem>
 | 
			
		||||
                            <menuItem isSeparatorItem="YES" id="149">
 | 
			
		||||
                                <modifierMask key="keyEquivalentModifierMask" command="YES"/>
 | 
			
		||||
                            </menuItem>
 | 
			
		||||
                            <menuItem title="Quit NewApplication" keyEquivalent="q" id="136" userLabel="1111">
 | 
			
		||||
                                <connections>
 | 
			
		||||
                                    <action selector="terminate:" target="-3" id="449"/>
 | 
			
		||||
                                </connections>
 | 
			
		||||
                            </menuItem>
 | 
			
		||||
                        </items>
 | 
			
		||||
                    </menu>
 | 
			
		||||
                </menuItem>
 | 
			
		||||
                <menuItem title="File" id="83">
 | 
			
		||||
                    <menu key="submenu" title="File" id="81">
 | 
			
		||||
                        <items>
 | 
			
		||||
                            <menuItem title="New" keyEquivalent="n" id="82" userLabel="9">
 | 
			
		||||
                                <connections>
 | 
			
		||||
                                    <action selector="newDocument:" target="-1" id="373"/>
 | 
			
		||||
                                </connections>
 | 
			
		||||
                            </menuItem>
 | 
			
		||||
                            <menuItem title="Open…" keyEquivalent="o" id="72">
 | 
			
		||||
                                <connections>
 | 
			
		||||
                                    <action selector="openDocument:" target="-1" id="374"/>
 | 
			
		||||
                                </connections>
 | 
			
		||||
                            </menuItem>
 | 
			
		||||
                            <menuItem title="Open Recent" id="124">
 | 
			
		||||
                                <menu key="submenu" title="Open Recent" systemMenu="recentDocuments" id="125">
 | 
			
		||||
                                    <items>
 | 
			
		||||
                                        <menuItem title="Clear Menu" id="126">
 | 
			
		||||
                                            <connections>
 | 
			
		||||
                                                <action selector="clearRecentDocuments:" target="-1" id="127"/>
 | 
			
		||||
                                            </connections>
 | 
			
		||||
                                        </menuItem>
 | 
			
		||||
                                    </items>
 | 
			
		||||
                                </menu>
 | 
			
		||||
                            </menuItem>
 | 
			
		||||
                            <menuItem isSeparatorItem="YES" id="79" userLabel="7">
 | 
			
		||||
                                <modifierMask key="keyEquivalentModifierMask" command="YES"/>
 | 
			
		||||
                            </menuItem>
 | 
			
		||||
                            <menuItem title="Close" keyEquivalent="w" id="73" userLabel="1">
 | 
			
		||||
                                <connections>
 | 
			
		||||
                                    <action selector="performClose:" target="-1" id="193"/>
 | 
			
		||||
                                </connections>
 | 
			
		||||
                            </menuItem>
 | 
			
		||||
                            <menuItem title="Save" keyEquivalent="s" id="75" userLabel="3">
 | 
			
		||||
                                <connections>
 | 
			
		||||
                                    <action selector="saveDocument:" target="-1" id="362"/>
 | 
			
		||||
                                </connections>
 | 
			
		||||
                            </menuItem>
 | 
			
		||||
                            <menuItem title="Save As…" keyEquivalent="S" id="80" userLabel="8">
 | 
			
		||||
                                <modifierMask key="keyEquivalentModifierMask" shift="YES" command="YES"/>
 | 
			
		||||
                                <connections>
 | 
			
		||||
                                    <action selector="saveDocumentAs:" target="-1" id="363"/>
 | 
			
		||||
                                </connections>
 | 
			
		||||
                            </menuItem>
 | 
			
		||||
                            <menuItem title="Revert to Saved" id="112" userLabel="10">
 | 
			
		||||
                                <modifierMask key="keyEquivalentModifierMask"/>
 | 
			
		||||
                                <connections>
 | 
			
		||||
                                    <action selector="revertDocumentToSaved:" target="-1" id="364"/>
 | 
			
		||||
                                </connections>
 | 
			
		||||
                            </menuItem>
 | 
			
		||||
                            <menuItem isSeparatorItem="YES" id="74" userLabel="2">
 | 
			
		||||
                                <modifierMask key="keyEquivalentModifierMask" command="YES"/>
 | 
			
		||||
                            </menuItem>
 | 
			
		||||
                            <menuItem title="Page Setup..." keyEquivalent="P" id="77" userLabel="5">
 | 
			
		||||
                                <modifierMask key="keyEquivalentModifierMask" shift="YES" command="YES"/>
 | 
			
		||||
                                <connections>
 | 
			
		||||
                                    <action selector="runPageLayout:" target="-1" id="87"/>
 | 
			
		||||
                                </connections>
 | 
			
		||||
                            </menuItem>
 | 
			
		||||
                            <menuItem title="Print…" keyEquivalent="p" id="78" userLabel="6">
 | 
			
		||||
                                <connections>
 | 
			
		||||
                                    <action selector="print:" target="-1" id="86"/>
 | 
			
		||||
                                </connections>
 | 
			
		||||
                            </menuItem>
 | 
			
		||||
                        </items>
 | 
			
		||||
                    </menu>
 | 
			
		||||
                </menuItem>
 | 
			
		||||
                <menuItem title="Edit" id="217">
 | 
			
		||||
                    <menu key="submenu" title="Edit" id="205">
 | 
			
		||||
                        <items>
 | 
			
		||||
                            <menuItem title="Undo" keyEquivalent="z" id="207">
 | 
			
		||||
                                <connections>
 | 
			
		||||
                                    <action selector="undo:" target="-1" id="223"/>
 | 
			
		||||
                                </connections>
 | 
			
		||||
                            </menuItem>
 | 
			
		||||
                            <menuItem title="Redo" keyEquivalent="Z" id="215">
 | 
			
		||||
                                <modifierMask key="keyEquivalentModifierMask" shift="YES" command="YES"/>
 | 
			
		||||
                                <connections>
 | 
			
		||||
                                    <action selector="redo:" target="-1" id="231"/>
 | 
			
		||||
                                </connections>
 | 
			
		||||
                            </menuItem>
 | 
			
		||||
                            <menuItem isSeparatorItem="YES" id="206">
 | 
			
		||||
                                <modifierMask key="keyEquivalentModifierMask" command="YES"/>
 | 
			
		||||
                            </menuItem>
 | 
			
		||||
                            <menuItem title="Cut" keyEquivalent="x" id="199">
 | 
			
		||||
                                <connections>
 | 
			
		||||
                                    <action selector="cut:" target="-1" id="228"/>
 | 
			
		||||
                                </connections>
 | 
			
		||||
                            </menuItem>
 | 
			
		||||
                            <menuItem title="Copy" keyEquivalent="c" id="197">
 | 
			
		||||
                                <connections>
 | 
			
		||||
                                    <action selector="copy:" target="-1" id="224"/>
 | 
			
		||||
                                </connections>
 | 
			
		||||
                            </menuItem>
 | 
			
		||||
                            <menuItem title="Paste" keyEquivalent="v" id="203">
 | 
			
		||||
                                <connections>
 | 
			
		||||
                                    <action selector="paste:" target="-1" id="226"/>
 | 
			
		||||
                                </connections>
 | 
			
		||||
                            </menuItem>
 | 
			
		||||
                            <menuItem title="Delete" id="202">
 | 
			
		||||
                                <connections>
 | 
			
		||||
                                    <action selector="delete:" target="-1" id="235"/>
 | 
			
		||||
                                </connections>
 | 
			
		||||
                            </menuItem>
 | 
			
		||||
                            <menuItem title="Select All" keyEquivalent="a" id="198">
 | 
			
		||||
                                <connections>
 | 
			
		||||
                                    <action selector="selectAll:" target="-1" id="232"/>
 | 
			
		||||
                                </connections>
 | 
			
		||||
                            </menuItem>
 | 
			
		||||
                            <menuItem isSeparatorItem="YES" id="214">
 | 
			
		||||
                                <modifierMask key="keyEquivalentModifierMask" command="YES"/>
 | 
			
		||||
                            </menuItem>
 | 
			
		||||
                            <menuItem title="Find" id="218">
 | 
			
		||||
                                <menu key="submenu" title="Find" id="220">
 | 
			
		||||
                                    <items>
 | 
			
		||||
                                        <menuItem title="Find…" tag="1" keyEquivalent="f" id="209">
 | 
			
		||||
                                            <connections>
 | 
			
		||||
                                                <action selector="performFindPanelAction:" target="-1" id="241"/>
 | 
			
		||||
                                            </connections>
 | 
			
		||||
                                        </menuItem>
 | 
			
		||||
                                        <menuItem title="Find Next" tag="2" keyEquivalent="g" id="208"/>
 | 
			
		||||
                                        <menuItem title="Find Previous" tag="3" keyEquivalent="G" id="213">
 | 
			
		||||
                                            <modifierMask key="keyEquivalentModifierMask" shift="YES" command="YES"/>
 | 
			
		||||
                                        </menuItem>
 | 
			
		||||
                                        <menuItem title="Use Selection for Find" tag="7" keyEquivalent="e" id="221"/>
 | 
			
		||||
                                        <menuItem title="Jump to Selection" keyEquivalent="j" id="210">
 | 
			
		||||
                                            <connections>
 | 
			
		||||
                                                <action selector="centerSelectionInVisibleArea:" target="-1" id="245"/>
 | 
			
		||||
                                            </connections>
 | 
			
		||||
                                        </menuItem>
 | 
			
		||||
                                    </items>
 | 
			
		||||
                                </menu>
 | 
			
		||||
                            </menuItem>
 | 
			
		||||
                            <menuItem title="Spelling and Grammar" id="216">
 | 
			
		||||
                                <menu key="submenu" title="Spelling and Grammar" id="200">
 | 
			
		||||
                                    <items>
 | 
			
		||||
                                        <menuItem title="Show Spelling…" keyEquivalent=":" id="204">
 | 
			
		||||
                                            <connections>
 | 
			
		||||
                                                <action selector="showGuessPanel:" target="-1" id="230"/>
 | 
			
		||||
                                            </connections>
 | 
			
		||||
                                        </menuItem>
 | 
			
		||||
                                        <menuItem title="Check Spelling" keyEquivalent=";" id="201">
 | 
			
		||||
                                            <connections>
 | 
			
		||||
                                                <action selector="checkSpelling:" target="-1" id="225"/>
 | 
			
		||||
                                            </connections>
 | 
			
		||||
                                        </menuItem>
 | 
			
		||||
                                        <menuItem title="Check Spelling While Typing" id="219">
 | 
			
		||||
                                            <connections>
 | 
			
		||||
                                                <action selector="toggleContinuousSpellChecking:" target="-1" id="222"/>
 | 
			
		||||
                                            </connections>
 | 
			
		||||
                                        </menuItem>
 | 
			
		||||
                                        <menuItem title="Check Grammar With Spelling" id="346">
 | 
			
		||||
                                            <connections>
 | 
			
		||||
                                                <action selector="toggleGrammarChecking:" target="-1" id="347"/>
 | 
			
		||||
                                            </connections>
 | 
			
		||||
                                        </menuItem>
 | 
			
		||||
                                    </items>
 | 
			
		||||
                                </menu>
 | 
			
		||||
                            </menuItem>
 | 
			
		||||
                            <menuItem title="Substitutions" id="348">
 | 
			
		||||
                                <menu key="submenu" title="Substitutions" id="349">
 | 
			
		||||
                                    <items>
 | 
			
		||||
                                        <menuItem title="Smart Copy/Paste" tag="1" keyEquivalent="f" id="350">
 | 
			
		||||
                                            <connections>
 | 
			
		||||
                                                <action selector="toggleSmartInsertDelete:" target="-1" id="355"/>
 | 
			
		||||
                                            </connections>
 | 
			
		||||
                                        </menuItem>
 | 
			
		||||
                                        <menuItem title="Smart Quotes" tag="2" keyEquivalent="g" id="351">
 | 
			
		||||
                                            <connections>
 | 
			
		||||
                                                <action selector="toggleAutomaticQuoteSubstitution:" target="-1" id="356"/>
 | 
			
		||||
                                            </connections>
 | 
			
		||||
                                        </menuItem>
 | 
			
		||||
                                        <menuItem title="Smart Links" tag="3" keyEquivalent="G" id="354">
 | 
			
		||||
                                            <modifierMask key="keyEquivalentModifierMask" shift="YES" command="YES"/>
 | 
			
		||||
                                            <connections>
 | 
			
		||||
                                                <action selector="toggleAutomaticLinkDetection:" target="-1" id="357"/>
 | 
			
		||||
                                            </connections>
 | 
			
		||||
                                        </menuItem>
 | 
			
		||||
                                    </items>
 | 
			
		||||
                                </menu>
 | 
			
		||||
                            </menuItem>
 | 
			
		||||
                            <menuItem title="Speech" id="211">
 | 
			
		||||
                                <menu key="submenu" title="Speech" id="212">
 | 
			
		||||
                                    <items>
 | 
			
		||||
                                        <menuItem title="Start Speaking" id="196">
 | 
			
		||||
                                            <connections>
 | 
			
		||||
                                                <action selector="startSpeaking:" target="-1" id="233"/>
 | 
			
		||||
                                            </connections>
 | 
			
		||||
                                        </menuItem>
 | 
			
		||||
                                        <menuItem title="Stop Speaking" id="195">
 | 
			
		||||
                                            <connections>
 | 
			
		||||
                                                <action selector="stopSpeaking:" target="-1" id="227"/>
 | 
			
		||||
                                            </connections>
 | 
			
		||||
                                        </menuItem>
 | 
			
		||||
                                    </items>
 | 
			
		||||
                                </menu>
 | 
			
		||||
                            </menuItem>
 | 
			
		||||
                        </items>
 | 
			
		||||
                    </menu>
 | 
			
		||||
                </menuItem>
 | 
			
		||||
                <menuItem title="Format" id="375">
 | 
			
		||||
                    <modifierMask key="keyEquivalentModifierMask"/>
 | 
			
		||||
                    <menu key="submenu" title="Format" id="376">
 | 
			
		||||
                        <items>
 | 
			
		||||
                            <menuItem title="Font" id="377">
 | 
			
		||||
                                <modifierMask key="keyEquivalentModifierMask"/>
 | 
			
		||||
                                <menu key="submenu" title="Font" systemMenu="font" id="388">
 | 
			
		||||
                                    <items>
 | 
			
		||||
                                        <menuItem title="Show Fonts" keyEquivalent="t" id="389">
 | 
			
		||||
                                            <connections>
 | 
			
		||||
                                                <action selector="orderFrontFontPanel:" target="420" id="424"/>
 | 
			
		||||
                                            </connections>
 | 
			
		||||
                                        </menuItem>
 | 
			
		||||
                                        <menuItem title="Bold" tag="2" keyEquivalent="b" id="390">
 | 
			
		||||
                                            <connections>
 | 
			
		||||
                                                <action selector="addFontTrait:" target="420" id="421"/>
 | 
			
		||||
                                            </connections>
 | 
			
		||||
                                        </menuItem>
 | 
			
		||||
                                        <menuItem title="Italic" tag="1" keyEquivalent="i" id="391">
 | 
			
		||||
                                            <connections>
 | 
			
		||||
                                                <action selector="addFontTrait:" target="420" id="422"/>
 | 
			
		||||
                                            </connections>
 | 
			
		||||
                                        </menuItem>
 | 
			
		||||
                                        <menuItem title="Underline" keyEquivalent="u" id="392">
 | 
			
		||||
                                            <connections>
 | 
			
		||||
                                                <action selector="underline:" target="-1" id="432"/>
 | 
			
		||||
                                            </connections>
 | 
			
		||||
                                        </menuItem>
 | 
			
		||||
                                        <menuItem isSeparatorItem="YES" id="393"/>
 | 
			
		||||
                                        <menuItem title="Bigger" tag="3" keyEquivalent="+" id="394">
 | 
			
		||||
                                            <connections>
 | 
			
		||||
                                                <action selector="modifyFont:" target="420" id="425"/>
 | 
			
		||||
                                            </connections>
 | 
			
		||||
                                        </menuItem>
 | 
			
		||||
                                        <menuItem title="Smaller" tag="4" keyEquivalent="-" id="395">
 | 
			
		||||
                                            <connections>
 | 
			
		||||
                                                <action selector="modifyFont:" target="420" id="423"/>
 | 
			
		||||
                                            </connections>
 | 
			
		||||
                                        </menuItem>
 | 
			
		||||
                                        <menuItem isSeparatorItem="YES" id="396"/>
 | 
			
		||||
                                        <menuItem title="Kern" id="397">
 | 
			
		||||
                                            <modifierMask key="keyEquivalentModifierMask"/>
 | 
			
		||||
                                            <menu key="submenu" title="Kern" id="415">
 | 
			
		||||
                                                <items>
 | 
			
		||||
                                                    <menuItem title="Use Default" id="416">
 | 
			
		||||
                                                        <modifierMask key="keyEquivalentModifierMask"/>
 | 
			
		||||
                                                        <connections>
 | 
			
		||||
                                                            <action selector="useStandardKerning:" target="-1" id="438"/>
 | 
			
		||||
                                                        </connections>
 | 
			
		||||
                                                    </menuItem>
 | 
			
		||||
                                                    <menuItem title="Use None" id="417">
 | 
			
		||||
                                                        <modifierMask key="keyEquivalentModifierMask"/>
 | 
			
		||||
                                                        <connections>
 | 
			
		||||
                                                            <action selector="turnOffKerning:" target="-1" id="441"/>
 | 
			
		||||
                                                        </connections>
 | 
			
		||||
                                                    </menuItem>
 | 
			
		||||
                                                    <menuItem title="Tighten" id="418">
 | 
			
		||||
                                                        <modifierMask key="keyEquivalentModifierMask"/>
 | 
			
		||||
                                                        <connections>
 | 
			
		||||
                                                            <action selector="tightenKerning:" target="-1" id="431"/>
 | 
			
		||||
                                                        </connections>
 | 
			
		||||
                                                    </menuItem>
 | 
			
		||||
                                                    <menuItem title="Loosen" id="419">
 | 
			
		||||
                                                        <modifierMask key="keyEquivalentModifierMask"/>
 | 
			
		||||
                                                        <connections>
 | 
			
		||||
                                                            <action selector="loosenKerning:" target="-1" id="435"/>
 | 
			
		||||
                                                        </connections>
 | 
			
		||||
                                                    </menuItem>
 | 
			
		||||
                                                </items>
 | 
			
		||||
                                            </menu>
 | 
			
		||||
                                        </menuItem>
 | 
			
		||||
                                        <menuItem title="Ligature" id="398">
 | 
			
		||||
                                            <modifierMask key="keyEquivalentModifierMask"/>
 | 
			
		||||
                                            <menu key="submenu" title="Ligature" id="411">
 | 
			
		||||
                                                <items>
 | 
			
		||||
                                                    <menuItem title="Use Default" id="412">
 | 
			
		||||
                                                        <modifierMask key="keyEquivalentModifierMask"/>
 | 
			
		||||
                                                        <connections>
 | 
			
		||||
                                                            <action selector="useStandardLigatures:" target="-1" id="439"/>
 | 
			
		||||
                                                        </connections>
 | 
			
		||||
                                                    </menuItem>
 | 
			
		||||
                                                    <menuItem title="Use None" id="413">
 | 
			
		||||
                                                        <modifierMask key="keyEquivalentModifierMask"/>
 | 
			
		||||
                                                        <connections>
 | 
			
		||||
                                                            <action selector="turnOffLigatures:" target="-1" id="440"/>
 | 
			
		||||
                                                        </connections>
 | 
			
		||||
                                                    </menuItem>
 | 
			
		||||
                                                    <menuItem title="Use All" id="414">
 | 
			
		||||
                                                        <modifierMask key="keyEquivalentModifierMask"/>
 | 
			
		||||
                                                        <connections>
 | 
			
		||||
                                                            <action selector="useAllLigatures:" target="-1" id="434"/>
 | 
			
		||||
                                                        </connections>
 | 
			
		||||
                                                    </menuItem>
 | 
			
		||||
                                                </items>
 | 
			
		||||
                                            </menu>
 | 
			
		||||
                                        </menuItem>
 | 
			
		||||
                                        <menuItem title="Baseline" id="399">
 | 
			
		||||
                                            <modifierMask key="keyEquivalentModifierMask"/>
 | 
			
		||||
                                            <menu key="submenu" title="Baseline" id="405">
 | 
			
		||||
                                                <items>
 | 
			
		||||
                                                    <menuItem title="Use Default" id="406">
 | 
			
		||||
                                                        <modifierMask key="keyEquivalentModifierMask"/>
 | 
			
		||||
                                                        <connections>
 | 
			
		||||
                                                            <action selector="unscript:" target="-1" id="437"/>
 | 
			
		||||
                                                        </connections>
 | 
			
		||||
                                                    </menuItem>
 | 
			
		||||
                                                    <menuItem title="Superscript" id="407">
 | 
			
		||||
                                                        <modifierMask key="keyEquivalentModifierMask"/>
 | 
			
		||||
                                                        <connections>
 | 
			
		||||
                                                            <action selector="superscript:" target="-1" id="430"/>
 | 
			
		||||
                                                        </connections>
 | 
			
		||||
                                                    </menuItem>
 | 
			
		||||
                                                    <menuItem title="Subscript" id="408">
 | 
			
		||||
                                                        <modifierMask key="keyEquivalentModifierMask"/>
 | 
			
		||||
                                                        <connections>
 | 
			
		||||
                                                            <action selector="subscript:" target="-1" id="429"/>
 | 
			
		||||
                                                        </connections>
 | 
			
		||||
                                                    </menuItem>
 | 
			
		||||
                                                    <menuItem title="Raise" id="409">
 | 
			
		||||
                                                        <modifierMask key="keyEquivalentModifierMask"/>
 | 
			
		||||
                                                        <connections>
 | 
			
		||||
                                                            <action selector="raiseBaseline:" target="-1" id="426"/>
 | 
			
		||||
                                                        </connections>
 | 
			
		||||
                                                    </menuItem>
 | 
			
		||||
                                                    <menuItem title="Lower" id="410">
 | 
			
		||||
                                                        <modifierMask key="keyEquivalentModifierMask"/>
 | 
			
		||||
                                                        <connections>
 | 
			
		||||
                                                            <action selector="lowerBaseline:" target="-1" id="427"/>
 | 
			
		||||
                                                        </connections>
 | 
			
		||||
                                                    </menuItem>
 | 
			
		||||
                                                </items>
 | 
			
		||||
                                            </menu>
 | 
			
		||||
                                        </menuItem>
 | 
			
		||||
                                        <menuItem title="Font Quality" id="469">
 | 
			
		||||
                                            <modifierMask key="keyEquivalentModifierMask"/>
 | 
			
		||||
                                            <menu key="submenu" title="Font Quality" id="470">
 | 
			
		||||
                                                <items>
 | 
			
		||||
                                                    <menuItem title="Default" id="471">
 | 
			
		||||
                                                        <modifierMask key="keyEquivalentModifierMask"/>
 | 
			
		||||
                                                        <connections>
 | 
			
		||||
                                                            <action selector="setFontQuality:" target="450" id="475"/>
 | 
			
		||||
                                                        </connections>
 | 
			
		||||
                                                    </menuItem>
 | 
			
		||||
                                                    <menuItem title="Non-antialiased" tag="1" id="472">
 | 
			
		||||
                                                        <modifierMask key="keyEquivalentModifierMask"/>
 | 
			
		||||
                                                        <connections>
 | 
			
		||||
                                                            <action selector="setFontQuality:" target="450" id="476"/>
 | 
			
		||||
                                                        </connections>
 | 
			
		||||
                                                    </menuItem>
 | 
			
		||||
                                                    <menuItem title="Antialiased" tag="2" id="473">
 | 
			
		||||
                                                        <modifierMask key="keyEquivalentModifierMask"/>
 | 
			
		||||
                                                        <connections>
 | 
			
		||||
                                                            <action selector="setFontQuality:" target="450" id="477"/>
 | 
			
		||||
                                                        </connections>
 | 
			
		||||
                                                    </menuItem>
 | 
			
		||||
                                                    <menuItem title="LCD Optimized" tag="3" id="474">
 | 
			
		||||
                                                        <modifierMask key="keyEquivalentModifierMask"/>
 | 
			
		||||
                                                        <connections>
 | 
			
		||||
                                                            <action selector="setFontQuality:" target="450" id="478"/>
 | 
			
		||||
                                                        </connections>
 | 
			
		||||
                                                    </menuItem>
 | 
			
		||||
                                                </items>
 | 
			
		||||
                                            </menu>
 | 
			
		||||
                                        </menuItem>
 | 
			
		||||
                                        <menuItem isSeparatorItem="YES" id="400"/>
 | 
			
		||||
                                        <menuItem title="Show Colors" keyEquivalent="C" id="401">
 | 
			
		||||
                                            <connections>
 | 
			
		||||
                                                <action selector="orderFrontColorPanel:" target="-1" id="433"/>
 | 
			
		||||
                                            </connections>
 | 
			
		||||
                                        </menuItem>
 | 
			
		||||
                                        <menuItem isSeparatorItem="YES" id="402"/>
 | 
			
		||||
                                        <menuItem title="Copy Style" keyEquivalent="c" id="403">
 | 
			
		||||
                                            <modifierMask key="keyEquivalentModifierMask" option="YES" command="YES"/>
 | 
			
		||||
                                            <connections>
 | 
			
		||||
                                                <action selector="copyFont:" target="-1" id="428"/>
 | 
			
		||||
                                            </connections>
 | 
			
		||||
                                        </menuItem>
 | 
			
		||||
                                        <menuItem title="Paste Style" keyEquivalent="v" id="404">
 | 
			
		||||
                                            <modifierMask key="keyEquivalentModifierMask" option="YES" command="YES"/>
 | 
			
		||||
                                            <connections>
 | 
			
		||||
                                                <action selector="pasteFont:" target="-1" id="436"/>
 | 
			
		||||
                                            </connections>
 | 
			
		||||
                                        </menuItem>
 | 
			
		||||
                                    </items>
 | 
			
		||||
                                </menu>
 | 
			
		||||
                            </menuItem>
 | 
			
		||||
                            <menuItem title="Text" id="378">
 | 
			
		||||
                                <modifierMask key="keyEquivalentModifierMask"/>
 | 
			
		||||
                                <menu key="submenu" title="Text" id="379">
 | 
			
		||||
                                    <items>
 | 
			
		||||
                                        <menuItem title="Align Left" keyEquivalent="{" id="380">
 | 
			
		||||
                                            <connections>
 | 
			
		||||
                                                <action selector="alignLeft:" target="-1" id="442"/>
 | 
			
		||||
                                            </connections>
 | 
			
		||||
                                        </menuItem>
 | 
			
		||||
                                        <menuItem title="Center" keyEquivalent="|" id="381">
 | 
			
		||||
                                            <connections>
 | 
			
		||||
                                                <action selector="alignCenter:" target="-1" id="445"/>
 | 
			
		||||
                                            </connections>
 | 
			
		||||
                                        </menuItem>
 | 
			
		||||
                                        <menuItem title="Justify" id="382">
 | 
			
		||||
                                            <modifierMask key="keyEquivalentModifierMask"/>
 | 
			
		||||
                                            <connections>
 | 
			
		||||
                                                <action selector="alignJustified:" target="-1" id="443"/>
 | 
			
		||||
                                            </connections>
 | 
			
		||||
                                        </menuItem>
 | 
			
		||||
                                        <menuItem title="Align Right" keyEquivalent="}" id="383">
 | 
			
		||||
                                            <connections>
 | 
			
		||||
                                                <action selector="alignRight:" target="-1" id="447"/>
 | 
			
		||||
                                            </connections>
 | 
			
		||||
                                        </menuItem>
 | 
			
		||||
                                        <menuItem isSeparatorItem="YES" id="384"/>
 | 
			
		||||
                                        <menuItem title="Show Ruler" id="385">
 | 
			
		||||
                                            <modifierMask key="keyEquivalentModifierMask"/>
 | 
			
		||||
                                            <connections>
 | 
			
		||||
                                                <action selector="toggleRuler:" target="-1" id="446"/>
 | 
			
		||||
                                            </connections>
 | 
			
		||||
                                        </menuItem>
 | 
			
		||||
                                        <menuItem title="Copy Ruler" keyEquivalent="c" id="386">
 | 
			
		||||
                                            <modifierMask key="keyEquivalentModifierMask" control="YES" command="YES"/>
 | 
			
		||||
                                            <connections>
 | 
			
		||||
                                                <action selector="copyRuler:" target="-1" id="444"/>
 | 
			
		||||
                                            </connections>
 | 
			
		||||
                                        </menuItem>
 | 
			
		||||
                                        <menuItem title="Paste Ruler" keyEquivalent="v" id="387">
 | 
			
		||||
                                            <modifierMask key="keyEquivalentModifierMask" control="YES" command="YES"/>
 | 
			
		||||
                                            <connections>
 | 
			
		||||
                                                <action selector="pasteRuler:" target="-1" id="448"/>
 | 
			
		||||
                                            </connections>
 | 
			
		||||
                                        </menuItem>
 | 
			
		||||
                                    </items>
 | 
			
		||||
                                </menu>
 | 
			
		||||
                            </menuItem>
 | 
			
		||||
                        </items>
 | 
			
		||||
                    </menu>
 | 
			
		||||
                </menuItem>
 | 
			
		||||
                <menuItem title="View" id="295">
 | 
			
		||||
                    <menu key="submenu" title="View" id="296">
 | 
			
		||||
                        <items>
 | 
			
		||||
                            <menuItem title="Show Toolbar" keyEquivalent="t" id="297">
 | 
			
		||||
                                <modifierMask key="keyEquivalentModifierMask" option="YES" command="YES"/>
 | 
			
		||||
                                <connections>
 | 
			
		||||
                                    <action selector="toggleToolbarShown:" target="-1" id="366"/>
 | 
			
		||||
                                </connections>
 | 
			
		||||
                            </menuItem>
 | 
			
		||||
                            <menuItem title="Customize Toolbar…" id="298">
 | 
			
		||||
                                <connections>
 | 
			
		||||
                                    <action selector="runToolbarCustomizationPalette:" target="-1" id="365"/>
 | 
			
		||||
                                </connections>
 | 
			
		||||
                            </menuItem>
 | 
			
		||||
                            <menuItem isSeparatorItem="YES" id="K3d-cY-vZn"/>
 | 
			
		||||
                            <menuItem title="Add or Remove Extra Scintilla" keyEquivalent="d" id="zQU-z1-l5t">
 | 
			
		||||
                                <connections>
 | 
			
		||||
                                    <action selector="addRemoveExtra:" target="450" id="9HG-Le-GbA"/>
 | 
			
		||||
                                </connections>
 | 
			
		||||
                            </menuItem>
 | 
			
		||||
                        </items>
 | 
			
		||||
                    </menu>
 | 
			
		||||
                </menuItem>
 | 
			
		||||
                <menuItem title="Window" id="19">
 | 
			
		||||
                    <menu key="submenu" title="Window" systemMenu="window" id="24">
 | 
			
		||||
                        <items>
 | 
			
		||||
                            <menuItem title="Minimize" keyEquivalent="m" id="23">
 | 
			
		||||
                                <connections>
 | 
			
		||||
                                    <action selector="performMiniaturize:" target="-1" id="37"/>
 | 
			
		||||
                                </connections>
 | 
			
		||||
                            </menuItem>
 | 
			
		||||
                            <menuItem title="Zoom" id="239">
 | 
			
		||||
                                <connections>
 | 
			
		||||
                                    <action selector="performZoom:" target="-1" id="240"/>
 | 
			
		||||
                                </connections>
 | 
			
		||||
                            </menuItem>
 | 
			
		||||
                            <menuItem isSeparatorItem="YES" id="92">
 | 
			
		||||
                                <modifierMask key="keyEquivalentModifierMask" command="YES"/>
 | 
			
		||||
                            </menuItem>
 | 
			
		||||
                            <menuItem title="Bring All to Front" id="5">
 | 
			
		||||
                                <connections>
 | 
			
		||||
                                    <action selector="arrangeInFront:" target="-1" id="39"/>
 | 
			
		||||
                                </connections>
 | 
			
		||||
                            </menuItem>
 | 
			
		||||
                        </items>
 | 
			
		||||
                    </menu>
 | 
			
		||||
                </menuItem>
 | 
			
		||||
                <menuItem title="Help" id="103" userLabel="1">
 | 
			
		||||
                    <menu key="submenu" title="Help" id="106" userLabel="2">
 | 
			
		||||
                        <items>
 | 
			
		||||
                            <menuItem title="NewApplication Help" keyEquivalent="?" id="111">
 | 
			
		||||
                                <connections>
 | 
			
		||||
                                    <action selector="showHelp:" target="-1" id="360"/>
 | 
			
		||||
                                </connections>
 | 
			
		||||
                            </menuItem>
 | 
			
		||||
                        </items>
 | 
			
		||||
                    </menu>
 | 
			
		||||
                </menuItem>
 | 
			
		||||
            </items>
 | 
			
		||||
        </menu>
 | 
			
		||||
        <window title="Window" allowsToolTipsWhenApplicationIsInactive="NO" autorecalculatesKeyViewLoop="NO" releasedWhenClosed="NO" animationBehavior="default" id="371">
 | 
			
		||||
            <windowStyleMask key="styleMask" titled="YES" closable="YES" miniaturizable="YES" resizable="YES"/>
 | 
			
		||||
            <windowPositionMask key="initialPositionMask" leftStrut="YES" bottomStrut="YES"/>
 | 
			
		||||
            <rect key="contentRect" x="335" y="58" width="982" height="692"/>
 | 
			
		||||
            <rect key="screenRect" x="0.0" y="0.0" width="1440" height="878"/>
 | 
			
		||||
            <view key="contentView" id="372">
 | 
			
		||||
                <rect key="frame" x="0.0" y="0.0" width="982" height="692"/>
 | 
			
		||||
                <autoresizingMask key="autoresizingMask" flexibleMinX="YES" widthSizable="YES" flexibleMaxX="YES" flexibleMinY="YES" heightSizable="YES" flexibleMaxY="YES"/>
 | 
			
		||||
                <subviews>
 | 
			
		||||
                    <box autoresizesSubviews="NO" borderType="line" title="Scintilla Editor" id="451">
 | 
			
		||||
                        <rect key="frame" x="17" y="16" width="844" height="606"/>
 | 
			
		||||
                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
 | 
			
		||||
                        <view key="contentView" id="e8h-ir-tqU">
 | 
			
		||||
                            <rect key="frame" x="1" y="1" width="842" height="590"/>
 | 
			
		||||
                            <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
 | 
			
		||||
                        </view>
 | 
			
		||||
                    </box>
 | 
			
		||||
                    <button verticalHuggingPriority="750" id="452">
 | 
			
		||||
                        <rect key="frame" x="872" y="12" width="96" height="32"/>
 | 
			
		||||
                        <autoresizingMask key="autoresizingMask" flexibleMinX="YES" flexibleMaxY="YES"/>
 | 
			
		||||
                        <buttonCell key="cell" type="push" title="Quit" bezelStyle="rounded" alignment="center" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="453">
 | 
			
		||||
                            <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
 | 
			
		||||
                            <font key="font" metaFont="system"/>
 | 
			
		||||
                        </buttonCell>
 | 
			
		||||
                        <connections>
 | 
			
		||||
                            <action selector="terminate:" target="-3" id="455"/>
 | 
			
		||||
                        </connections>
 | 
			
		||||
                    </button>
 | 
			
		||||
                    <searchField wantsLayer="YES" verticalHuggingPriority="750" allowsCharacterPickerTouchBarItem="NO" id="466">
 | 
			
		||||
                        <rect key="frame" x="20" y="630" width="287" height="22"/>
 | 
			
		||||
                        <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMinY="YES"/>
 | 
			
		||||
                        <searchFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" borderStyle="bezel" bezelStyle="round" id="467">
 | 
			
		||||
                            <font key="font" metaFont="system"/>
 | 
			
		||||
                            <color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
 | 
			
		||||
                            <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
 | 
			
		||||
                        </searchFieldCell>
 | 
			
		||||
                        <connections>
 | 
			
		||||
                            <action selector="searchText:" target="450" id="468"/>
 | 
			
		||||
                        </connections>
 | 
			
		||||
                    </searchField>
 | 
			
		||||
                </subviews>
 | 
			
		||||
            </view>
 | 
			
		||||
        </window>
 | 
			
		||||
        <customObject id="420" customClass="NSFontManager"/>
 | 
			
		||||
        <customObject id="450" customClass="AppController">
 | 
			
		||||
            <connections>
 | 
			
		||||
                <outlet property="mEditHost" destination="451" id="454"/>
 | 
			
		||||
            </connections>
 | 
			
		||||
        </customObject>
 | 
			
		||||
    </objects>
 | 
			
		||||
</document>
 | 
			
		||||
							
								
								
									
										15
									
								
								3rdparty/scintilla552/scintilla/cocoa/ScintillaTest/main.m
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,15 @@
 | 
			
		||||
/**
 | 
			
		||||
 * main.m
 | 
			
		||||
 * ScintillaTest
 | 
			
		||||
 *
 | 
			
		||||
 * Created by Mike Lischke on 02.04.09.
 | 
			
		||||
 * Copyright Sun Microsystems, Inc 2009. All rights reserved.
 | 
			
		||||
 * This file is dual licensed under LGPL v2.1 and the Scintilla license (http://www.scintilla.org/License.txt).
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#import <Cocoa/Cocoa.h>
 | 
			
		||||
 | 
			
		||||
int main(int argc, char *argv[])
 | 
			
		||||
{
 | 
			
		||||
    return NSApplicationMain(argc,  (const char **) argv);
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										168
									
								
								3rdparty/scintilla552/scintilla/cocoa/ScintillaView.h
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,168 @@
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Declaration of the native Cocoa View that serves as container for the scintilla parts.
 | 
			
		||||
 * @file ScintillaView.h
 | 
			
		||||
 *
 | 
			
		||||
 * Created by Mike Lischke.
 | 
			
		||||
 *
 | 
			
		||||
 * Copyright 2011, 2013, Oracle and/or its affiliates. All rights reserved.
 | 
			
		||||
 * Copyright 2009, 2011 Sun Microsystems, Inc. All rights reserved.
 | 
			
		||||
 * This file is dual licensed under LGPL v2.1 and the Scintilla license (http://www.scintilla.org/License.txt).
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#import <Cocoa/Cocoa.h>
 | 
			
		||||
 | 
			
		||||
#import "Scintilla.h"
 | 
			
		||||
 | 
			
		||||
#import "InfoBarCommunicator.h"
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Scintilla sends these two messages to the notify handler. Please refer
 | 
			
		||||
 * to the Windows API doc for details about the message format.
 | 
			
		||||
 */
 | 
			
		||||
#define WM_COMMAND 1001
 | 
			
		||||
#define WM_NOTIFY 1002
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * On the Mac, there is no WM_COMMAND or WM_NOTIFY message that can be sent
 | 
			
		||||
 * back to the parent. Therefore, there must be a callback handler that acts
 | 
			
		||||
 * like a Windows WndProc, where Scintilla can send notifications to. Use
 | 
			
		||||
 * ScintillaView registerNotifyCallback() to register such a handler.
 | 
			
		||||
 * Message format is:
 | 
			
		||||
 * <br>
 | 
			
		||||
 * WM_COMMAND: HIWORD (wParam) = notification code, LOWORD (wParam) = control ID, lParam = ScintillaCocoa*
 | 
			
		||||
 * <br>
 | 
			
		||||
 * WM_NOTIFY: wParam = control ID, lParam = ptr to SCNotification structure, with hwndFrom set to ScintillaCocoa*
 | 
			
		||||
 */
 | 
			
		||||
typedef void(*SciNotifyFunc)(intptr_t windowid, unsigned int iMessage, uintptr_t wParam, uintptr_t lParam);
 | 
			
		||||
 | 
			
		||||
extern NSString *const SCIUpdateUINotification;
 | 
			
		||||
 | 
			
		||||
@protocol ScintillaNotificationProtocol
 | 
			
		||||
- (void) notification: (SCNotification *) notification;
 | 
			
		||||
@end
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * SCIScrollView provides pre-macOS 10.14 tiling behavior.
 | 
			
		||||
 */
 | 
			
		||||
@interface SCIScrollView : NSScrollView;
 | 
			
		||||
 | 
			
		||||
@end
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * SCIMarginView draws line numbers and other margins next to the text view.
 | 
			
		||||
 */
 | 
			
		||||
@interface SCIMarginView : NSRulerView;
 | 
			
		||||
 | 
			
		||||
@end
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * SCIContentView is the Cocoa interface to the Scintilla backend. It handles text input and
 | 
			
		||||
 * provides a canvas for painting the output.
 | 
			
		||||
 */
 | 
			
		||||
@interface SCIContentView : NSView <
 | 
			
		||||
	NSTextInputClient,
 | 
			
		||||
	NSUserInterfaceValidations,
 | 
			
		||||
	NSDraggingSource,
 | 
			
		||||
	NSDraggingDestination,
 | 
			
		||||
	NSAccessibilityStaticText>;
 | 
			
		||||
 | 
			
		||||
- (void) setCursor: (int) cursor; // Needed by ScintillaCocoa
 | 
			
		||||
 | 
			
		||||
@end
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * ScintillaView is the class instantiated by client code.
 | 
			
		||||
 * It contains an NSScrollView which contains a SCIMarginView and a SCIContentView.
 | 
			
		||||
 * It is responsible for providing an API and communicating to a delegate.
 | 
			
		||||
 */
 | 
			
		||||
@interface ScintillaView : NSView <InfoBarCommunicator, ScintillaNotificationProtocol>;
 | 
			
		||||
 | 
			
		||||
@property(nonatomic, unsafe_unretained) id<ScintillaNotificationProtocol> delegate;
 | 
			
		||||
@property(nonatomic, readonly) NSScrollView *scrollView;
 | 
			
		||||
 | 
			
		||||
+ (Class) contentViewClass;
 | 
			
		||||
 | 
			
		||||
- (void) notify: (NotificationType) type message: (NSString *) message location: (NSPoint) location
 | 
			
		||||
	  value: (float) value;
 | 
			
		||||
- (void) setCallback: (id <InfoBarCommunicator>) callback;
 | 
			
		||||
 | 
			
		||||
- (void) suspendDrawing: (BOOL) suspend;
 | 
			
		||||
- (void) notification: (SCNotification *) notification;
 | 
			
		||||
 | 
			
		||||
- (void) updateIndicatorIME;
 | 
			
		||||
 | 
			
		||||
// Scroller handling
 | 
			
		||||
- (void) setMarginWidth: (int) width;
 | 
			
		||||
- (SCIContentView *) content;
 | 
			
		||||
- (void) updateMarginCursors;
 | 
			
		||||
 | 
			
		||||
// NSTextView compatibility layer.
 | 
			
		||||
- (NSString *) string;
 | 
			
		||||
- (void) setString: (NSString *) aString;
 | 
			
		||||
- (void) insertText: (id) aString;
 | 
			
		||||
- (void) setEditable: (BOOL) editable;
 | 
			
		||||
- (BOOL) isEditable;
 | 
			
		||||
- (NSRange) selectedRange;
 | 
			
		||||
- (NSRange) selectedRangePositions;
 | 
			
		||||
 | 
			
		||||
- (NSString *) selectedString;
 | 
			
		||||
 | 
			
		||||
- (void) deleteRange: (NSRange) range;
 | 
			
		||||
 | 
			
		||||
- (void) setFontName: (NSString *) font
 | 
			
		||||
		size: (int) size
 | 
			
		||||
		bold: (BOOL) bold
 | 
			
		||||
	      italic: (BOOL) italic;
 | 
			
		||||
 | 
			
		||||
// Native call through to the backend.
 | 
			
		||||
+ (sptr_t) directCall: (ScintillaView *) sender message: (unsigned int) message wParam: (uptr_t) wParam
 | 
			
		||||
	       lParam: (sptr_t) lParam;
 | 
			
		||||
- (sptr_t) message: (unsigned int) message wParam: (uptr_t) wParam lParam: (sptr_t) lParam;
 | 
			
		||||
- (sptr_t) message: (unsigned int) message wParam: (uptr_t) wParam;
 | 
			
		||||
- (sptr_t) message: (unsigned int) message;
 | 
			
		||||
 | 
			
		||||
// Back end properties getters and setters.
 | 
			
		||||
- (void) setGeneralProperty: (int) property parameter: (long) parameter value: (long) value;
 | 
			
		||||
- (void) setGeneralProperty: (int) property value: (long) value;
 | 
			
		||||
 | 
			
		||||
- (long) getGeneralProperty: (int) property;
 | 
			
		||||
- (long) getGeneralProperty: (int) property parameter: (long) parameter;
 | 
			
		||||
- (long) getGeneralProperty: (int) property parameter: (long) parameter extra: (long) extra;
 | 
			
		||||
- (long) getGeneralProperty: (int) property ref: (const void *) ref;
 | 
			
		||||
- (void) setColorProperty: (int) property parameter: (long) parameter value: (NSColor *) value;
 | 
			
		||||
- (void) setColorProperty: (int) property parameter: (long) parameter fromHTML: (NSString *) fromHTML;
 | 
			
		||||
- (NSColor *) getColorProperty: (int) property parameter: (long) parameter;
 | 
			
		||||
- (void) setReferenceProperty: (int) property parameter: (long) parameter value: (const void *) value;
 | 
			
		||||
- (const void *) getReferenceProperty: (int) property parameter: (long) parameter;
 | 
			
		||||
- (void) setStringProperty: (int) property parameter: (long) parameter value: (NSString *) value;
 | 
			
		||||
- (NSString *) getStringProperty: (int) property parameter: (long) parameter;
 | 
			
		||||
- (void) setLexerProperty: (NSString *) name value: (NSString *) value;
 | 
			
		||||
- (NSString *) getLexerProperty: (NSString *) name;
 | 
			
		||||
 | 
			
		||||
// The delegate property should be used instead of registerNotifyCallback which is deprecated.
 | 
			
		||||
- (void) registerNotifyCallback: (intptr_t) windowid value: (SciNotifyFunc) callback __attribute__ ( (deprecated)) ;
 | 
			
		||||
 | 
			
		||||
- (void) setInfoBar: (NSView <InfoBarCommunicator> *) aView top: (BOOL) top;
 | 
			
		||||
- (void) setStatusText: (NSString *) text;
 | 
			
		||||
 | 
			
		||||
- (BOOL) findAndHighlightText: (NSString *) searchText
 | 
			
		||||
		    matchCase: (BOOL) matchCase
 | 
			
		||||
		    wholeWord: (BOOL) wholeWord
 | 
			
		||||
		     scrollTo: (BOOL) scrollTo
 | 
			
		||||
			 wrap: (BOOL) wrap;
 | 
			
		||||
 | 
			
		||||
- (BOOL) findAndHighlightText: (NSString *) searchText
 | 
			
		||||
		    matchCase: (BOOL) matchCase
 | 
			
		||||
		    wholeWord: (BOOL) wholeWord
 | 
			
		||||
		     scrollTo: (BOOL) scrollTo
 | 
			
		||||
			 wrap: (BOOL) wrap
 | 
			
		||||
		    backwards: (BOOL) backwards;
 | 
			
		||||
 | 
			
		||||
- (int) findAndReplaceText: (NSString *) searchText
 | 
			
		||||
		    byText: (NSString *) newText
 | 
			
		||||
		 matchCase: (BOOL) matchCase
 | 
			
		||||
		 wholeWord: (BOOL) wholeWord
 | 
			
		||||
		     doAll: (BOOL) doAll;
 | 
			
		||||
 | 
			
		||||
@end
 | 
			
		||||
							
								
								
									
										2246
									
								
								3rdparty/scintilla552/scintilla/cocoa/ScintillaView.mm
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										66
									
								
								3rdparty/scintilla552/scintilla/cocoa/checkbuildosx.sh
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,66 @@
 | 
			
		||||
# Script to build Scintilla for macOS with most supported build files.
 | 
			
		||||
# Current directory should be scintilla/cocoa before running.
 | 
			
		||||
 | 
			
		||||
cd ../..
 | 
			
		||||
 | 
			
		||||
# ************************************************************
 | 
			
		||||
# Target 1: Unit tests
 | 
			
		||||
 | 
			
		||||
echo Unit tests
 | 
			
		||||
 | 
			
		||||
cd scintilla/test/unit
 | 
			
		||||
make clean
 | 
			
		||||
make test
 | 
			
		||||
cd ../../..
 | 
			
		||||
 | 
			
		||||
# ************************************************************
 | 
			
		||||
# Target 2: build framework and test app with Xcode targeting macOS 10.n with n from 9 to 5
 | 
			
		||||
# Only SDK versions that are installed will be built
 | 
			
		||||
# Clean both then build both -- if perform clean in ScintillaTest, also cleans ScintillaFramework
 | 
			
		||||
# which can cause double build
 | 
			
		||||
 | 
			
		||||
echo Building Cocoa-native ScintillaFramework and ScintillaTest
 | 
			
		||||
for sdk in macosx10.15 macosx10.14
 | 
			
		||||
do
 | 
			
		||||
    xcodebuild -showsdks | grep $sdk
 | 
			
		||||
    if [ "$(xcodebuild -showsdks | grep $sdk)" != "" ]
 | 
			
		||||
    then
 | 
			
		||||
        echo Building with $sdk
 | 
			
		||||
        cd scintilla/cocoa/ScintillaFramework
 | 
			
		||||
        xcodebuild clean
 | 
			
		||||
        cd ../ScintillaTest
 | 
			
		||||
        xcodebuild clean
 | 
			
		||||
        cd ../ScintillaFramework
 | 
			
		||||
        xcodebuild -sdk $sdk
 | 
			
		||||
        cd ../ScintillaTest
 | 
			
		||||
        xcodebuild -sdk $sdk
 | 
			
		||||
        cd ../../..
 | 
			
		||||
    else
 | 
			
		||||
        echo Warning $sdk not available
 | 
			
		||||
    fi
 | 
			
		||||
done
 | 
			
		||||
 | 
			
		||||
# ************************************************************
 | 
			
		||||
# Target 3: Qt builds
 | 
			
		||||
# Requires Qt development libraries and qmake to be installed
 | 
			
		||||
 | 
			
		||||
echo Building Qt and PySide
 | 
			
		||||
 | 
			
		||||
cd scintilla/qt
 | 
			
		||||
cd ScintillaEditBase
 | 
			
		||||
qmake -spec macx-xcode
 | 
			
		||||
xcodebuild clean
 | 
			
		||||
xcodebuild
 | 
			
		||||
cd ..
 | 
			
		||||
 | 
			
		||||
cd ScintillaEdit
 | 
			
		||||
python3 WidgetGen.py
 | 
			
		||||
qmake -spec macx-xcode
 | 
			
		||||
xcodebuild clean
 | 
			
		||||
xcodebuild
 | 
			
		||||
cd ..
 | 
			
		||||
 | 
			
		||||
cd ScintillaEditPy
 | 
			
		||||
python2 sepbuild.py
 | 
			
		||||
cd ..
 | 
			
		||||
cd ../..
 | 
			
		||||
							
								
								
									
										
											BIN
										
									
								
								3rdparty/scintilla552/scintilla/cocoa/res/info_bar_bg.png
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 1.2 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								3rdparty/scintilla552/scintilla/cocoa/res/info_bar_bg@2x.png
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 1.3 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								3rdparty/scintilla552/scintilla/cocoa/res/mac_cursor_busy.png
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 5.2 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								3rdparty/scintilla552/scintilla/cocoa/res/mac_cursor_busy@2x.png
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 8.7 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								3rdparty/scintilla552/scintilla/cocoa/res/mac_cursor_flipped.png
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 4.4 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								3rdparty/scintilla552/scintilla/cocoa/res/mac_cursor_flipped@2x.png
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 5.6 KiB  | 
							
								
								
									
										93
									
								
								3rdparty/scintilla552/scintilla/cppcheck.suppress
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,93 @@
 | 
			
		||||
// File to suppress cppcheck warnings for files that will not be fixed.
 | 
			
		||||
// Does not suppress warnings where an additional occurrence of the warning may be of interest.
 | 
			
		||||
// Configured for cppcheck 2.11
 | 
			
		||||
 | 
			
		||||
// Coding style is to use assignments in constructor when there are many
 | 
			
		||||
// members to initialize or the initialization is complex or has comments.
 | 
			
		||||
useInitializationList
 | 
			
		||||
 | 
			
		||||
// These may be interesting but its not clear without examining each instance closely
 | 
			
		||||
// Would have to ensure that any_of/all_of has same early/late exits as current code and
 | 
			
		||||
// produces same result on empty collections
 | 
			
		||||
useStlAlgorithm
 | 
			
		||||
 | 
			
		||||
// Written with variable for consistency
 | 
			
		||||
knownArgument:scintilla/src/SparseVector.h
 | 
			
		||||
 | 
			
		||||
// cppcheck 2.11 can't find system headers on Win32.
 | 
			
		||||
missingIncludeSystem
 | 
			
		||||
 | 
			
		||||
// cppcheck 2.11 limits checking of complex functions unless --check-level=exhaustive
 | 
			
		||||
checkLevelNormal:scintilla/src/Editor.cxx
 | 
			
		||||
 | 
			
		||||
// The cast converts from 'unsigned char ' to 'char' so isn't unused.
 | 
			
		||||
// Redundant code: Found unused cast of expression 'leadByte'
 | 
			
		||||
constStatement:scintilla/src/Document.cxx
 | 
			
		||||
 | 
			
		||||
// ILexer5* is not pointing at logically const
 | 
			
		||||
constParameterPointer:scintilla/src/Document.cxx
 | 
			
		||||
 | 
			
		||||
// Some non-explicit constructors are used for conversions or are private to lexers
 | 
			
		||||
noExplicitConstructor
 | 
			
		||||
 | 
			
		||||
// RangesCopy is deliberately returning a copy.
 | 
			
		||||
// The copy is always mutated so returning a refererence just enables lifetime problems.
 | 
			
		||||
returnByReference:scintilla/src/Selection.h
 | 
			
		||||
 | 
			
		||||
// MarginView access to all bits is safe and is better defined in later versions of C++
 | 
			
		||||
shiftTooManyBitsSigned:scintilla/src/MarginView.cxx
 | 
			
		||||
 | 
			
		||||
// DLL entry points are unused inside Scintilla
 | 
			
		||||
unusedFunction:scintilla/win32/ScintillaDLL.cxx
 | 
			
		||||
 | 
			
		||||
// ScintillaDocument is providing an API and there are no consumers of the API inside Scintilla
 | 
			
		||||
unusedFunction:scintilla/qt/ScintillaEdit/ScintillaDocument.cpp
 | 
			
		||||
 | 
			
		||||
// Doesn't understand changing dropWentOutside in Editor
 | 
			
		||||
knownConditionTrueFalse:scintilla/win32/ScintillaWin.cxx
 | 
			
		||||
 | 
			
		||||
// GetData is implementing interface so shouldn't add const
 | 
			
		||||
constParameterPointer:scintilla/win32/ScintillaWin.cxx
 | 
			
		||||
 | 
			
		||||
// Doesn't handle intptr_t (long long) being signed
 | 
			
		||||
knownConditionTrueFalse:scintilla/src/Editor.cxx
 | 
			
		||||
knownConditionTrueFalse:scintilla/src/EditView.cxx
 | 
			
		||||
 | 
			
		||||
// cppcheck seems to believe that unique_ptr<T *[]>::get returns void* instead of T**
 | 
			
		||||
arithOperationsOnVoidPointer:scintilla/src/PerLine.cxx
 | 
			
		||||
arithOperationsOnVoidPointer:scintilla/src/PositionCache.cxx
 | 
			
		||||
 | 
			
		||||
// G_DEFINE_TYPE is too complex to pass to cppcheck
 | 
			
		||||
unknownMacro:scintilla/gtk/PlatGTK.cxx
 | 
			
		||||
 | 
			
		||||
// maskSmooth set depending on preprocessor allowing Wayland definition
 | 
			
		||||
badBitmaskCheck:scintilla/gtk/ScintillaGTK.cxx
 | 
			
		||||
 | 
			
		||||
// Changing events to const pointers changes signature and would require casts when hooking up
 | 
			
		||||
constParameterPointer:scintilla/gtk/ScintillaGTK.cxx
 | 
			
		||||
constParameterCallback:scintilla/gtk/ScintillaGTK.cxx
 | 
			
		||||
 | 
			
		||||
// Difficult to test accessibility so don't change
 | 
			
		||||
constParameterPointer:scintilla/gtk/ScintillaGTKAccessible.cxx
 | 
			
		||||
constVariableReference:scintilla/gtk/ScintillaGTKAccessible.cxx
 | 
			
		||||
constVariablePointer:scintilla/gtk/ScintillaGTKAccessible.cxx
 | 
			
		||||
 | 
			
		||||
// moc_ files show #error as they are not built with standard context
 | 
			
		||||
preprocessorErrorDirective:scintilla/qt/*.cpp
 | 
			
		||||
 | 
			
		||||
// Doesn't understand Qt slots macro
 | 
			
		||||
unknownMacro:scintilla/qt/ScintillaEditBase/*.h
 | 
			
		||||
 | 
			
		||||
// The performance cost of by-value passing is often small and using a reference decreases
 | 
			
		||||
// code legibility.
 | 
			
		||||
passedByValue
 | 
			
		||||
 | 
			
		||||
// Suppress everything in catch.hpp as won't be changing
 | 
			
		||||
*:scintilla/test/unit/catch.hpp
 | 
			
		||||
 | 
			
		||||
// Checks for moves move to variables that are not read but the moved from is checked
 | 
			
		||||
unreadVariable:scintilla/test/unit/*.cxx
 | 
			
		||||
accessMoved:scintilla/test/unit/*.cxx
 | 
			
		||||
 | 
			
		||||
// cppcheck fails REQUIRE from Catch
 | 
			
		||||
comparisonOfFuncReturningBoolError:scintilla/test/unit/*.cxx
 | 
			
		||||
							
								
								
									
										1
									
								
								3rdparty/scintilla552/scintilla/delbin.bat
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1 @@
 | 
			
		||||
@del /S /Q *.a *.aps *.bsc *.dll *.dsw *.exe *.idb *.ilc *.ild *.ilf *.ilk *.ils *.lib *.map *.ncb *.obj *.o *.opt *.ipdb *.pdb *.plg *.res *.sbr *.tds *.exp *.tlog *.lastbuildstate >NUL:
 | 
			
		||||
							
								
								
									
										30
									
								
								3rdparty/scintilla552/scintilla/doc/AddSource.txt
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,30 @@
 | 
			
		||||
Some of the build files adapt to adding and removing source code files but most
 | 
			
		||||
must be modified by hand. Here is a list of directories and the build files that
 | 
			
		||||
must be modified or possibly need to be modified.
 | 
			
		||||
The Cocoa project.pbxproj file is complex and should be modified with Xcode.
 | 
			
		||||
The other build files can be edited manually.
 | 
			
		||||
 | 
			
		||||
src:
 | 
			
		||||
	cocoa/ScintillaFramework/ScintillaFramework.xcodeproj/project.pbxproj
 | 
			
		||||
	gtk/makefile
 | 
			
		||||
	qt/ScintillaEdit/ScintillaEdit.pro
 | 
			
		||||
	qt/ScintillaEditBase/ScintillaEditBase.pro
 | 
			
		||||
	win32/makefile
 | 
			
		||||
	win32/scintilla.mak
 | 
			
		||||
	-- possibly:
 | 
			
		||||
	test/unit/makefile
 | 
			
		||||
	test/unit/test.mak
 | 
			
		||||
 | 
			
		||||
cocoa:
 | 
			
		||||
	cocoa/ScintillaFramework/ScintillaFramework.xcodeproj/project.pbxproj
 | 
			
		||||
 | 
			
		||||
gtk:
 | 
			
		||||
	gtk/makefile
 | 
			
		||||
 | 
			
		||||
qt:
 | 
			
		||||
	qt/ScintillaEdit/ScintillaEdit.pro
 | 
			
		||||
	qt/ScintillaEditBase/ScintillaEditBase.pro
 | 
			
		||||
 | 
			
		||||
win32:
 | 
			
		||||
	win32/makefile
 | 
			
		||||
	win32/scintilla.mak
 | 
			
		||||
							
								
								
									
										
											BIN
										
									
								
								3rdparty/scintilla552/scintilla/doc/ChangeHistory.png
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 30 KiB  | 
							
								
								
									
										246
									
								
								3rdparty/scintilla552/scintilla/doc/Design.html
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,246 @@
 | 
			
		||||
<?xml version="1.0"?>
 | 
			
		||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 | 
			
		||||
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 | 
			
		||||
<html xmlns="http://www.w3.org/1999/xhtml">
 | 
			
		||||
  <head>
 | 
			
		||||
    <meta name="generator" content="HTML Tidy, see www.w3.org" />
 | 
			
		||||
    <meta name="generator" content="SciTE" />
 | 
			
		||||
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
 | 
			
		||||
    <meta name="viewport" content="width=device-width, initial-scale=1" />
 | 
			
		||||
    <title>
 | 
			
		||||
      Scintilla and SciTE
 | 
			
		||||
    </title>
 | 
			
		||||
  </head>
 | 
			
		||||
  <body bgcolor="#FFFFFF" text="#000000">
 | 
			
		||||
    <table bgcolor="#000000" width="100%" cellspacing="0" cellpadding="0" border="0">
 | 
			
		||||
      <tr>
 | 
			
		||||
        <td>
 | 
			
		||||
          <img src="SciTEIco.png" border="3" height="64" width="64" alt="Scintilla icon" />
 | 
			
		||||
        </td>
 | 
			
		||||
        <td>
 | 
			
		||||
          <a href="index.html" style="color:white;text-decoration:none"><font size="5">Scintilla
 | 
			
		||||
          Component Design</font></a>
 | 
			
		||||
        </td>
 | 
			
		||||
      </tr>
 | 
			
		||||
    </table>
 | 
			
		||||
    <h2>
 | 
			
		||||
       Top level structure
 | 
			
		||||
    </h2>
 | 
			
		||||
    <p>
 | 
			
		||||
       Scintilla consists of three major layers of C++ code
 | 
			
		||||
    </p>
 | 
			
		||||
    <ul>
 | 
			
		||||
      <li>
 | 
			
		||||
        Portability Library
 | 
			
		||||
      </li>
 | 
			
		||||
      <li>
 | 
			
		||||
        Core Code
 | 
			
		||||
      </li>
 | 
			
		||||
      <li>
 | 
			
		||||
        Platform Events and API
 | 
			
		||||
      </li>
 | 
			
		||||
    </ul>
 | 
			
		||||
    <p>
 | 
			
		||||
       The primary purpose of this structure is to separate the platform dependent code from the
 | 
			
		||||
      platform independent core code. This makes it easier to port Scintilla to a new platform and
 | 
			
		||||
      ensures that most readers of the code do not have to deal with platform details. To minimise
 | 
			
		||||
      portability problems and avoid code bloat, a conservative subset of C++ is used in Scintilla
 | 
			
		||||
      with no exception handling, run time type information or use of the standard C++
 | 
			
		||||
      library and with limited use of templates.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
       The currently supported platforms, Windows, GTK/Linux, Cocoa, Qt, and wxWidgets are fairly similar in
 | 
			
		||||
      many ways.
 | 
			
		||||
      Each has windows, menus and bitmaps. These features generally work in similar ways so each
 | 
			
		||||
      has a way to move a window or draw a red line. Sometimes one platform requires a sequence of
 | 
			
		||||
      calls rather than a single call. At other times, the differences are more profound. Reading
 | 
			
		||||
      the Windows clipboard occurs synchronously but reading the GTK clipboard requires a request
 | 
			
		||||
      call that will be asynchronously answered with a message containing the clipboard data.
 | 
			
		||||
      The wxWidgets platform is available from the <a href="http://wxwidgets.org/">wxWidgets site</a>
 | 
			
		||||
    </p>
 | 
			
		||||
    <br />
 | 
			
		||||
    <h3>
 | 
			
		||||
       Portability Library
 | 
			
		||||
    </h3>
 | 
			
		||||
    <p>
 | 
			
		||||
       This is a fairly small and thin layer over the platform's native capabilities.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
       The portability library is defined in Geometry.h and Platform.h and is implemented once for each platform.
 | 
			
		||||
      PlatWin.cxx defines the Windows variants of the methods and PlatGTK.cxx the GTK variants.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
       Several of the classes here hold platform specific object identifiers and act as proxies to
 | 
			
		||||
      these platform objects. Most client code can thus manipulate the platform objects without
 | 
			
		||||
      caring which is the current platform. Sometimes client code needs access to the underlying
 | 
			
		||||
      object identifiers and this is provided by the GetID method. The underlying types of the
 | 
			
		||||
      platform specific identifiers are typedefed to common names to allow them to be transferred
 | 
			
		||||
      around in client code where needed.
 | 
			
		||||
    </p>
 | 
			
		||||
    <h4>
 | 
			
		||||
       Point, PRectangle
 | 
			
		||||
    </h4>
 | 
			
		||||
    <p>
 | 
			
		||||
       These are simple classes provided to hold the commonly used geometric primitives. A
 | 
			
		||||
      PRectangle follows the Mac / Windows convention of not including its bottom and right sides
 | 
			
		||||
      instead of including all its sides as is normal in GTK. It is not called Rectangle as this may be
 | 
			
		||||
      the name of a macro on Windows.
 | 
			
		||||
    </p>
 | 
			
		||||
    <h4>
 | 
			
		||||
       ColourDesired
 | 
			
		||||
    </h4>
 | 
			
		||||
    <p>
 | 
			
		||||
       This is a simple class holding an expected colour. It is internally represented as a single
 | 
			
		||||
      32 bit integer in BGR format with 8 bits per colour, but also provides a convenient API to fetch
 | 
			
		||||
      each component separately.
 | 
			
		||||
       As a platform might not be able to represent the exact desired colour if it doesn't have 24 bit
 | 
			
		||||
      depth available, it might not actually represent the exact desired colour but select a best fit
 | 
			
		||||
      that it can actually render.
 | 
			
		||||
    </p>
 | 
			
		||||
    <h4>
 | 
			
		||||
       Font
 | 
			
		||||
    </h4>
 | 
			
		||||
    <p>
 | 
			
		||||
       Font holds a platform specific font identifier - HFONT for Windows, PangoFontDescription* for GTK. It
 | 
			
		||||
      does not own the identifier and so will not delete the platform font object in its
 | 
			
		||||
      destructor. Client code should call Destroy at appropriate times.
 | 
			
		||||
    </p>
 | 
			
		||||
    <h4>
 | 
			
		||||
       Surface
 | 
			
		||||
    </h4>
 | 
			
		||||
    <p>
 | 
			
		||||
       Surface is an abstraction over each platform's concept of somewhere that graphical drawing
 | 
			
		||||
      operations can be done. It may wrap an already created drawing place such as a window or be
 | 
			
		||||
      used to create a bitmap that can be drawn into and later copied onto another surface. On
 | 
			
		||||
      Windows it wraps a HDC and possibly a HBITMAP. On GTK it wraps a cairo_surface_t*.
 | 
			
		||||
      Other platform specific objects are created (and correctly destroyed) whenever
 | 
			
		||||
      required to perform drawing actions.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
       Drawing operations provided include drawing filled and unfilled polygons, lines, rectangles,
 | 
			
		||||
      ellipses and text. The height and width of text as well as other details can be measured.
 | 
			
		||||
      Operations can be clipped to a rectangle. Most of the calls are stateless with all parameters
 | 
			
		||||
      being passed at each call. The exception to this is line drawing which is performed by
 | 
			
		||||
      calling MoveTo and then LineTo.
 | 
			
		||||
    </p>
 | 
			
		||||
    <h4>
 | 
			
		||||
       Window
 | 
			
		||||
    </h4>
 | 
			
		||||
    <p>
 | 
			
		||||
       Window acts as a proxy to a platform window allowing operations such as showing, moving,
 | 
			
		||||
      redrawing, and destroying to be performed. It contains a platform specific window identifier
 | 
			
		||||
      - HWND for Windows, GtkWidget* for GTK.
 | 
			
		||||
    </p>
 | 
			
		||||
    <h4>
 | 
			
		||||
       ListBox
 | 
			
		||||
    </h4>
 | 
			
		||||
    <p>
 | 
			
		||||
       ListBox is a subclass of Window and acts as a proxy to a platform listbox adding methods for
 | 
			
		||||
      operations such as adding, retrieving, and selecting items.
 | 
			
		||||
    </p>
 | 
			
		||||
    <h4>
 | 
			
		||||
       Menu
 | 
			
		||||
    </h4>
 | 
			
		||||
    <p>
 | 
			
		||||
       Menu is a small helper class for constructing popup menus. It contains the platform specific
 | 
			
		||||
      menu identifier - HMENU for Windows, GtkMenu* for GTK. Most of the work in
 | 
			
		||||
      constructing menus requires access to platform events and so is done in the Platform Events
 | 
			
		||||
      and API layer.
 | 
			
		||||
    </p>
 | 
			
		||||
    <h4>
 | 
			
		||||
       Platform
 | 
			
		||||
    </h4>
 | 
			
		||||
    <p>
 | 
			
		||||
       The Platform class is used to access the facilities of the platform. System wide parameters
 | 
			
		||||
      such as double click speed and chrome colour are available from Platform. Utility functions
 | 
			
		||||
      such as DebugPrintf are also available from Platform.
 | 
			
		||||
    </p>
 | 
			
		||||
    <h3>
 | 
			
		||||
       Core Code
 | 
			
		||||
    </h3>
 | 
			
		||||
    <p>
 | 
			
		||||
       The bulk of Scintilla's code is platform independent. This is made up of the CellBuffer,
 | 
			
		||||
      ContractionState, Document, Editor, Indicator, LineMarker, Style, ViewStyle, KeyMap,
 | 
			
		||||
      ScintillaBase, CallTip,
 | 
			
		||||
      and AutoComplete primary classes.
 | 
			
		||||
    </p>
 | 
			
		||||
    <h4>
 | 
			
		||||
       CellBuffer
 | 
			
		||||
    </h4>
 | 
			
		||||
    <p>
 | 
			
		||||
       A CellBuffer holds text and styling information, the undo stack, the assignment of line
 | 
			
		||||
      markers to lines, and the fold structure.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
       A cell contains a character byte and its associated style byte. The current state of the
 | 
			
		||||
      cell buffer is the sequence of cells that make up the text and a sequence of line information
 | 
			
		||||
      containing the starting position of each line and any markers assigned to each line.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
       The undo stack holds a sequence of actions on the cell buffer. Each action is one of a text
 | 
			
		||||
      insertion, a text deletion or an undo start action. The start actions are used to group
 | 
			
		||||
      sequences of text insertions and deletions together so they can be undone together. To
 | 
			
		||||
      perform an undo operation, each insertion or deletion is undone in reverse sequence.
 | 
			
		||||
      Similarly, redo reapplies each action to the buffer in sequence. Whenever a character is
 | 
			
		||||
      inserted in the buffer either directly through a call such as InsertString or through undo or
 | 
			
		||||
      redo, its styling byte is initially set to zero. Client code is responsible for styling each
 | 
			
		||||
      character whenever convenient. Styling information is not stored in undo actions.
 | 
			
		||||
    </p>
 | 
			
		||||
    <h4>
 | 
			
		||||
       Document
 | 
			
		||||
    </h4>
 | 
			
		||||
    <p>
 | 
			
		||||
       A document contains a CellBuffer and deals with some higher level abstractions such as
 | 
			
		||||
      words, DBCS character sequences and line end character sequences. It is responsible for
 | 
			
		||||
      managing the styling process and for notifying other objects when changes occur to the
 | 
			
		||||
      document.
 | 
			
		||||
    </p>
 | 
			
		||||
    <h4>
 | 
			
		||||
       Editor
 | 
			
		||||
    </h4>
 | 
			
		||||
    <p>
 | 
			
		||||
       The Editor object is central to Scintilla. It is responsible for displaying a document and
 | 
			
		||||
      responding to user actions and requests from the container. It uses ContractionState, Indicator,
 | 
			
		||||
      LineMarker, Style, and ViewStyle objects to display the document and a KeyMap class to
 | 
			
		||||
      map key presses to functions.
 | 
			
		||||
      The visibility of each line is kept in the ContractionState which is also responsible for mapping
 | 
			
		||||
      from display lines to documents lines and vice versa.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
       There may be multiple Editor objects attached to one Document object. Changes to a
 | 
			
		||||
       document are broadcast to the editors through the DocWatcher mechanism.
 | 
			
		||||
    </p>
 | 
			
		||||
    <h4>
 | 
			
		||||
       ScintillaBase
 | 
			
		||||
    </h4>
 | 
			
		||||
    <p>
 | 
			
		||||
       ScintillaBase is a subclass of Editor and adds extra windowing features including display of
 | 
			
		||||
      calltips, autocompletion lists and context menus. These features use CallTip and AutoComplete
 | 
			
		||||
      objects. This class is optional so a lightweight implementation of Scintilla may bypass it if
 | 
			
		||||
      the added functionality is not required.
 | 
			
		||||
    </p>
 | 
			
		||||
    <h3>
 | 
			
		||||
       Platform Events and API
 | 
			
		||||
    </h3>
 | 
			
		||||
    <p>
 | 
			
		||||
       Each platform uses different mechanisms for receiving events. On Windows, events are
 | 
			
		||||
      received through messages and COM. On GTK, callback functions are used.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
       For each platform, a class is derived from ScintillaBase (and thus from Editor). This is
 | 
			
		||||
      ScintillaWin on Windows and ScintillaGTK on GTK. These classes are responsible for
 | 
			
		||||
      connecting to the platforms event mechanism and also to implement some virtual methods in
 | 
			
		||||
      Editor and ScintillaBase which are different on the platforms. For example, this layer has to
 | 
			
		||||
      support this difference between the synchronous Windows clipboard and the asynchronous GTK
 | 
			
		||||
      clipboard.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
       The external API is defined in this layer as each platform has different preferred styles of
 | 
			
		||||
      API - messages on Windows and function calls on GTK. This also allows multiple APIs to be
 | 
			
		||||
      defined on a platform. The currently available API on GTK is similar to the Windows API and
 | 
			
		||||
      does not follow platform conventions well. A second API could be implemented here that did
 | 
			
		||||
      follow platform conventions.
 | 
			
		||||
    </p>
 | 
			
		||||
  </body>
 | 
			
		||||
</html>
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										57
									
								
								3rdparty/scintilla552/scintilla/doc/Icons.html
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,57 @@
 | 
			
		||||
<?xml version="1.0"?>
 | 
			
		||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 | 
			
		||||
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 | 
			
		||||
<html xmlns="http://www.w3.org/1999/xhtml">
 | 
			
		||||
  <head>
 | 
			
		||||
    <meta name="generator" content="HTML Tidy, see www.w3.org" />
 | 
			
		||||
    <meta name="generator" content="SciTE" />
 | 
			
		||||
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
 | 
			
		||||
    <meta name="viewport" content="width=device-width, initial-scale=1" />
 | 
			
		||||
    <title>
 | 
			
		||||
      Scintilla icons
 | 
			
		||||
    </title>
 | 
			
		||||
  </head>
 | 
			
		||||
  <body bgcolor="#FFFFFF" text="#000000">
 | 
			
		||||
    <table bgcolor="#000000" width="100%" cellspacing="0" cellpadding="0" border="0">
 | 
			
		||||
      <tr>
 | 
			
		||||
        <td>
 | 
			
		||||
          <img src="SciTEIco.png" border="3" height="64" width="64" alt="Scintilla icon" />
 | 
			
		||||
        </td>
 | 
			
		||||
        <td>
 | 
			
		||||
          <a href="index.html" style="color:white;text-decoration:none"><font size="5">Scintilla
 | 
			
		||||
          and SciTE</font></a>
 | 
			
		||||
        </td>
 | 
			
		||||
      </tr>
 | 
			
		||||
    </table>
 | 
			
		||||
    <h2>
 | 
			
		||||
       Icons
 | 
			
		||||
    </h2>
 | 
			
		||||
    <p>
 | 
			
		||||
       These images may be used under the same license as Scintilla.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
       Drawn by Iago Rubio, Philippe Lhoste, and Neil Hodgson.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
       <a href="http://prdownloads.sourceforge.net/scintilla/icons1.zip?download">zip format</a> (70K)
 | 
			
		||||
    </p>
 | 
			
		||||
    <table>
 | 
			
		||||
    <tr>
 | 
			
		||||
    <td>For autocompletion lists</td>
 | 
			
		||||
    <td colspan="3">For margin markers</td>
 | 
			
		||||
    </tr>
 | 
			
		||||
    <tr>
 | 
			
		||||
    <td>12x12</td>
 | 
			
		||||
    <td>16x16</td>
 | 
			
		||||
    <td>24x24</td>
 | 
			
		||||
    <td>32x32</td>
 | 
			
		||||
    </tr>
 | 
			
		||||
    <tr>
 | 
			
		||||
    <td valign="top"><img src="12.png" /></td>
 | 
			
		||||
    <td valign="top"><img src="16.png" /></td>
 | 
			
		||||
    <td valign="top"><img src="24.png" /></td>
 | 
			
		||||
    <td valign="top"><img src="32.png" /></td>
 | 
			
		||||
    </tr>
 | 
			
		||||
    </table>
 | 
			
		||||
  </body>
 | 
			
		||||
</html>
 | 
			
		||||
							
								
								
									
										
											BIN
										
									
								
								3rdparty/scintilla552/scintilla/doc/Indicators.png
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 20 KiB  | 
							
								
								
									
										226
									
								
								3rdparty/scintilla552/scintilla/doc/Lexer.txt
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,226 @@
 | 
			
		||||
How to write a scintilla lexer
 | 
			
		||||
 | 
			
		||||
A lexer for a particular language determines how a specified range of
 | 
			
		||||
text shall be colored.  Writing a lexer is relatively straightforward
 | 
			
		||||
because the lexer need only color given text.  The harder job of
 | 
			
		||||
determining how much text actually needs to be colored is handled by
 | 
			
		||||
Scintilla itself, that is, the lexer's caller.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Parameters
 | 
			
		||||
 | 
			
		||||
The lexer for language LLL has the following prototype:
 | 
			
		||||
 | 
			
		||||
    static void ColouriseLLLDoc (
 | 
			
		||||
        unsigned int startPos, int length,
 | 
			
		||||
        int initStyle,
 | 
			
		||||
        WordList *keywordlists[],
 | 
			
		||||
        Accessor &styler);
 | 
			
		||||
 | 
			
		||||
The styler parameter is an Accessor object.  The lexer must use this
 | 
			
		||||
object to access the text to be colored.  The lexer gets the character
 | 
			
		||||
at position i using styler.SafeGetCharAt(i);
 | 
			
		||||
 | 
			
		||||
The startPos and length parameters indicate the range of text to be
 | 
			
		||||
recolored; the lexer must determine the proper color for all characters
 | 
			
		||||
in positions startPos through startPos+length.
 | 
			
		||||
 | 
			
		||||
The initStyle parameter indicates the initial state, that is, the state
 | 
			
		||||
at the character before startPos. States also indicate the coloring to
 | 
			
		||||
be used for a particular range of text.
 | 
			
		||||
 | 
			
		||||
Note:  the character at StartPos is assumed to start a line, so if a
 | 
			
		||||
newline terminates the initStyle state the lexer should enter its
 | 
			
		||||
default state (or whatever state should follow initStyle).
 | 
			
		||||
 | 
			
		||||
The keywordlists parameter specifies the keywords that the lexer must
 | 
			
		||||
recognize.  A WordList class object contains methods that simplify
 | 
			
		||||
the recognition of keywords.  Present lexers use a helper function
 | 
			
		||||
called classifyWordLLL to recognize keywords.  These functions show how
 | 
			
		||||
to use the keywordlists parameter to recognize keywords.  This
 | 
			
		||||
documentation will not discuss keywords further.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
The lexer code
 | 
			
		||||
 | 
			
		||||
The task of a lexer can be summarized briefly: for each range r of
 | 
			
		||||
characters that are to be colored the same, the lexer should call
 | 
			
		||||
 | 
			
		||||
    styler.ColourTo(i, state)
 | 
			
		||||
 | 
			
		||||
where i is the position of the last character of the range r.  The lexer
 | 
			
		||||
should set the state variable to the coloring state of the character at
 | 
			
		||||
position i and continue until the entire text has been colored.
 | 
			
		||||
 | 
			
		||||
Note 1:  the styler (Accessor) object remembers the i parameter in the
 | 
			
		||||
previous calls to styler.ColourTo, so the single i parameter suffices to
 | 
			
		||||
indicate a range of characters.
 | 
			
		||||
 | 
			
		||||
Note 2: As a side effect of calling styler.ColourTo(i,state), the
 | 
			
		||||
coloring states of all characters in the range are remembered so that
 | 
			
		||||
Scintilla may set the initStyle parameter correctly on future calls to
 | 
			
		||||
the
 | 
			
		||||
lexer.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Lexer organization
 | 
			
		||||
 | 
			
		||||
There are at least two ways to organize the code of each lexer.  Present
 | 
			
		||||
lexers use what might be called a "character-based" approach: the outer
 | 
			
		||||
loop iterates over characters, like this:
 | 
			
		||||
 | 
			
		||||
  lengthDoc = startPos + length ;
 | 
			
		||||
  for (unsigned int i = startPos; i < lengthDoc; i++) {
 | 
			
		||||
    chNext = styler.SafeGetCharAt(i + 1);
 | 
			
		||||
    << handle special cases >>
 | 
			
		||||
    switch(state) {
 | 
			
		||||
      // Handlers examine only ch and chNext.
 | 
			
		||||
      // Handlers call styler.ColorTo(i,state) if the state changes.
 | 
			
		||||
      case state_1: << handle ch in state 1 >>
 | 
			
		||||
      case state_2: << handle ch in state 2 >>
 | 
			
		||||
      ...
 | 
			
		||||
      case state_n: << handle ch in state n >>
 | 
			
		||||
    }
 | 
			
		||||
    chPrev = ch;
 | 
			
		||||
  }
 | 
			
		||||
  styler.ColourTo(lengthDoc - 1, state);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
An alternative would be to use a "state-based" approach.  The outer loop
 | 
			
		||||
would iterate over states, like this:
 | 
			
		||||
 | 
			
		||||
  lengthDoc = startPos+lenth ;
 | 
			
		||||
  for ( unsigned int i = startPos ;; ) {
 | 
			
		||||
    char ch = styler.SafeGetCharAt(i);
 | 
			
		||||
    int new_state = 0 ;
 | 
			
		||||
    switch ( state ) {
 | 
			
		||||
      // scanners set new_state if they set the next state.
 | 
			
		||||
      case state_1: << scan to the end of state 1 >> break ;
 | 
			
		||||
      case state_2: << scan to the end of state 2 >> break ;
 | 
			
		||||
      case default_state:
 | 
			
		||||
        << scan to the next non-default state and set new_state >>
 | 
			
		||||
    }
 | 
			
		||||
    styler.ColourTo(i, state);
 | 
			
		||||
    if ( i >= lengthDoc ) break ;
 | 
			
		||||
    if ( ! new_state ) {
 | 
			
		||||
      ch = styler.SafeGetCharAt(i);
 | 
			
		||||
      << set state based on ch in the default state >>
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  styler.ColourTo(lengthDoc - 1, state);
 | 
			
		||||
 | 
			
		||||
This approach might seem to be more natural.  State scanners are simpler
 | 
			
		||||
than character scanners because less needs to be done.  For example,
 | 
			
		||||
there is no need to test for the start of a C string inside the scanner
 | 
			
		||||
for a C comment.  Also this way makes it natural to define routines that
 | 
			
		||||
could be used by more than one scanner; for example, a scanToEndOfLine
 | 
			
		||||
routine.
 | 
			
		||||
 | 
			
		||||
However, the special cases handled in the main loop in the
 | 
			
		||||
character-based approach would have to be handled by each state scanner,
 | 
			
		||||
so both approaches have advantages.  These special cases are discussed
 | 
			
		||||
below.
 | 
			
		||||
 | 
			
		||||
Special case: Lead characters
 | 
			
		||||
 | 
			
		||||
Lead bytes are part of DBCS processing for languages such as Japanese
 | 
			
		||||
using an encoding such as Shift-JIS. In these encodings, extended
 | 
			
		||||
(16-bit) characters are encoded as a lead byte followed by a trail byte.
 | 
			
		||||
 | 
			
		||||
Lead bytes are rarely of any lexical significance, normally only being
 | 
			
		||||
allowed within strings and comments. In such contexts, lexers should
 | 
			
		||||
ignore ch if styler.IsLeadByte(ch) returns TRUE.
 | 
			
		||||
 | 
			
		||||
Note: UTF-8 is simpler than Shift-JIS, so no special handling is
 | 
			
		||||
applied for it. All UTF-8 extended characters are >= 128 and none are
 | 
			
		||||
lexically significant in programming languages which, so far, use only
 | 
			
		||||
characters in ASCII for operators, comment markers, etc.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Special case: Folding
 | 
			
		||||
 | 
			
		||||
Folding may be performed in the lexer function. It is better to use a
 | 
			
		||||
separate folder function as that avoids some troublesome interaction
 | 
			
		||||
between styling and folding. The folder function will be run after the
 | 
			
		||||
lexer function if folding is enabled. The rest of this section explains
 | 
			
		||||
how to perform folding within the lexer function.
 | 
			
		||||
 | 
			
		||||
During initialization, lexers that support folding set
 | 
			
		||||
 | 
			
		||||
    bool fold = styler.GetPropertyInt("fold");
 | 
			
		||||
 | 
			
		||||
If folding is enabled in the editor, fold will be TRUE and the lexer
 | 
			
		||||
should call:
 | 
			
		||||
 | 
			
		||||
    styler.SetLevel(line, level);
 | 
			
		||||
 | 
			
		||||
at the end of each line and just before exiting.
 | 
			
		||||
 | 
			
		||||
The line parameter is simply the count of the number of newlines seen.
 | 
			
		||||
It's initial value is styler.GetLine(startPos) and it is incremented
 | 
			
		||||
(after calling styler.SetLevel) whenever a newline is seen.
 | 
			
		||||
 | 
			
		||||
The level parameter is the desired indentation level in the low 12 bits,
 | 
			
		||||
along with flag bits in the upper four bits. The indentation level
 | 
			
		||||
depends on the language.  For C++, it is incremented when the lexer sees
 | 
			
		||||
a '{' and decremented when the lexer sees a '}' (outside of strings and
 | 
			
		||||
comments, of course).
 | 
			
		||||
 | 
			
		||||
The following flag bits, defined in Scintilla.h, may be set or cleared
 | 
			
		||||
in the flags parameter. The SC_FOLDLEVELWHITEFLAG flag is set if the
 | 
			
		||||
lexer considers that the line contains nothing but whitespace.  The
 | 
			
		||||
SC_FOLDLEVELHEADERFLAG flag indicates that the line is a fold point.
 | 
			
		||||
This normally means that the next line has a greater level than present
 | 
			
		||||
line.  However, the lexer may have some other basis for determining a
 | 
			
		||||
fold point.  For example, a lexer might create a header line for the
 | 
			
		||||
first line of a function definition rather than the last.
 | 
			
		||||
 | 
			
		||||
The SC_FOLDLEVELNUMBERMASK mask denotes the level number in the low 12
 | 
			
		||||
bits of the level param. This mask may be used to isolate either flags
 | 
			
		||||
or level numbers.
 | 
			
		||||
 | 
			
		||||
For example, the C++ lexer contains the following code when a newline is
 | 
			
		||||
seen:
 | 
			
		||||
 | 
			
		||||
  if (fold) {
 | 
			
		||||
    int lev = levelPrev;
 | 
			
		||||
 | 
			
		||||
    // Set the "all whitespace" bit if the line is blank.
 | 
			
		||||
    if (visChars == 0)
 | 
			
		||||
      lev |= SC_FOLDLEVELWHITEFLAG;
 | 
			
		||||
 | 
			
		||||
    // Set the "header" bit if needed.
 | 
			
		||||
    if ((levelCurrent > levelPrev) && (visChars > 0))
 | 
			
		||||
      lev |= SC_FOLDLEVELHEADERFLAG;
 | 
			
		||||
      styler.SetLevel(lineCurrent, lev);
 | 
			
		||||
 | 
			
		||||
    // reinitialize the folding vars describing the present line.
 | 
			
		||||
    lineCurrent++;
 | 
			
		||||
    visChars = 0;  // Number of non-whitespace characters on the line.
 | 
			
		||||
    levelPrev = levelCurrent;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
The following code appears in the C++ lexer just before exit:
 | 
			
		||||
 | 
			
		||||
  // Fill in the real level of the next line, keeping the current flags
 | 
			
		||||
  // as they will be filled in later.
 | 
			
		||||
  if (fold) {
 | 
			
		||||
    // Mask off the level number, leaving only the previous flags.
 | 
			
		||||
    int flagsNext = styler.LevelAt(lineCurrent);
 | 
			
		||||
    flagsNext &= ~SC_FOLDLEVELNUMBERMASK;
 | 
			
		||||
    styler.SetLevel(lineCurrent, levelPrev | flagsNext);
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Don't worry about performance
 | 
			
		||||
 | 
			
		||||
The writer of a lexer may safely ignore performance considerations: the
 | 
			
		||||
cost of redrawing the screen is several orders of magnitude greater than
 | 
			
		||||
the cost of function calls, etc.  Moreover, Scintilla performs all the
 | 
			
		||||
important optimizations; Scintilla ensures that a lexer will be called
 | 
			
		||||
only to recolor text that actually needs to be recolored.  Finally, it
 | 
			
		||||
is not necessary to avoid extra calls to styler.ColourTo: the sytler
 | 
			
		||||
object buffers calls to ColourTo to avoid multiple updates of the
 | 
			
		||||
screen.
 | 
			
		||||
 | 
			
		||||
Page contributed by Edward K. Ream
 | 
			
		||||
							
								
								
									
										
											BIN
										
									
								
								3rdparty/scintilla552/scintilla/doc/Markers.png
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 24 KiB  | 
							
								
								
									
										70
									
								
								3rdparty/scintilla552/scintilla/doc/Privacy.html
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,70 @@
 | 
			
		||||
<?xml version="1.0"?>
 | 
			
		||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 | 
			
		||||
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 | 
			
		||||
<html xmlns="http://www.w3.org/1999/xhtml">
 | 
			
		||||
  <head>
 | 
			
		||||
    <meta name="generator" content="SciTE" />
 | 
			
		||||
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
 | 
			
		||||
    <meta name="viewport" content="width=device-width, initial-scale=1" />
 | 
			
		||||
    <title>
 | 
			
		||||
      Privacy Policy
 | 
			
		||||
    </title>
 | 
			
		||||
  </head>
 | 
			
		||||
  <body bgcolor="#FFFFFF" text="#000000">
 | 
			
		||||
    <table bgcolor="#000000" width="100%" cellspacing="0" cellpadding="0" border="0">
 | 
			
		||||
      <tr>
 | 
			
		||||
        <td>
 | 
			
		||||
          <img src="SciTEIco.png" border="3" height="64" width="64" alt="Scintilla icon" />
 | 
			
		||||
        </td>
 | 
			
		||||
        <td>
 | 
			
		||||
          <a href="index.html" style="color:white;text-decoration:none"><font size="5">Scintilla
 | 
			
		||||
          and SciTE</font></a>
 | 
			
		||||
        </td>
 | 
			
		||||
      </tr>
 | 
			
		||||
    </table>
 | 
			
		||||
    <h2>
 | 
			
		||||
       Privacy Policy for scintilla.org
 | 
			
		||||
    </h2>
 | 
			
		||||
    <h3>
 | 
			
		||||
       Information Collected
 | 
			
		||||
    </h3>
 | 
			
		||||
    <p>
 | 
			
		||||
      Logs are collected to allow analysis of which pages are viewed.
 | 
			
		||||
      The advertisements collect viewing information through Google Analytics which is
 | 
			
		||||
      used by Google and advertisers.
 | 
			
		||||
      No personally identifiable information is collected by scintilla.org.
 | 
			
		||||
    </p>
 | 
			
		||||
    <h3>
 | 
			
		||||
       External Links
 | 
			
		||||
    </h3>
 | 
			
		||||
    <p>
 | 
			
		||||
       Other web sites are linked to from this site.
 | 
			
		||||
       These web sites have their own privacy policies which may differ significantly to those of scintilla.org.
 | 
			
		||||
    </p>
 | 
			
		||||
    <h3>
 | 
			
		||||
       Cookies
 | 
			
		||||
    </h3>
 | 
			
		||||
    <p>
 | 
			
		||||
       A cookie is a text file placed on the hard drive of a computer by some web pages which is used to remember
 | 
			
		||||
       when a particular user returns to that site.
 | 
			
		||||
       The advertisements shown on the main pages may use cookies.
 | 
			
		||||
    </p>
 | 
			
		||||
    <h3>
 | 
			
		||||
       Contact
 | 
			
		||||
    </h3>
 | 
			
		||||
    <p>
 | 
			
		||||
       This web site is the responsibility of Neil Hodgson.
 | 
			
		||||
       Most queries about the site contents should go to one of the mailing lists mentioned on the main pages.
 | 
			
		||||
       Queries about the privacy policy may be sent to neilh @ scintilla.org.
 | 
			
		||||
    </p>
 | 
			
		||||
    <h3>
 | 
			
		||||
       Changes to this Policy
 | 
			
		||||
    </h3>
 | 
			
		||||
    <p>
 | 
			
		||||
       This policy may change. If it does then this page will be updated and the date at the bottom will change.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
       This policy was last updated 2 June 2015.
 | 
			
		||||
    </p>
 | 
			
		||||
  </body>
 | 
			
		||||
</html>
 | 
			
		||||
							
								
								
									
										
											BIN
										
									
								
								3rdparty/scintilla552/scintilla/doc/SciBreak.jpg
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 33 KiB  | 
							
								
								
									
										296
									
								
								3rdparty/scintilla552/scintilla/doc/SciCoding.html
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,296 @@
 | 
			
		||||
<?xml version="1.0"?>
 | 
			
		||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 | 
			
		||||
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 | 
			
		||||
<html xmlns="http://www.w3.org/1999/xhtml">
 | 
			
		||||
  <head>
 | 
			
		||||
    <meta name="generator" content="SciTE" />
 | 
			
		||||
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
 | 
			
		||||
    <meta name="viewport" content="width=device-width, initial-scale=1" />
 | 
			
		||||
    <title>
 | 
			
		||||
      Scintilla and SciTE Code Style Preferences
 | 
			
		||||
    </title>
 | 
			
		||||
	<style>
 | 
			
		||||
	.S0 {
 | 
			
		||||
		color: #808080;
 | 
			
		||||
	}
 | 
			
		||||
	.S1 {
 | 
			
		||||
		font-family: Comic Sans MS;
 | 
			
		||||
		color: #007F00;
 | 
			
		||||
		font-size: 9pt;
 | 
			
		||||
	}
 | 
			
		||||
	.S2 {
 | 
			
		||||
		font-family: Comic Sans MS;
 | 
			
		||||
		color: #007F00;
 | 
			
		||||
		font-size: 9pt;
 | 
			
		||||
	}
 | 
			
		||||
	.S3 {
 | 
			
		||||
		font-family: Comic Sans MS;
 | 
			
		||||
		color: #3F703F;
 | 
			
		||||
		font-size: 9pt;
 | 
			
		||||
	}
 | 
			
		||||
	.S4 {
 | 
			
		||||
		color: #007F7F;
 | 
			
		||||
	}
 | 
			
		||||
	.S5 {
 | 
			
		||||
		font-weight: bold;
 | 
			
		||||
		color: #00007F;
 | 
			
		||||
	}
 | 
			
		||||
	.S6 {
 | 
			
		||||
		color: #7F007F;
 | 
			
		||||
	}
 | 
			
		||||
	.S7 {
 | 
			
		||||
		color: #7F007F;
 | 
			
		||||
	}
 | 
			
		||||
	.S8 {
 | 
			
		||||
		color: #804080;
 | 
			
		||||
	}
 | 
			
		||||
	.S9 {
 | 
			
		||||
		color: #7F7F00;
 | 
			
		||||
	}
 | 
			
		||||
	.S10 {
 | 
			
		||||
		font-weight: bold;
 | 
			
		||||
		color: #000000;
 | 
			
		||||
	}
 | 
			
		||||
	.S12 {
 | 
			
		||||
		font-family: Courier New;
 | 
			
		||||
		color: #000000;
 | 
			
		||||
		background: #E0C0E0;
 | 
			
		||||
		font-size: 10pt;
 | 
			
		||||
	}
 | 
			
		||||
	.S13 {
 | 
			
		||||
		font-family: Courier New;
 | 
			
		||||
		color: #007F00;
 | 
			
		||||
		background: #E0FFE0;
 | 
			
		||||
		font-size: 10pt;
 | 
			
		||||
	}
 | 
			
		||||
	.S14 {
 | 
			
		||||
		font-family: Courier New;
 | 
			
		||||
		color: #3F7F3F;
 | 
			
		||||
		background: #E0F0FF;
 | 
			
		||||
		font-size: 10pt;
 | 
			
		||||
	}
 | 
			
		||||
	.S15 {
 | 
			
		||||
		font-family: Comic Sans MS;
 | 
			
		||||
		color: #3F703F;
 | 
			
		||||
		font-size: 9pt;
 | 
			
		||||
	}
 | 
			
		||||
	SPAN {
 | 
			
		||||
		font-family: Verdana;
 | 
			
		||||
		font-size: 10pt;
 | 
			
		||||
	}
 | 
			
		||||
	</style>
 | 
			
		||||
  </head>
 | 
			
		||||
  <body bgcolor="#FFFFFF" text="#000000">
 | 
			
		||||
    <table bgcolor="#000000" width="100%" cellspacing="0" cellpadding="0" border="0">
 | 
			
		||||
      <tr>
 | 
			
		||||
        <td>
 | 
			
		||||
          <img src="SciTEIco.png" border="3" height="64" width="64" alt="Scintilla icon" />
 | 
			
		||||
        </td>
 | 
			
		||||
        <td>
 | 
			
		||||
          <a href="index.html" style="color:white;text-decoration:none"><font size="5">Scintilla
 | 
			
		||||
          and SciTE</font></a>
 | 
			
		||||
        </td>
 | 
			
		||||
      </tr>
 | 
			
		||||
    </table>
 | 
			
		||||
    <h2>
 | 
			
		||||
       Code Style
 | 
			
		||||
    </h2>
 | 
			
		||||
    <h3>
 | 
			
		||||
       Introduction
 | 
			
		||||
    </h3>
 | 
			
		||||
	<p>
 | 
			
		||||
	The source code of Scintilla and SciTE follow my preferences.
 | 
			
		||||
	Some of these decisions are arbitrary and based on my sense of aesthetics
 | 
			
		||||
	but its good to have all the code look the same even if its not exactly how
 | 
			
		||||
	everyone would prefer.
 | 
			
		||||
	</p>
 | 
			
		||||
	<p>
 | 
			
		||||
	Code that does not follow these conventions will be accepted, but will be modified
 | 
			
		||||
	as time goes by to fit the conventions. Scintilla code follows the conventions more
 | 
			
		||||
	closely than SciTE except for lexers which are relatively independent modules.
 | 
			
		||||
	Lexers that are maintained by others are left as they are submitted except that
 | 
			
		||||
	warnings will be fixed so the whole project can compile cleanly.
 | 
			
		||||
	</p>
 | 
			
		||||
	<p>
 | 
			
		||||
	The <a href="http://astyle.sourceforge.net/">AStyle</a> formatting
 | 
			
		||||
	program with '--style=attach --indent=force-tab=8 --keep-one-line-blocks
 | 
			
		||||
--pad-header --unpad-paren --pad-comma --indent-cases --align-pointer=name --pad-method-prefix
 | 
			
		||||
--pad-return-type --pad-param-type --align-method-colon --pad-method-colon=after' arguments formats code in much the right way although
 | 
			
		||||
	there are a few bugs in AStyle.
 | 
			
		||||
	</p>
 | 
			
		||||
    <h3>
 | 
			
		||||
       Language features
 | 
			
		||||
    </h3>
 | 
			
		||||
	<p>
 | 
			
		||||
	Design goals for Scintilla and SciTE include portability to currently available C++
 | 
			
		||||
	compilers on diverse platforms with high performance and low resource usage.
 | 
			
		||||
	Scintilla has stricter portability requirements to SciTE as it may be ported to
 | 
			
		||||
	low capability platforms.
 | 
			
		||||
	Scintilla code must build with C++17 which can be checked with "g++ --std=c++17".
 | 
			
		||||
	SciTE can use C++17 features that are widely available from g++ 7.1, MSVC 2017.6 and Clang 5.0 compilers.
 | 
			
		||||
	</p>
 | 
			
		||||
	<p>
 | 
			
		||||
	To achieve portability, only a subset of C++ features are used.
 | 
			
		||||
	Exceptions and templates may be used but, since Scintilla can be used from C as well as
 | 
			
		||||
	C++, exceptions may not be thrown out of Scintilla and all exceptions should be caught
 | 
			
		||||
	before returning from Scintilla.
 | 
			
		||||
	A 'Scintilla' name space is used. This helps with name clashes on macOS.
 | 
			
		||||
	</p>
 | 
			
		||||
	<p>
 | 
			
		||||
	The goto statement is not used because of bad memories from my first job
 | 
			
		||||
	maintaining FORTRAN programs. The union feature is not used as it can lead to
 | 
			
		||||
	non-type-safe value access.
 | 
			
		||||
	</p>
 | 
			
		||||
	<p>
 | 
			
		||||
	The SCI_METHOD preprocessor definition should be used when implementing
 | 
			
		||||
	interfaces which include it like ILexer and only there.
 | 
			
		||||
	</p>
 | 
			
		||||
	<p>
 | 
			
		||||
	Headers should always be included in the same order as given by the
 | 
			
		||||
	scripts/HeaderOrder.txt file.
 | 
			
		||||
	</p>
 | 
			
		||||
    <h3>
 | 
			
		||||
       Casting
 | 
			
		||||
    </h3>
 | 
			
		||||
	<p>
 | 
			
		||||
	Do not use old C style casts like (char *)s. Instead use the most strict form of C++
 | 
			
		||||
	cast possible like const_cast<char *>(s). Use static_cast and const_cast
 | 
			
		||||
	where possible rather than reinterpret_cast.
 | 
			
		||||
	</p>
 | 
			
		||||
	<p>
 | 
			
		||||
	The benefit to using the new style casts is that they explicitly detail what evil is
 | 
			
		||||
	occurring and act as signals that something potentially unsafe is being done.
 | 
			
		||||
	</p>
 | 
			
		||||
	<p>
 | 
			
		||||
	Code that treats const seriously is easier to reason about both for humans
 | 
			
		||||
	and compilers, so use const parameters and avoid const_cast.
 | 
			
		||||
	</p>
 | 
			
		||||
    <h3>
 | 
			
		||||
       Warnings
 | 
			
		||||
    </h3>
 | 
			
		||||
	<p>
 | 
			
		||||
	To help ensure code is well written and portable, it is compiled with almost all
 | 
			
		||||
	warnings turned on. This sometimes results in warnings about code that is
 | 
			
		||||
	completely good (false positives) but changing the code to avoid the warnings
 | 
			
		||||
	is generally fast and has little impact on readability.
 | 
			
		||||
	</p>
 | 
			
		||||
	<p>
 | 
			
		||||
	Initialise all variables and minimise the scope of variables. If a variable is defined
 | 
			
		||||
	just before its use then it can't be misused by code before that point.
 | 
			
		||||
	Use loop declarations that are compatible with both the C++ standard and currently
 | 
			
		||||
	available compilers.
 | 
			
		||||
	</p>
 | 
			
		||||
    <h3>
 | 
			
		||||
       Allocation
 | 
			
		||||
    </h3>
 | 
			
		||||
	<p>
 | 
			
		||||
	Memory exhaustion can occur in many Scintilla methods.
 | 
			
		||||
	This should be checked for and handled but once it has happened, it is very difficult to do
 | 
			
		||||
	anything as Scintilla's data structures may be in an inconsistent state.
 | 
			
		||||
	Fixed length buffers are often used as these are simple and avoid the need to
 | 
			
		||||
	worry about memory exhaustion but then require that buffer lengths are
 | 
			
		||||
	respected.
 | 
			
		||||
	</p>
 | 
			
		||||
	<p>
 | 
			
		||||
	The C++ new and delete operators are preferred over C's malloc and free
 | 
			
		||||
	as new and delete are type safe.
 | 
			
		||||
	</p>
 | 
			
		||||
    <h3>
 | 
			
		||||
       Bracketing
 | 
			
		||||
    </h3>
 | 
			
		||||
	<p>
 | 
			
		||||
	Start brackets, '{', should be located on the line of the control structure they
 | 
			
		||||
	start and end brackets, '}', should be at the indented start of a line. When there is
 | 
			
		||||
	an else clause, this occurs on the same line as the '}'.
 | 
			
		||||
	This format uses less lines than alternatives, allowing more code to be seen on screen.
 | 
			
		||||
	Fully bracketed control
 | 
			
		||||
	structures are preferred because this makes it more likely that modifications will
 | 
			
		||||
	be correct and it allows Scintilla's folder to work. No braces on returned
 | 
			
		||||
	expressions as return is a keyword, not a function call.
 | 
			
		||||
	</p>
 | 
			
		||||
<SPAN class=S0></SPAN><SPAN class=S5>bool</SPAN><SPAN class=S0> </SPAN><SPAN class=S11>fn</SPAN><SPAN class=S10>(</SPAN><SPAN class=S5>int</SPAN><SPAN class=S0> </SPAN><SPAN class=S11>a</SPAN><SPAN class=S10>)</SPAN><SPAN class=S0> </SPAN><SPAN class=S10>{</SPAN><SPAN class=S0><BR>
 | 
			
		||||
        </SPAN><SPAN class=S5>if</SPAN><SPAN class=S0> </SPAN><SPAN class=S10>(</SPAN><SPAN class=S11>a</SPAN><SPAN class=S10>)</SPAN><SPAN class=S0> </SPAN><SPAN class=S10>{</SPAN><SPAN class=S0><BR>
 | 
			
		||||
                </SPAN><SPAN class=S11>s</SPAN><SPAN class=S10>();</SPAN><SPAN class=S0><BR>
 | 
			
		||||
                </SPAN><SPAN class=S11>t</SPAN><SPAN class=S10>();</SPAN><SPAN class=S0><BR>
 | 
			
		||||
        </SPAN><SPAN class=S10>}</SPAN><SPAN class=S0> </SPAN><SPAN class=S5>else</SPAN><SPAN class=S0> </SPAN><SPAN class=S10>{</SPAN><SPAN class=S0><BR>
 | 
			
		||||
                </SPAN><SPAN class=S11>u</SPAN><SPAN class=S10>();</SPAN><SPAN class=S0><BR>
 | 
			
		||||
        </SPAN><SPAN class=S10>}</SPAN><SPAN class=S0><BR>
 | 
			
		||||
        </SPAN><SPAN class=S5>return</SPAN><SPAN class=S0> </SPAN><SPAN class=S10>!</SPAN><SPAN class=S11>a</SPAN><SPAN class=S10>;</SPAN><SPAN class=S0><BR>
 | 
			
		||||
</SPAN><SPAN class=S10>}</SPAN><SPAN class=S0><BR>
 | 
			
		||||
</SPAN>    <h3>
 | 
			
		||||
       Spacing
 | 
			
		||||
    </h3>
 | 
			
		||||
	<p>
 | 
			
		||||
	Spaces on both sides of '=' and comparison operators and no attempt to line up '='.
 | 
			
		||||
	No space before or after '(', when used in calls, but a space after every ','.
 | 
			
		||||
	No spaces between tokens in short expressions but may be present in
 | 
			
		||||
	longer expressions. Space before '{'. No space before ';'.
 | 
			
		||||
	No space after '*' when used to mean pointer and no space after '[' or ']'.
 | 
			
		||||
	One space between keywords and '('.
 | 
			
		||||
	</p>
 | 
			
		||||
<SPAN class=S0></SPAN><SPAN class=S5>void</SPAN><SPAN class=S0> </SPAN><SPAN class=S11>StoreConditionally</SPAN><SPAN class=S10>(</SPAN><SPAN class=S5>int</SPAN><SPAN class=S0> </SPAN><SPAN class=S11>c</SPAN><SPAN class=S10>,</SPAN><SPAN class=S0> </SPAN><SPAN class=S5>const</SPAN><SPAN class=S0> </SPAN><SPAN class=S5>char</SPAN><SPAN class=S0> </SPAN><SPAN class=S10>*</SPAN><SPAN class=S11>s</SPAN><SPAN class=S10>)</SPAN><SPAN class=S0> </SPAN><SPAN class=S10>{</SPAN><SPAN class=S0><BR>
 | 
			
		||||
        </SPAN><SPAN class=S5>if</SPAN><SPAN class=S0> </SPAN><SPAN class=S10>(</SPAN><SPAN class=S11>c</SPAN><SPAN class=S0> </SPAN><SPAN class=S10>&&</SPAN><SPAN class=S0> </SPAN><SPAN class=S10>(</SPAN><SPAN class=S11>baseSegment</SPAN><SPAN class=S0> </SPAN><SPAN class=S10>==</SPAN><SPAN class=S0> </SPAN><SPAN class=S11>trustSegment</SPAN><SPAN class=S10>[</SPAN><SPAN class=S6>"html"</SPAN><SPAN class=S10>]))</SPAN><SPAN class=S0> </SPAN><SPAN class=S10>{</SPAN><SPAN class=S0><BR>
 | 
			
		||||
                </SPAN><SPAN class=S11>baseSegment</SPAN><SPAN class=S0> </SPAN><SPAN class=S10>=</SPAN><SPAN class=S0> </SPAN><SPAN class=S11>s</SPAN><SPAN class=S10>+</SPAN><SPAN class=S4>1</SPAN><SPAN class=S10>;</SPAN><SPAN class=S0><BR>
 | 
			
		||||
                </SPAN><SPAN class=S11>Store</SPAN><SPAN class=S10>(</SPAN><SPAN class=S11>s</SPAN><SPAN class=S10>,</SPAN><SPAN class=S0> </SPAN><SPAN class=S11>baseSegment</SPAN><SPAN class=S10>,</SPAN><SPAN class=S0> </SPAN><SPAN class=S6>"html"</SPAN><SPAN class=S10>);</SPAN><SPAN class=S0><BR>
 | 
			
		||||
        </SPAN><SPAN class=S10>}</SPAN><SPAN class=S0><BR>
 | 
			
		||||
</SPAN><SPAN class=S10>}</SPAN>
 | 
			
		||||
    <h3>
 | 
			
		||||
       Names
 | 
			
		||||
    </h3>
 | 
			
		||||
	<p>
 | 
			
		||||
	Identifiers use mixed case and no underscores.
 | 
			
		||||
	Class, function and method names start with an uppercase letter and use
 | 
			
		||||
	further upper case letters to distinguish words. Variables start with a lower
 | 
			
		||||
	case letter and use upper case letters to distinguish words.
 | 
			
		||||
	Loop counters and similar variables can have simple names like 'i'.
 | 
			
		||||
	Function calls should be differentiated from method calls with an initial '::'
 | 
			
		||||
	global scope modifier.
 | 
			
		||||
	</p>
 | 
			
		||||
<SPAN class=S0></SPAN><SPAN class=S5>class</SPAN><SPAN class=S0> </SPAN><SPAN class=S11>StorageZone</SPAN><SPAN class=S0> </SPAN><SPAN class=S10>{</SPAN><SPAN class=S0><BR>
 | 
			
		||||
</SPAN><SPAN class=S5>public</SPAN><SPAN class=S10>:</SPAN><SPAN class=S0><BR>
 | 
			
		||||
        </SPAN><SPAN class=S5>void</SPAN><SPAN class=S0> </SPAN><SPAN class=S11>Store</SPAN><SPAN class=S10>(</SPAN><SPAN class=S5>const</SPAN><SPAN class=S0> </SPAN><SPAN class=S5>char</SPAN><SPAN class=S0> </SPAN><SPAN class=S10>*</SPAN><SPAN class=S11>s</SPAN><SPAN class=S10>)</SPAN><SPAN class=S0> </SPAN><SPAN class=S10>{</SPAN><SPAN class=S0><BR>
 | 
			
		||||
                </SPAN><SPAN class=S11>Media</SPAN><SPAN class=S0> </SPAN><SPAN class=S10>*</SPAN><SPAN class=S11>mediaStore</SPAN><SPAN class=S0> </SPAN><SPAN class=S10>=</SPAN><SPAN class=S0> </SPAN><SPAN class=S10>::</SPAN><SPAN class=S11>GetBaseMedia</SPAN><SPAN class=S10>(</SPAN><SPAN class=S11>zoneDefault</SPAN><SPAN class=S10>);</SPAN><SPAN class=S0><BR>
 | 
			
		||||
                </SPAN><SPAN class=S5>for</SPAN><SPAN class=S0> </SPAN><SPAN class=S10>(</SPAN><SPAN class=S5>int</SPAN><SPAN class=S0> </SPAN><SPAN class=S11>i</SPAN><SPAN class=S10>=</SPAN><SPAN class=S11>mediaStore</SPAN><SPAN class=S10>-></SPAN><SPAN class=S11>cursor</SPAN><SPAN class=S10>;</SPAN><SPAN class=S0> </SPAN><SPAN class=S11>mediaStore</SPAN><SPAN class=S10>[</SPAN><SPAN class=S11>i</SPAN><SPAN class=S10>],</SPAN><SPAN class=S0> </SPAN><SPAN class=S11>i</SPAN><SPAN class=S10>++)</SPAN><SPAN class=S0> </SPAN><SPAN class=S10>{</SPAN><SPAN class=S0><BR>
 | 
			
		||||
                        </SPAN><SPAN class=S11>mediaStore</SPAN><SPAN class=S10>-></SPAN><SPAN class=S11>Persist</SPAN><SPAN class=S10>(</SPAN><SPAN class=S11>s</SPAN><SPAN class=S10>[</SPAN><SPAN class=S11>i</SPAN><SPAN class=S10>]);</SPAN><SPAN class=S0><BR>
 | 
			
		||||
                </SPAN><SPAN class=S10>}</SPAN><SPAN class=S0><BR>
 | 
			
		||||
        </SPAN><SPAN class=S10>}</SPAN><SPAN class=S0><BR>
 | 
			
		||||
</SPAN><SPAN class=S10>};</SPAN>
 | 
			
		||||
    <h3>
 | 
			
		||||
       Submitting a lexer
 | 
			
		||||
    </h3>
 | 
			
		||||
 | 
			
		||||
	<p>Lexers have been moved to the separate <a href="https://www.scintilla.org/Lexilla.html">Lexilla</a> project
 | 
			
		||||
	which is on GitHub which may have updated instructions.</p>
 | 
			
		||||
	<p>Add an issue or pull request on the <a href="https://github.com/ScintillaOrg/lexilla">Lexilla project page</a>.</p>
 | 
			
		||||
	<p>Define all of the lexical states in a modified LexicalStyles.iface.</p>
 | 
			
		||||
	<p>Ensure there are no warnings under the compiler you use. Warnings from other compilers
 | 
			
		||||
	will be noted on the feature request.</p>
 | 
			
		||||
	<p>sc.ch is an int: do not pass this around as a char.</p>
 | 
			
		||||
	<p>The ctype functions like isalnum and isdigit only work on ASCII (0..127) and may cause
 | 
			
		||||
	undefined behaviour including crashes if used on other values. Check with IsASCII before calling is*.</p>
 | 
			
		||||
	<p>Functions, structs and classes in lexers should be in an unnamed namespace (see LexCPP)
 | 
			
		||||
	or be marked "static" so they will not leak into other lexers.</p>
 | 
			
		||||
	<p>If you copy from an existing lexer, remove any code that is not needed since it makes it
 | 
			
		||||
	more difficult to maintain and review.</p>
 | 
			
		||||
	<p>When modifying an existing lexer, try to maintain as much compatibility as possible.
 | 
			
		||||
	Do not renumber lexical styles as current client code may be built against the earlier values.</p>
 | 
			
		||||
    <h4>
 | 
			
		||||
       Properties
 | 
			
		||||
    </h4>
 | 
			
		||||
	<p>
 | 
			
		||||
	Properties provided by a new lexer should follow the naming conventions
 | 
			
		||||
	and should include a comment suitable for showing to end users.
 | 
			
		||||
	The convention is for properties that control styling to be named
 | 
			
		||||
	lexer.<lexername>.* and those that control folding to be named
 | 
			
		||||
	fold.<lexername>.*.
 | 
			
		||||
	Examples are "lexer.python.literals.binary" and "fold.haskell.imports".
 | 
			
		||||
	</p>
 | 
			
		||||
	<p>
 | 
			
		||||
	The properties "fold" and "fold.comment" are generic and can be used by
 | 
			
		||||
	any lexer.
 | 
			
		||||
	</p>
 | 
			
		||||
	<p>
 | 
			
		||||
	See LexPython for examples of properties in an object lexer and LexHTML for a functional lexer.
 | 
			
		||||
	</p>
 | 
			
		||||
  </body>
 | 
			
		||||
</html>
 | 
			
		||||
							
								
								
									
										
											BIN
										
									
								
								3rdparty/scintilla552/scintilla/doc/SciRest.jpg
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 16 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								3rdparty/scintilla552/scintilla/doc/SciTEIco.png
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 9.5 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								3rdparty/scintilla552/scintilla/doc/SciWord.jpg
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 6.0 KiB  | 
							
								
								
									
										225
									
								
								3rdparty/scintilla552/scintilla/doc/Scintilla5Migration.html
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,225 @@
 | 
			
		||||
<?xml version="1.0"?>
 | 
			
		||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 | 
			
		||||
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 | 
			
		||||
 | 
			
		||||
<html xmlns="http://www.w3.org/1999/xhtml">
 | 
			
		||||
  <head>
 | 
			
		||||
    <meta name="generator"
 | 
			
		||||
    content="HTML Tidy for Windows (vers 1st August 2002), see www.w3.org" />
 | 
			
		||||
    <meta name="generator" content="SciTE" />
 | 
			
		||||
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
 | 
			
		||||
 | 
			
		||||
    <title>Migration to Scintilla 5.x.</title>
 | 
			
		||||
 | 
			
		||||
    <style type="text/css">
 | 
			
		||||
<!--
 | 
			
		||||
/*<![CDATA[*/
 | 
			
		||||
	CODE { font-weight: bold; font-family: Menlo,Consolas,Bitstream Vera Sans Mono,Courier New,monospace; }
 | 
			
		||||
	CODE.example { background: #EBFFF7;}
 | 
			
		||||
	CODE.windows { background: #E7F0FF;}
 | 
			
		||||
	CODE.unix { background: #FFFFD7;}
 | 
			
		||||
	A:visited { color: blue; }
 | 
			
		||||
	A:hover { text-decoration: underline ! important; }
 | 
			
		||||
	A.message { text-decoration: none; font-weight: bold; font-family: Menlo,Consolas,Bitstream Vera Sans Mono,Courier New,monospace; }
 | 
			
		||||
	A.seealso { text-decoration: none; font-weight: bold; font-family: Menlo,Consolas,Bitstream Vera Sans Mono,Courier New,monospace; }
 | 
			
		||||
	A.toc { text-decoration: none; }
 | 
			
		||||
	A.jump { text-decoration: none; }
 | 
			
		||||
	LI.message { text-decoration: none; font-weight: bold; font-family: Menlo,Consolas,Bitstream Vera Sans Mono,Courier New,monospace; }
 | 
			
		||||
	H2 { background: #E0EAFF; }
 | 
			
		||||
 | 
			
		||||
	table {
 | 
			
		||||
		border: 0px;
 | 
			
		||||
		border-collapse: collapse;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
        div.console {
 | 
			
		||||
            font-family: Menlo,Consolas,Bitstream Vera Sans Mono,Courier New,monospace;
 | 
			
		||||
            color: #008000;
 | 
			
		||||
            font-weight: bold;
 | 
			
		||||
            background: #F7FCF7;
 | 
			
		||||
            border: 1px solid #C0D7C0;
 | 
			
		||||
            margin: 0.3em 3em;
 | 
			
		||||
            padding: 0.3em 0.6em;
 | 
			
		||||
        }
 | 
			
		||||
        span.console {
 | 
			
		||||
            font-family: Menlo,Consolas,Bitstream Vera Sans Mono,Courier New,monospace;
 | 
			
		||||
            color: #008000;
 | 
			
		||||
            font-weight: bold;
 | 
			
		||||
            background: #F7FCF7;
 | 
			
		||||
            border: 1px solid #C0D7C0;
 | 
			
		||||
            margin: 0.1em 0em;
 | 
			
		||||
            padding: 0.1em 0.3em;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        .name {
 | 
			
		||||
		color: #B08000;
 | 
			
		||||
        }
 | 
			
		||||
/*]]>*/
 | 
			
		||||
-->
 | 
			
		||||
    </style>
 | 
			
		||||
  </head>
 | 
			
		||||
 | 
			
		||||
  <body bgcolor="#FFFFFF" text="#000000">
 | 
			
		||||
    <table bgcolor="#000000" width="100%" cellspacing="0" cellpadding="0" border="0"
 | 
			
		||||
    summary="Banner">
 | 
			
		||||
      <tr>
 | 
			
		||||
        <td><img src="SciTEIco.png" border="3" height="64" width="64" alt="Lexilla icon" /></td>
 | 
			
		||||
 | 
			
		||||
        <td><a href="index.html"
 | 
			
		||||
        style="color:white;text-decoration:none;font-size:200%">Scintilla</a></td>
 | 
			
		||||
      </tr>
 | 
			
		||||
    </table>
 | 
			
		||||
 | 
			
		||||
    <h1>Migrating Applications to Scintilla 5 with Lexilla.</h1>
 | 
			
		||||
 | 
			
		||||
    <h2>Introduction</h2>
 | 
			
		||||
 | 
			
		||||
    <p>With Scintilla 5.0, all lexers were moved from Scintilla into the Lexilla library
 | 
			
		||||
    which is a <a href="https://www.scintilla.org/Lexilla.html">separate project</a>.
 | 
			
		||||
    Lexilla may be either a static library
 | 
			
		||||
    that is linked into an application or a shared library that is loaded at runtime.</p>
 | 
			
		||||
 | 
			
		||||
    <p>Lexilla has its own <a href="LexillaDoc.html">documentation</a>.</p>
 | 
			
		||||
 | 
			
		||||
    <h2>Basics</h2>
 | 
			
		||||
 | 
			
		||||
    <p>With Scintilla 4.x, it was most common for applications to set a lexer either by lexer name or lexer ID (<span class="name">SCLEX_...</span>) by calling
 | 
			
		||||
    <code>SCI_SETLEXERLANGUAGE("<name>")</code> or <code>SCI_SETLEXER(SCLEX_*)</code>.</p>
 | 
			
		||||
 | 
			
		||||
    <p>With Scintilla 5, the normal technique is to call Lexilla's <span class="name">CreateLexer</span> function
 | 
			
		||||
    with a lexer name, then apply the result with
 | 
			
		||||
    Scintilla's <span class="name">SCI_SETILEXER</span> method:<br />
 | 
			
		||||
    <code>ILexer5 *pLexer = CreateLexer("<name>")<br />
 | 
			
		||||
    SCI_SETILEXER(pLexer)</code></p>
 | 
			
		||||
 | 
			
		||||
    <p>Lexer names are now strongly preferred to lexer IDs and applications should switch where possible.
 | 
			
		||||
    Some lexers will not have lexer IDs but all will have names.</p>
 | 
			
		||||
 | 
			
		||||
    <p>Applications may be written in C++ or C; may contain a statically linked Lexilla library or load a Lexilla
 | 
			
		||||
    shared library; and may use the raw Lexilla API or the LexillaAccess C++ helper module.</p>
 | 
			
		||||
 | 
			
		||||
    <h2>From C++: LexillaAccess</h2>
 | 
			
		||||
 | 
			
		||||
    <p>The easiest technique is to implement in C++ using LexillaAccess and load a Lexilla shared library.</p>
 | 
			
		||||
 | 
			
		||||
    <p>LexillaAccess simplifies use of Lexilla, hides operating system differences, and allows loading
 | 
			
		||||
    multiple libraries that support the Lexilla protocol.
 | 
			
		||||
    It is defined in lexilla/access/LexillaAccess.h and the source code is in lexilla/access/LexillaAccess.cxx.
 | 
			
		||||
    Add these to the build dependencies of the project or build file.</p>
 | 
			
		||||
 | 
			
		||||
    <p>Both SciTE and TestLexers (used to test Lexilla) in lexilla/test use LexillaAccess.
 | 
			
		||||
    TestLexers is much simpler than SciTE so can be a good example to examine.</p>
 | 
			
		||||
 | 
			
		||||
    <h3>Building</h3>
 | 
			
		||||
 | 
			
		||||
    <p>Header files for lexers and for using Lexilla will be included so build files will need to reference these new locations.
 | 
			
		||||
    LexillaAccess.cxx should be added to the set of source files.
 | 
			
		||||
    In make, for example, this may appear similar to:</p>
 | 
			
		||||
 | 
			
		||||
    <code class="example">
 | 
			
		||||
    LEXILLA_DIR ?= $(srcdir)/../../lexilla<br />
 | 
			
		||||
    INCLUDES += -I $(LEXILLA_DIR)/include  -I $(LEXILLA_DIR)/access<br />
 | 
			
		||||
    SOURCES += $(LEXILLA_DIR)/access/LexillaAccess.cxx<br />
 | 
			
		||||
    </code>
 | 
			
		||||
 | 
			
		||||
    <h3>Steps in code</h3>
 | 
			
		||||
 | 
			
		||||
    <p>Set the directory to search for Lexilla when full paths aren't provided.
 | 
			
		||||
    This may be a known good system or user directory or the directory of the application
 | 
			
		||||
    depending on the operating system conventions.</p>
 | 
			
		||||
    <code class="example">
 | 
			
		||||
    std::string homeDirectory = "/Users/Me/bin";<br />
 | 
			
		||||
    Lexilla::SetDefaultDirectory(homeDirectory);<br />
 | 
			
		||||
    </code>
 | 
			
		||||
    <p>Load Lexilla or another library that implements the Lexilla protocol.
 | 
			
		||||
    The name "." means the standard name and extension (liblexilla.so / liblexilla.dylib / lexilla.dll)
 | 
			
		||||
    in the default directory so is often a good choice. Names without extensions have the operating system's preferred
 | 
			
		||||
    shared library extension added.
 | 
			
		||||
    A full path can also be used.
 | 
			
		||||
    Multiple libraries can be loaded at once by listing them separated by ';'.
 | 
			
		||||
    Something like one of these lines:</p>
 | 
			
		||||
    <code class="example">
 | 
			
		||||
    Lexilla::Load(".");<br />
 | 
			
		||||
    Lexilla::Load("lexilla;lexpeg;XMLexers");<br />
 | 
			
		||||
    Lexilla::Load("/usr/lib/liblexilla.so;/home/aardvark/bin/libpeg.so");<br />
 | 
			
		||||
    </code>
 | 
			
		||||
    <p>Choose the name of the lexer to use. This may be determined from the file extension or some other mechanism.</p>
 | 
			
		||||
    <code class="example">
 | 
			
		||||
    std::string lexerName = "cpp";<br />
 | 
			
		||||
    </code>
 | 
			
		||||
    <p>Create a lexer and apply it to a Scintilla instance.</p>
 | 
			
		||||
    <code class="example">
 | 
			
		||||
    Scintilla::ILexer5 *pLexer = Lexilla::MakeLexer(lexerName);<br />
 | 
			
		||||
    CallScintilla(scintilla, SCI_SETILEXER, 0, pLexer);<br />
 | 
			
		||||
    </code>
 | 
			
		||||
    <p>Some applications may use integer lexer IDs from SciLexer.h with an "SCLEX_" prefix like
 | 
			
		||||
    <span class="name">SCLEX_CPP</span>.
 | 
			
		||||
    These can be converted to a name with NameFromID before passing to MakeLexer.</p>
 | 
			
		||||
    <code class="example">
 | 
			
		||||
    Scintilla::ILexer5 *pLexer = Lexilla::MakeLexer(Lexilla::NameFromID(SCLEX_CPP));<br />
 | 
			
		||||
    </code>
 | 
			
		||||
 | 
			
		||||
    <h2>From C: Lexilla.h and system APIs</h2>
 | 
			
		||||
 | 
			
		||||
    <p>Applications written in C or C++ can use the raw Lexilla API which is defined in lexilla/include/Lexilla.h.
 | 
			
		||||
    Since the ILexer interface is difficult to define for C, C applications should treat the result of CreateLexer as a
 | 
			
		||||
    <code>void*</code> that is simply passed through to Scintilla.
 | 
			
		||||
    If there is a need to call methods on the lexer
 | 
			
		||||
    before passing it to Scintilla then it would be best to use some C++ code although it may be possible
 | 
			
		||||
    for a sufficiently motivated developer to call methods on the lexer from C.</p>
 | 
			
		||||
 | 
			
		||||
    <p>There is an example for using Lexilla from C in examples/CheckLexilla.</p>
 | 
			
		||||
 | 
			
		||||
    <h3>Steps in code</h3>
 | 
			
		||||
 | 
			
		||||
    <p>Include the system header for loading shared objects.
 | 
			
		||||
    This depends on the operating system: <windows.h> for <code class="windows">Windows</code> or
 | 
			
		||||
    <dlfcn.h> for <code class="unix">Unix</code>.</p>
 | 
			
		||||
    <code class="windows">#include <windows.h><br /></code>
 | 
			
		||||
    <code class="unix">#include <dlfcn.h><br /></code>
 | 
			
		||||
    <p>Define a path to the Lexilla shared library.
 | 
			
		||||
    This may be a known good system or user directory or the directory of the application
 | 
			
		||||
    depending on the operating system conventions.</p>
 | 
			
		||||
    <code class="example">
 | 
			
		||||
    #include "Lexilla.h"<br />
 | 
			
		||||
    char szLexillaPath[] = "../../bin/" LEXILLA_LIB LEXILLA_EXTENSION;<br />
 | 
			
		||||
    </code>
 | 
			
		||||
    <p>Load Lexilla using the appropriate operating system function: either LoadLibrary on Windows or
 | 
			
		||||
    dlopen on Unix.</p>
 | 
			
		||||
    <code class="windows">HMODULE lexillaLibrary = LoadLibrary(szLexillaPath);<br /></code>
 | 
			
		||||
    <code class="unix">void *lexillaLibrary = dlopen(szLexillaPath, RTLD_LAZY);<br /></code>
 | 
			
		||||
    <p>Find the CreateLexer function inside the shared library using either GetProcAddress on Windows or
 | 
			
		||||
    dlsym on Unix.</p>
 | 
			
		||||
    <code class="windows">FARPROC fun = GetProcAddress(lexillaLibrary, LEXILLA_CREATELEXER);<br /></code>
 | 
			
		||||
    <code class="unix">void *fun = dlsym(lexillaLibrary, LEXILLA_CREATELEXER);<br /></code>
 | 
			
		||||
    <p>Cast this to the correct type.</p>
 | 
			
		||||
    <code class="example">CreateLexerFn lexerCreate = (CreateLexerFn)(fun);<br /></code>
 | 
			
		||||
    <p>Choose the name of the lexer to use. This may be determined from the file extension or some other mechanism.</p>
 | 
			
		||||
    <code class="example">char lexerName[] = "cpp";<br /></code>
 | 
			
		||||
    <p>Create a lexer and apply it to a Scintilla instance.</p>
 | 
			
		||||
    <code class="example">
 | 
			
		||||
    void *pLexer = lexerCreate(lexerName);<br />
 | 
			
		||||
    CallScintilla(scintilla, SCI_SETILEXER, 0, pLexer);<br />
 | 
			
		||||
    </code>
 | 
			
		||||
 | 
			
		||||
    <p>If the application uses integer lexer IDs then find the <span class="name">LEXILLA_LEXERNAMEFROMID</span>
 | 
			
		||||
    function, cast to <span class="name">LexerNameFromIDFn</span> then call with the ID before using the result to call
 | 
			
		||||
    <span class="name">CreateLexer</span>.</p>
 | 
			
		||||
    <code class="windows">FARPROC funName = GetProcAddress(lexillaLibrary, LEXILLA_LEXERNAMEFROMID);<br /></code>
 | 
			
		||||
    <code class="unix">void *funName = dlsym(lexillaLibrary, LEXILLA_LEXERNAMEFROMID);<br /></code>
 | 
			
		||||
    <code class="example">LexerNameFromIDFn lexerNameFromID = (LexerNameFromIDFn)(funName);<br /></code>
 | 
			
		||||
    <code class="example">const char *name = lexerNameFromID(lexerID);<br /></code>
 | 
			
		||||
 | 
			
		||||
    <h2>Static linking</h2>
 | 
			
		||||
 | 
			
		||||
    <p>Lexilla may be linked directly into an application or built into a static library that is then
 | 
			
		||||
    linked into the application, then there is no need to load a shared library and
 | 
			
		||||
    <span class="name">CreateLexer</span> can be directly called.</p>
 | 
			
		||||
 | 
			
		||||
    <p>It is possible to link Lexilla into an application and then dynamically load other
 | 
			
		||||
    shared libraries that implement the Lexilla protocol.
 | 
			
		||||
    SciTE on Windows implements this as an option when built with STATIC_BUILD defined.</p>
 | 
			
		||||
 | 
			
		||||
  </body>
 | 
			
		||||
</html>
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										10344
									
								
								3rdparty/scintilla552/scintilla/doc/ScintillaDoc.html
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										71
									
								
								3rdparty/scintilla552/scintilla/doc/ScintillaDownload.html
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,71 @@
 | 
			
		||||
<?xml version="1.0"?>
 | 
			
		||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 | 
			
		||||
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 | 
			
		||||
<html xmlns="http://www.w3.org/1999/xhtml">
 | 
			
		||||
  <head>
 | 
			
		||||
    <meta name="generator" content="HTML Tidy, see www.w3.org" />
 | 
			
		||||
    <meta name="generator" content="SciTE" />
 | 
			
		||||
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
 | 
			
		||||
    <meta name="viewport" content="width=device-width, initial-scale=1" />
 | 
			
		||||
    <title>
 | 
			
		||||
      Download Scintilla
 | 
			
		||||
    </title>
 | 
			
		||||
  </head>
 | 
			
		||||
  <body bgcolor="#FFFFFF" text="#000000">
 | 
			
		||||
    <table bgcolor="#000000" width="100%" cellspacing="0" cellpadding="0" border="0">
 | 
			
		||||
      <tr>
 | 
			
		||||
        <td>
 | 
			
		||||
          <img src="SciTEIco.png" border="3" height="64" width="64" alt="Scintilla icon" />
 | 
			
		||||
        </td>
 | 
			
		||||
        <td>
 | 
			
		||||
          <a href="index.html" style="color:white;text-decoration:none"><font size="5">Download
 | 
			
		||||
          Scintilla</font></a>
 | 
			
		||||
        </td>
 | 
			
		||||
      </tr>
 | 
			
		||||
    </table>
 | 
			
		||||
    <table bgcolor="#CCCCCC" width="100%" cellspacing="0" cellpadding="8" border="0">
 | 
			
		||||
      <tr>
 | 
			
		||||
        <td>
 | 
			
		||||
          <font size="4"> <a href="https://www.scintilla.org/scintilla552.zip">
 | 
			
		||||
	Windows</a>  
 | 
			
		||||
	<a href="https://www.scintilla.org/scintilla552.tgz">
 | 
			
		||||
          GTK/Linux</a>  
 | 
			
		||||
	</font>
 | 
			
		||||
        </td>
 | 
			
		||||
      </tr>
 | 
			
		||||
    </table>
 | 
			
		||||
    <h2>
 | 
			
		||||
       Download.
 | 
			
		||||
    </h2>
 | 
			
		||||
    <p>
 | 
			
		||||
       The <a href="License.txt">license</a> for using Scintilla or SciTE is similar to that of Python
 | 
			
		||||
      containing very few restrictions.
 | 
			
		||||
    </p>
 | 
			
		||||
    <h3>
 | 
			
		||||
       Release 5.5.2
 | 
			
		||||
    </h3>
 | 
			
		||||
    <h4>
 | 
			
		||||
       Source Code
 | 
			
		||||
    </h4>
 | 
			
		||||
       The source code package contains all of the source code for Scintilla but no binary
 | 
			
		||||
	executable code and is available in
 | 
			
		||||
       <ul>
 | 
			
		||||
       <li><a href="https://www.scintilla.org/scintilla552.zip">zip format</a> (1.8M) commonly used on Windows</li>
 | 
			
		||||
       <li><a href="https://www.scintilla.org/scintilla552.tgz">tgz format</a> (1.7M) commonly used on Linux and compatible operating systems</li>
 | 
			
		||||
       </ul>
 | 
			
		||||
       Instructions for building on both Windows and Linux are included in the readme file.
 | 
			
		||||
    <h4>
 | 
			
		||||
       Windows Executable Code
 | 
			
		||||
    </h4>
 | 
			
		||||
       There is no download available containing only the Scintilla DLL.
 | 
			
		||||
       However, it is included in the <a href="SciTEDownload.html">SciTE
 | 
			
		||||
       executable full download</a> as Scintilla.DLL.
 | 
			
		||||
    <p>
 | 
			
		||||
       <a href="SciTEDownload.html">SciTE</a> is a good demonstration of Scintilla.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
       Previous versions can be downloaded from the <a href="ScintillaHistory.html">history
 | 
			
		||||
      page</a>.
 | 
			
		||||
    </p>
 | 
			
		||||
  </body>
 | 
			
		||||
</html>
 | 
			
		||||
							
								
								
									
										14197
									
								
								3rdparty/scintilla552/scintilla/doc/ScintillaHistory.html
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										
											BIN
										
									
								
								3rdparty/scintilla552/scintilla/doc/ScintillaLogo.png
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 192 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								3rdparty/scintilla552/scintilla/doc/ScintillaLogo2x.png
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 211 KiB  | 
							
								
								
									
										570
									
								
								3rdparty/scintilla552/scintilla/doc/ScintillaRelated.html
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,570 @@
 | 
			
		||||
<?xml version="1.0"?>
 | 
			
		||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 | 
			
		||||
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 | 
			
		||||
<html xmlns="http://www.w3.org/1999/xhtml">
 | 
			
		||||
  <head>
 | 
			
		||||
    <meta name="generator" content="HTML Tidy, see www.w3.org" />
 | 
			
		||||
    <meta name="generator" content="SciTE" />
 | 
			
		||||
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
 | 
			
		||||
    <meta name="viewport" content="width=device-width, initial-scale=1" />
 | 
			
		||||
    <title>
 | 
			
		||||
      Scintilla and SciTE Related Sites
 | 
			
		||||
    </title>
 | 
			
		||||
    <link rel="canonical" href="https://scintilla.org/ScintillaRelated.html" />
 | 
			
		||||
  </head>
 | 
			
		||||
  <body bgcolor="#FFFFFF" text="#000000">
 | 
			
		||||
    <table bgcolor="#000000" width="100%" cellspacing="0" cellpadding="0" border="0">
 | 
			
		||||
      <tr>
 | 
			
		||||
        <td>
 | 
			
		||||
          <img src="SciTEIco.png" border="3" height="64" width="64" alt="Scintilla icon" />
 | 
			
		||||
        </td>
 | 
			
		||||
        <td>
 | 
			
		||||
          <a href="index.html" style="color:white;text-decoration:none"><font size="5">Scintilla
 | 
			
		||||
          and SciTE</font></a>
 | 
			
		||||
        </td>
 | 
			
		||||
      </tr>
 | 
			
		||||
    </table>
 | 
			
		||||
    <h2>
 | 
			
		||||
       Related Sites
 | 
			
		||||
    </h2>
 | 
			
		||||
    <h3>
 | 
			
		||||
       Ports and Bindings of Scintilla
 | 
			
		||||
    </h3>
 | 
			
		||||
    <p>
 | 
			
		||||
	<a href="https://github.com/mneuroth/SciTEQt">SciTEQt</a>
 | 
			
		||||
	is a port of the SciTE editor to the Qt QML/Quick platform.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
	<a href="https://orbitalquark.github.io/scinterm">Scinterm</a>
 | 
			
		||||
	is an implementation of Scintilla for the ncurses platform.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
	<a href="http://www.morphos-team.net/releasenotes/3.0">Scintilla.mcc</a>
 | 
			
		||||
	is a port to MorphOS.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
	<a href="https://metacpan.org/pod/Wx::Scintilla">Wx::Scintilla</a>
 | 
			
		||||
	is a Perl Binding for Scintilla on wxWidgets.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
	<a href="http://codebrainz.github.com/GtkScintilla/">GtkScintilla</a>
 | 
			
		||||
	is a GTK+ widget which enables easily adding a powerful
 | 
			
		||||
	source code editor to your applications. Harnessing the abilities
 | 
			
		||||
	of the Scintilla editing component, GtkScintilla adds a familiar
 | 
			
		||||
	GTK+/GObject API, making the widget comfortable to use in
 | 
			
		||||
	these programs, using all the typical GObject conventions.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
	<a href="http://www.mewsoft.com/forums/source-code-editor-activex-control-released-scintilla-activex-wrapper-control&action=ViewTopic&Topic=1494&Forum=1&Page=1&Period=0a&Lang=English">Editawy</a>
 | 
			
		||||
	is an ActiveX Control wrapper that support all Scintilla functions and additional high level functions.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
	<a href="http://sourceforge.net/projects/jintilla/">Jintilla</a>
 | 
			
		||||
	is a JNI wrapper that allows Scintilla to be used in Java with
 | 
			
		||||
	both SWT and AWT.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
	<a href="http://delphisci.sourceforge.net/">Delphi Scintilla Interface Components</a>
 | 
			
		||||
	is a FREE collection of components that makes it easy to use the
 | 
			
		||||
         Scintilla source code editing control from within Delphi and C++ Builder.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
	<a href="http://wxcode.sourceforge.net/showcomp.php?name=wxStEdit">wxStEdit</a>
 | 
			
		||||
	is a library and sample program that provides extra features over wxStyledTextControl.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
	<a href="http://www.naughter.com/scintilla.html">CScintillaCtrl, CScintillaView & CScintillaDoc</a>
 | 
			
		||||
	are freeware MFC classes to encapsulate Scintilla.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
	<a href="http://sourceforge.net/projects/scide/">ScintillaNet
 | 
			
		||||
	</a> is an encapsulation of Scintilla for use within the .NET framework.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
	<a href="https://riverbankcomputing.com/software/qscintilla/intro">QScintilla
 | 
			
		||||
	</a> is a port of Scintilla to the Qt platform. It has a similar license to Qt: GPL for use in
 | 
			
		||||
	free software and commercial for use in close-source applications.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
	<a href="http://www.adapower.com/gwindows/">
 | 
			
		||||
	GWindows</a> is a Win32 RAD GUI Framework for Ada 95 that
 | 
			
		||||
	includes a binding of Scintilla.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
	<a href="http://scintilla.cvs.sourceforge.net/viewvc/scintilla/ScintillaVB/">ScintillaVB</a>
 | 
			
		||||
	is an ActiveX control written in VB that encapsulates Scintilla.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
	<a href="http://savannah.nongnu.org/projects/fxscintilla/">FXScintilla
 | 
			
		||||
	</a> is a port of Scintilla to the FOX platform. FXRuby includes Ruby
 | 
			
		||||
	bindings for FXScintilla.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
	<a href="http://www.pnotepad.org/scintilla/">Delphi wrapper</a> for
 | 
			
		||||
	Scintilla which is also usable from Borland C++ Builder.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
       The wxStyledTextCtrl editor component  in the
 | 
			
		||||
       <a href="http://www.wxwidgets.org/">wxWidgets</a> cross platform toolkit is based on Scintilla.<br />
 | 
			
		||||
       A Python binding for wxStyledTextCtrl is part of <a href="http://wxpython.org/">wxPython</a>.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
	<a href="http://sourceforge.net/projects/moleskine/">gtkscintilla</a>
 | 
			
		||||
	is an alternative GTK class implementation for scintilla.
 | 
			
		||||
	This implementation acts more like a Gtk+ object, with many methods rather
 | 
			
		||||
	than just scintilla_send_message() and is available as a shared library.
 | 
			
		||||
	This implementation works with GTK 1.x.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
	<a href="http://sourceforge.net/projects/moleskine/">gtkscintilla2</a>
 | 
			
		||||
	is an alternative GTK class implementation for scintilla
 | 
			
		||||
	similar to the above, but for GTK 2.x.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
	<a href="http://sourceforge.net/projects/moleskine/">pygtkscintilla</a>
 | 
			
		||||
	is a Python binding for gtk1.x scintilla that uses
 | 
			
		||||
	gtkscintilla instead of the default GTK class.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
	<a href="http://scintilla.cvs.sourceforge.net/viewvc/scintilla/scintillactrl/">ScintillaCtrl</a>
 | 
			
		||||
	is an unmaintained ActiveX control wrapper for Scintilla.
 | 
			
		||||
    </p>
 | 
			
		||||
    <h3>
 | 
			
		||||
       Projects using Scintilla
 | 
			
		||||
    </h3>
 | 
			
		||||
    <p>
 | 
			
		||||
	<a href="https://github.com/dail8859/NotepadNext">Notepad Next</a>
 | 
			
		||||
	is a cross-platform reimplementation of Notepad++.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
	<a href="https://github.com/dolphinsmalltalk/Dolphin">Dolphin Smalltalk</a>
 | 
			
		||||
	is an implementation of the Smalltalk language for Windows.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
	<a href="https://github.com/simdsoft/x-studio/blob/master/README_EN.md">x-studio</a>
 | 
			
		||||
	is a powerful and very lightweight developer IDE that supports Lua debugging.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
	<a href="https://sourceforge.net/projects/autogui/">Adventure IDE</a>
 | 
			
		||||
	is a general-purpose IDE and lightweight text editor for Windows.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
	<a href="https://www.javacardos.com/tools">JCIDE</a>
 | 
			
		||||
	is an IDE designed specifically for the Java Card programming language.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
	<a href="http://www.microissuer.com/?p=176">Snooper</a>
 | 
			
		||||
	is an IDE for the smart card industry.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
	<a href="https://github.com/martinrotter/textilosaurus">Textilosaurus</a>
 | 
			
		||||
	is simple cross-platform UTF-8 text editor based on Qt and Scintilla.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
	<a href="http://stefanstools.sourceforge.net/BowPad.html">BowPad</a>
 | 
			
		||||
	is a small and fast text editor with a modern ribbon user interface (Windows7 or later).
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
	<a href="http://studio.zerobrane.com">ZeroBrane Studio Lua IDE</a>
 | 
			
		||||
	is a lightweight Lua IDE with code completion, syntax highlighting, live
 | 
			
		||||
	coding, remote debugger, and code analyzer (Windows, OSX, and Linux).
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
	<a href="http://www.xml-buddy.com/">XML Validator Buddy</a>
 | 
			
		||||
	is an XML/JSON editor and XML validator for Windows.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
	<a href="http://sciteco.sf.net/">SciTECO</a>
 | 
			
		||||
	is an advanced TECO dialect and interactive screen editor based on Scintilla.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
	<a href="http://www.qgis.org/">Quantum GIS</a>
 | 
			
		||||
	is a user friendly Open Source Geographic Information System (GIS).
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
	<a href="https://gitorious.org/qgrinui">QGrinUI</a>
 | 
			
		||||
	searches for a regex within all relevant files in a directory and shows matches using
 | 
			
		||||
	SciTE through the director interface.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
	<a href="https://orbitalquark.github.io/textadept">Textadept</a>
 | 
			
		||||
	is a remarkably extensible cross-platform text editor for programmers written (mostly) in
 | 
			
		||||
	Lua using LPeg to handle the lexers.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
	<a href="https://orbitalquark.github.io/scintillua">Scintillua</a>
 | 
			
		||||
	is an external Scintilla lexer that uses Lua LPeg lexers for lexing.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
	<a href="http://www.morphos-team.net/releasenotes/3.0">Scribble</a>
 | 
			
		||||
	is a text editor included in MorphOS.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
	<a href="http://mysqlworkbench.org/">MySQL Workbench</a>
 | 
			
		||||
	is a cross-platform, visual database design, sql coding and administration tool.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
	<a href="http://liveditor.com/index.php">LIVEditor</a>
 | 
			
		||||
	is for web front end coders editing html/css/js code.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
	<a href="http://padre.perlide.org/">Padre</a>
 | 
			
		||||
	is a wxWidgets-based Perl IDE.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
	<a href="http://www.manoscoder.gr/wintools/viewtopic.php?f=20&t=84">CoderStudio</a>
 | 
			
		||||
	is an IDE for plain C and Assembly programming similar to Visual Studio.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
	<a href="http://www.sparxsystems.com/products/ea/index.html">Enterprise Architect</a>
 | 
			
		||||
	is a UML 2.1 analysis and design tool.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
	<a href="https://launchpad.net/codeassistor">The CodeAssistor Editor</a>
 | 
			
		||||
	is a small and simple source code editor for MacOSX, Windows, and GTK/Linux.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
	<a href="http://www.topwizprogramming.com/freecode_pbeditor.html">PBEditor</a>
 | 
			
		||||
	is a text editor for PowerBuilder.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
	<a href="https://www.cryptool.org/en/">CrypTool</a>
 | 
			
		||||
	is an application for applying and analyzing cryptographic algorithms.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
	<a href="http://code.google.com/p/fxite/">FXiTe</a>
 | 
			
		||||
	is an advanced cross-platform text editor built with the Fox GUI toolkit
 | 
			
		||||
	and the FXScintilla text widget.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
	<a href="http://www.jabaco.org/">Jabaco</a>
 | 
			
		||||
	is a simple programming language with a Visual Basic like syntax.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
	<a href="http://www.daansystems.com/lispide/">LispIDE</a>
 | 
			
		||||
	is a basic Lisp editor for Windows 2000, XP and Vista.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
	<a href="https://www.assembla.com/wiki/show/FileWorkbench">File Workbench:</a>
 | 
			
		||||
	a file manager / text editor environment with Squirrel scripting.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
	<a href="http://kephra.sf.net">Kephra</a>
 | 
			
		||||
	is a free, easy and comfortable cross-platform editor written in Perl.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
	<a href="http://universalindent.sourceforge.net/">UniversalIndentGUI</a>
 | 
			
		||||
	is a cross platform GUI for several code formatters, beautifiers and indenters
 | 
			
		||||
	like GreatCode, AStyle (Artistic Styler), GNU Indent, BCPP and so on.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
	<a href="http://elementaryreports.com/">Elementary Reports</a>
 | 
			
		||||
	is designed to reduce the time to compose detailed and professional primary school reports.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
	<a href="http://stepaheadsoftware.com/products/vcw/vcw.htm">Visual Classworks</a>
 | 
			
		||||
	Visual class modeling and coding in C++ via 'live'
 | 
			
		||||
	UML style class diagrams.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
	<a href="http://stepaheadsoftware.com/products/javelin/javelin.htm">Javelin</a>
 | 
			
		||||
	Visual Class modeling and coding in Java via 'live' UML style
 | 
			
		||||
	class diagrams.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
	The <a href="http://www.adobe.com/devnet/bridge.html">ExtendScript Toolkit</a>
 | 
			
		||||
	is a development and debugging tool for JavaScript
 | 
			
		||||
	scripts included with Adobe CS3 Suites.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
	<a href="https://tortoisesvn.net/">TortoiseSVN</a>
 | 
			
		||||
	is a Windows GUI client for the Subversion source control software.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
	<a href="http://www.geany.org/">Geany</a>
 | 
			
		||||
	is a small and fast GTK2 based IDE, which has only a few dependencies from other packages.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
	<a href="http://www.elliecomputing.com/products/merge_overview.asp">ECMerge</a>
 | 
			
		||||
	is a commercial graphical and batch diff / merge tool for Windows, Linux and Solaris
 | 
			
		||||
	(aiming to target all major platforms).
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
	<a href="http://pype.sourceforge.net/">PyPE</a>
 | 
			
		||||
	is an editor written in Python with the wxPython GUI toolkit.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
	<a href="http://home.mweb.co.za/sd/sdonovan/sciboo.html">Sciboo</a>
 | 
			
		||||
	is an editor based on ScintillaNET.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
	<a href="https://sourceforge.net/projects/tsct/">The Scite Config Tool</a>
 | 
			
		||||
	is a graphical user interface for changing SciTE properties files.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
	<a href="http://totalcmd.net/plugring/SciLister.html">Scintilla Lister</a>
 | 
			
		||||
	is a plugin for Total Commander allowing viewing all documents with syntax highlighting
 | 
			
		||||
	inside Total Commander.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
	<a href="http://chscite.sourceforge.net">ChSciTE</a>
 | 
			
		||||
	is a free IDE for C/C++ interpreter Ch. It runs cross platform.
 | 
			
		||||
	Ch is for cross-platform scripting, shell
 | 
			
		||||
	programming, 2D/3D plotting, numerical computing, and embedded
 | 
			
		||||
	scripting.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
       <a href="http://codeblocks.org/">
 | 
			
		||||
       Code::Blocks</a> is an open source, cross platform free C++ IDE.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
       <a href="https://notepad-plus-plus.org/">
 | 
			
		||||
       Notepad++</a> is a free source code editor under Windows.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
       <a href="http://gubed.mccabe.nu/">
 | 
			
		||||
       Gubed</a> is a cross platform program to debug PHP scripts.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
       <a href="http://www.lesser-software.com/lswdnl.htm">
 | 
			
		||||
       LSW DotNet-Lab</a> is a development environment for the .NET platform.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
       <a href="https://github.com/dtrebilco/glintercept">
 | 
			
		||||
       GLIntercept</a> is an OpenGL function call interceptor that uses SciTE as a
 | 
			
		||||
       run-time shader editor.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
       <a href="http://wxguide.sourceforge.net/indexedit.html">
 | 
			
		||||
       wyoEditor</a> is "A nice editor with a well designed and consistent look and feel".
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
       <a href="http://www.flos-freeware.ch/notepad2.html">
 | 
			
		||||
       Notepad2</a> is "Yet another Notepad replacement".
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
       <a href="http://pycrash.sourceforge.net/index.php?type=3">
 | 
			
		||||
       PyCrash Viewer</a> can examine crash dumps of Python programs.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
       <a href="http://www.cabletest.com/en/featured_products_MPT2.aspx">
 | 
			
		||||
       MPT series Wire Analyzers</a> use Scintilla and SciTE.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
       <a href="http://www.mygenerationsoftware.com">MyGeneration</a>
 | 
			
		||||
	is a .NET based code generator.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
       <a href="http://cssed.sourceforge.net">CSSED</a>
 | 
			
		||||
	is a tiny GTK2 CSS editor.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
       <a href="http://wxghostscript.sourceforge.net/">
 | 
			
		||||
        IdePS</a>
 | 
			
		||||
	is a free Integrated Development Environment for PostScript
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
       <a href="http://cute.sourceforge.net/">
 | 
			
		||||
        CUTE</a>
 | 
			
		||||
	is a user-friendly source code editor easily extended using Python.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
       <a href="http://www.spaceblue.com/products/venis/index.html">
 | 
			
		||||
        Venis IX</a>,
 | 
			
		||||
	the Visual Environment for NSIS (Nullsoft Scriptable Install System).
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
       <a href="http://eric-ide.python-projects.org/">Eric3</a>
 | 
			
		||||
       is a Python IDE written using PyQt and QScintilla.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
       <a href="http://www.computersciencelab.com/CppIde.htm">CPPIDE</a>
 | 
			
		||||
       is part of some commercial high-school oriented programming course software.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
       <a href="http://www.blazingtools.com/is.html">Instant Source</a>
 | 
			
		||||
       is a commercial tool for looking at the HTML on web sites.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
       <a href="http://www.codejoin.com/radon/">RAD.On++</a>
 | 
			
		||||
       is a free C++ Rapid Application Developer for Win32.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
       <a href="http://wxbasic.sourceforge.net/">wxBasic</a> is an open source
 | 
			
		||||
       Basic interpreter that uses the wxWidgets toolkit. A small IDE is under construction.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
       <a href="http://visual-mingw.sourceforge.net/">Visual MinGW</a> is an
 | 
			
		||||
       IDE for the MinGW compiler system.This runs on Windows with gcc.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
       The <a href="http://archaeopteryx.com/">Wing IDE</a> is a
 | 
			
		||||
       complete integrated development environment for the Python programming
 | 
			
		||||
       language.
 | 
			
		||||
       Available on Intel based Linux and Windows and on MacOS X through XDarwin.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
	<a href="http://www.spheredev.org/">Sphere</a>
 | 
			
		||||
	is 2D RPG engine with a development environment.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
	<a href="http://gaiacrtn.free.fr/practical-ruby/index.html">Practical Ruby</a>
 | 
			
		||||
	is an IDE for Ruby on Windows.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
	<a href="http://www.gnuenterprise.org/">GNUe</a>
 | 
			
		||||
	is a suite of tools and applications for solving the needs of the enterprise.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
	<a href="http://silvercity.sourceforge.net/">SilverCity</a>
 | 
			
		||||
	is a lexing package that can provide lexical analysis for over 20 programming
 | 
			
		||||
	and markup languages.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
	<a href="http://hapdebugger.sourceforge.net/">HAP Python Remote Debugger</a>
 | 
			
		||||
	is a Python debugger that can run on one Windows machine debugging a Python program running
 | 
			
		||||
	on either the same or another machine.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
	<a href="http://sourceforge.net/projects/pycrust/">PyCrust</a> is an interactive
 | 
			
		||||
	Python shell based on wxPython.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
	<a href="http://www.activestate.com/Products/Komodo/">Komodo</a>
 | 
			
		||||
	is a cross-platform multi-language development environment built
 | 
			
		||||
	as an application of Mozilla.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
	<a href="http://llt.chez-alice.fr/">Filerx</a>
 | 
			
		||||
	is a project manager for SciTE on Windows.
 | 
			
		||||
	Open source and includes an implementation of SciTE's Director interface so
 | 
			
		||||
	will be of interest to others wanting to control SciTE.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
	<a href="http://anjuta.org/">Anjuta</a>
 | 
			
		||||
	is an open source C/C++ IDE for Linux/GNOME.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
       A <a href="https://www.burgaud.com">version of SciTE for Win32</a> enhanced
 | 
			
		||||
       with a tab control to allow easy movement between buffers.
 | 
			
		||||
       Go to the "Goodies" area on this site.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
       <a href="http://suneido.com">
 | 
			
		||||
       Suneido</a> is an integrated application platform currently available for Win32 that includes an
 | 
			
		||||
       object-oriented language, client-server database, and user interface and reporting frameworks.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
       <a href="http://www.allitis.com/agast/home.html">
 | 
			
		||||
       Agast</a> is an authoring system for adventure games which includes
 | 
			
		||||
       a customised version of SciTE.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
       <a href="http://boa-constructor.sourceforge.net/">Boa Constructor</a> is a RAD GUI
 | 
			
		||||
       Building IDE for the wxWidgets cross platform platform. Written using wxPython with the
 | 
			
		||||
       wxStyledTextCtrl used as its editor.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
       <a href="https://www.python.org/download/windows/">PythonWin</a>, a Win32 IDE for Python, uses
 | 
			
		||||
      Scintilla for both its editing and interactive windows.
 | 
			
		||||
    </p>
 | 
			
		||||
    <h3>
 | 
			
		||||
       Editing Components
 | 
			
		||||
    </h3>
 | 
			
		||||
    <p>
 | 
			
		||||
       <a href="https://codemirror.net/">CodeMirror</a>
 | 
			
		||||
       is a versatile text editor implemented in JavaScript for the browser.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
       <a href="http://www.soft-gems.net/index.php/controls/unicodeeditor-formerly-unicode-syntax-editor">UniCodeEditor</a>
 | 
			
		||||
       is a Unicode aware syntax editor control for Delphi and C++ Builder.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
       <a href="https://wiki.gnome.org/Projects/GtkSourceView">GtkSourceView</a>
 | 
			
		||||
	is a text widget that extends the standard GTK+ 2.x text widget and improves it
 | 
			
		||||
	by implementing syntax highlighting and other features typical of a source editor.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
       <a href="http://aeditor.rubyforge.org/">AEditor</a>
 | 
			
		||||
       is a free source code editing component implemented in Ruby.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
       <a href="http://www.actiprosoftware.com/products/controls/wpf/syntaxeditor">SyntaxEditor</a>
 | 
			
		||||
       is a commercial native .Net source code editing component.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
       <a href="http://jedit.sourceforge.net/">jEdit</a> is a good Open Source syntax colouring
 | 
			
		||||
      editor written in and for Java.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
       <a href="http://www.gtk.org/">GTK+</a>, the GIMP Toolkit, contains a rich text editing
 | 
			
		||||
      widget.<br />
 | 
			
		||||
       <a href="https://wiki.gnome.org/Apps/Gedit">Gedit</a> is an editor for GTK+/GNOME.<br />
 | 
			
		||||
    <!--
 | 
			
		||||
       <a href="http://www.daimi.au.dk/~mailund/gtk.html">GtkEditor</a> is a source code editing
 | 
			
		||||
      widget based on the GTK+ text widget.<br />
 | 
			
		||||
       <a href="http://gide.gdev.net/">gIDE</a> is an IDE based on GTK+.<br />
 | 
			
		||||
       <a href="http://www.bahnhof.se/~mikeh/linux_software.html">GtkExText</a> is a source code
 | 
			
		||||
      oriented text widget for GTK+.
 | 
			
		||||
    -->
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
       <a href="http://www.codeguru.com/">CodeGuru</a> has source code for several Win32 MFC based
 | 
			
		||||
      editors.
 | 
			
		||||
    </p>
 | 
			
		||||
    <a href="http://sourceforge.net/projects/synedit/">SynEdit</a> is a Win32 edit control written
 | 
			
		||||
    in Delphi.
 | 
			
		||||
    <p>
 | 
			
		||||
       <a href="http://www.tetradyne.com/srcvwax.htm">SourceView</a> is a commercial editing
 | 
			
		||||
      component for Win32.
 | 
			
		||||
    </p>
 | 
			
		||||
    <h3>
 | 
			
		||||
       Documents
 | 
			
		||||
    </h3>
 | 
			
		||||
    <p>
 | 
			
		||||
       <a href="http://www.finseth.com/craft/">The Craft of Text Editing</a>
 | 
			
		||||
       describes how EMACS works, <i>Craig A. Finseth</i>
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
       <a href="http://www.cs.cmu.edu/~wjh/papers/byte.html">Data Structures in a Bit-Mapped Text
 | 
			
		||||
      Editor</a>, <i>Wilfred J. Hanson</i>, Byte January 1987
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
       Text Editors: Algorithms and Architectures, <i>Ray Valdés</i>, Dr. Dobbs Journal
 | 
			
		||||
      April 1993
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
       Macintosh User Interface Guidelines and TextEdit chapters of Inside Macintosh
 | 
			
		||||
    </p>
 | 
			
		||||
    <h3>
 | 
			
		||||
       Development Tools
 | 
			
		||||
    </h3>
 | 
			
		||||
    <p>
 | 
			
		||||
       Scintilla and SciTE were developed using the
 | 
			
		||||
       <a href="http://www.mingw.org/">Mingw version of GCC</a>.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
       <a href="http://astyle.sourceforge.net/">AStyle</a> is a source code formatter for C++ and
 | 
			
		||||
      Java code. SciTE has an Indent command defined for .cxx files that uses AStyle.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
       <a href="http://winmerge.org/">WinMerge</a> is an interactive diff / merge
 | 
			
		||||
       for Windows. I prefer code submissions in the form of source files rather than diffs and then run
 | 
			
		||||
       WinMerge over the files to work out how to merge.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
       <a href="https://www.python.org">Python</a> is my favourite programming language. Scintilla
 | 
			
		||||
      was started after I tried to improve the editor built into <a
 | 
			
		||||
      href="https://www.python.org/download/windows/">PythonWin</a>, but was frustrated by the limitations of
 | 
			
		||||
      the Windows Richedit control which PythonWin used.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
       <a href="http://www.cse.yorku.ca/~oz/">regex</a> is a public domain
 | 
			
		||||
       implementation of regular expression pattern matching used in Scintilla.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
       Inspirational coding soundscapes by <a href="http://www.davidbridie.com/">David Bridie</a>.
 | 
			
		||||
    </p>
 | 
			
		||||
  </body>
 | 
			
		||||
</html>
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										141
									
								
								3rdparty/scintilla552/scintilla/doc/ScintillaToDo.html
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,141 @@
 | 
			
		||||
<?xml version="1.0"?>
 | 
			
		||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 | 
			
		||||
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 | 
			
		||||
<html xmlns="http://www.w3.org/1999/xhtml">
 | 
			
		||||
  <head>
 | 
			
		||||
    <meta name="generator" content="HTML Tidy, see www.w3.org" />
 | 
			
		||||
    <meta name="generator" content="SciTE" />
 | 
			
		||||
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
 | 
			
		||||
    <meta name="viewport" content="width=device-width, initial-scale=1" />
 | 
			
		||||
    <style type="text/css">
 | 
			
		||||
        #menu {
 | 
			
		||||
            margin: 0;
 | 
			
		||||
            padding: .5em 0;
 | 
			
		||||
            list-style-type: none;
 | 
			
		||||
            font-size: larger;
 | 
			
		||||
            background: #CCCCCC;
 | 
			
		||||
        }
 | 
			
		||||
        #menu li {
 | 
			
		||||
            margin: 0;
 | 
			
		||||
            padding: 0 .5em;
 | 
			
		||||
            display: inline;
 | 
			
		||||
        }
 | 
			
		||||
    </style>
 | 
			
		||||
    <title>
 | 
			
		||||
      Scintilla and SciTE To Do
 | 
			
		||||
    </title>
 | 
			
		||||
    <link rel="canonical" href="https://scintilla.org/ScintillaToDo.html" />
 | 
			
		||||
  </head>
 | 
			
		||||
  <body bgcolor="#FFFFFF" text="#000000">
 | 
			
		||||
    <table bgcolor="#000000" width="100%" cellspacing="0" cellpadding="0" border="0">
 | 
			
		||||
      <tr>
 | 
			
		||||
        <td>
 | 
			
		||||
          <img src="SciTEIco.png" border="3" height="64" width="64" alt="Scintilla icon" />
 | 
			
		||||
        </td>
 | 
			
		||||
        <td>
 | 
			
		||||
          <a href="index.html" style="color:white;text-decoration:none"><font size="5">Scintilla
 | 
			
		||||
          and SciTE</font></a>
 | 
			
		||||
        </td>
 | 
			
		||||
      </tr>
 | 
			
		||||
    </table>
 | 
			
		||||
    <ul id="menu">
 | 
			
		||||
      <li><a href="https://sourceforge.net/p/scintilla/bugs/">Bugs</a></li>
 | 
			
		||||
      <li><a href="https://sourceforge.net/p/scintilla/feature-requests/">Feature Requests</a></li>
 | 
			
		||||
    </ul>
 | 
			
		||||
    <h2>
 | 
			
		||||
       Bugs and To Do List
 | 
			
		||||
    </h2>
 | 
			
		||||
    <h3>
 | 
			
		||||
       Feedback
 | 
			
		||||
    </h3>
 | 
			
		||||
    <p>
 | 
			
		||||
	Issues can be reported on the <a href="https://sourceforge.net/p/scintilla/bugs/">Bug Tracker</a>
 | 
			
		||||
	and features requested on the <a href="https://sourceforge.net/p/scintilla/feature-requests/">Feature Request Tracker</a>.
 | 
			
		||||
    </p>
 | 
			
		||||
    <h3>
 | 
			
		||||
       Scintilla To Do
 | 
			
		||||
    </h3>
 | 
			
		||||
    <p>
 | 
			
		||||
       Folding for languages that don't have it yet and good folding for languages
 | 
			
		||||
       that inherited poor folding from another languages folding code.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
       Simple pattern based styling.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
       Different height lines based upon tallest text on the line rather than on the tallest style
 | 
			
		||||
      possible.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
       Composition of lexing for mixed languages (such as ASP+ over COBOL) by
 | 
			
		||||
       combining lexers.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
	Stream folding which could be used to fold up the contents of HTML elements.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
	Printing of highlight lines and folding margin.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
	Flow diagrams inside editor similar to
 | 
			
		||||
	GRASP.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
	More lexers for other languages.
 | 
			
		||||
    </p>
 | 
			
		||||
    <h3>
 | 
			
		||||
	SciTE To Do
 | 
			
		||||
    </h3>
 | 
			
		||||
    <p>
 | 
			
		||||
	Good regular expression support through a plugin.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
	Allow file name based selection on all properties rather than just a chosen few.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
	Opening from and saving to FTP servers.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
	Setting to fold away comments upon opening.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
	User defined fold ranges.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
	Silent mode that does not display any message boxes.
 | 
			
		||||
    </p>
 | 
			
		||||
    <h3>
 | 
			
		||||
	Features I am unlikely to do
 | 
			
		||||
    </h3>
 | 
			
		||||
    <p>
 | 
			
		||||
	These are features I don't like or don't think are important enough to work on.
 | 
			
		||||
	Implementations are welcome from others though.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
	Mouse wheel panning (press the mouse wheel and then move the mouse) on
 | 
			
		||||
	Windows.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
	Adding options to the save dialog to save in a particular encoding or with a
 | 
			
		||||
	chosen line ending.
 | 
			
		||||
    </p>
 | 
			
		||||
    <h3>
 | 
			
		||||
       Directions
 | 
			
		||||
    </h3>
 | 
			
		||||
    <p>
 | 
			
		||||
       The main point of this development is Scintilla, and this is where most effort will
 | 
			
		||||
       go. SciTE will get new features, but only when they make my life easier - I am
 | 
			
		||||
       not intending to make it grow up to be a huge full-function IDE like Visual
 | 
			
		||||
       Cafe. The lines I've currently decided not to step over in SciTE are any sort of
 | 
			
		||||
       project facility and any configuration dialogs. SciTE for Windows now has a
 | 
			
		||||
       Director interface for communicating with a separate project manager
 | 
			
		||||
       application.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
       If you are interested in contributing code, do not feel any need to make it cross
 | 
			
		||||
       platform.
 | 
			
		||||
      Just code it for your platform and I'll either reimplement for the other platform or
 | 
			
		||||
      ensure that there is no effect on the other platform.
 | 
			
		||||
    </p>
 | 
			
		||||
  </body>
 | 
			
		||||
</html>
 | 
			
		||||
							
								
								
									
										376
									
								
								3rdparty/scintilla552/scintilla/doc/ScintillaUsage.html
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,376 @@
 | 
			
		||||
<?xml version="1.0"?>
 | 
			
		||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 | 
			
		||||
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 | 
			
		||||
<html xmlns="http://www.w3.org/1999/xhtml">
 | 
			
		||||
  <head>
 | 
			
		||||
    <meta name="generator" content="HTML Tidy, see www.w3.org" />
 | 
			
		||||
    <meta name="generator" content="SciTE" />
 | 
			
		||||
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
 | 
			
		||||
    <meta name="viewport" content="width=device-width, initial-scale=1" />
 | 
			
		||||
    <title>
 | 
			
		||||
      Scintilla Usage Notes
 | 
			
		||||
    </title>
 | 
			
		||||
<style type="text/css">
 | 
			
		||||
SPAN {
 | 
			
		||||
    font-family: Verdana, Arial, Helvetica;
 | 
			
		||||
    font-size: 9pt;
 | 
			
		||||
}
 | 
			
		||||
.S0 {
 | 
			
		||||
    color: #808080;
 | 
			
		||||
    font-family: Verdana, Arial, Helvetica;
 | 
			
		||||
}
 | 
			
		||||
.S1 {
 | 
			
		||||
    font-family: Comic Sans MS, Times New Roman, Times;
 | 
			
		||||
    color: #007F00;
 | 
			
		||||
    font-size: 8pt;
 | 
			
		||||
}
 | 
			
		||||
.S2 {
 | 
			
		||||
    font-family: Comic Sans MS, Times New Roman, Times;
 | 
			
		||||
    color: #007F00;
 | 
			
		||||
    font-size: 8pt;
 | 
			
		||||
}
 | 
			
		||||
.S3 {
 | 
			
		||||
    font-family: Verdana, Arial, Helvetica;
 | 
			
		||||
    color: #7F7F7F;
 | 
			
		||||
}
 | 
			
		||||
.S4 {
 | 
			
		||||
    font-family: Verdana, Arial, Helvetica;
 | 
			
		||||
    color: #007F7F;
 | 
			
		||||
}
 | 
			
		||||
.S5 {
 | 
			
		||||
    color: #00007F;
 | 
			
		||||
    font-weight: bold;
 | 
			
		||||
    font-family: Verdana, Arial, Helvetica;
 | 
			
		||||
}
 | 
			
		||||
.S6 {
 | 
			
		||||
    color: #7F007F;
 | 
			
		||||
    font-family: Courier New, Courier;
 | 
			
		||||
}
 | 
			
		||||
.S7 {
 | 
			
		||||
    color: #7F007F;
 | 
			
		||||
    font-family: Courier New, Courier;
 | 
			
		||||
}
 | 
			
		||||
.S8 {
 | 
			
		||||
    color: #007F7F;
 | 
			
		||||
}
 | 
			
		||||
.S9 {
 | 
			
		||||
    color: #7F7F00;
 | 
			
		||||
}
 | 
			
		||||
.S10 {
 | 
			
		||||
    font-weight: bold;
 | 
			
		||||
}
 | 
			
		||||
</style>
 | 
			
		||||
  </head>
 | 
			
		||||
  <body bgcolor="#FFFFFF" text="#000000">
 | 
			
		||||
    <table bgcolor="#000000" width="100%" cellspacing="0" cellpadding="0" border="0">
 | 
			
		||||
      <tr>
 | 
			
		||||
        <td>
 | 
			
		||||
          <img src="SciTEIco.png" border="3" height="64" width="64" alt="Scintilla icon" />
 | 
			
		||||
        </td>
 | 
			
		||||
        <td>
 | 
			
		||||
          <a href="index.html" style="color:white;text-decoration:none"><font size="5">Scintilla
 | 
			
		||||
          Usage Notes</font></a>
 | 
			
		||||
        </td>
 | 
			
		||||
      </tr>
 | 
			
		||||
    </table>
 | 
			
		||||
    <h2>
 | 
			
		||||
       Implementing Auto-Indent
 | 
			
		||||
    </h2>
 | 
			
		||||
    <p>
 | 
			
		||||
       The key idea is to use the SCN_CHARADDED notification to add indentation after a newline.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
       The lParam on the notification is a pointer to a SCNotification structure whose ch member
 | 
			
		||||
      specifies the character added. If a newline was added, the previous line can be retrieved and
 | 
			
		||||
      the same indentation can be added to the new line.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
       Here is the relevant portion of code from SciTE: (SciTE.cxx SciTEWindow::CharAdded)
 | 
			
		||||
    </p>
 | 
			
		||||
    <span class='S5'>if</span><span class='S0'> </span> <span class='S10'>(</span><span
 | 
			
		||||
    class='S11'>ch</span><span class='S0'> </span> <span class='S10'>==</span><span
 | 
			
		||||
    class='S0'> </span> <span class='S7'>'\r'</span><span class='S0'> </span> <span
 | 
			
		||||
    class='S10'>||</span><span class='S0'> </span> <span class='S11'>ch</span><span
 | 
			
		||||
    class='S0'> </span> <span class='S10'>==</span><span class='S0'> </span> <span
 | 
			
		||||
    class='S7'>'\n'</span><span class='S10'>)</span><span class='S0'> </span> <span
 | 
			
		||||
    class='S10'>{</span><span class='S0'><br />
 | 
			
		||||
         </span> <span class='S5'>char</span><span class='S0'> </span>
 | 
			
		||||
    <span class='S11'>linebuf</span><span class='S10'>[</span><span class='S4'>1000</span><span
 | 
			
		||||
    class='S10'>];</span><span class='S0'><br />
 | 
			
		||||
         </span> <span class='S5'>int</span><span class='S0'> </span>
 | 
			
		||||
    <span class='S11'>curLine</span><span class='S0'> </span> <span class='S10'>=</span><span
 | 
			
		||||
    class='S0'> </span> <span class='S11'>GetCurrentLineNumber</span><span
 | 
			
		||||
    class='S10'>();</span><span class='S0'><br />
 | 
			
		||||
         </span> <span class='S5'>int</span><span class='S0'> </span>
 | 
			
		||||
    <span class='S11'>lineLength</span><span class='S0'> </span> <span class='S10'>
 | 
			
		||||
    =</span><span class='S0'> </span> <span class='S11'>SendEditor</span><span
 | 
			
		||||
    class='S10'>(</span><span class='S11'>SCI_LINELENGTH</span><span class='S10'>,</span><span
 | 
			
		||||
    class='S0'> </span> <span class='S11'>curLine</span><span class='S10'>);</span><span
 | 
			
		||||
    class='S0'><br />
 | 
			
		||||
         </span> <span class='S2'>
 | 
			
		||||
    //Platform::DebugPrintf("[CR] %d len = %d\n", curLine, lineLength);</span><span
 | 
			
		||||
     class='S0'><br />
 | 
			
		||||
         </span> <span class='S5'>if</span><span class='S0'> </span> <span
 | 
			
		||||
    class='S10'>(</span><span class='S11'>curLine</span><span class='S0'> </span> <span
 | 
			
		||||
    class='S10'>></span><span class='S0'> </span> <span class='S4'>0</span><span
 | 
			
		||||
    class='S0'> </span> <span class='S10'>&&</span><span class='S0'> </span>
 | 
			
		||||
    <span class='S11'>lineLength</span><span class='S0'> </span> <span class='S10'>
 | 
			
		||||
    <=</span><span class='S0'> </span> <span class='S4'>2</span><span
 | 
			
		||||
    class='S10'>)</span><span class='S0'> </span> <span class='S10'>{</span><span
 | 
			
		||||
    class='S0'><br />
 | 
			
		||||
         </span> <span class='S5'>int</span><span class='S0'> </span>
 | 
			
		||||
    <span class='S11'>prevLineLength</span><span class='S0'> </span> <span class='S10'>
 | 
			
		||||
    =</span><span class='S0'> </span> <span class='S11'>SendEditor</span><span
 | 
			
		||||
    class='S10'>(</span><span class='S11'>SCI_LINELENGTH</span><span class='S10'>,</span><span
 | 
			
		||||
    class='S0'> </span> <span class='S11'>curLine</span><span class='S0'> </span> <span
 | 
			
		||||
    class='S10'>-</span><span class='S0'> </span> <span class='S4'>1</span><span
 | 
			
		||||
    class='S10'>);</span><span class='S0'><br />
 | 
			
		||||
         </span> <span class='S5'>if</span><span class='S0'> </span> <span
 | 
			
		||||
    class='S10'>(</span><span class='S11'>prevLineLength</span><span class='S0'> </span> <span
 | 
			
		||||
    class='S10'><</span><span class='S0'> </span> <span class='S5'>sizeof</span><span
 | 
			
		||||
    class='S10'>(</span><span class='S11'>linebuf</span><span class='S10'>))</span><span
 | 
			
		||||
    class='S0'> </span> <span class='S10'>{</span><span class='S0'><br />
 | 
			
		||||
             </span> <span class='S11'>WORD</span><span
 | 
			
		||||
    class='S0'> </span> <span class='S11'>buflen</span><span class='S0'> </span> <span
 | 
			
		||||
    class='S10'>=</span><span class='S0'> </span> <span class='S5'>sizeof</span><span
 | 
			
		||||
    class='S10'>(</span><span class='S11'>linebuf</span><span class='S10'>);</span><span
 | 
			
		||||
    class='S0'><br />
 | 
			
		||||
             </span> <span class='S11'>memcpy</span><span
 | 
			
		||||
    class='S10'>(</span><span class='S11'>linebuf</span><span class='S10'>,</span><span
 | 
			
		||||
    class='S0'> </span> <span class='S10'>&</span><span class='S11'>buflen</span><span
 | 
			
		||||
    class='S10'>,</span><span class='S0'> </span> <span class='S5'>sizeof</span><span
 | 
			
		||||
    class='S10'>(</span><span class='S11'>buflen</span><span class='S10'>));</span><span
 | 
			
		||||
    class='S0'><br />
 | 
			
		||||
             </span> <span class='S11'>
 | 
			
		||||
    SendEditor</span><span class='S10'>(</span><span class='S11'>EM_GETLINE</span><span
 | 
			
		||||
    class='S10'>,</span><span class='S0'> </span> <span class='S11'>curLine</span><span
 | 
			
		||||
    class='S0'> </span> <span class='S10'>-</span><span class='S0'> </span> <span
 | 
			
		||||
    class='S4'>1</span><span class='S10'>,</span><span class='S0'><br />
 | 
			
		||||
                        </span>
 | 
			
		||||
    <span class='S5'>reinterpret_cast</span><span class='S10'><</span><span
 | 
			
		||||
    class='S11'>LPARAM</span><span class='S10'>>(</span><span class='S5'>static_cast</span><span
 | 
			
		||||
    class='S10'><</span><span class='S5'>char</span><span class='S0'> </span> <span
 | 
			
		||||
    class='S10'>*>(</span><span class='S11'>linebuf</span><span class='S10'>)));</span><span
 | 
			
		||||
    class='S0'><br />
 | 
			
		||||
             </span> <span class='S11'>linebuf</span><span
 | 
			
		||||
    class='S10'>[</span><span class='S11'>prevLineLength</span><span class='S10'>]</span><span
 | 
			
		||||
    class='S0'> </span> <span class='S10'>=</span><span class='S0'> </span> <span
 | 
			
		||||
    class='S7'>'\0'</span><span class='S10'>;</span><span class='S0'><br />
 | 
			
		||||
             </span> <span class='S5'>for</span><span
 | 
			
		||||
    class='S0'> </span> <span class='S10'>(</span><span class='S5'>int</span><span
 | 
			
		||||
    class='S0'> </span> <span class='S11'>pos</span><span class='S0'> </span> <span
 | 
			
		||||
    class='S10'>=</span><span class='S0'> </span> <span class='S4'>0</span><span
 | 
			
		||||
    class='S10'>;</span><span class='S0'> </span> <span class='S11'>linebuf</span><span
 | 
			
		||||
    class='S10'>[</span><span class='S11'>pos</span><span class='S10'>];</span><span
 | 
			
		||||
    class='S0'> </span> <span class='S11'>pos</span><span class='S10'>++)</span><span
 | 
			
		||||
    class='S0'> </span> <span class='S10'>{</span><span class='S0'><br />
 | 
			
		||||
                 </span> <span
 | 
			
		||||
    class='S5'>if</span><span class='S0'> </span> <span class='S10'>(</span><span
 | 
			
		||||
    class='S11'>linebuf</span><span class='S10'>[</span><span class='S11'>pos</span><span
 | 
			
		||||
    class='S10'>]</span><span class='S0'> </span> <span class='S10'>!=</span><span
 | 
			
		||||
    class='S0'> </span> <span class='S7'>' '</span><span class='S0'> </span> <span
 | 
			
		||||
    class='S10'>&&</span><span class='S0'> </span> <span class='S11'>
 | 
			
		||||
    linebuf</span><span class='S10'>[</span><span class='S11'>pos</span><span
 | 
			
		||||
    class='S10'>]</span><span class='S0'> </span> <span class='S10'>!=</span><span
 | 
			
		||||
    class='S0'> </span> <span class='S7'>'\t'</span><span class='S10'>)</span><span
 | 
			
		||||
    class='S0'><br />
 | 
			
		||||
                     </span>
 | 
			
		||||
    <span class='S11'>linebuf</span><span class='S10'>[</span><span class='S11'>pos</span><span
 | 
			
		||||
    class='S10'>]</span><span class='S0'> </span> <span class='S10'>=</span><span
 | 
			
		||||
    class='S0'> </span> <span class='S7'>'\0'</span><span class='S10'>;</span><span
 | 
			
		||||
    class='S0'><br />
 | 
			
		||||
             </span> <span class='S10'>}</span><span
 | 
			
		||||
    class='S0'><br />
 | 
			
		||||
             </span> <span class='S11'>
 | 
			
		||||
    SendEditor</span><span class='S10'>(</span><span class='S11'>EM_REPLACESEL</span><span
 | 
			
		||||
    class='S10'>,</span><span class='S0'> </span> <span class='S4'>0</span><span
 | 
			
		||||
    class='S10'>,</span><span class='S0'> </span> <span class='S5'>
 | 
			
		||||
    reinterpret_cast</span><span class='S10'><</span><span class='S11'>LPARAM</span><span
 | 
			
		||||
    class='S10'>>(</span><span class='S5'>static_cast</span><span class='S10'><</span><span
 | 
			
		||||
    class='S5'>char</span><span class='S0'> </span> <span class='S10'>*>(</span><span
 | 
			
		||||
    class='S11'>linebuf</span><span class='S10'>)));</span><span class='S0'><br />
 | 
			
		||||
         </span> <span class='S10'>}</span><span class='S0'><br />
 | 
			
		||||
    </span> <span class='S10'>}</span><br />
 | 
			
		||||
 | 
			
		||||
    <p style="margin-bottom: 0in">
 | 
			
		||||
       Of course, fancier handling could be implemented. For example, if the previous line was the
 | 
			
		||||
      start of a control construct, the next line could be automatically indented one tab further.
 | 
			
		||||
      (Assuming that is your indenting style.)
 | 
			
		||||
    </p>
 | 
			
		||||
    <h2>
 | 
			
		||||
       Implementing Syntax Styling
 | 
			
		||||
    </h2>
 | 
			
		||||
    <p>
 | 
			
		||||
       Syntax styling is handled by the SCN_STYLENEEDED notification. Scintilla keeps track of the
 | 
			
		||||
      end of the styled text - this is retrieved with SCI_GETENDSTYLED. In response to the
 | 
			
		||||
      SCN_STYLENEEDED notification, you should apply styles to the text from ENDSTYLED to the
 | 
			
		||||
      position specified by the notification.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
       Here is the relevant portion of code from SciTE: (SciTE.cxx)
 | 
			
		||||
    </p>
 | 
			
		||||
    <span class='S5'>void</span><span class='S0'> </span> <span class='S11'>
 | 
			
		||||
    SciTEWindow</span><span class='S10'>::</span><span class='S11'>Notify</span><span
 | 
			
		||||
    class='S10'>(</span><span class='S11'>SCNotification</span><span class='S0'> </span> <span
 | 
			
		||||
    class='S10'>*</span><span class='S11'>notification</span><span class='S10'>)</span><span
 | 
			
		||||
    class='S0'> </span> <span class='S10'>{</span><span class='S0'><br />
 | 
			
		||||
         </span> <span class='S5'>switch</span><span class='S0'> </span>
 | 
			
		||||
    <span class='S10'>(</span><span class='S11'>notification</span><span
 | 
			
		||||
    class='S10'>-></span><span class='S11'>nmhdr.code</span><span class='S10'>)</span><span
 | 
			
		||||
    class='S0'> </span> <span class='S10'>{</span><span class='S0'><br />
 | 
			
		||||
         </span> <span class='S5'>case</span><span class='S0'> </span>
 | 
			
		||||
    <span class='S11'>SCN_STYLENEEDED</span><span class='S10'>:</span><span
 | 
			
		||||
    class='S0'> </span> <span class='S10'>{</span><span class='S0'><br />
 | 
			
		||||
                 </span> <span
 | 
			
		||||
    class='S5'>if</span><span class='S0'> </span> <span class='S10'>(</span><span
 | 
			
		||||
    class='S11'>notification</span><span class='S10'>-></span><span
 | 
			
		||||
    class='S11'>nmhdr.idFrom</span><span class='S0'> </span> <span class='S10'>==</span><span
 | 
			
		||||
    class='S0'> </span> <span class='S11'>IDM_SRCWIN</span><span class='S10'>)</span><span
 | 
			
		||||
    class='S0'> </span> <span class='S10'>{</span><span class='S0'><br />
 | 
			
		||||
                     </span>
 | 
			
		||||
    <span class='S5'>int</span><span class='S0'> </span> <span class='S11'>
 | 
			
		||||
    endStyled</span><span class='S0'> </span> <span class='S10'>=</span><span
 | 
			
		||||
    class='S0'> </span> <span class='S11'>SendEditor</span><span class='S10'>(</span><span
 | 
			
		||||
    class='S11'>SCI_GETENDSTYLED</span><span class='S10'>);</span><span class='S0'><br />
 | 
			
		||||
                     </span>
 | 
			
		||||
    <span class='S5'>int</span><span class='S0'> </span> <span class='S11'>
 | 
			
		||||
    lineEndStyled</span><span class='S0'> </span> <span class='S10'>=</span><span
 | 
			
		||||
    class='S0'> </span> <span class='S11'>SendEditor</span><span class='S10'>(</span><span
 | 
			
		||||
    class='S11'>EM_LINEFROMCHAR</span><span class='S10'>,</span><span class='S0'> </span>
 | 
			
		||||
    <span class='S11'>endStyled</span><span class='S10'>);</span><span class='S0'><br />
 | 
			
		||||
                     </span>
 | 
			
		||||
    <span class='S11'>endStyled</span><span class='S0'> </span> <span class='S10'>
 | 
			
		||||
    =</span><span class='S0'> </span> <span class='S11'>SendEditor</span><span
 | 
			
		||||
    class='S10'>(</span><span class='S11'>EM_LINEINDEX</span><span class='S10'>,</span><span
 | 
			
		||||
    class='S0'> </span> <span class='S11'>lineEndStyled</span><span class='S10'>);</span><span
 | 
			
		||||
    class='S0'><br />
 | 
			
		||||
                     </span>
 | 
			
		||||
    <span class='S11'>Colourise</span><span class='S10'>(</span><span
 | 
			
		||||
    class='S11'>endStyled</span><span class='S10'>,</span><span class='S0'> </span> <span
 | 
			
		||||
    class='S11'>notification</span><span class='S10'>-></span><span
 | 
			
		||||
    class='S11'>position</span><span class='S10'>);</span><br />
 | 
			
		||||
 | 
			
		||||
    <p>
 | 
			
		||||
       Colourize(start, end) retrieves the specified range of text and then calls ColourizeDoc in
 | 
			
		||||
      keywords.cxx. It starts the process by calling:
 | 
			
		||||
    </p>
 | 
			
		||||
        <span class='S11'>SendMessage</span><span class='S10'>(</span><span
 | 
			
		||||
    class='S11'>hwnd</span><span class='S10'>,</span><span class='S0'> </span> <span
 | 
			
		||||
    class='S11'>SCI_STARTSTYLING</span><span class='S10'>,</span><span class='S0'> </span>
 | 
			
		||||
    <span class='S11'>startPos</span><span class='S10'>,</span><span class='S0'> </span> <span
 | 
			
		||||
    class='S4'>31</span><span class='S10'>);</span><br />
 | 
			
		||||
 | 
			
		||||
    <p>
 | 
			
		||||
       and then for each token of the text, calling:
 | 
			
		||||
    </p>
 | 
			
		||||
        <span class='S11'>SendMessage</span><span class='S10'>(</span><span
 | 
			
		||||
    class='S11'>hwnd</span><span class='S10'>,</span><span class='S0'> </span> <span
 | 
			
		||||
    class='S11'>SCI_SETSTYLING</span><span class='S10'>,</span><span class='S0'> </span> <span
 | 
			
		||||
    class='S11'>length</span><span class='S10'>,</span><span class='S0'> </span> <span
 | 
			
		||||
    class='S11'>style</span><span class='S10'>);</span><br />
 | 
			
		||||
 | 
			
		||||
    <p>
 | 
			
		||||
       where style is a number from 0 to 31 whose appearance has been defined using the
 | 
			
		||||
      SCI_STYLESET... messages.
 | 
			
		||||
    </p>
 | 
			
		||||
    <h2>
 | 
			
		||||
       Implementing Calltips
 | 
			
		||||
    </h2>
 | 
			
		||||
    <p>
 | 
			
		||||
       Again, the SCN_CHARADDED notification is used to catch when an opening parenthesis is added.
 | 
			
		||||
      The preceding word can then be retrieved from the current line:
 | 
			
		||||
    </p>
 | 
			
		||||
        <span class='S5'>char</span><span class='S0'> </span> <span
 | 
			
		||||
    class='S11'>linebuf</span><span class='S10'>[</span><span class='S4'>1000</span><span
 | 
			
		||||
    class='S10'>];</span><span class='S0'><br />
 | 
			
		||||
    </span>     <span class='S5'>int</span><span class='S0'> </span> <span
 | 
			
		||||
    class='S11'>current</span><span class='S0'> </span> <span class='S10'>=</span><span
 | 
			
		||||
    class='S0'> </span> <span class='S11'>SendEditor</span><span class='S10'>(</span><span
 | 
			
		||||
    class='S11'>SCI_GETCURLINE</span><span class='S10'>,</span><span class='S0'> </span> <span
 | 
			
		||||
    class='S5'>sizeof</span><span class='S10'>(</span><span class='S11'>linebuf</span><span
 | 
			
		||||
    class='S10'>),</span><span class='S0'><br />
 | 
			
		||||
             </span> <span class='S5'>
 | 
			
		||||
    reinterpret_cast</span><span class='S10'><</span><span class='S11'>LPARAM</span><span
 | 
			
		||||
    class='S10'>>(</span><span class='S5'>static_cast</span><span class='S10'><</span><span
 | 
			
		||||
    class='S5'>char</span><span class='S0'> </span> <span class='S10'>*>(</span><span
 | 
			
		||||
    class='S11'>linebuf</span><span class='S10'>)));</span><span class='S0'><br />
 | 
			
		||||
    </span>     <span class='S5'>int</span><span class='S0'> </span> <span
 | 
			
		||||
    class='S11'>pos</span><span class='S0'> </span> <span class='S10'>=</span><span
 | 
			
		||||
    class='S0'> </span> <span class='S11'>SendEditor</span><span class='S10'>(</span><span
 | 
			
		||||
    class='S11'>SCI_GETCURRENTPOS</span><span class='S10'>);</span><span class='S0'><br />
 | 
			
		||||
    <br />
 | 
			
		||||
    </span>     <span class='S5'>int</span><span class='S0'> </span> <span
 | 
			
		||||
    class='S11'>startword</span><span class='S0'> </span> <span class='S10'>=</span><span
 | 
			
		||||
    class='S0'> </span> <span class='S11'>current</span><span class='S0'> </span> <span
 | 
			
		||||
    class='S10'>-</span><span class='S0'> </span> <span class='S4'>1</span><span
 | 
			
		||||
    class='S10'>;</span><span class='S0'><br />
 | 
			
		||||
    </span>     <span class='S5'>while</span><span class='S0'> </span>
 | 
			
		||||
    <span class='S10'>(</span><span class='S11'>startword</span><span class='S0'> </span>
 | 
			
		||||
    <span class='S10'>></span><span class='S0'> </span> <span class='S4'>0</span><span
 | 
			
		||||
    class='S0'> </span> <span class='S10'>&&</span><span class='S0'> </span>
 | 
			
		||||
    <span class='S11'>isalpha</span><span class='S10'>(</span><span class='S11'>linebuf</span><span
 | 
			
		||||
    class='S10'>[</span><span class='S11'>startword</span><span class='S0'> </span> <span
 | 
			
		||||
    class='S10'>-</span><span class='S0'> </span> <span class='S4'>1</span><span
 | 
			
		||||
    class='S10'>]))</span><span class='S0'><br />
 | 
			
		||||
             </span> <span class='S11'>
 | 
			
		||||
    startword</span><span class='S10'>--;</span><span class='S0'><br />
 | 
			
		||||
    </span>     <span class='S11'>linebuf</span><span class='S10'>[</span><span
 | 
			
		||||
    class='S11'>current</span><span class='S0'> </span> <span class='S10'>-</span><span
 | 
			
		||||
    class='S0'> </span> <span class='S4'>1</span><span class='S10'>]</span><span
 | 
			
		||||
    class='S0'> </span> <span class='S10'>=</span><span class='S0'> </span> <span
 | 
			
		||||
    class='S7'>'\0'</span><span class='S10'>;</span><span class='S0'><br />
 | 
			
		||||
    </span>     <span class='S5'>char</span><span class='S10'>*</span><span
 | 
			
		||||
    class='S0'> </span> <span class='S11'>word</span><span class='S0'> </span> <span
 | 
			
		||||
    class='S10'>=</span><span class='S0'> </span> <span class='S11'>linebuf</span><span
 | 
			
		||||
    class='S0'> </span> <span class='S10'>+</span><span class='S0'> </span> <span
 | 
			
		||||
    class='S11'>startword</span><span class='S10'>;</span><br />
 | 
			
		||||
 | 
			
		||||
    <p>
 | 
			
		||||
       Then if a calltip is available it can be displayed. The calltip appears immediately below
 | 
			
		||||
      the position specified. The calltip can be multiple lines separated by newlines (\n).
 | 
			
		||||
    </p>
 | 
			
		||||
        <span class='S11'>pos</span><span class='S0'> </span> <span
 | 
			
		||||
    class='S10'>=</span><span class='S0'> </span> <span class='S11'>SendMessage</span><span
 | 
			
		||||
    class='S10'>(</span><span class='S11'>hwnd</span><span class='S10'>,</span><span
 | 
			
		||||
    class='S0'> </span> <span class='S11'>SCI_GETCURRENTPOS</span><span
 | 
			
		||||
    class='S10'>,</span><span class='S0'> </span> <span class='S4'>0</span><span
 | 
			
		||||
    class='S10'>,</span><span class='S0'> </span> <span class='S4'>0</span><span
 | 
			
		||||
    class='S10'>);</span><span class='S0'><br />
 | 
			
		||||
    </span>     <span class='S11'>SendMessageText</span><span
 | 
			
		||||
    class='S10'>(</span><span class='S11'>hwnd</span><span class='S10'>,</span><span
 | 
			
		||||
    class='S0'> </span> <span class='S11'>SCI_CALLTIPSHOW</span><span
 | 
			
		||||
    class='S10'>,</span><span class='S0'> </span> <span class='S11'>pos</span><span
 | 
			
		||||
    class='S0'> </span> <span class='S10'>-</span><span class='S0'> </span> <span
 | 
			
		||||
    class='S11'>wordLen</span><span class='S0'> </span> <span class='S10'>-</span><span
 | 
			
		||||
    class='S0'> </span> <span class='S4'>1</span><span class='S10'>,</span><span
 | 
			
		||||
    class='S0'> </span> <span class='S11'>calltip</span><span class='S10'>);</span><br />
 | 
			
		||||
 | 
			
		||||
    <p>
 | 
			
		||||
       The calltip can be removed when a closing parenthesis is entered:
 | 
			
		||||
    </p>
 | 
			
		||||
        <span class='S5'>if</span><span class='S0'> </span> <span
 | 
			
		||||
    class='S10'>(</span><span class='S11'>SendMessage</span><span class='S10'>(</span><span
 | 
			
		||||
    class='S11'>hwnd</span><span class='S10'>,</span><span class='S0'> </span> <span
 | 
			
		||||
    class='S11'>SCI_CALLTIPACTIVE</span><span class='S10'>,</span><span class='S0'> </span>
 | 
			
		||||
    <span class='S4'>0</span><span class='S10'>,</span><span class='S0'> </span> <span
 | 
			
		||||
    class='S4'>0</span><span class='S10'>))</span><span class='S0'><br />
 | 
			
		||||
             </span> <span class='S11'>
 | 
			
		||||
    SendMessage</span><span class='S10'>(</span><span class='S11'>hwnd</span><span
 | 
			
		||||
    class='S10'>,</span><span class='S0'> </span> <span class='S11'>
 | 
			
		||||
    SCI_CALLTIPCANCEL</span><span class='S10'>,</span><span class='S0'> </span> <span
 | 
			
		||||
    class='S4'>0</span><span class='S10'>,</span><span class='S0'> </span> <span class='S4'>
 | 
			
		||||
    0</span><span class='S10'>);</span><br />
 | 
			
		||||
 | 
			
		||||
    <p>
 | 
			
		||||
       Obviously, it is up the application to look after supplying the appropriate calltip text.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
       SciTE goes one step further, counting the commas between arguments and highlighting the
 | 
			
		||||
      corresponding part of the calltip. This code is in ContinueCallTip.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
       <i>Page contributed by Andrew McKinlay.</i>
 | 
			
		||||
    </p>
 | 
			
		||||
  </body>
 | 
			
		||||
</html>
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										
											BIN
										
									
								
								3rdparty/scintilla552/scintilla/doc/StadiumVariants.png
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 23 KiB  | 
							
								
								
									
										142
									
								
								3rdparty/scintilla552/scintilla/doc/Steps.html
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,142 @@
 | 
			
		||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
 | 
			
		||||
<html><head><meta content="text/html; charset=iso-8859-1" http-equiv="Content-Type"><title>How to use the Scintilla Edit Control in windows?</title></head><body bgcolor="#ffffff">
 | 
			
		||||
	<p><h2>How to use the Scintilla Edit Control in windows?</h2>
 | 
			
		||||
		<p>
 | 
			
		||||
			This should be a little step by step explanation how to use Scintilla in the windows environment.
 | 
			
		||||
		</p>
 | 
			
		||||
	</p>
 | 
			
		||||
	<p><h2>How to create Scintilla Edit Control?</h2>
 | 
			
		||||
		<p>
 | 
			
		||||
			First of all, load the Scintilla DLL with something like:
 | 
			
		||||
		</p>
 | 
			
		||||
		<pre>
 | 
			
		||||
 | 
			
		||||
	hmod = LoadLibrary("SciLexer.DLL");
 | 
			
		||||
		if (hmod==NULL)
 | 
			
		||||
		{
 | 
			
		||||
			MessageBox(hwndParent,
 | 
			
		||||
			"The Scintilla DLL could not be loaded.",
 | 
			
		||||
			"Error loading Scintilla",
 | 
			
		||||
			MB_OK | MB_ICONERROR);
 | 
			
		||||
		}
 | 
			
		||||
		</pre>
 | 
			
		||||
		<p>
 | 
			
		||||
			If the DLL was loaded successfully, then the DLL has registered (yes, by itself) a new
 | 
			
		||||
			window class. The new class called "Scintilla" is the new scintilla edit control.
 | 
			
		||||
		</p>
 | 
			
		||||
		<p>
 | 
			
		||||
			Now you can use this new control just like any other windows control.
 | 
			
		||||
		</p>
 | 
			
		||||
		<pre>
 | 
			
		||||
 | 
			
		||||
	hwndScintilla = CreateWindowEx(0,
 | 
			
		||||
		"Scintilla","", WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_CLIPCHILDREN,
 | 
			
		||||
		10,10,500,400,hwndParent,(HMENU)GuiID, hInstance,NULL);
 | 
			
		||||
		</pre>
 | 
			
		||||
		<p>
 | 
			
		||||
			Note the new window class name: "Scintilla". By reaching this point you actually included
 | 
			
		||||
			a Scintilla Edit Control to your windows program.
 | 
			
		||||
		</p>
 | 
			
		||||
	</p>
 | 
			
		||||
	<p><h2>How to control the Scintilla Edit Control?</h2>
 | 
			
		||||
		<p>
 | 
			
		||||
			You can control Scintilla by sending commands to the Edit Control.
 | 
			
		||||
			There a 2 ways of doing this. A simple and fast way.
 | 
			
		||||
		</p>
 | 
			
		||||
		<p><h3>The simple way to control Scintilla</h3>
 | 
			
		||||
			<p>
 | 
			
		||||
				The simple way is just like with any other windows control. You can send messages to the
 | 
			
		||||
				Scintilla Edit Control and receive notifications from the control. (Note that the notifications
 | 
			
		||||
				are sent to the parent window of the Scintilla Edit Control.)
 | 
			
		||||
			</p>
 | 
			
		||||
			<p>
 | 
			
		||||
				The Scintilla Edit Control knows a special message for each command.
 | 
			
		||||
				To send commands to the Scintilla Edit Control you can use the SendMessage function.
 | 
			
		||||
			</p>
 | 
			
		||||
			<pre>
 | 
			
		||||
 | 
			
		||||
	SendMessage(hwndScintilla,sci_command,wparam,lparam);
 | 
			
		||||
			</pre>
 | 
			
		||||
			<p>
 | 
			
		||||
				like:
 | 
			
		||||
			</p>
 | 
			
		||||
			<pre>
 | 
			
		||||
 | 
			
		||||
	SendMessage(hwndScintilla,SCI_CREATEDOCUMENT, 0, 0);
 | 
			
		||||
			</pre>
 | 
			
		||||
			<p>
 | 
			
		||||
				Some of the commands will return a value and unused parameters should be set to NULL.
 | 
			
		||||
			</p>
 | 
			
		||||
		</p>
 | 
			
		||||
		<p><h3>The fast way to control Scintilla</h3>
 | 
			
		||||
			<p>
 | 
			
		||||
				The fast way of controlling the Scintilla Edit Control  is to call message handling function by yourself.
 | 
			
		||||
				You can retrieve a pointer to the message handling function of the Scintilla Edit Control and
 | 
			
		||||
				call it directly to execute a command. This way is much more faster than the SendMessage() way.
 | 
			
		||||
			</p>
 | 
			
		||||
			<p>
 | 
			
		||||
				1st you have to use the SCI_GETDIRECTFUNCTION and SCI_GETDIRECTPOINTER commands to
 | 
			
		||||
				retrieve the pointer to the function and a pointer which must be the first parameter when calling the retrieved
 | 
			
		||||
				function pointer.
 | 
			
		||||
				You have to do this with the SendMessage way :)
 | 
			
		||||
			</p>
 | 
			
		||||
			<p>
 | 
			
		||||
				The whole thing has to look like this:
 | 
			
		||||
			</p>
 | 
			
		||||
			<pre>
 | 
			
		||||
 | 
			
		||||
	int (*fn)(void*,int,int,int);
 | 
			
		||||
	void * ptr;
 | 
			
		||||
	int canundo;
 | 
			
		||||
 | 
			
		||||
	fn = (int (__cdecl *)(void *,int,int,int))SendMessage(
 | 
			
		||||
		hwndScintilla,SCI_GETDIRECTFUNCTION,0,0);
 | 
			
		||||
	ptr = (void *)SendMessage(hwndScintilla,SCI_GETDIRECTPOINTER,0,0);
 | 
			
		||||
 | 
			
		||||
	canundo = fn(ptr,SCI_CANUNDO,0,0);
 | 
			
		||||
			</pre>
 | 
			
		||||
			<p>
 | 
			
		||||
				with "fn" as the function pointer to the message handling function of the Scintilla Control
 | 
			
		||||
				and "ptr" as the pointer that must be used as 1st parameter.
 | 
			
		||||
				The next parameters are the Scintilla Command with its two (optional) parameters.
 | 
			
		||||
			</p>
 | 
			
		||||
 | 
			
		||||
		</p>
 | 
			
		||||
		<p><h3>How will I receive notifications?</h3>
 | 
			
		||||
			<p>
 | 
			
		||||
				Whenever an event occurs where Scintilla wants to inform you about something, the Scintilla Edit Control
 | 
			
		||||
				will send notification to the parent window. This is done by a WM_NOTITY message.
 | 
			
		||||
				When receiving that message, you have to look in the xxx struct for the actual message.
 | 
			
		||||
			</p>
 | 
			
		||||
			<p>
 | 
			
		||||
				So in Scintillas parent window message handling function you have to include some code like this:
 | 
			
		||||
			</p>
 | 
			
		||||
			<pre>
 | 
			
		||||
	NMHDR *lpnmhdr;
 | 
			
		||||
 | 
			
		||||
	[...]
 | 
			
		||||
 | 
			
		||||
	case WM_NOTIFY:
 | 
			
		||||
		lpnmhdr = (LPNMHDR) lParam;
 | 
			
		||||
 | 
			
		||||
		if(lpnmhdr->hwndFrom==hwndScintilla)
 | 
			
		||||
		{
 | 
			
		||||
			switch(lpnmhdr->code)
 | 
			
		||||
			{
 | 
			
		||||
				case SCN_CHARADDED:
 | 
			
		||||
					/* Hey, Scintilla just told me that a new */
 | 
			
		||||
					/* character was added to the Edit Control.*/
 | 
			
		||||
					/* Now i do something cool with that char. */
 | 
			
		||||
				break;
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	break;
 | 
			
		||||
			</pre>
 | 
			
		||||
		</p>
 | 
			
		||||
	</p>
 | 
			
		||||
 | 
			
		||||
    <p>
 | 
			
		||||
       <i>Page contributed by Holger Schmidt.</i>
 | 
			
		||||
    </p>
 | 
			
		||||
</body></html>
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										204
									
								
								3rdparty/scintilla552/scintilla/doc/StyleMetadata.html
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,204 @@
 | 
			
		||||
<?xml version="1.0"?>
 | 
			
		||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 | 
			
		||||
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 | 
			
		||||
<html xmlns="http://www.w3.org/1999/xhtml">
 | 
			
		||||
        <head>
 | 
			
		||||
                <meta name="generator" content="HTML Tidy, see www.w3.org" />
 | 
			
		||||
                <meta name="generator" content="SciTE" />
 | 
			
		||||
                <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
 | 
			
		||||
                <meta name="viewport" content="width=device-width, initial-scale=1" />
 | 
			
		||||
                <title>
 | 
			
		||||
                        Scintilla Style Metadata
 | 
			
		||||
                </title>
 | 
			
		||||
                <style type="text/css">
 | 
			
		||||
<!--
 | 
			
		||||
/*<![CDATA[*/
 | 
			
		||||
	CODE { font-weight: bold; font-family: Menlo,Consolas,Bitstream Vera Sans Mono,Courier New,monospace; }
 | 
			
		||||
/*]]>*/
 | 
			
		||||
-->
 | 
			
		||||
                </style>
 | 
			
		||||
        </head>
 | 
			
		||||
<body bgcolor="#FFFFFF" text="#000000">
 | 
			
		||||
        <table bgcolor="#000000" width="100%" cellspacing="0" cellpadding="0" border="0">
 | 
			
		||||
                <tr>
 | 
			
		||||
                <td>
 | 
			
		||||
                <img src="SciTEIco.png" border="3" height="64" width="64" alt="Scintilla icon" />
 | 
			
		||||
                </td>
 | 
			
		||||
                <td>
 | 
			
		||||
                <a href="index.html" style="color:white;text-decoration:none"><font size="5">Scintilla</font></a>
 | 
			
		||||
                </td>
 | 
			
		||||
                </tr>
 | 
			
		||||
        </table>
 | 
			
		||||
        <h2>
 | 
			
		||||
                Language Types
 | 
			
		||||
        </h2>
 | 
			
		||||
        <p>
 | 
			
		||||
                Scintilla contains lexers for various types of languages:
 | 
			
		||||
                <ul>
 | 
			
		||||
                        <li>Programming languages like C++, Java, and Python.</li>
 | 
			
		||||
                        <li>Assembler languages are low-level programming languages which may additionally include instructions and registers.</li>
 | 
			
		||||
                        <li>Markup languages like HTML, TeX, and Markdown.</li>
 | 
			
		||||
                        <li>Data languages like EDIFACT and YAML.</li>
 | 
			
		||||
                </ul>
 | 
			
		||||
        </p>
 | 
			
		||||
        <p>
 | 
			
		||||
                Some languages can be used in different ways. JavaScript is a programming language but also
 | 
			
		||||
                the basis of JSON data files. Similarly,
 | 
			
		||||
                <a href="https://en.wikipedia.org/wiki/S-expression">Lisp s expressions</a> can be used for both source code and data.
 | 
			
		||||
        </p>
 | 
			
		||||
        <p>
 | 
			
		||||
                Each language type has common elements such as identifiers in programming languages.
 | 
			
		||||
                These common elements should be identified so that languages can be displayed with common
 | 
			
		||||
                styles for these elements.
 | 
			
		||||
                Style tags are used for this purpose in Scintilla.
 | 
			
		||||
        </p>
 | 
			
		||||
        <h2>
 | 
			
		||||
                Style Tags
 | 
			
		||||
        </h2>
 | 
			
		||||
        <p>
 | 
			
		||||
                Every style has a list of tags where a tag is a lower-case word containing only the common ASCII letters 'a'-'z'
 | 
			
		||||
                such as "comment" or "operator".
 | 
			
		||||
        </p>
 | 
			
		||||
        <p>
 | 
			
		||||
                Tags are ordered from most important to least important.
 | 
			
		||||
        </p>
 | 
			
		||||
        <p>
 | 
			
		||||
                While applications may assign visual attributes for tag lists in many different ways, one reasonable technique is to
 | 
			
		||||
                apply tag-specific attributes in reverse order so that earlier and more important tags override less important tags.
 | 
			
		||||
                For example, the tag list <code>"error comment documentation keyword"</code> with
 | 
			
		||||
                a set of tag attributes <br />
 | 
			
		||||
                <code>{ comment=fore:green,back:very-light-green,font:Serif documentation=fore:light-green error=strikethrough keyword=bold }</code><br />
 | 
			
		||||
                could be rendered as <br />
 | 
			
		||||
                <code>bold,fore:light-green,back:very-light-green,font:Serif,strikethrough</code>.
 | 
			
		||||
        </p>
 | 
			
		||||
        <p>
 | 
			
		||||
                Alternative renderings could check for multi-tag combinations like
 | 
			
		||||
                <code>{ comment.documentation=fore:light-green comment.line=dark-green comment=green }.</code>
 | 
			
		||||
        </p>
 | 
			
		||||
        <p>
 | 
			
		||||
                Commonly, a tag list will contain an optional embedded language; optional statuses; a base type; and a set of type modifiers:<br />
 | 
			
		||||
                <code>embedded-language? status* base-type modifiers*</code>
 | 
			
		||||
        </p>
 | 
			
		||||
        <h3>Embedded language</h3>
 | 
			
		||||
        <p>
 | 
			
		||||
                The embedded language may be a source <code>(client | server)</code> followed by a language name
 | 
			
		||||
                <code>(javascript | php | python | basic)</code>.
 | 
			
		||||
                This may be extended in the future with other programming languages and style-definition languages like CSS.
 | 
			
		||||
        </p>
 | 
			
		||||
        <h3>Status</h3>
 | 
			
		||||
        <p>
 | 
			
		||||
                The statuses may be <code>(error | unused | predefined | inactive)</code>.<br />
 | 
			
		||||
                The <code>error</code> status is used for lexical statuses that indicate errors in the source code such as unterminated quoted strings.<br />
 | 
			
		||||
                The <code>unused</code> status may indicate a gap in the lexical states, possibly because an old lexical class is no longer used or an upcoming lexical class may fill that position.<br />
 | 
			
		||||
                The <code>predefined</code> status indicates a style in the range 32.39 that is used for non-lexical purposes in Scintilla.<br />
 | 
			
		||||
                The <code>inactive</code> status is used for text that is not currently interpreted such as C++ code that is contained within a '#if 0' preprocessor block.
 | 
			
		||||
        </p>
 | 
			
		||||
        <h3>Basic Types</h3>
 | 
			
		||||
        <p>
 | 
			
		||||
                The basic types for programming languages are <code>(default | operator | keyword | identifier | literal | comment | preprocessor | label)</code>.<br />
 | 
			
		||||
                The <code>default</code> type is commonly used for spaces and tabs between tokens although it may cover other characters in some languages.
 | 
			
		||||
        </p>
 | 
			
		||||
        <p>
 | 
			
		||||
                Assembler languages add <code>(instruction | register)</code>. to the basic types from programming languages.<br />
 | 
			
		||||
        </p>
 | 
			
		||||
        <p>
 | 
			
		||||
                The basic types for markup languages are <code>(default | tag | attribute | comment | preprocessor)</code>.<br />
 | 
			
		||||
        </p>
 | 
			
		||||
        <p>
 | 
			
		||||
                The basic types for data languages are <code>(default | key | data | comment)</code>.<br />
 | 
			
		||||
        </p>
 | 
			
		||||
        <h3>Comments</h3>
 | 
			
		||||
        <p>
 | 
			
		||||
                Programming languages may differentiate between line and stream comments and treat documentation comments as distinct from other comments.
 | 
			
		||||
                Documentation comments may be marked up with documentation keywords.<br />
 | 
			
		||||
                The additional attributes commonly used are <code>(line | documentation | keyword | taskmarker)</code>.
 | 
			
		||||
        </p>
 | 
			
		||||
        <h3>Literals</h3>
 | 
			
		||||
        <p>
 | 
			
		||||
                Programming and assembler languages contain a rich set of literals including numbers like <code>7</code> and <code>3.89e23</code>; <code>"string\n"</code>; and <code>nullptr</code>
 | 
			
		||||
                and differentiating between these is often wanted.<br />
 | 
			
		||||
                The common literal types are <code>(numeric | boolean | string | regex | date | time | uuid | nil | compound)</code>.<br />
 | 
			
		||||
                Numeric literal types are subdivided into <code>(integer | real)</code>.<br />
 | 
			
		||||
                String literal types may add (perhaps multiple) further attributes from <code> (heredoc | character | escapesequence | interpolated | multiline | raw)</code>.<br />
 | 
			
		||||
        </p>
 | 
			
		||||
        <p>
 | 
			
		||||
                An escape sequence within an interpolated heredoc may thus be <code>literal string heredoc escapesequence</code>.
 | 
			
		||||
        </p>
 | 
			
		||||
        <h3>
 | 
			
		||||
                List of known tags
 | 
			
		||||
        </h3>
 | 
			
		||||
        <table>
 | 
			
		||||
                <tr><td><code>attribute</code></td><td>Markup attribute</td></tr>
 | 
			
		||||
                <tr><td><code>basic</code></td><td>Embedded Basic</td></tr>
 | 
			
		||||
                <tr><td><code>boolean</code></td><td>True or false literal</td></tr>
 | 
			
		||||
                <tr><td><code>character</code></td><td>Single character literal as opposed to a string literal</td></tr>
 | 
			
		||||
                <tr><td><code>client</code></td><td>Script executed on client</td></tr>
 | 
			
		||||
                <tr><td><code>comment</code></td><td>The standard comment type in a language: may be stream or line</td></tr>
 | 
			
		||||
                <tr><td><code>compound</code></td><td>Literal containing multiple subliterals such as a tuple or complex number</td></tr>
 | 
			
		||||
                <tr><td><code>data</code></td><td>A value in a data file</td></tr>
 | 
			
		||||
                <tr><td><code>date</code></td><td>Literal representing a data such as '19/November/1975'</td></tr>
 | 
			
		||||
                <tr><td><code>default</code></td><td>Starting state commonly also used for white space</td></tr>
 | 
			
		||||
                <tr><td><code>documentation</code></td><td>Comment that can be extracted into documentation</td></tr>
 | 
			
		||||
                <tr><td><code>error</code></td><td>State indicating an invalid or erroneous element</td></tr>
 | 
			
		||||
                <tr><td><code>escapesequence</code></td><td>Parts of a string that are not literal such as '\t' for tab in C</td></tr>
 | 
			
		||||
                <tr><td><code>heredoc</code></td><td>Lengthy text literal marked by a word at both ends</td></tr>
 | 
			
		||||
                <tr><td><code>identifier</code></td><td>Name that identifies an object or class of object</td></tr>
 | 
			
		||||
                <tr><td><code>inactive</code></td><td>Code that is not currently interpreted</td></tr>
 | 
			
		||||
                <tr><td><code>instruction</code></td><td>Mnemonic in assembler languages like 'addc'</td></tr>
 | 
			
		||||
                <tr><td><code>integer</code></td><td>Numeric literal with no fraction or exponent like '738'</td></tr>
 | 
			
		||||
                <tr><td><code>interpolated</code></td><td>String that can contain expressions</td></tr>
 | 
			
		||||
                <tr><td><code>javascript</code></td><td>Embedded Javascript</td></tr>
 | 
			
		||||
                <tr><td><code>key</code></td><td>Element which allows finding associated data</td></tr>
 | 
			
		||||
                <tr><td><code>keyword</code></td><td>Reserved word with special meaning like 'while'</td></tr>
 | 
			
		||||
                <tr><td><code>label</code></td><td>Destination for jumps in programming and assembler languages</td></tr>
 | 
			
		||||
                <tr><td><code>line</code></td><td>Differentiates between stream comments and line comments in languages that have both</td></tr>
 | 
			
		||||
                <tr><td><code>literal</code></td><td>Fixed value in source code</td></tr>
 | 
			
		||||
                <tr><td><code>multiline</code></td><td>Differentiates between single line and multiline elements, commonly strings</td></tr>
 | 
			
		||||
                <tr><td><code>nil</code></td><td>Literal for the null pointer such as nullptr in C++ or NULL in C</td></tr>
 | 
			
		||||
                <tr><td><code>numeric</code></td><td>Literal number like '16'</td></tr>
 | 
			
		||||
                <tr><td><code>operator</code></td><td>Punctuation character such as '&' or '['</td></tr>
 | 
			
		||||
                <tr><td><code>php</code></td><td>Embedded PHP</td></tr>
 | 
			
		||||
                <tr><td><code>predefined</code></td><td>Style in the range 32.39 that is used for non-lexical purposes</td></tr>
 | 
			
		||||
                <tr><td><code>preprocessor</code></td><td>Element that is recognized in an early stage of translation</td></tr>
 | 
			
		||||
                <tr><td><code>python</code></td><td>Embedded Python</td></tr>
 | 
			
		||||
                <tr><td><code>raw</code></td><td>String type that avoids interpretation: may be used for regular expressions in languages without a specific regex type</td></tr>
 | 
			
		||||
                <tr><td><code>real</code></td><td>Numeric literal which may have a fraction or exponent like '3.84e-15'</td></tr>
 | 
			
		||||
                <tr><td><code>regex</code></td><td>Regular expression literal like '^[a-z]+'</td></tr>
 | 
			
		||||
                <tr><td><code>register</code></td><td>CPU register in assembler languages</td></tr>
 | 
			
		||||
                <tr><td><code>server</code></td><td>Script executed on server</td></tr>
 | 
			
		||||
                <tr><td><code>string</code></td><td>Sequence of characters</td></tr>
 | 
			
		||||
                <tr><td><code>tag</code></td><td>Markup tag like '<br />'</td></tr>
 | 
			
		||||
                <tr><td><code>taskmarker</code></td><td>Word in comment that marks future work like 'FIXME'</td></tr>
 | 
			
		||||
                <tr><td><code>time</code></td><td>Literal representing a time such as '9:34:31'</td></tr>
 | 
			
		||||
                <tr><td><code>unused</code></td><td>Style that is not currently used</td></tr>
 | 
			
		||||
                <tr><td><code>uuid</code></td><td>Universally unique identifier often used in interface definition files which may look like '{098f2470-bae0-11cd-b579-08002b30bfeb}'</td></tr>
 | 
			
		||||
        </table>
 | 
			
		||||
        <h2>
 | 
			
		||||
                Extension
 | 
			
		||||
        </h2>
 | 
			
		||||
        <p>
 | 
			
		||||
                Each element in this scheme may be extended in the future. This may be done by revising this document to provide a common approach to new features.
 | 
			
		||||
                Individual lexers may also choose to expose unique language features through new tags.
 | 
			
		||||
        </p>
 | 
			
		||||
        <h2>
 | 
			
		||||
                Translation
 | 
			
		||||
        </h2>
 | 
			
		||||
        <p>
 | 
			
		||||
                Tags could be exposed directly in user interfaces or configuration languages.
 | 
			
		||||
                However, an application may also translate these to match its naming schema.
 | 
			
		||||
                Capitalization and punctuation could be different (like <code>Here-Doc</code> instead of <code>heredoc</code>),
 | 
			
		||||
                terminology changed ("constant" instead of "literal"),
 | 
			
		||||
                or human language changed from English to Chinese or Spanish.
 | 
			
		||||
        </p>
 | 
			
		||||
        <p>
 | 
			
		||||
                Starting from a common set of tags makes these modifications tractable.
 | 
			
		||||
        </p>
 | 
			
		||||
        <h2>
 | 
			
		||||
                Open issues
 | 
			
		||||
        </h2>
 | 
			
		||||
        <p>
 | 
			
		||||
                The C++ lexer (for example) has inactive states and dynamically allocated substyles.
 | 
			
		||||
                These should be exposed through the metadata mechanism but are not currently.
 | 
			
		||||
        </p>
 | 
			
		||||
</body>
 | 
			
		||||
</html>
 | 
			
		||||
							
								
								
									
										
											BIN
										
									
								
								3rdparty/scintilla552/scintilla/doc/annotations.png
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 25 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								3rdparty/scintilla552/scintilla/doc/eolannotation.png
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 21 KiB  | 
							
								
								
									
										197
									
								
								3rdparty/scintilla552/scintilla/doc/index.html
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,197 @@
 | 
			
		||||
<?xml version="1.0"?>
 | 
			
		||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
 | 
			
		||||
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 | 
			
		||||
<html xmlns="http://www.w3.org/1999/xhtml">
 | 
			
		||||
  <head>
 | 
			
		||||
    <meta name="generator" content="HTML Tidy, see www.w3.org" />
 | 
			
		||||
    <meta name="generator" content="SciTE" />
 | 
			
		||||
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
 | 
			
		||||
    <meta name="keywords" content="Scintilla, SciTE, Editing Component, Text Editor" />
 | 
			
		||||
    <meta name="Description"
 | 
			
		||||
    content="www.scintilla.org is the home of the Scintilla editing component and SciTE text editor application." />
 | 
			
		||||
    <meta name="Date.Modified" content="20240821" />
 | 
			
		||||
    <meta name="viewport" content="width=device-width, initial-scale=1" />
 | 
			
		||||
    <style type="text/css">
 | 
			
		||||
        .logo {
 | 
			
		||||
            background: url(https://www.scintilla.org/ScintillaLogo.png) no-repeat;
 | 
			
		||||
            background-image: image-set(
 | 
			
		||||
                        url(https://www.scintilla.org/ScintillaLogo.png) 1x,
 | 
			
		||||
                        url(https://www.scintilla.org/ScintillaLogo2x.png) 2x  );
 | 
			
		||||
            height:150px;
 | 
			
		||||
        }
 | 
			
		||||
        #versionlist {
 | 
			
		||||
            margin: 0;
 | 
			
		||||
            padding: .5em;
 | 
			
		||||
            list-style-type: none;
 | 
			
		||||
            color: #FFCC99;
 | 
			
		||||
            background: #000000;
 | 
			
		||||
        }
 | 
			
		||||
        #versionlist li {
 | 
			
		||||
            margin-bottom: .5em;
 | 
			
		||||
        }
 | 
			
		||||
        #menu {
 | 
			
		||||
            margin: 0;
 | 
			
		||||
            padding: .5em 0;
 | 
			
		||||
            list-style-type: none;
 | 
			
		||||
            font-size: larger;
 | 
			
		||||
            background: #CCCCCC;
 | 
			
		||||
        }
 | 
			
		||||
        #menu li {
 | 
			
		||||
            margin: 0;
 | 
			
		||||
            padding: 0 .5em;
 | 
			
		||||
            display: inline;
 | 
			
		||||
        }
 | 
			
		||||
    </style>
 | 
			
		||||
    <script type="text/javascript">
 | 
			
		||||
   	function IsRemote() {
 | 
			
		||||
		var loc = '' + window.location;
 | 
			
		||||
		return (loc.indexOf('http:')) != -1 || (loc.indexOf('https:') != -1);
 | 
			
		||||
   	}
 | 
			
		||||
    </script>
 | 
			
		||||
     <title>
 | 
			
		||||
       Scintilla and SciTE
 | 
			
		||||
     </title>
 | 
			
		||||
     <link rel="canonical" href="https://scintilla.org/" />
 | 
			
		||||
  </head>
 | 
			
		||||
  <body bgcolor="#FFFFFF" text="#000000">
 | 
			
		||||
    <table bgcolor="#000000" width="100%" cellspacing="0" cellpadding="0" border="0">
 | 
			
		||||
      <tr>
 | 
			
		||||
        <td width="40%" align="left">
 | 
			
		||||
          <font color="#FFCC99" size="4"> A free source code editing component for Win32,
 | 
			
		||||
          GTK, and macOS</font>
 | 
			
		||||
        </td>
 | 
			
		||||
        <td width="40%" align="right">
 | 
			
		||||
          <font color="#FFCC99" size="3"> Release version 5.5.2<br />
 | 
			
		||||
           Site last modified August 21 2024</font>
 | 
			
		||||
        </td>
 | 
			
		||||
        <td width="20%">
 | 
			
		||||
           
 | 
			
		||||
        </td>
 | 
			
		||||
      </tr>
 | 
			
		||||
    </table>
 | 
			
		||||
    <table bgcolor="#000000" width="100%" cellspacing="0" cellpadding="0" border="0">
 | 
			
		||||
      <tr>
 | 
			
		||||
        <td width="100%" class="logo">
 | 
			
		||||
           
 | 
			
		||||
        </td>
 | 
			
		||||
      </tr>
 | 
			
		||||
    </table>
 | 
			
		||||
    <ul id="versionlist">
 | 
			
		||||
      <li>Version 5.5.2 adds multiple selection copy with separator, a font stretch setting, and access to whether an undo sequence is active.</li>
 | 
			
		||||
      <li>Version 5.5.1 adds SCI_CUTALLOWLINE and fixes a Win32 bug that caused the cursor to flicker.</li>
 | 
			
		||||
      <li>Version 5.5.0 adds elements for inactive additional selections.</li>
 | 
			
		||||
      <li>Version 5.4.3 fixes a redo bug.</li>
 | 
			
		||||
      <li>Version 5.4.2 can save and restore undo history.</li>
 | 
			
		||||
    </ul>
 | 
			
		||||
    <ul id="menu">
 | 
			
		||||
      <li id="remote1"><a href="https://www.scintilla.org/SciTEImage.html">Screenshot</a></li>
 | 
			
		||||
      <li id="remote2"><a href="https://www.scintilla.org/ScintillaDownload.html">Download</a></li>
 | 
			
		||||
      <li><a href="ScintillaDoc.html">Documentation</a></li>
 | 
			
		||||
      <li><a href="ScintillaToDo.html">Bugs</a></li>
 | 
			
		||||
      <li id="remote3"><a href="https://www.scintilla.org/Lexilla.html">Lexilla</a></li>
 | 
			
		||||
      <li id="remote4"><a href="https://www.scintilla.org/SciTE.html">SciTE</a></li>
 | 
			
		||||
      <li><a href="ScintillaHistory.html">History</a></li>
 | 
			
		||||
      <li><a href="ScintillaRelated.html">Related</a></li>
 | 
			
		||||
      <li id="remote5"><a href="https://www.scintilla.org/Privacy.html">Privacy</a></li>
 | 
			
		||||
    </ul>
 | 
			
		||||
<script type="text/javascript" language="JavaScript"><!--
 | 
			
		||||
if (!IsRemote()) { //if NOT remote...
 | 
			
		||||
    document.getElementById('remote1').style.display='none';
 | 
			
		||||
    document.getElementById('remote2').style.display='none';
 | 
			
		||||
    document.getElementById('remote3').style.display='none';
 | 
			
		||||
    document.getElementById('remote4').style.display='none';
 | 
			
		||||
    document.getElementById('remote5').style.display='none';
 | 
			
		||||
}
 | 
			
		||||
//--></script>
 | 
			
		||||
    <p>
 | 
			
		||||
       <a href="ScintillaDoc.html">Scintilla</a> is a free source code editing component.
 | 
			
		||||
       It comes with complete source code and a <a href="https://www.scintilla.org/License.txt">license</a> that
 | 
			
		||||
       permits use in any free project or commercial product.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
       As well as features found in standard text editing components, Scintilla includes features
 | 
			
		||||
       especially useful when editing and debugging source code.
 | 
			
		||||
       These include support for syntax styling, error indicators, code completion and call tips.
 | 
			
		||||
       The selection margin can contain markers like those used in debuggers to indicate
 | 
			
		||||
       breakpoints and the current line. Styling choices are more open than with many editors,
 | 
			
		||||
       allowing the use of proportional fonts, bold and italics, multiple foreground and background
 | 
			
		||||
       colours and multiple fonts.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
       Current development occurs on the default branch as 5.* which requires a recent
 | 
			
		||||
       C++ compiler that supports C++17.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
       <a href="https://www.scintilla.org/Lexilla.html">Lexilla</a> is a library of lexers that can
 | 
			
		||||
       be used with Scintilla.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
       <a href="https://www.scintilla.org/SciTE.html">SciTE</a> is a SCIntilla based Text Editor. Originally built to
 | 
			
		||||
      demonstrate Scintilla, it has grown to be a generally useful editor with facilities for
 | 
			
		||||
      building and running programs. It is best used for jobs with simple configurations - I use it
 | 
			
		||||
      for building test and demonstration programs as well as SciTE and Scintilla, themselves.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
       Development of Scintilla started as an effort to improve the text editor in PythonWin. After
 | 
			
		||||
      being frustrated by problems in the Richedit control used by PythonWin, it looked like the
 | 
			
		||||
      best way forward was to write a new edit control. The biggest problem with Richedit and other
 | 
			
		||||
      similar controls is that they treat styling changes as important persistent changes to the
 | 
			
		||||
      document so they are saved into the undo stack and set the document's dirty flag. For source
 | 
			
		||||
      code, styling should not be persisted as it can be mechanically recreated.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
       Scintilla and SciTE are currently available for Intel Win32, macOS, and Linux compatible operating
 | 
			
		||||
      systems with GTK. They have been run on Windows XP, Windows 7, macOS 10.9+, and on Ubuntu 18.04
 | 
			
		||||
      with GTK 2.24. <a href="https://www.scintilla.org/SciTEImage.html">Here is a screenshot of
 | 
			
		||||
      SciTE.</a><br />
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
       You can <a href="https://www.scintilla.org/ScintillaDownload.html">download Scintilla.</a>
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
       The source code can be downloaded via Mercurial at the Source Forge
 | 
			
		||||
	<a href="https://sourceforge.net/projects/scintilla/">Scintilla project page</a>.
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
       <a href="ScintillaRelated.html">Related sites.</a>
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
       <a href="ScintillaToDo.html">Bugs and To Do list.</a>
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
       <a href="ScintillaHistory.html">History and contribution credits.</a>
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
       <a href="https://www.scintilla.org/Icons.html">Icons that can be used with Scintilla.</a>
 | 
			
		||||
    </p>
 | 
			
		||||
    <p>
 | 
			
		||||
      Questions and comments about Scintilla should be directed to the
 | 
			
		||||
      <a href="https://groups.google.com/forum/#!forum/scintilla-interest">scintilla-interest</a>
 | 
			
		||||
      mailing list,
 | 
			
		||||
      which is for discussion of Scintilla and related projects, their bugs and future features.
 | 
			
		||||
      This is a low traffic list, averaging less than 20 messages per week.
 | 
			
		||||
      To avoid spam, only list members can write to the list.
 | 
			
		||||
      New versions of Scintilla are announced on scintilla-interest and may also be received by SourceForge
 | 
			
		||||
      members by clicking on the Monitor column icon for "scintilla" on
 | 
			
		||||
      <a href="https://sourceforge.net/project/showfiles.php?group_id=2439">the downloads page</a>.
 | 
			
		||||
      <br />
 | 
			
		||||
    </p>
 | 
			
		||||
There is a <a href="https://sourceforge.net/projects/scintilla/">Scintilla project page</a>
 | 
			
		||||
hosted on
 | 
			
		||||
<script type="text/javascript" language="JavaScript">
 | 
			
		||||
<!--
 | 
			
		||||
if (IsRemote()) {
 | 
			
		||||
    document.write('<a href="https://sourceforge.net/projects/scintilla/">');
 | 
			
		||||
    document.write('<img src="https://sflogo.sourceforge.net/sflogo.php?group_id=2439&type=8" width="80" height="15" alt="Get Scintilla at SourceForge.net. Fast, secure and Free Open Source software downloads" /></a> ');
 | 
			
		||||
} else {
 | 
			
		||||
    document.write('<a href="https://sourceforge.net/projects/scintilla/">SourceForge<\/a>');
 | 
			
		||||
}
 | 
			
		||||
//-->
 | 
			
		||||
</script>
 | 
			
		||||
<noscript>
 | 
			
		||||
<a href="https://sourceforge.net/projects/scintilla/">
 | 
			
		||||
<img src="https://sflogo.sourceforge.net/sflogo.php?group_id=2439&type=8" width="80" height="15" alt="Get Scintilla at SourceForge.net. Fast, secure and Free Open Source software downloads" /></a>
 | 
			
		||||
</noscript>
 | 
			
		||||
  </body>
 | 
			
		||||
</html>
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										
											BIN
										
									
								
								3rdparty/scintilla552/scintilla/doc/styledmargin.png
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 14 KiB  | 
							
								
								
									
										72
									
								
								3rdparty/scintilla552/scintilla/gtk/Converter.h
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,72 @@
 | 
			
		||||
// Scintilla source code edit control
 | 
			
		||||
// Converter.h - Encapsulation of iconv
 | 
			
		||||
// Copyright 2004 by Neil Hodgson <neilh@scintilla.org>
 | 
			
		||||
// The License.txt file describes the conditions under which this software may be distributed.
 | 
			
		||||
 | 
			
		||||
#ifndef CONVERTER_H
 | 
			
		||||
#define CONVERTER_H
 | 
			
		||||
 | 
			
		||||
namespace Scintilla {
 | 
			
		||||
 | 
			
		||||
const GIConv iconvhBad = (GIConv)(-1);
 | 
			
		||||
const gsize sizeFailure = static_cast<gsize>(-1);
 | 
			
		||||
/**
 | 
			
		||||
 * Encapsulate g_iconv safely.
 | 
			
		||||
 */
 | 
			
		||||
class Converter {
 | 
			
		||||
	GIConv iconvh = iconvhBad;
 | 
			
		||||
	void OpenHandle(const char *fullDestination, const char *charSetSource) noexcept {
 | 
			
		||||
		iconvh = g_iconv_open(fullDestination, charSetSource);
 | 
			
		||||
	}
 | 
			
		||||
	bool Succeeded() const noexcept {
 | 
			
		||||
		return iconvh != iconvhBad;
 | 
			
		||||
	}
 | 
			
		||||
public:
 | 
			
		||||
	Converter() noexcept = default;
 | 
			
		||||
	Converter(const char *charSetDestination, const char *charSetSource, bool transliterations) {
 | 
			
		||||
		Open(charSetDestination, charSetSource, transliterations);
 | 
			
		||||
	}
 | 
			
		||||
	// Deleted so Converter objects can not be copied.
 | 
			
		||||
	Converter(const Converter &) = delete;
 | 
			
		||||
	Converter(Converter &&) = delete;
 | 
			
		||||
	Converter &operator=(const Converter &) = delete;
 | 
			
		||||
	Converter &operator=(Converter &&) = delete;
 | 
			
		||||
	~Converter() {
 | 
			
		||||
		Close();
 | 
			
		||||
	}
 | 
			
		||||
	operator bool() const noexcept {
 | 
			
		||||
		return Succeeded();
 | 
			
		||||
	}
 | 
			
		||||
	void Open(const char *charSetDestination, const char *charSetSource, bool transliterations) {
 | 
			
		||||
		Close();
 | 
			
		||||
		if (*charSetSource) {
 | 
			
		||||
			// Try allowing approximate transliterations
 | 
			
		||||
			if (transliterations) {
 | 
			
		||||
				std::string fullDest(charSetDestination);
 | 
			
		||||
				fullDest.append("//TRANSLIT");
 | 
			
		||||
				OpenHandle(fullDest.c_str(), charSetSource);
 | 
			
		||||
			}
 | 
			
		||||
			if (!Succeeded()) {
 | 
			
		||||
				// Transliterations failed so try basic name
 | 
			
		||||
				OpenHandle(charSetDestination, charSetSource);
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	void Close() noexcept {
 | 
			
		||||
		if (Succeeded()) {
 | 
			
		||||
			g_iconv_close(iconvh);
 | 
			
		||||
			iconvh = iconvhBad;
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	gsize Convert(char **src, gsize *srcleft, char **dst, gsize *dstleft) const noexcept {
 | 
			
		||||
		if (!Succeeded()) {
 | 
			
		||||
			return sizeFailure;
 | 
			
		||||
		} else {
 | 
			
		||||
			return g_iconv(iconvh, src, srcleft, dst, dstleft);
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
							
								
								
									
										23
									
								
								3rdparty/scintilla552/scintilla/gtk/DepGen.py
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,23 @@
 | 
			
		||||
#!/usr/bin/env python3
 | 
			
		||||
# DepGen.py - produce a make dependencies file for Scintilla
 | 
			
		||||
# Copyright 2019 by Neil Hodgson <neilh@scintilla.org>
 | 
			
		||||
# The License.txt file describes the conditions under which this software may be distributed.
 | 
			
		||||
# Requires Python 3.6 or later
 | 
			
		||||
 | 
			
		||||
import sys
 | 
			
		||||
 | 
			
		||||
sys.path.append("..")
 | 
			
		||||
 | 
			
		||||
from scripts import Dependencies
 | 
			
		||||
 | 
			
		||||
topComment = "# Created by DepGen.py. To recreate, run DepGen.py.\n"
 | 
			
		||||
 | 
			
		||||
def Generate():
 | 
			
		||||
	sources = ["../src/*.cxx"]
 | 
			
		||||
	includes = ["../include", "../src"]
 | 
			
		||||
 | 
			
		||||
	deps = Dependencies.FindDependencies(["../gtk/*.cxx"] + sources, ["../gtk"] + includes, ".o", "../gtk/")
 | 
			
		||||
	Dependencies.UpdateDependencies("../gtk/deps.mak", deps, topComment)
 | 
			
		||||
 | 
			
		||||
if __name__ == "__main__":
 | 
			
		||||
	Generate()
 | 
			
		||||
							
								
								
									
										2240
									
								
								3rdparty/scintilla552/scintilla/gtk/PlatGTK.cxx
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										3394
									
								
								3rdparty/scintilla552/scintilla/gtk/ScintillaGTK.cxx
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										337
									
								
								3rdparty/scintilla552/scintilla/gtk/ScintillaGTK.h
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,337 @@
 | 
			
		||||
// Scintilla source code edit control
 | 
			
		||||
// ScintillaGTK.h - GTK+ specific subclass of ScintillaBase
 | 
			
		||||
// Copyright 1998-2004 by Neil Hodgson <neilh@scintilla.org>
 | 
			
		||||
// The License.txt file describes the conditions under which this software may be distributed.
 | 
			
		||||
 | 
			
		||||
#ifndef SCINTILLAGTK_H
 | 
			
		||||
#define SCINTILLAGTK_H
 | 
			
		||||
 | 
			
		||||
namespace Scintilla::Internal {
 | 
			
		||||
 | 
			
		||||
class ScintillaGTKAccessible;
 | 
			
		||||
 | 
			
		||||
#define OBJECT_CLASS GObjectClass
 | 
			
		||||
 | 
			
		||||
struct FontOptions {
 | 
			
		||||
	cairo_antialias_t antialias {};
 | 
			
		||||
	cairo_subpixel_order_t order {};
 | 
			
		||||
	cairo_hint_style_t hint {};
 | 
			
		||||
	FontOptions() noexcept = default;
 | 
			
		||||
	explicit FontOptions(GtkWidget *widget) noexcept;
 | 
			
		||||
	bool operator==(const FontOptions &other) const noexcept;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
class ScintillaGTK : public ScintillaBase {
 | 
			
		||||
	friend class ScintillaGTKAccessible;
 | 
			
		||||
 | 
			
		||||
	_ScintillaObject *sci;
 | 
			
		||||
	Window wText;
 | 
			
		||||
	Window scrollbarv;
 | 
			
		||||
	Window scrollbarh;
 | 
			
		||||
	GtkAdjustment *adjustmentv;
 | 
			
		||||
	GtkAdjustment *adjustmenth;
 | 
			
		||||
	int verticalScrollBarWidth;
 | 
			
		||||
	int horizontalScrollBarHeight;
 | 
			
		||||
 | 
			
		||||
	PRectangle rectangleClient;
 | 
			
		||||
 | 
			
		||||
	SelectionText primary;
 | 
			
		||||
	SelectionPosition posPrimary;
 | 
			
		||||
 | 
			
		||||
	UniqueGdkEvent evbtn;
 | 
			
		||||
	guint buttonMouse;
 | 
			
		||||
	bool capturedMouse;
 | 
			
		||||
	bool dragWasDropped;
 | 
			
		||||
	int lastKey;
 | 
			
		||||
	int rectangularSelectionModifier;
 | 
			
		||||
 | 
			
		||||
	GtkWidgetClass *parentClass;
 | 
			
		||||
 | 
			
		||||
	static inline GdkAtom atomUTF8 {};
 | 
			
		||||
	static inline GdkAtom atomUTF8Mime {};
 | 
			
		||||
	static inline GdkAtom atomString {};
 | 
			
		||||
	static inline GdkAtom atomUriList {};
 | 
			
		||||
	static inline GdkAtom atomDROPFILES_DND {};
 | 
			
		||||
	GdkAtom atomSought;
 | 
			
		||||
	size_t inClearSelection = 0;
 | 
			
		||||
 | 
			
		||||
#if PLAT_GTK_WIN32
 | 
			
		||||
	CLIPFORMAT cfColumnSelect;
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
	bool preeditInitialized;
 | 
			
		||||
	Window wPreedit;
 | 
			
		||||
	Window wPreeditDraw;
 | 
			
		||||
	UniqueIMContext im_context;
 | 
			
		||||
	GUnicodeScript lastNonCommonScript;
 | 
			
		||||
 | 
			
		||||
	GtkSettings *settings;
 | 
			
		||||
	gulong settingsHandlerId;
 | 
			
		||||
 | 
			
		||||
	// Wheel mouse support
 | 
			
		||||
	unsigned int linesPerScroll;
 | 
			
		||||
	gint64 lastWheelMouseTime;
 | 
			
		||||
	gint lastWheelMouseDirection;
 | 
			
		||||
	gint wheelMouseIntensity;
 | 
			
		||||
	gdouble smoothScrollY;
 | 
			
		||||
	gdouble smoothScrollX;
 | 
			
		||||
 | 
			
		||||
#if GTK_CHECK_VERSION(3,0,0)
 | 
			
		||||
	cairo_rectangle_list_t *rgnUpdate;
 | 
			
		||||
#else
 | 
			
		||||
	GdkRegion *rgnUpdate;
 | 
			
		||||
#endif
 | 
			
		||||
	bool repaintFullWindow;
 | 
			
		||||
 | 
			
		||||
	guint styleIdleID;
 | 
			
		||||
	guint scrollBarIdleID = 0;
 | 
			
		||||
	FontOptions fontOptionsPrevious;
 | 
			
		||||
	int accessibilityEnabled;
 | 
			
		||||
	AtkObject *accessible;
 | 
			
		||||
 | 
			
		||||
public:
 | 
			
		||||
	explicit ScintillaGTK(_ScintillaObject *sci_);
 | 
			
		||||
	// Deleted so ScintillaGTK objects can not be copied.
 | 
			
		||||
	ScintillaGTK(const ScintillaGTK &) = delete;
 | 
			
		||||
	ScintillaGTK(ScintillaGTK &&) = delete;
 | 
			
		||||
	ScintillaGTK &operator=(const ScintillaGTK &) = delete;
 | 
			
		||||
	ScintillaGTK &operator=(ScintillaGTK &&) = delete;
 | 
			
		||||
	~ScintillaGTK() override;
 | 
			
		||||
	static ScintillaGTK *FromWidget(GtkWidget *widget) noexcept;
 | 
			
		||||
	static void ClassInit(OBJECT_CLASS *object_class, GtkWidgetClass *widget_class, GtkContainerClass *container_class);
 | 
			
		||||
private:
 | 
			
		||||
	void Init();
 | 
			
		||||
	void Finalise() override;
 | 
			
		||||
	bool AbandonPaint() override;
 | 
			
		||||
	void DisplayCursor(Window::Cursor c) override;
 | 
			
		||||
	bool DragThreshold(Point ptStart, Point ptNow) override;
 | 
			
		||||
	void StartDrag() override;
 | 
			
		||||
	Sci::Position TargetAsUTF8(char *text) const;
 | 
			
		||||
	Sci::Position EncodedFromUTF8(const char *utf8, char *encoded) const;
 | 
			
		||||
	bool ValidCodePage(int codePage) const override;
 | 
			
		||||
	std::string UTF8FromEncoded(std::string_view encoded) const override;
 | 
			
		||||
	std::string EncodedFromUTF8(std::string_view utf8) const override;
 | 
			
		||||
public: 	// Public for scintilla_send_message
 | 
			
		||||
	sptr_t WndProc(Scintilla::Message iMessage, Scintilla::uptr_t wParam, Scintilla::sptr_t lParam) override;
 | 
			
		||||
private:
 | 
			
		||||
	sptr_t DefWndProc(Scintilla::Message iMessage, Scintilla::uptr_t wParam, Scintilla::sptr_t lParam) override;
 | 
			
		||||
	struct TimeThunk {
 | 
			
		||||
		TickReason reason;
 | 
			
		||||
		ScintillaGTK *scintilla;
 | 
			
		||||
		guint timer;
 | 
			
		||||
		TimeThunk() noexcept : reason(TickReason::caret), scintilla(nullptr), timer(0) {}
 | 
			
		||||
	};
 | 
			
		||||
	TimeThunk timers[static_cast<size_t>(TickReason::dwell)+1];
 | 
			
		||||
	bool FineTickerRunning(TickReason reason) override;
 | 
			
		||||
	void FineTickerStart(TickReason reason, int millis, int tolerance) override;
 | 
			
		||||
	void FineTickerCancel(TickReason reason) override;
 | 
			
		||||
	bool SetIdle(bool on) override;
 | 
			
		||||
	void SetMouseCapture(bool on) override;
 | 
			
		||||
	bool HaveMouseCapture() override;
 | 
			
		||||
	bool PaintContains(PRectangle rc) override;
 | 
			
		||||
	void FullPaint();
 | 
			
		||||
	void SetClientRectangle();
 | 
			
		||||
	PRectangle GetClientRectangle() const override;
 | 
			
		||||
	void ScrollText(Sci::Line linesToMove) override;
 | 
			
		||||
	void SetVerticalScrollPos() override;
 | 
			
		||||
	void SetHorizontalScrollPos() override;
 | 
			
		||||
	bool ModifyScrollBars(Sci::Line nMax, Sci::Line nPage) override;
 | 
			
		||||
	void ReconfigureScrollBars() override;
 | 
			
		||||
	void SetScrollBars() override;
 | 
			
		||||
	void NotifyChange() override;
 | 
			
		||||
	void NotifyFocus(bool focus) override;
 | 
			
		||||
	void NotifyParent(Scintilla::NotificationData scn) override;
 | 
			
		||||
	void NotifyKey(Scintilla::Keys key, Scintilla::KeyMod modifiers);
 | 
			
		||||
	void NotifyURIDropped(const char *list);
 | 
			
		||||
	const char *CharacterSetID() const;
 | 
			
		||||
	std::unique_ptr<CaseFolder> CaseFolderForEncoding() override;
 | 
			
		||||
	std::string CaseMapString(const std::string &s, CaseMapping caseMapping) override;
 | 
			
		||||
	int KeyDefault(Scintilla::Keys key, Scintilla::KeyMod modifiers) override;
 | 
			
		||||
	void CopyToClipboard(const SelectionText &selectedText) override;
 | 
			
		||||
	void Copy() override;
 | 
			
		||||
	void RequestSelection(GdkAtom atomSelection);
 | 
			
		||||
	void Paste() override;
 | 
			
		||||
	void CreateCallTipWindow(PRectangle rc) override;
 | 
			
		||||
	void AddToPopUp(const char *label, int cmd = 0, bool enabled = true) override;
 | 
			
		||||
	bool OwnPrimarySelection();
 | 
			
		||||
	void ClaimSelection() override;
 | 
			
		||||
	static bool IsStringAtom(GdkAtom type);
 | 
			
		||||
	void GetGtkSelectionText(GtkSelectionData *selectionData, SelectionText &selText);
 | 
			
		||||
	void InsertSelection(GtkClipboard *clipBoard, GtkSelectionData *selectionData);
 | 
			
		||||
public:	// Public for SelectionReceiver
 | 
			
		||||
	GObject *MainObject() const noexcept;
 | 
			
		||||
	void ReceivedClipboard(GtkClipboard *clipBoard, GtkSelectionData *selection_data) noexcept;
 | 
			
		||||
private:
 | 
			
		||||
	void ReceivedSelection(GtkSelectionData *selection_data);
 | 
			
		||||
	void ReceivedDrop(GtkSelectionData *selection_data);
 | 
			
		||||
	static void GetSelection(GtkSelectionData *selection_data, guint info, SelectionText *text);
 | 
			
		||||
	void StoreOnClipboard(SelectionText *clipText);
 | 
			
		||||
	static void ClipboardGetSelection(GtkClipboard *clip, GtkSelectionData *selection_data, guint info, void *data);
 | 
			
		||||
	static void ClipboardClearSelection(GtkClipboard *clip, void *data);
 | 
			
		||||
 | 
			
		||||
	void ClearPrimarySelection();
 | 
			
		||||
	void PrimaryGetSelectionThis(GtkClipboard *clip, GtkSelectionData *selection_data, guint info);
 | 
			
		||||
	static void PrimaryGetSelection(GtkClipboard *clip, GtkSelectionData *selection_data, guint info, gpointer pSci);
 | 
			
		||||
	void PrimaryClearSelectionThis(GtkClipboard *clip);
 | 
			
		||||
	static void PrimaryClearSelection(GtkClipboard *clip, gpointer pSci);
 | 
			
		||||
 | 
			
		||||
	void UnclaimSelection(GdkEventSelection *selection_event);
 | 
			
		||||
	void Resize(int width, int height);
 | 
			
		||||
 | 
			
		||||
	// Callback functions
 | 
			
		||||
	void RealizeThis(GtkWidget *widget);
 | 
			
		||||
	static void Realize(GtkWidget *widget);
 | 
			
		||||
	void UnRealizeThis(GtkWidget *widget);
 | 
			
		||||
	static void UnRealize(GtkWidget *widget);
 | 
			
		||||
	void MapThis();
 | 
			
		||||
	static void Map(GtkWidget *widget);
 | 
			
		||||
	void UnMapThis();
 | 
			
		||||
	static void UnMap(GtkWidget *widget);
 | 
			
		||||
	gint FocusInThis(GtkWidget *widget);
 | 
			
		||||
	static gint FocusIn(GtkWidget *widget, GdkEventFocus *event);
 | 
			
		||||
	gint FocusOutThis(GtkWidget *widget);
 | 
			
		||||
	static gint FocusOut(GtkWidget *widget, GdkEventFocus *event);
 | 
			
		||||
	static void SizeRequest(GtkWidget *widget, GtkRequisition *requisition);
 | 
			
		||||
#if GTK_CHECK_VERSION(3,0,0)
 | 
			
		||||
	static void GetPreferredWidth(GtkWidget *widget, gint *minimalWidth, gint *naturalWidth);
 | 
			
		||||
	static void GetPreferredHeight(GtkWidget *widget, gint *minimalHeight, gint *naturalHeight);
 | 
			
		||||
#endif
 | 
			
		||||
	static void SizeAllocate(GtkWidget *widget, GtkAllocation *allocation);
 | 
			
		||||
	void CheckForFontOptionChange();
 | 
			
		||||
#if GTK_CHECK_VERSION(3,0,0)
 | 
			
		||||
	gboolean DrawTextThis(cairo_t *cr);
 | 
			
		||||
	static gboolean DrawText(GtkWidget *widget, cairo_t *cr, ScintillaGTK *sciThis);
 | 
			
		||||
	gboolean DrawThis(cairo_t *cr);
 | 
			
		||||
	static gboolean DrawMain(GtkWidget *widget, cairo_t *cr);
 | 
			
		||||
#else
 | 
			
		||||
	gboolean ExposeTextThis(GtkWidget *widget, GdkEventExpose *ose);
 | 
			
		||||
	static gboolean ExposeText(GtkWidget *widget, GdkEventExpose *ose, ScintillaGTK *sciThis);
 | 
			
		||||
	gboolean Expose(GtkWidget *widget, GdkEventExpose *ose);
 | 
			
		||||
	static gboolean ExposeMain(GtkWidget *widget, GdkEventExpose *ose);
 | 
			
		||||
#endif
 | 
			
		||||
	void ForAll(GtkCallback callback, gpointer callback_data);
 | 
			
		||||
	static void MainForAll(GtkContainer *container, gboolean include_internals, GtkCallback callback, gpointer callback_data);
 | 
			
		||||
 | 
			
		||||
	static void ScrollSignal(GtkAdjustment *adj, ScintillaGTK *sciThis);
 | 
			
		||||
	static void ScrollHSignal(GtkAdjustment *adj, ScintillaGTK *sciThis);
 | 
			
		||||
	gint PressThis(GdkEventButton *event);
 | 
			
		||||
	static gint Press(GtkWidget *widget, GdkEventButton *event);
 | 
			
		||||
	static gint MouseRelease(GtkWidget *widget, GdkEventButton *event);
 | 
			
		||||
	static gint ScrollEvent(GtkWidget *widget, GdkEventScroll *event);
 | 
			
		||||
	static gint Motion(GtkWidget *widget, GdkEventMotion *event);
 | 
			
		||||
	gboolean KeyThis(GdkEventKey *event);
 | 
			
		||||
	static gboolean KeyPress(GtkWidget *widget, GdkEventKey *event);
 | 
			
		||||
	static gboolean KeyRelease(GtkWidget *widget, GdkEventKey *event);
 | 
			
		||||
#if GTK_CHECK_VERSION(3,0,0)
 | 
			
		||||
	gboolean DrawPreeditThis(GtkWidget *widget, cairo_t *cr);
 | 
			
		||||
	static gboolean DrawPreedit(GtkWidget *widget, cairo_t *cr, ScintillaGTK *sciThis);
 | 
			
		||||
#else
 | 
			
		||||
	gboolean ExposePreeditThis(GtkWidget *widget, GdkEventExpose *ose);
 | 
			
		||||
	static gboolean ExposePreedit(GtkWidget *widget, GdkEventExpose *ose, ScintillaGTK *sciThis);
 | 
			
		||||
#endif
 | 
			
		||||
	AtkObject *GetAccessibleThis(GtkWidget *widget);
 | 
			
		||||
	static AtkObject *GetAccessible(GtkWidget *widget);
 | 
			
		||||
 | 
			
		||||
	bool KoreanIME();
 | 
			
		||||
	void CommitThis(char *commitStr);
 | 
			
		||||
	static void Commit(GtkIMContext *context, char *str, ScintillaGTK *sciThis);
 | 
			
		||||
	void PreeditChangedInlineThis();
 | 
			
		||||
	void PreeditChangedWindowedThis();
 | 
			
		||||
	static void PreeditChanged(GtkIMContext *context, ScintillaGTK *sciThis);
 | 
			
		||||
	bool RetrieveSurroundingThis(GtkIMContext *context);
 | 
			
		||||
	static gboolean RetrieveSurrounding(GtkIMContext *context, ScintillaGTK *sciThis);
 | 
			
		||||
	bool DeleteSurroundingThis(GtkIMContext *context, gint characterOffset, gint characterCount);
 | 
			
		||||
	static gboolean DeleteSurrounding(GtkIMContext *context, gint characterOffset, gint characterCount,
 | 
			
		||||
					  ScintillaGTK *sciThis);
 | 
			
		||||
	void MoveImeCarets(Sci::Position pos);
 | 
			
		||||
	void DrawImeIndicator(int indicator, Sci::Position len);
 | 
			
		||||
	void SetCandidateWindowPos();
 | 
			
		||||
 | 
			
		||||
	static void StyleSetText(GtkWidget *widget, GtkStyle *previous, void *);
 | 
			
		||||
	static void RealizeText(GtkWidget *widget, void *);
 | 
			
		||||
	static void Dispose(GObject *object);
 | 
			
		||||
	static void Destroy(GObject *object);
 | 
			
		||||
	static void SelectionReceived(GtkWidget *widget, GtkSelectionData *selection_data,
 | 
			
		||||
				      guint time);
 | 
			
		||||
	static void SelectionGet(GtkWidget *widget, GtkSelectionData *selection_data,
 | 
			
		||||
				 guint info, guint time);
 | 
			
		||||
	static gint SelectionClear(GtkWidget *widget, GdkEventSelection *selection_event);
 | 
			
		||||
	gboolean DragMotionThis(GdkDragContext *context, gint x, gint y, guint dragtime);
 | 
			
		||||
	static gboolean DragMotion(GtkWidget *widget, GdkDragContext *context,
 | 
			
		||||
				   gint x, gint y, guint dragtime);
 | 
			
		||||
	static void DragLeave(GtkWidget *widget, GdkDragContext *context,
 | 
			
		||||
			      guint time);
 | 
			
		||||
	static void DragEnd(GtkWidget *widget, GdkDragContext *context);
 | 
			
		||||
	static gboolean Drop(GtkWidget *widget, GdkDragContext *context,
 | 
			
		||||
			     gint x, gint y, guint time);
 | 
			
		||||
	static void DragDataReceived(GtkWidget *widget, GdkDragContext *context,
 | 
			
		||||
				     gint x, gint y, GtkSelectionData *selection_data, guint info, guint time);
 | 
			
		||||
	static void DragDataGet(GtkWidget *widget, GdkDragContext *context,
 | 
			
		||||
				GtkSelectionData *selection_data, guint info, guint time);
 | 
			
		||||
	static gboolean TimeOut(gpointer ptt);
 | 
			
		||||
	static gboolean IdleCallback(gpointer pSci);
 | 
			
		||||
	static gboolean StyleIdle(gpointer pSci);
 | 
			
		||||
	void IdleWork() override;
 | 
			
		||||
	void QueueIdleWork(WorkItems items, Sci::Position upTo) override;
 | 
			
		||||
	void SetDocPointer(Document *document) override;
 | 
			
		||||
	static void PopUpCB(GtkMenuItem *menuItem, ScintillaGTK *sciThis);
 | 
			
		||||
 | 
			
		||||
#if GTK_CHECK_VERSION(3,0,0)
 | 
			
		||||
	static gboolean DrawCT(GtkWidget *widget, cairo_t *cr, CallTip *ctip);
 | 
			
		||||
#else
 | 
			
		||||
	static gboolean ExposeCT(GtkWidget *widget, GdkEventExpose *ose, CallTip *ctip);
 | 
			
		||||
#endif
 | 
			
		||||
	static gboolean PressCT(GtkWidget *widget, GdkEventButton *event, ScintillaGTK *sciThis);
 | 
			
		||||
 | 
			
		||||
	static sptr_t DirectFunction(sptr_t ptr,
 | 
			
		||||
				     unsigned int iMessage, uptr_t wParam, sptr_t lParam);
 | 
			
		||||
	static sptr_t DirectStatusFunction(sptr_t ptr,
 | 
			
		||||
				     unsigned int iMessage, uptr_t wParam, sptr_t lParam, int *pStatus);
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
// helper class to watch a GObject lifetime and get notified when it dies
 | 
			
		||||
class GObjectWatcher {
 | 
			
		||||
	GObject *weakRef;
 | 
			
		||||
 | 
			
		||||
	void WeakNotifyThis([[maybe_unused]] GObject *obj) {
 | 
			
		||||
		PLATFORM_ASSERT(obj == weakRef);
 | 
			
		||||
 | 
			
		||||
		Destroyed();
 | 
			
		||||
		weakRef = nullptr;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	static void WeakNotify(gpointer data, GObject *obj) {
 | 
			
		||||
		static_cast<GObjectWatcher *>(data)->WeakNotifyThis(obj);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
public:
 | 
			
		||||
	GObjectWatcher(GObject *obj) :
 | 
			
		||||
		weakRef(obj) {
 | 
			
		||||
		g_object_weak_ref(weakRef, WeakNotify, this);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// Deleted so GObjectWatcher objects can not be copied.
 | 
			
		||||
	GObjectWatcher(const GObjectWatcher&) = delete;
 | 
			
		||||
	GObjectWatcher(GObjectWatcher&&) = delete;
 | 
			
		||||
	GObjectWatcher&operator=(const GObjectWatcher&) = delete;
 | 
			
		||||
	GObjectWatcher&operator=(GObjectWatcher&&) = delete;
 | 
			
		||||
 | 
			
		||||
	virtual ~GObjectWatcher() {
 | 
			
		||||
		if (weakRef) {
 | 
			
		||||
			g_object_weak_unref(weakRef, WeakNotify, this);
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	virtual void Destroyed() {}
 | 
			
		||||
 | 
			
		||||
	bool IsDestroyed() const {
 | 
			
		||||
		return weakRef != nullptr;
 | 
			
		||||
	}
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
std::string ConvertText(const char *s, size_t len, const char *charSetDest,
 | 
			
		||||
			const char *charSetSource, bool transliterations, bool silent=false);
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
							
								
								
									
										1264
									
								
								3rdparty/scintilla552/scintilla/gtk/ScintillaGTKAccessible.cxx
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										194
									
								
								3rdparty/scintilla552/scintilla/gtk/ScintillaGTKAccessible.h
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,194 @@
 | 
			
		||||
/* Scintilla source code edit control */
 | 
			
		||||
/* ScintillaGTKAccessible.h - GTK+ accessibility for ScintillaGTK */
 | 
			
		||||
/* Copyright 2016 by Colomban Wendling <colomban@geany.org>
 | 
			
		||||
 * The License.txt file describes the conditions under which this software may be distributed. */
 | 
			
		||||
 | 
			
		||||
#ifndef SCINTILLAGTKACCESSIBLE_H
 | 
			
		||||
#define SCINTILLAGTKACCESSIBLE_H
 | 
			
		||||
 | 
			
		||||
namespace Scintilla::Internal {
 | 
			
		||||
 | 
			
		||||
#ifndef ATK_CHECK_VERSION
 | 
			
		||||
# define ATK_CHECK_VERSION(x, y, z) 0
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
class ScintillaGTKAccessible {
 | 
			
		||||
private:
 | 
			
		||||
	// weak references to related objects
 | 
			
		||||
	GtkAccessible *accessible;
 | 
			
		||||
	ScintillaGTK *sci;
 | 
			
		||||
 | 
			
		||||
	// local state for comparing
 | 
			
		||||
	Sci::Position old_pos;
 | 
			
		||||
	std::vector<SelectionRange> old_sels;
 | 
			
		||||
 | 
			
		||||
	bool Enabled() const;
 | 
			
		||||
	void UpdateCursor();
 | 
			
		||||
	void Notify(GtkWidget *widget, gint code, Scintilla::NotificationData *nt);
 | 
			
		||||
	static void SciNotify(GtkWidget *widget, gint code, Scintilla::NotificationData *nt, gpointer data) {
 | 
			
		||||
		try {
 | 
			
		||||
			static_cast<ScintillaGTKAccessible*>(data)->Notify(widget, code, nt);
 | 
			
		||||
		} catch (...) {}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	Sci::Position ByteOffsetFromCharacterOffset(Sci::Position startByte, int characterOffset) {
 | 
			
		||||
		if (!FlagSet(sci->pdoc->LineCharacterIndex(), Scintilla::LineCharacterIndexType::Utf32)) {
 | 
			
		||||
			return startByte + characterOffset;
 | 
			
		||||
		}
 | 
			
		||||
		if (characterOffset > 0) {
 | 
			
		||||
			// Try and reduce the range by reverse-looking into the character offset cache
 | 
			
		||||
			Sci::Line lineStart = sci->pdoc->LineFromPosition(startByte);
 | 
			
		||||
			Sci::Position posStart = sci->pdoc->IndexLineStart(lineStart, Scintilla::LineCharacterIndexType::Utf32);
 | 
			
		||||
			Sci::Line line = sci->pdoc->LineFromPositionIndex(posStart + characterOffset, Scintilla::LineCharacterIndexType::Utf32);
 | 
			
		||||
			if (line != lineStart) {
 | 
			
		||||
				startByte += sci->pdoc->LineStart(line) - sci->pdoc->LineStart(lineStart);
 | 
			
		||||
				characterOffset -= sci->pdoc->IndexLineStart(line, Scintilla::LineCharacterIndexType::Utf32) - posStart;
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		Sci::Position pos = sci->pdoc->GetRelativePosition(startByte, characterOffset);
 | 
			
		||||
		if (pos == INVALID_POSITION) {
 | 
			
		||||
			// clamp invalid positions inside the document
 | 
			
		||||
			if (characterOffset > 0) {
 | 
			
		||||
				return sci->pdoc->Length();
 | 
			
		||||
			} else {
 | 
			
		||||
				return 0;
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		return pos;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	Sci::Position ByteOffsetFromCharacterOffset(Sci::Position characterOffset) {
 | 
			
		||||
		return ByteOffsetFromCharacterOffset(0, characterOffset);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	Sci::Position CharacterOffsetFromByteOffset(Sci::Position byteOffset) {
 | 
			
		||||
		if (!FlagSet(sci->pdoc->LineCharacterIndex(), Scintilla::LineCharacterIndexType::Utf32)) {
 | 
			
		||||
			return byteOffset;
 | 
			
		||||
		}
 | 
			
		||||
		const Sci::Line line = sci->pdoc->LineFromPosition(byteOffset);
 | 
			
		||||
		const Sci::Position lineStart = sci->pdoc->LineStart(line);
 | 
			
		||||
		return sci->pdoc->IndexLineStart(line, Scintilla::LineCharacterIndexType::Utf32) + sci->pdoc->CountCharacters(lineStart, byteOffset);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	void CharacterRangeFromByteRange(Sci::Position startByte, Sci::Position endByte, int *startChar, int *endChar) {
 | 
			
		||||
		*startChar = CharacterOffsetFromByteOffset(startByte);
 | 
			
		||||
		*endChar = *startChar + sci->pdoc->CountCharacters(startByte, endByte);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	void ByteRangeFromCharacterRange(int startChar, int endChar, Sci::Position& startByte, Sci::Position& endByte) {
 | 
			
		||||
		startByte = ByteOffsetFromCharacterOffset(startChar);
 | 
			
		||||
		endByte = ByteOffsetFromCharacterOffset(startByte, endChar - startChar);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	Sci::Position PositionBefore(Sci::Position pos) {
 | 
			
		||||
		return sci->pdoc->MovePositionOutsideChar(pos - 1, -1, true);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	Sci::Position PositionAfter(Sci::Position pos) {
 | 
			
		||||
		return sci->pdoc->MovePositionOutsideChar(pos + 1, 1, true);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	int StyleAt(Sci::Position position, bool ensureStyle = false) {
 | 
			
		||||
		if (ensureStyle)
 | 
			
		||||
			sci->pdoc->EnsureStyledTo(position);
 | 
			
		||||
		return sci->pdoc->StyleAt(position);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// For AtkText
 | 
			
		||||
	gchar *GetTextRangeUTF8(Sci::Position startByte, Sci::Position endByte);
 | 
			
		||||
	gchar *GetText(int startChar, int endChar);
 | 
			
		||||
	gchar *GetTextAfterOffset(int charOffset, AtkTextBoundary boundaryType, int *startChar, int *endChar);
 | 
			
		||||
	gchar *GetTextBeforeOffset(int charOffset, AtkTextBoundary boundaryType, int *startChar, int *endChar);
 | 
			
		||||
	gchar *GetTextAtOffset(int charOffset, AtkTextBoundary boundaryType, int *startChar, int *endChar);
 | 
			
		||||
#if ATK_CHECK_VERSION(2, 10, 0)
 | 
			
		||||
	gchar *GetStringAtOffset(int charOffset, AtkTextGranularity granularity, int *startChar, int *endChar);
 | 
			
		||||
#endif
 | 
			
		||||
	gunichar GetCharacterAtOffset(int charOffset);
 | 
			
		||||
	gint GetCharacterCount();
 | 
			
		||||
	gint GetCaretOffset();
 | 
			
		||||
	gboolean SetCaretOffset(int charOffset);
 | 
			
		||||
	gint GetOffsetAtPoint(gint x, gint y, AtkCoordType coords);
 | 
			
		||||
	void GetCharacterExtents(int charOffset, gint *x, gint *y, gint *width, gint *height, AtkCoordType coords);
 | 
			
		||||
	AtkAttributeSet *GetAttributesForStyle(unsigned int styleNum);
 | 
			
		||||
	AtkAttributeSet *GetRunAttributes(int charOffset, int *startChar, int *endChar);
 | 
			
		||||
	AtkAttributeSet *GetDefaultAttributes();
 | 
			
		||||
	gint GetNSelections();
 | 
			
		||||
	gchar *GetSelection(gint selection_num, int *startChar, int *endChar);
 | 
			
		||||
	gboolean AddSelection(int startChar, int endChar);
 | 
			
		||||
	gboolean RemoveSelection(int selection_num);
 | 
			
		||||
	gboolean SetSelection(gint selection_num, int startChar, int endChar);
 | 
			
		||||
	// for AtkEditableText
 | 
			
		||||
	bool InsertStringUTF8(Sci::Position bytePos, const gchar *utf8, Sci::Position lengthBytes);
 | 
			
		||||
	void SetTextContents(const gchar *contents);
 | 
			
		||||
	void InsertText(const gchar *text, int lengthBytes, int *charPosition);
 | 
			
		||||
	void CopyText(int startChar, int endChar);
 | 
			
		||||
	void CutText(int startChar, int endChar);
 | 
			
		||||
	void DeleteText(int startChar, int endChar);
 | 
			
		||||
	void PasteText(int charPosition);
 | 
			
		||||
 | 
			
		||||
public:
 | 
			
		||||
	ScintillaGTKAccessible(GtkAccessible *accessible_, GtkWidget *widget_);
 | 
			
		||||
	~ScintillaGTKAccessible();
 | 
			
		||||
 | 
			
		||||
	static ScintillaGTKAccessible *FromAccessible(GtkAccessible *accessible);
 | 
			
		||||
	static ScintillaGTKAccessible *FromAccessible(AtkObject *accessible) {
 | 
			
		||||
		return FromAccessible(GTK_ACCESSIBLE(accessible));
 | 
			
		||||
	}
 | 
			
		||||
	// So ScintillaGTK can notify us
 | 
			
		||||
	void ChangeDocument(Document *oldDoc, Document *newDoc);
 | 
			
		||||
	void NotifyReadOnly();
 | 
			
		||||
	void SetAccessibility(bool enabled);
 | 
			
		||||
 | 
			
		||||
	// Helper GtkWidget methods
 | 
			
		||||
	static AtkObject *WidgetGetAccessibleImpl(GtkWidget *widget, AtkObject **cache, gpointer widget_parent_class);
 | 
			
		||||
 | 
			
		||||
	// ATK methods
 | 
			
		||||
 | 
			
		||||
	class AtkTextIface {
 | 
			
		||||
	public:
 | 
			
		||||
		static void init(::AtkTextIface *iface);
 | 
			
		||||
 | 
			
		||||
	private:
 | 
			
		||||
		AtkTextIface();
 | 
			
		||||
 | 
			
		||||
		static gchar *GetText(AtkText *text, int start_offset, int end_offset);
 | 
			
		||||
		static gchar *GetTextAfterOffset(AtkText *text, int offset, AtkTextBoundary boundary_type, int *start_offset, int *end_offset);
 | 
			
		||||
		static gchar *GetTextBeforeOffset(AtkText *text, int offset, AtkTextBoundary boundary_type, int *start_offset, int *end_offset);
 | 
			
		||||
		static gchar *GetTextAtOffset(AtkText *text, gint offset, AtkTextBoundary boundary_type, gint *start_offset, gint *end_offset);
 | 
			
		||||
#if ATK_CHECK_VERSION(2, 10, 0)
 | 
			
		||||
		static gchar *GetStringAtOffset(AtkText *text, gint offset, AtkTextGranularity granularity, gint *start_offset, gint *end_offset);
 | 
			
		||||
#endif
 | 
			
		||||
		static gunichar GetCharacterAtOffset(AtkText *text, gint offset);
 | 
			
		||||
		static gint GetCharacterCount(AtkText *text);
 | 
			
		||||
		static gint GetCaretOffset(AtkText *text);
 | 
			
		||||
		static gboolean SetCaretOffset(AtkText *text, gint offset);
 | 
			
		||||
		static gint GetOffsetAtPoint(AtkText *text, gint x, gint y, AtkCoordType coords);
 | 
			
		||||
		static void GetCharacterExtents(AtkText *text, gint offset, gint *x, gint *y, gint *width, gint *height, AtkCoordType coords);
 | 
			
		||||
		static AtkAttributeSet *GetRunAttributes(AtkText *text, gint offset, gint *start_offset, gint *end_offset);
 | 
			
		||||
		static AtkAttributeSet *GetDefaultAttributes(AtkText *text);
 | 
			
		||||
		static gint GetNSelections(AtkText *text);
 | 
			
		||||
		static gchar *GetSelection(AtkText *text, gint selection_num, gint *start_pos, gint *end_pos);
 | 
			
		||||
		static gboolean AddSelection(AtkText *text, gint start, gint end);
 | 
			
		||||
		static gboolean RemoveSelection(AtkText *text, gint selection_num);
 | 
			
		||||
		static gboolean SetSelection(AtkText *text, gint selection_num, gint start, gint end);
 | 
			
		||||
	};
 | 
			
		||||
	class AtkEditableTextIface {
 | 
			
		||||
	public:
 | 
			
		||||
		static void init(::AtkEditableTextIface *iface);
 | 
			
		||||
 | 
			
		||||
	private:
 | 
			
		||||
		AtkEditableTextIface();
 | 
			
		||||
 | 
			
		||||
		static void SetTextContents(AtkEditableText *text, const gchar *contents);
 | 
			
		||||
		static void InsertText(AtkEditableText *text, const gchar *contents, gint length, gint *position);
 | 
			
		||||
		static void CopyText(AtkEditableText *text, gint start, gint end);
 | 
			
		||||
		static void CutText(AtkEditableText *text, gint start, gint end);
 | 
			
		||||
		static void DeleteText(AtkEditableText *text, gint start, gint end);
 | 
			
		||||
		static void PasteText(AtkEditableText *text, gint position);
 | 
			
		||||
	};
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
							
								
								
									
										109
									
								
								3rdparty/scintilla552/scintilla/gtk/Wrappers.h
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,109 @@
 | 
			
		||||
// Scintilla source code edit control
 | 
			
		||||
// Wrappers.h - Encapsulation of GLib, GObject, Pango, Cairo, GTK, and GDK types
 | 
			
		||||
// Copyright 2022 by Neil Hodgson <neilh@scintilla.org>
 | 
			
		||||
// The License.txt file describes the conditions under which this software may be distributed.
 | 
			
		||||
 | 
			
		||||
#ifndef WRAPPERS_H
 | 
			
		||||
#define WRAPPERS_H
 | 
			
		||||
 | 
			
		||||
namespace Scintilla::Internal {
 | 
			
		||||
 | 
			
		||||
// GLib
 | 
			
		||||
 | 
			
		||||
struct GFreeReleaser {
 | 
			
		||||
	template <class T>
 | 
			
		||||
	void operator()(T *object) noexcept {
 | 
			
		||||
		g_free(object);
 | 
			
		||||
	}
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
using UniqueStr = std::unique_ptr<gchar, GFreeReleaser>;
 | 
			
		||||
 | 
			
		||||
// GObject
 | 
			
		||||
 | 
			
		||||
struct GObjectReleaser {
 | 
			
		||||
	// Called by unique_ptr to destroy/free the object
 | 
			
		||||
	template <class T>
 | 
			
		||||
	void operator()(T *object) noexcept {
 | 
			
		||||
		g_object_unref(object);
 | 
			
		||||
	}
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
// Pango
 | 
			
		||||
 | 
			
		||||
using UniquePangoContext = std::unique_ptr<PangoContext, GObjectReleaser>;
 | 
			
		||||
using UniquePangoLayout = std::unique_ptr<PangoLayout, GObjectReleaser>;
 | 
			
		||||
using UniquePangoFontMap = std::unique_ptr<PangoFontMap, GObjectReleaser>;
 | 
			
		||||
 | 
			
		||||
struct FontDescriptionReleaser {
 | 
			
		||||
	void operator()(PangoFontDescription *fontDescription) noexcept {
 | 
			
		||||
		pango_font_description_free(fontDescription);
 | 
			
		||||
	}
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
using UniquePangoFontDescription = std::unique_ptr<PangoFontDescription, FontDescriptionReleaser>;
 | 
			
		||||
 | 
			
		||||
struct FontMetricsReleaser {
 | 
			
		||||
	void operator()(PangoFontMetrics *metrics) noexcept {
 | 
			
		||||
		pango_font_metrics_unref(metrics);
 | 
			
		||||
	}
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
using UniquePangoFontMetrics = std::unique_ptr<PangoFontMetrics, FontMetricsReleaser>;
 | 
			
		||||
 | 
			
		||||
struct LayoutIterReleaser {
 | 
			
		||||
	// Called by unique_ptr to destroy/free the object
 | 
			
		||||
	void operator()(PangoLayoutIter *iter) noexcept {
 | 
			
		||||
		pango_layout_iter_free(iter);
 | 
			
		||||
	}
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
using UniquePangoLayoutIter = std::unique_ptr<PangoLayoutIter, LayoutIterReleaser>;
 | 
			
		||||
 | 
			
		||||
// Cairo
 | 
			
		||||
 | 
			
		||||
struct CairoReleaser {
 | 
			
		||||
	void operator()(cairo_t *context) noexcept {
 | 
			
		||||
		cairo_destroy(context);
 | 
			
		||||
	}
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
using UniqueCairo = std::unique_ptr<cairo_t, CairoReleaser>;
 | 
			
		||||
 | 
			
		||||
struct CairoSurfaceReleaser {
 | 
			
		||||
	void operator()(cairo_surface_t *psurf) noexcept {
 | 
			
		||||
		cairo_surface_destroy(psurf);
 | 
			
		||||
	}
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
using UniqueCairoSurface = std::unique_ptr<cairo_surface_t, CairoSurfaceReleaser>;
 | 
			
		||||
 | 
			
		||||
// GTK
 | 
			
		||||
 | 
			
		||||
using UniqueIMContext = std::unique_ptr<GtkIMContext, GObjectReleaser>;
 | 
			
		||||
 | 
			
		||||
// GDK
 | 
			
		||||
 | 
			
		||||
struct GdkEventReleaser {
 | 
			
		||||
	void operator()(GdkEvent *ev) noexcept {
 | 
			
		||||
		gdk_event_free(ev);
 | 
			
		||||
	}
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
using UniqueGdkEvent = std::unique_ptr<GdkEvent, GdkEventReleaser>;
 | 
			
		||||
 | 
			
		||||
inline void UnRefCursor(GdkCursor *cursor) noexcept {
 | 
			
		||||
#if GTK_CHECK_VERSION(3,0,0)
 | 
			
		||||
	g_object_unref(cursor);
 | 
			
		||||
#else
 | 
			
		||||
	gdk_cursor_unref(cursor);
 | 
			
		||||
#endif
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
[[nodiscard]] inline GdkWindow *WindowFromWidget(GtkWidget *w) noexcept {
 | 
			
		||||
	return gtk_widget_get_window(w);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
							
								
								
									
										520
									
								
								3rdparty/scintilla552/scintilla/gtk/deps.mak
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,520 @@
 | 
			
		||||
# Created by DepGen.py. To recreate, run DepGen.py.
 | 
			
		||||
PlatGTK.o: \
 | 
			
		||||
	PlatGTK.cxx \
 | 
			
		||||
	../include/ScintillaTypes.h \
 | 
			
		||||
	../include/ScintillaMessages.h \
 | 
			
		||||
	../src/Debugging.h \
 | 
			
		||||
	../src/Geometry.h \
 | 
			
		||||
	../src/Platform.h \
 | 
			
		||||
	../include/Scintilla.h \
 | 
			
		||||
	../include/Sci_Position.h \
 | 
			
		||||
	../include/ScintillaWidget.h \
 | 
			
		||||
	../src/CharacterType.h \
 | 
			
		||||
	../src/XPM.h \
 | 
			
		||||
	../src/UniConversion.h \
 | 
			
		||||
	Wrappers.h \
 | 
			
		||||
	Converter.h
 | 
			
		||||
ScintillaGTK.o: \
 | 
			
		||||
	ScintillaGTK.cxx \
 | 
			
		||||
	../include/ScintillaTypes.h \
 | 
			
		||||
	../include/ScintillaMessages.h \
 | 
			
		||||
	../include/ScintillaStructures.h \
 | 
			
		||||
	../include/ILoader.h \
 | 
			
		||||
	../include/Sci_Position.h \
 | 
			
		||||
	../include/ILexer.h \
 | 
			
		||||
	../src/Debugging.h \
 | 
			
		||||
	../src/Geometry.h \
 | 
			
		||||
	../src/Platform.h \
 | 
			
		||||
	../include/Scintilla.h \
 | 
			
		||||
	../include/ScintillaWidget.h \
 | 
			
		||||
	../src/CharacterCategoryMap.h \
 | 
			
		||||
	../src/Position.h \
 | 
			
		||||
	../src/UniqueString.h \
 | 
			
		||||
	../src/SplitVector.h \
 | 
			
		||||
	../src/Partitioning.h \
 | 
			
		||||
	../src/RunStyles.h \
 | 
			
		||||
	../src/ContractionState.h \
 | 
			
		||||
	../src/CellBuffer.h \
 | 
			
		||||
	../src/CallTip.h \
 | 
			
		||||
	../src/KeyMap.h \
 | 
			
		||||
	../src/Indicator.h \
 | 
			
		||||
	../src/LineMarker.h \
 | 
			
		||||
	../src/Style.h \
 | 
			
		||||
	../src/ViewStyle.h \
 | 
			
		||||
	../src/CharClassify.h \
 | 
			
		||||
	../src/Decoration.h \
 | 
			
		||||
	../src/CaseFolder.h \
 | 
			
		||||
	../src/Document.h \
 | 
			
		||||
	../src/CaseConvert.h \
 | 
			
		||||
	../src/UniConversion.h \
 | 
			
		||||
	../src/Selection.h \
 | 
			
		||||
	../src/PositionCache.h \
 | 
			
		||||
	../src/EditModel.h \
 | 
			
		||||
	../src/MarginView.h \
 | 
			
		||||
	../src/EditView.h \
 | 
			
		||||
	../src/Editor.h \
 | 
			
		||||
	../src/AutoComplete.h \
 | 
			
		||||
	../src/ScintillaBase.h \
 | 
			
		||||
	Wrappers.h \
 | 
			
		||||
	ScintillaGTK.h \
 | 
			
		||||
	scintilla-marshal.h \
 | 
			
		||||
	ScintillaGTKAccessible.h \
 | 
			
		||||
	Converter.h
 | 
			
		||||
ScintillaGTKAccessible.o: \
 | 
			
		||||
	ScintillaGTKAccessible.cxx \
 | 
			
		||||
	../include/ScintillaTypes.h \
 | 
			
		||||
	../include/ScintillaMessages.h \
 | 
			
		||||
	../include/ScintillaStructures.h \
 | 
			
		||||
	../include/ILoader.h \
 | 
			
		||||
	../include/Sci_Position.h \
 | 
			
		||||
	../include/ILexer.h \
 | 
			
		||||
	../src/Debugging.h \
 | 
			
		||||
	../src/Geometry.h \
 | 
			
		||||
	../src/Platform.h \
 | 
			
		||||
	../include/Scintilla.h \
 | 
			
		||||
	../include/ScintillaWidget.h \
 | 
			
		||||
	../src/CharacterCategoryMap.h \
 | 
			
		||||
	../src/Position.h \
 | 
			
		||||
	../src/UniqueString.h \
 | 
			
		||||
	../src/SplitVector.h \
 | 
			
		||||
	../src/Partitioning.h \
 | 
			
		||||
	../src/RunStyles.h \
 | 
			
		||||
	../src/ContractionState.h \
 | 
			
		||||
	../src/CellBuffer.h \
 | 
			
		||||
	../src/CallTip.h \
 | 
			
		||||
	../src/KeyMap.h \
 | 
			
		||||
	../src/Indicator.h \
 | 
			
		||||
	../src/LineMarker.h \
 | 
			
		||||
	../src/Style.h \
 | 
			
		||||
	../src/ViewStyle.h \
 | 
			
		||||
	../src/CharClassify.h \
 | 
			
		||||
	../src/Decoration.h \
 | 
			
		||||
	../src/CaseFolder.h \
 | 
			
		||||
	../src/Document.h \
 | 
			
		||||
	../src/CaseConvert.h \
 | 
			
		||||
	../src/UniConversion.h \
 | 
			
		||||
	../src/Selection.h \
 | 
			
		||||
	../src/PositionCache.h \
 | 
			
		||||
	../src/EditModel.h \
 | 
			
		||||
	../src/MarginView.h \
 | 
			
		||||
	../src/EditView.h \
 | 
			
		||||
	../src/Editor.h \
 | 
			
		||||
	../src/AutoComplete.h \
 | 
			
		||||
	../src/ScintillaBase.h \
 | 
			
		||||
	Wrappers.h \
 | 
			
		||||
	ScintillaGTK.h \
 | 
			
		||||
	ScintillaGTKAccessible.h
 | 
			
		||||
AutoComplete.o: \
 | 
			
		||||
	../src/AutoComplete.cxx \
 | 
			
		||||
	../include/ScintillaTypes.h \
 | 
			
		||||
	../include/ScintillaMessages.h \
 | 
			
		||||
	../src/Debugging.h \
 | 
			
		||||
	../src/Geometry.h \
 | 
			
		||||
	../src/Platform.h \
 | 
			
		||||
	../src/CharacterType.h \
 | 
			
		||||
	../src/Position.h \
 | 
			
		||||
	../src/AutoComplete.h
 | 
			
		||||
CallTip.o: \
 | 
			
		||||
	../src/CallTip.cxx \
 | 
			
		||||
	../include/ScintillaTypes.h \
 | 
			
		||||
	../include/ScintillaMessages.h \
 | 
			
		||||
	../src/Debugging.h \
 | 
			
		||||
	../src/Geometry.h \
 | 
			
		||||
	../src/Platform.h \
 | 
			
		||||
	../src/Position.h \
 | 
			
		||||
	../src/CallTip.h
 | 
			
		||||
CaseConvert.o: \
 | 
			
		||||
	../src/CaseConvert.cxx \
 | 
			
		||||
	../src/CaseConvert.h \
 | 
			
		||||
	../src/UniConversion.h
 | 
			
		||||
CaseFolder.o: \
 | 
			
		||||
	../src/CaseFolder.cxx \
 | 
			
		||||
	../src/CharacterType.h \
 | 
			
		||||
	../src/CaseFolder.h \
 | 
			
		||||
	../src/CaseConvert.h
 | 
			
		||||
CellBuffer.o: \
 | 
			
		||||
	../src/CellBuffer.cxx \
 | 
			
		||||
	../include/ScintillaTypes.h \
 | 
			
		||||
	../src/Debugging.h \
 | 
			
		||||
	../src/Position.h \
 | 
			
		||||
	../src/SplitVector.h \
 | 
			
		||||
	../src/Partitioning.h \
 | 
			
		||||
	../src/RunStyles.h \
 | 
			
		||||
	../src/SparseVector.h \
 | 
			
		||||
	../src/ChangeHistory.h \
 | 
			
		||||
	../src/CellBuffer.h \
 | 
			
		||||
	../src/UndoHistory.h \
 | 
			
		||||
	../src/UniConversion.h
 | 
			
		||||
ChangeHistory.o: \
 | 
			
		||||
	../src/ChangeHistory.cxx \
 | 
			
		||||
	../include/ScintillaTypes.h \
 | 
			
		||||
	../src/Debugging.h \
 | 
			
		||||
	../src/Position.h \
 | 
			
		||||
	../src/SplitVector.h \
 | 
			
		||||
	../src/Partitioning.h \
 | 
			
		||||
	../src/RunStyles.h \
 | 
			
		||||
	../src/SparseVector.h \
 | 
			
		||||
	../src/ChangeHistory.h
 | 
			
		||||
CharacterCategoryMap.o: \
 | 
			
		||||
	../src/CharacterCategoryMap.cxx \
 | 
			
		||||
	../src/CharacterCategoryMap.h
 | 
			
		||||
CharacterType.o: \
 | 
			
		||||
	../src/CharacterType.cxx \
 | 
			
		||||
	../src/CharacterType.h
 | 
			
		||||
CharClassify.o: \
 | 
			
		||||
	../src/CharClassify.cxx \
 | 
			
		||||
	../src/CharacterType.h \
 | 
			
		||||
	../src/CharClassify.h
 | 
			
		||||
ContractionState.o: \
 | 
			
		||||
	../src/ContractionState.cxx \
 | 
			
		||||
	../src/Debugging.h \
 | 
			
		||||
	../src/Position.h \
 | 
			
		||||
	../src/UniqueString.h \
 | 
			
		||||
	../src/SplitVector.h \
 | 
			
		||||
	../src/Partitioning.h \
 | 
			
		||||
	../src/RunStyles.h \
 | 
			
		||||
	../src/SparseVector.h \
 | 
			
		||||
	../src/ContractionState.h
 | 
			
		||||
DBCS.o: \
 | 
			
		||||
	../src/DBCS.cxx \
 | 
			
		||||
	../src/DBCS.h
 | 
			
		||||
Decoration.o: \
 | 
			
		||||
	../src/Decoration.cxx \
 | 
			
		||||
	../include/ScintillaTypes.h \
 | 
			
		||||
	../src/Debugging.h \
 | 
			
		||||
	../src/Position.h \
 | 
			
		||||
	../src/SplitVector.h \
 | 
			
		||||
	../src/Partitioning.h \
 | 
			
		||||
	../src/RunStyles.h \
 | 
			
		||||
	../src/Decoration.h
 | 
			
		||||
Document.o: \
 | 
			
		||||
	../src/Document.cxx \
 | 
			
		||||
	../include/ScintillaTypes.h \
 | 
			
		||||
	../include/ILoader.h \
 | 
			
		||||
	../include/Sci_Position.h \
 | 
			
		||||
	../include/ILexer.h \
 | 
			
		||||
	../src/Debugging.h \
 | 
			
		||||
	../src/CharacterType.h \
 | 
			
		||||
	../src/CharacterCategoryMap.h \
 | 
			
		||||
	../src/Position.h \
 | 
			
		||||
	../src/SplitVector.h \
 | 
			
		||||
	../src/Partitioning.h \
 | 
			
		||||
	../src/RunStyles.h \
 | 
			
		||||
	../src/CellBuffer.h \
 | 
			
		||||
	../src/PerLine.h \
 | 
			
		||||
	../src/CharClassify.h \
 | 
			
		||||
	../src/Decoration.h \
 | 
			
		||||
	../src/CaseFolder.h \
 | 
			
		||||
	../src/Document.h \
 | 
			
		||||
	../src/RESearch.h \
 | 
			
		||||
	../src/UniConversion.h \
 | 
			
		||||
	../src/ElapsedPeriod.h
 | 
			
		||||
EditModel.o: \
 | 
			
		||||
	../src/EditModel.cxx \
 | 
			
		||||
	../include/ScintillaTypes.h \
 | 
			
		||||
	../include/ILoader.h \
 | 
			
		||||
	../include/Sci_Position.h \
 | 
			
		||||
	../include/ILexer.h \
 | 
			
		||||
	../src/Debugging.h \
 | 
			
		||||
	../src/Geometry.h \
 | 
			
		||||
	../src/Platform.h \
 | 
			
		||||
	../src/CharacterCategoryMap.h \
 | 
			
		||||
	../src/Position.h \
 | 
			
		||||
	../src/UniqueString.h \
 | 
			
		||||
	../src/SplitVector.h \
 | 
			
		||||
	../src/Partitioning.h \
 | 
			
		||||
	../src/RunStyles.h \
 | 
			
		||||
	../src/ContractionState.h \
 | 
			
		||||
	../src/CellBuffer.h \
 | 
			
		||||
	../src/Indicator.h \
 | 
			
		||||
	../src/LineMarker.h \
 | 
			
		||||
	../src/Style.h \
 | 
			
		||||
	../src/ViewStyle.h \
 | 
			
		||||
	../src/CharClassify.h \
 | 
			
		||||
	../src/Decoration.h \
 | 
			
		||||
	../src/CaseFolder.h \
 | 
			
		||||
	../src/Document.h \
 | 
			
		||||
	../src/UniConversion.h \
 | 
			
		||||
	../src/Selection.h \
 | 
			
		||||
	../src/PositionCache.h \
 | 
			
		||||
	../src/EditModel.h
 | 
			
		||||
Editor.o: \
 | 
			
		||||
	../src/Editor.cxx \
 | 
			
		||||
	../include/ScintillaTypes.h \
 | 
			
		||||
	../include/ScintillaMessages.h \
 | 
			
		||||
	../include/ScintillaStructures.h \
 | 
			
		||||
	../include/ILoader.h \
 | 
			
		||||
	../include/Sci_Position.h \
 | 
			
		||||
	../include/ILexer.h \
 | 
			
		||||
	../src/Debugging.h \
 | 
			
		||||
	../src/Geometry.h \
 | 
			
		||||
	../src/Platform.h \
 | 
			
		||||
	../src/CharacterType.h \
 | 
			
		||||
	../src/CharacterCategoryMap.h \
 | 
			
		||||
	../src/Position.h \
 | 
			
		||||
	../src/UniqueString.h \
 | 
			
		||||
	../src/SplitVector.h \
 | 
			
		||||
	../src/Partitioning.h \
 | 
			
		||||
	../src/RunStyles.h \
 | 
			
		||||
	../src/ContractionState.h \
 | 
			
		||||
	../src/CellBuffer.h \
 | 
			
		||||
	../src/PerLine.h \
 | 
			
		||||
	../src/KeyMap.h \
 | 
			
		||||
	../src/Indicator.h \
 | 
			
		||||
	../src/LineMarker.h \
 | 
			
		||||
	../src/Style.h \
 | 
			
		||||
	../src/ViewStyle.h \
 | 
			
		||||
	../src/CharClassify.h \
 | 
			
		||||
	../src/Decoration.h \
 | 
			
		||||
	../src/CaseFolder.h \
 | 
			
		||||
	../src/Document.h \
 | 
			
		||||
	../src/UniConversion.h \
 | 
			
		||||
	../src/DBCS.h \
 | 
			
		||||
	../src/Selection.h \
 | 
			
		||||
	../src/PositionCache.h \
 | 
			
		||||
	../src/EditModel.h \
 | 
			
		||||
	../src/MarginView.h \
 | 
			
		||||
	../src/EditView.h \
 | 
			
		||||
	../src/Editor.h \
 | 
			
		||||
	../src/ElapsedPeriod.h
 | 
			
		||||
EditView.o: \
 | 
			
		||||
	../src/EditView.cxx \
 | 
			
		||||
	../include/ScintillaTypes.h \
 | 
			
		||||
	../include/ScintillaMessages.h \
 | 
			
		||||
	../include/ScintillaStructures.h \
 | 
			
		||||
	../include/ILoader.h \
 | 
			
		||||
	../include/Sci_Position.h \
 | 
			
		||||
	../include/ILexer.h \
 | 
			
		||||
	../src/Debugging.h \
 | 
			
		||||
	../src/Geometry.h \
 | 
			
		||||
	../src/Platform.h \
 | 
			
		||||
	../src/CharacterType.h \
 | 
			
		||||
	../src/CharacterCategoryMap.h \
 | 
			
		||||
	../src/Position.h \
 | 
			
		||||
	../src/UniqueString.h \
 | 
			
		||||
	../src/SplitVector.h \
 | 
			
		||||
	../src/Partitioning.h \
 | 
			
		||||
	../src/RunStyles.h \
 | 
			
		||||
	../src/ContractionState.h \
 | 
			
		||||
	../src/CellBuffer.h \
 | 
			
		||||
	../src/PerLine.h \
 | 
			
		||||
	../src/KeyMap.h \
 | 
			
		||||
	../src/Indicator.h \
 | 
			
		||||
	../src/LineMarker.h \
 | 
			
		||||
	../src/Style.h \
 | 
			
		||||
	../src/ViewStyle.h \
 | 
			
		||||
	../src/CharClassify.h \
 | 
			
		||||
	../src/Decoration.h \
 | 
			
		||||
	../src/CaseFolder.h \
 | 
			
		||||
	../src/Document.h \
 | 
			
		||||
	../src/UniConversion.h \
 | 
			
		||||
	../src/Selection.h \
 | 
			
		||||
	../src/PositionCache.h \
 | 
			
		||||
	../src/EditModel.h \
 | 
			
		||||
	../src/MarginView.h \
 | 
			
		||||
	../src/EditView.h \
 | 
			
		||||
	../src/ElapsedPeriod.h
 | 
			
		||||
Geometry.o: \
 | 
			
		||||
	../src/Geometry.cxx \
 | 
			
		||||
	../src/Geometry.h
 | 
			
		||||
Indicator.o: \
 | 
			
		||||
	../src/Indicator.cxx \
 | 
			
		||||
	../include/ScintillaTypes.h \
 | 
			
		||||
	../src/Debugging.h \
 | 
			
		||||
	../src/Geometry.h \
 | 
			
		||||
	../src/Platform.h \
 | 
			
		||||
	../src/Indicator.h \
 | 
			
		||||
	../src/XPM.h
 | 
			
		||||
KeyMap.o: \
 | 
			
		||||
	../src/KeyMap.cxx \
 | 
			
		||||
	../include/ScintillaTypes.h \
 | 
			
		||||
	../include/ScintillaMessages.h \
 | 
			
		||||
	../src/Debugging.h \
 | 
			
		||||
	../src/Geometry.h \
 | 
			
		||||
	../src/Platform.h \
 | 
			
		||||
	../src/KeyMap.h
 | 
			
		||||
LineMarker.o: \
 | 
			
		||||
	../src/LineMarker.cxx \
 | 
			
		||||
	../include/ScintillaTypes.h \
 | 
			
		||||
	../src/Debugging.h \
 | 
			
		||||
	../src/Geometry.h \
 | 
			
		||||
	../src/Platform.h \
 | 
			
		||||
	../src/XPM.h \
 | 
			
		||||
	../src/LineMarker.h \
 | 
			
		||||
	../src/UniConversion.h
 | 
			
		||||
MarginView.o: \
 | 
			
		||||
	../src/MarginView.cxx \
 | 
			
		||||
	../include/ScintillaTypes.h \
 | 
			
		||||
	../include/ScintillaMessages.h \
 | 
			
		||||
	../include/ScintillaStructures.h \
 | 
			
		||||
	../include/ILoader.h \
 | 
			
		||||
	../include/Sci_Position.h \
 | 
			
		||||
	../include/ILexer.h \
 | 
			
		||||
	../src/Debugging.h \
 | 
			
		||||
	../src/Geometry.h \
 | 
			
		||||
	../src/Platform.h \
 | 
			
		||||
	../src/CharacterCategoryMap.h \
 | 
			
		||||
	../src/Position.h \
 | 
			
		||||
	../src/UniqueString.h \
 | 
			
		||||
	../src/SplitVector.h \
 | 
			
		||||
	../src/Partitioning.h \
 | 
			
		||||
	../src/RunStyles.h \
 | 
			
		||||
	../src/ContractionState.h \
 | 
			
		||||
	../src/CellBuffer.h \
 | 
			
		||||
	../src/KeyMap.h \
 | 
			
		||||
	../src/Indicator.h \
 | 
			
		||||
	../src/LineMarker.h \
 | 
			
		||||
	../src/Style.h \
 | 
			
		||||
	../src/ViewStyle.h \
 | 
			
		||||
	../src/CharClassify.h \
 | 
			
		||||
	../src/Decoration.h \
 | 
			
		||||
	../src/CaseFolder.h \
 | 
			
		||||
	../src/Document.h \
 | 
			
		||||
	../src/UniConversion.h \
 | 
			
		||||
	../src/Selection.h \
 | 
			
		||||
	../src/PositionCache.h \
 | 
			
		||||
	../src/EditModel.h \
 | 
			
		||||
	../src/MarginView.h \
 | 
			
		||||
	../src/EditView.h
 | 
			
		||||
PerLine.o: \
 | 
			
		||||
	../src/PerLine.cxx \
 | 
			
		||||
	../include/ScintillaTypes.h \
 | 
			
		||||
	../src/Debugging.h \
 | 
			
		||||
	../src/Geometry.h \
 | 
			
		||||
	../src/Platform.h \
 | 
			
		||||
	../src/Position.h \
 | 
			
		||||
	../src/SplitVector.h \
 | 
			
		||||
	../src/Partitioning.h \
 | 
			
		||||
	../src/CellBuffer.h \
 | 
			
		||||
	../src/PerLine.h
 | 
			
		||||
PositionCache.o: \
 | 
			
		||||
	../src/PositionCache.cxx \
 | 
			
		||||
	../include/ScintillaTypes.h \
 | 
			
		||||
	../include/ScintillaMessages.h \
 | 
			
		||||
	../include/ILoader.h \
 | 
			
		||||
	../include/Sci_Position.h \
 | 
			
		||||
	../include/ILexer.h \
 | 
			
		||||
	../src/Debugging.h \
 | 
			
		||||
	../src/Geometry.h \
 | 
			
		||||
	../src/Platform.h \
 | 
			
		||||
	../src/CharacterType.h \
 | 
			
		||||
	../src/CharacterCategoryMap.h \
 | 
			
		||||
	../src/Position.h \
 | 
			
		||||
	../src/UniqueString.h \
 | 
			
		||||
	../src/SplitVector.h \
 | 
			
		||||
	../src/Partitioning.h \
 | 
			
		||||
	../src/RunStyles.h \
 | 
			
		||||
	../src/ContractionState.h \
 | 
			
		||||
	../src/CellBuffer.h \
 | 
			
		||||
	../src/KeyMap.h \
 | 
			
		||||
	../src/Indicator.h \
 | 
			
		||||
	../src/LineMarker.h \
 | 
			
		||||
	../src/Style.h \
 | 
			
		||||
	../src/ViewStyle.h \
 | 
			
		||||
	../src/CharClassify.h \
 | 
			
		||||
	../src/Decoration.h \
 | 
			
		||||
	../src/CaseFolder.h \
 | 
			
		||||
	../src/Document.h \
 | 
			
		||||
	../src/UniConversion.h \
 | 
			
		||||
	../src/DBCS.h \
 | 
			
		||||
	../src/Selection.h \
 | 
			
		||||
	../src/PositionCache.h
 | 
			
		||||
RESearch.o: \
 | 
			
		||||
	../src/RESearch.cxx \
 | 
			
		||||
	../src/Position.h \
 | 
			
		||||
	../src/CharClassify.h \
 | 
			
		||||
	../src/RESearch.h
 | 
			
		||||
RunStyles.o: \
 | 
			
		||||
	../src/RunStyles.cxx \
 | 
			
		||||
	../src/Debugging.h \
 | 
			
		||||
	../src/Position.h \
 | 
			
		||||
	../src/SplitVector.h \
 | 
			
		||||
	../src/Partitioning.h \
 | 
			
		||||
	../src/RunStyles.h
 | 
			
		||||
ScintillaBase.o: \
 | 
			
		||||
	../src/ScintillaBase.cxx \
 | 
			
		||||
	../include/ScintillaTypes.h \
 | 
			
		||||
	../include/ScintillaMessages.h \
 | 
			
		||||
	../include/ScintillaStructures.h \
 | 
			
		||||
	../include/ILoader.h \
 | 
			
		||||
	../include/Sci_Position.h \
 | 
			
		||||
	../include/ILexer.h \
 | 
			
		||||
	../src/Debugging.h \
 | 
			
		||||
	../src/Geometry.h \
 | 
			
		||||
	../src/Platform.h \
 | 
			
		||||
	../src/CharacterCategoryMap.h \
 | 
			
		||||
	../src/Position.h \
 | 
			
		||||
	../src/UniqueString.h \
 | 
			
		||||
	../src/SplitVector.h \
 | 
			
		||||
	../src/Partitioning.h \
 | 
			
		||||
	../src/RunStyles.h \
 | 
			
		||||
	../src/ContractionState.h \
 | 
			
		||||
	../src/CellBuffer.h \
 | 
			
		||||
	../src/CallTip.h \
 | 
			
		||||
	../src/KeyMap.h \
 | 
			
		||||
	../src/Indicator.h \
 | 
			
		||||
	../src/LineMarker.h \
 | 
			
		||||
	../src/Style.h \
 | 
			
		||||
	../src/ViewStyle.h \
 | 
			
		||||
	../src/CharClassify.h \
 | 
			
		||||
	../src/Decoration.h \
 | 
			
		||||
	../src/CaseFolder.h \
 | 
			
		||||
	../src/Document.h \
 | 
			
		||||
	../src/Selection.h \
 | 
			
		||||
	../src/PositionCache.h \
 | 
			
		||||
	../src/EditModel.h \
 | 
			
		||||
	../src/MarginView.h \
 | 
			
		||||
	../src/EditView.h \
 | 
			
		||||
	../src/Editor.h \
 | 
			
		||||
	../src/AutoComplete.h \
 | 
			
		||||
	../src/ScintillaBase.h
 | 
			
		||||
Selection.o: \
 | 
			
		||||
	../src/Selection.cxx \
 | 
			
		||||
	../src/Debugging.h \
 | 
			
		||||
	../src/Position.h \
 | 
			
		||||
	../src/Selection.h
 | 
			
		||||
Style.o: \
 | 
			
		||||
	../src/Style.cxx \
 | 
			
		||||
	../include/ScintillaTypes.h \
 | 
			
		||||
	../src/Debugging.h \
 | 
			
		||||
	../src/Geometry.h \
 | 
			
		||||
	../src/Platform.h \
 | 
			
		||||
	../src/Style.h
 | 
			
		||||
UndoHistory.o: \
 | 
			
		||||
	../src/UndoHistory.cxx \
 | 
			
		||||
	../include/ScintillaTypes.h \
 | 
			
		||||
	../src/Debugging.h \
 | 
			
		||||
	../src/Position.h \
 | 
			
		||||
	../src/SplitVector.h \
 | 
			
		||||
	../src/Partitioning.h \
 | 
			
		||||
	../src/RunStyles.h \
 | 
			
		||||
	../src/SparseVector.h \
 | 
			
		||||
	../src/ChangeHistory.h \
 | 
			
		||||
	../src/CellBuffer.h \
 | 
			
		||||
	../src/UndoHistory.h
 | 
			
		||||
UniConversion.o: \
 | 
			
		||||
	../src/UniConversion.cxx \
 | 
			
		||||
	../src/UniConversion.h
 | 
			
		||||
UniqueString.o: \
 | 
			
		||||
	../src/UniqueString.cxx \
 | 
			
		||||
	../src/UniqueString.h
 | 
			
		||||
ViewStyle.o: \
 | 
			
		||||
	../src/ViewStyle.cxx \
 | 
			
		||||
	../include/ScintillaTypes.h \
 | 
			
		||||
	../src/Debugging.h \
 | 
			
		||||
	../src/Geometry.h \
 | 
			
		||||
	../src/Platform.h \
 | 
			
		||||
	../src/Position.h \
 | 
			
		||||
	../src/UniqueString.h \
 | 
			
		||||
	../src/Indicator.h \
 | 
			
		||||
	../src/XPM.h \
 | 
			
		||||
	../src/LineMarker.h \
 | 
			
		||||
	../src/Style.h \
 | 
			
		||||
	../src/ViewStyle.h
 | 
			
		||||
XPM.o: \
 | 
			
		||||
	../src/XPM.cxx \
 | 
			
		||||
	../include/ScintillaTypes.h \
 | 
			
		||||
	../src/Debugging.h \
 | 
			
		||||
	../src/Geometry.h \
 | 
			
		||||
	../src/Platform.h \
 | 
			
		||||
	../src/XPM.h
 | 
			
		||||
							
								
								
									
										172
									
								
								3rdparty/scintilla552/scintilla/gtk/makefile
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,172 @@
 | 
			
		||||
# Make file for Scintilla on Linux, macOS, or Windows
 | 
			
		||||
# @file makefile
 | 
			
		||||
# Copyright 1998-2010 by Neil Hodgson <neilh@scintilla.org>
 | 
			
		||||
# The License.txt file describes the conditions under which this software may be distributed.
 | 
			
		||||
# This makefile assumes GCC 9.0+ is used and changes will be needed to use other compilers.
 | 
			
		||||
# Clang 9.0+ can be used with CLANG=1 on command line.
 | 
			
		||||
# Builds for GTK+ 2 and 3. GTK 3 requires GTK3=1 on command line.
 | 
			
		||||
# Also works with ming32-make on Windows.
 | 
			
		||||
 | 
			
		||||
.PHONY: static shared all clean analyze depend
 | 
			
		||||
 | 
			
		||||
.SUFFIXES: .cxx .c .o .h .a .list
 | 
			
		||||
 | 
			
		||||
srcdir ?= .
 | 
			
		||||
basedir = $(srcdir)/..
 | 
			
		||||
 | 
			
		||||
WARNINGS = -Wpedantic -Wall
 | 
			
		||||
ifdef CLANG
 | 
			
		||||
CXX = clang++
 | 
			
		||||
CC = clang
 | 
			
		||||
WARNINGS += -Wno-deprecated-register
 | 
			
		||||
ifdef windir
 | 
			
		||||
# Turn off some warnings that occur when Clang is being used on Windows where it
 | 
			
		||||
# is including Microsoft headers.
 | 
			
		||||
# incompatible-ms-struct is because more complex structs are not quite the same as MSVC
 | 
			
		||||
WARNINGS += -Wno-incompatible-ms-struct
 | 
			
		||||
# language-extension-token is because of __int64 in glib-2.0 glibconfig.h
 | 
			
		||||
WARNINGS += -Wno-language-extension-token
 | 
			
		||||
# register may be used in glib
 | 
			
		||||
# This produces a warning since -Wno-register is not valid for C files but it still works
 | 
			
		||||
WARNINGS += -Wno-register
 | 
			
		||||
endif
 | 
			
		||||
# Can choose aspect to sanitize: address and undefined can simply change SANITIZE but for
 | 
			
		||||
# thread also need to create Position Independent Executable -> search online documentation
 | 
			
		||||
SANITIZE = address
 | 
			
		||||
#SANITIZE = undefined
 | 
			
		||||
BASE_FLAGS += -fsanitize=$(SANITIZE)
 | 
			
		||||
endif
 | 
			
		||||
ARFLAGS = rc
 | 
			
		||||
RANLIB ?= ranlib
 | 
			
		||||
PKG_CONFIG ?= pkg-config
 | 
			
		||||
 | 
			
		||||
GTK_VERSION = $(if $(GTK3),gtk+-3.0,gtk+-2.0)
 | 
			
		||||
 | 
			
		||||
# Environment variable windir always defined on Win32
 | 
			
		||||
 | 
			
		||||
# Enable Position Independent Code except on Windows where it is the default so the flag produces a warning
 | 
			
		||||
ifndef windir
 | 
			
		||||
BASE_FLAGS += -fPIC
 | 
			
		||||
ifeq ($(shell uname),Darwin)
 | 
			
		||||
LDFLAGS += -dynamiclib
 | 
			
		||||
endif
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
LDFLAGS += -shared
 | 
			
		||||
 | 
			
		||||
# Take care of changing Unix style '/' directory separator to '\' on Windows
 | 
			
		||||
normalize = $(if $(windir),$(subst /,\,$1),$1)
 | 
			
		||||
 | 
			
		||||
PYTHON = $(if $(windir),pyw,python3)
 | 
			
		||||
 | 
			
		||||
SHAREDEXTENSION = $(if $(windir),dll,so)
 | 
			
		||||
 | 
			
		||||
ifdef windir
 | 
			
		||||
CC = gcc
 | 
			
		||||
DEL = del /q
 | 
			
		||||
else
 | 
			
		||||
DEL = rm -f
 | 
			
		||||
endif
 | 
			
		||||
COMPLIB=$(basedir)/bin/scintilla.a
 | 
			
		||||
COMPONENT=$(basedir)/bin/libscintilla.$(SHAREDEXTENSION)
 | 
			
		||||
 | 
			
		||||
vpath %.h $(srcdir) $(basedir)/src $(basedir)/include
 | 
			
		||||
vpath %.c $(srcdir)
 | 
			
		||||
vpath %.cxx $(srcdir) $(basedir)/src
 | 
			
		||||
 | 
			
		||||
INCLUDES=-I $(basedir)/include -I $(basedir)/src
 | 
			
		||||
DEFINES += -DGTK
 | 
			
		||||
BASE_FLAGS += $(WARNINGS)
 | 
			
		||||
 | 
			
		||||
ifdef NO_CXX11_REGEX
 | 
			
		||||
DEFINES += -DNO_CXX11_REGEX
 | 
			
		||||
endif
 | 
			
		||||
 | 
			
		||||
DEFINES += -D$(if $(DEBUG),DEBUG,NDEBUG)
 | 
			
		||||
BASE_FLAGS += $(if $(DEBUG),-g,-O3)
 | 
			
		||||
 | 
			
		||||
CXX_BASE_FLAGS =--std=c++17 $(BASE_FLAGS)
 | 
			
		||||
CXX_ALL_FLAGS =$(DEFINES) $(INCLUDES) $(CXX_BASE_FLAGS) $(CONFIG_FLAGS)
 | 
			
		||||
 | 
			
		||||
CONFIG_FLAGS:=$(shell $(PKG_CONFIG) --cflags $(GTK_VERSION))
 | 
			
		||||
CONFIGLIB:=$(shell $(PKG_CONFIG) --libs $(GTK_VERSION) gmodule-no-export-2.0)
 | 
			
		||||
MARSHALLER=scintilla-marshal.o
 | 
			
		||||
 | 
			
		||||
all: $(COMPLIB) $(COMPONENT)
 | 
			
		||||
 | 
			
		||||
static: $(COMPLIB)
 | 
			
		||||
 | 
			
		||||
shared: $(COMPONENT)
 | 
			
		||||
 | 
			
		||||
clean:
 | 
			
		||||
	$(DEL) *.o $(call normalize,$(COMPLIB)) $(call normalize,$(COMPONENT)) *.plist
 | 
			
		||||
 | 
			
		||||
%.o: %.cxx
 | 
			
		||||
	$(CXX) $(CPPFLAGS) $(CXX_ALL_FLAGS) $(CXXFLAGS) -c $<
 | 
			
		||||
%.o: %.c
 | 
			
		||||
	$(CC) $(CPPFLAGS) $(DEFINES) $(INCLUDES) $(CONFIG_FLAGS) $(BASE_FLAGS) $(CFLAGS) -w -c $<
 | 
			
		||||
 | 
			
		||||
GLIB_GENMARSHAL = glib-genmarshal
 | 
			
		||||
GLIB_GENMARSHAL_FLAGS = --prefix=scintilla_marshal
 | 
			
		||||
 | 
			
		||||
%.h: %.list
 | 
			
		||||
	$(GLIB_GENMARSHAL) --header $(GLIB_GENMARSHAL_FLAGS) $< > $@
 | 
			
		||||
%.c: %.list
 | 
			
		||||
	$(GLIB_GENMARSHAL) --body $(GLIB_GENMARSHAL_FLAGS) $< > $@
 | 
			
		||||
 | 
			
		||||
analyze:
 | 
			
		||||
	clang --analyze $(DEFINES) $(INCLUDES) $(CONFIG_FLAGS) $(CXX_BASE_FLAGS) $(CXXFLAGS) $(srcdir)/*.cxx $(basedir)/src/*.cxx
 | 
			
		||||
 | 
			
		||||
depend deps.mak:
 | 
			
		||||
	$(PYTHON) DepGen.py
 | 
			
		||||
 | 
			
		||||
# Required for base Scintilla
 | 
			
		||||
SRC_OBJS = \
 | 
			
		||||
	AutoComplete.o \
 | 
			
		||||
	CallTip.o \
 | 
			
		||||
	CaseConvert.o \
 | 
			
		||||
	CaseFolder.o \
 | 
			
		||||
	CellBuffer.o \
 | 
			
		||||
	ChangeHistory.o \
 | 
			
		||||
	CharacterCategoryMap.o \
 | 
			
		||||
	CharacterType.o \
 | 
			
		||||
	CharClassify.o \
 | 
			
		||||
	ContractionState.o \
 | 
			
		||||
	DBCS.o \
 | 
			
		||||
	Decoration.o \
 | 
			
		||||
	Document.o \
 | 
			
		||||
	EditModel.o \
 | 
			
		||||
	Editor.o \
 | 
			
		||||
	EditView.o \
 | 
			
		||||
	Geometry.o \
 | 
			
		||||
	Indicator.o \
 | 
			
		||||
	KeyMap.o \
 | 
			
		||||
	LineMarker.o \
 | 
			
		||||
	MarginView.o \
 | 
			
		||||
	PerLine.o \
 | 
			
		||||
	PositionCache.o \
 | 
			
		||||
	RESearch.o \
 | 
			
		||||
	RunStyles.o \
 | 
			
		||||
	Selection.o \
 | 
			
		||||
	Style.o \
 | 
			
		||||
	UndoHistory.o \
 | 
			
		||||
	UniConversion.o \
 | 
			
		||||
	UniqueString.o \
 | 
			
		||||
	ViewStyle.o \
 | 
			
		||||
	XPM.o
 | 
			
		||||
 | 
			
		||||
GTK_OBJS = \
 | 
			
		||||
	ScintillaBase.o \
 | 
			
		||||
	PlatGTK.o \
 | 
			
		||||
	ScintillaGTK.o \
 | 
			
		||||
	ScintillaGTKAccessible.o
 | 
			
		||||
 | 
			
		||||
$(COMPLIB): $(SRC_OBJS) $(GTK_OBJS) $(MARSHALLER)
 | 
			
		||||
	$(AR) $(ARFLAGS) $@ $^
 | 
			
		||||
	$(RANLIB) $@
 | 
			
		||||
 | 
			
		||||
$(COMPONENT): $(SRC_OBJS) $(GTK_OBJS) $(MARSHALLER)
 | 
			
		||||
	$(CXX) $(CXX_ALL_FLAGS) $(CXXFLAGS) $(LDFLAGS) $^ -o $@ $(CONFIGLIB)
 | 
			
		||||
 | 
			
		||||
# Automatically generate header dependencies with "make depend"
 | 
			
		||||
include deps.mak
 | 
			
		||||
							
								
								
									
										122
									
								
								3rdparty/scintilla552/scintilla/gtk/scintilla-marshal.c
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,122 @@
 | 
			
		||||
#include <glib-object.h>
 | 
			
		||||
 | 
			
		||||
#ifdef G_ENABLE_DEBUG
 | 
			
		||||
#define g_marshal_value_peek_boolean(v)  g_value_get_boolean (v)
 | 
			
		||||
#define g_marshal_value_peek_char(v)     g_value_get_schar (v)
 | 
			
		||||
#define g_marshal_value_peek_uchar(v)    g_value_get_uchar (v)
 | 
			
		||||
#define g_marshal_value_peek_int(v)      g_value_get_int (v)
 | 
			
		||||
#define g_marshal_value_peek_uint(v)     g_value_get_uint (v)
 | 
			
		||||
#define g_marshal_value_peek_long(v)     g_value_get_long (v)
 | 
			
		||||
#define g_marshal_value_peek_ulong(v)    g_value_get_ulong (v)
 | 
			
		||||
#define g_marshal_value_peek_int64(v)    g_value_get_int64 (v)
 | 
			
		||||
#define g_marshal_value_peek_uint64(v)   g_value_get_uint64 (v)
 | 
			
		||||
#define g_marshal_value_peek_enum(v)     g_value_get_enum (v)
 | 
			
		||||
#define g_marshal_value_peek_flags(v)    g_value_get_flags (v)
 | 
			
		||||
#define g_marshal_value_peek_float(v)    g_value_get_float (v)
 | 
			
		||||
#define g_marshal_value_peek_double(v)   g_value_get_double (v)
 | 
			
		||||
#define g_marshal_value_peek_string(v)   (char*) g_value_get_string (v)
 | 
			
		||||
#define g_marshal_value_peek_param(v)    g_value_get_param (v)
 | 
			
		||||
#define g_marshal_value_peek_boxed(v)    g_value_get_boxed (v)
 | 
			
		||||
#define g_marshal_value_peek_pointer(v)  g_value_get_pointer (v)
 | 
			
		||||
#define g_marshal_value_peek_object(v)   g_value_get_object (v)
 | 
			
		||||
#define g_marshal_value_peek_variant(v)  g_value_get_variant (v)
 | 
			
		||||
#else /* !G_ENABLE_DEBUG */
 | 
			
		||||
/* WARNING: This code accesses GValues directly, which is UNSUPPORTED API.
 | 
			
		||||
 *          Do not access GValues directly in your code. Instead, use the
 | 
			
		||||
 *          g_value_get_*() functions
 | 
			
		||||
 */
 | 
			
		||||
#define g_marshal_value_peek_boolean(v)  (v)->data[0].v_int
 | 
			
		||||
#define g_marshal_value_peek_char(v)     (v)->data[0].v_int
 | 
			
		||||
#define g_marshal_value_peek_uchar(v)    (v)->data[0].v_uint
 | 
			
		||||
#define g_marshal_value_peek_int(v)      (v)->data[0].v_int
 | 
			
		||||
#define g_marshal_value_peek_uint(v)     (v)->data[0].v_uint
 | 
			
		||||
#define g_marshal_value_peek_long(v)     (v)->data[0].v_long
 | 
			
		||||
#define g_marshal_value_peek_ulong(v)    (v)->data[0].v_ulong
 | 
			
		||||
#define g_marshal_value_peek_int64(v)    (v)->data[0].v_int64
 | 
			
		||||
#define g_marshal_value_peek_uint64(v)   (v)->data[0].v_uint64
 | 
			
		||||
#define g_marshal_value_peek_enum(v)     (v)->data[0].v_long
 | 
			
		||||
#define g_marshal_value_peek_flags(v)    (v)->data[0].v_ulong
 | 
			
		||||
#define g_marshal_value_peek_float(v)    (v)->data[0].v_float
 | 
			
		||||
#define g_marshal_value_peek_double(v)   (v)->data[0].v_double
 | 
			
		||||
#define g_marshal_value_peek_string(v)   (v)->data[0].v_pointer
 | 
			
		||||
#define g_marshal_value_peek_param(v)    (v)->data[0].v_pointer
 | 
			
		||||
#define g_marshal_value_peek_boxed(v)    (v)->data[0].v_pointer
 | 
			
		||||
#define g_marshal_value_peek_pointer(v)  (v)->data[0].v_pointer
 | 
			
		||||
#define g_marshal_value_peek_object(v)   (v)->data[0].v_pointer
 | 
			
		||||
#define g_marshal_value_peek_variant(v)  (v)->data[0].v_pointer
 | 
			
		||||
#endif /* !G_ENABLE_DEBUG */
 | 
			
		||||
 | 
			
		||||
/* VOID:INT,OBJECT (scintilla-marshal.list:1) */
 | 
			
		||||
void
 | 
			
		||||
scintilla_marshal_VOID__INT_OBJECT (GClosure     *closure,
 | 
			
		||||
                                    GValue       *return_value G_GNUC_UNUSED,
 | 
			
		||||
                                    guint         n_param_values,
 | 
			
		||||
                                    const GValue *param_values,
 | 
			
		||||
                                    gpointer      invocation_hint G_GNUC_UNUSED,
 | 
			
		||||
                                    gpointer      marshal_data)
 | 
			
		||||
{
 | 
			
		||||
  typedef void (*GMarshalFunc_VOID__INT_OBJECT) (gpointer data1,
 | 
			
		||||
                                                 gint arg1,
 | 
			
		||||
                                                 gpointer arg2,
 | 
			
		||||
                                                 gpointer data2);
 | 
			
		||||
  GCClosure *cc = (GCClosure *) closure;
 | 
			
		||||
  gpointer data1, data2;
 | 
			
		||||
  GMarshalFunc_VOID__INT_OBJECT callback;
 | 
			
		||||
 | 
			
		||||
  g_return_if_fail (n_param_values == 3);
 | 
			
		||||
 | 
			
		||||
  if (G_CCLOSURE_SWAP_DATA (closure))
 | 
			
		||||
    {
 | 
			
		||||
      data1 = closure->data;
 | 
			
		||||
      data2 = g_value_peek_pointer (param_values + 0);
 | 
			
		||||
    }
 | 
			
		||||
  else
 | 
			
		||||
    {
 | 
			
		||||
      data1 = g_value_peek_pointer (param_values + 0);
 | 
			
		||||
      data2 = closure->data;
 | 
			
		||||
    }
 | 
			
		||||
  callback = (GMarshalFunc_VOID__INT_OBJECT) (marshal_data ? marshal_data : cc->callback);
 | 
			
		||||
 | 
			
		||||
  callback (data1,
 | 
			
		||||
            g_marshal_value_peek_int (param_values + 1),
 | 
			
		||||
            g_marshal_value_peek_object (param_values + 2),
 | 
			
		||||
            data2);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* VOID:INT,BOXED (scintilla-marshal.list:2) */
 | 
			
		||||
void
 | 
			
		||||
scintilla_marshal_VOID__INT_BOXED (GClosure     *closure,
 | 
			
		||||
                                   GValue       *return_value G_GNUC_UNUSED,
 | 
			
		||||
                                   guint         n_param_values,
 | 
			
		||||
                                   const GValue *param_values,
 | 
			
		||||
                                   gpointer      invocation_hint G_GNUC_UNUSED,
 | 
			
		||||
                                   gpointer      marshal_data)
 | 
			
		||||
{
 | 
			
		||||
  typedef void (*GMarshalFunc_VOID__INT_BOXED) (gpointer data1,
 | 
			
		||||
                                                gint arg1,
 | 
			
		||||
                                                gpointer arg2,
 | 
			
		||||
                                                gpointer data2);
 | 
			
		||||
  GCClosure *cc = (GCClosure *) closure;
 | 
			
		||||
  gpointer data1, data2;
 | 
			
		||||
  GMarshalFunc_VOID__INT_BOXED callback;
 | 
			
		||||
 | 
			
		||||
  g_return_if_fail (n_param_values == 3);
 | 
			
		||||
 | 
			
		||||
  if (G_CCLOSURE_SWAP_DATA (closure))
 | 
			
		||||
    {
 | 
			
		||||
      data1 = closure->data;
 | 
			
		||||
      data2 = g_value_peek_pointer (param_values + 0);
 | 
			
		||||
    }
 | 
			
		||||
  else
 | 
			
		||||
    {
 | 
			
		||||
      data1 = g_value_peek_pointer (param_values + 0);
 | 
			
		||||
      data2 = closure->data;
 | 
			
		||||
    }
 | 
			
		||||
  callback = (GMarshalFunc_VOID__INT_BOXED) (marshal_data ? marshal_data : cc->callback);
 | 
			
		||||
 | 
			
		||||
  callback (data1,
 | 
			
		||||
            g_marshal_value_peek_int (param_values + 1),
 | 
			
		||||
            g_marshal_value_peek_boxed (param_values + 2),
 | 
			
		||||
            data2);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										30
									
								
								3rdparty/scintilla552/scintilla/gtk/scintilla-marshal.h
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,30 @@
 | 
			
		||||
/* This file is generated, all changes will be lost */
 | 
			
		||||
#ifndef __SCINTILLA_MARSHAL_MARSHAL_H__
 | 
			
		||||
#define __SCINTILLA_MARSHAL_MARSHAL_H__
 | 
			
		||||
 | 
			
		||||
#include <glib-object.h>
 | 
			
		||||
 | 
			
		||||
G_BEGIN_DECLS
 | 
			
		||||
 | 
			
		||||
/* VOID:INT,OBJECT (scintilla-marshal.list:1) */
 | 
			
		||||
extern
 | 
			
		||||
void scintilla_marshal_VOID__INT_OBJECT (GClosure     *closure,
 | 
			
		||||
                                         GValue       *return_value,
 | 
			
		||||
                                         guint         n_param_values,
 | 
			
		||||
                                         const GValue *param_values,
 | 
			
		||||
                                         gpointer      invocation_hint,
 | 
			
		||||
                                         gpointer      marshal_data);
 | 
			
		||||
 | 
			
		||||
/* VOID:INT,BOXED (scintilla-marshal.list:2) */
 | 
			
		||||
extern
 | 
			
		||||
void scintilla_marshal_VOID__INT_BOXED (GClosure     *closure,
 | 
			
		||||
                                        GValue       *return_value,
 | 
			
		||||
                                        guint         n_param_values,
 | 
			
		||||
                                        const GValue *param_values,
 | 
			
		||||
                                        gpointer      invocation_hint,
 | 
			
		||||
                                        gpointer      marshal_data);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
G_END_DECLS
 | 
			
		||||
 | 
			
		||||
#endif /* __SCINTILLA_MARSHAL_MARSHAL_H__ */
 | 
			
		||||
							
								
								
									
										2
									
								
								3rdparty/scintilla552/scintilla/gtk/scintilla-marshal.list
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,2 @@
 | 
			
		||||
VOID:INT,OBJECT
 | 
			
		||||
VOID:INT,BOXED
 | 
			
		||||
							
								
								
									
										85
									
								
								3rdparty/scintilla552/scintilla/include/ILexer.h
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,85 @@
 | 
			
		||||
// Scintilla source code edit control
 | 
			
		||||
/** @file ILexer.h
 | 
			
		||||
 ** Interface between Scintilla and lexers.
 | 
			
		||||
 **/
 | 
			
		||||
// Copyright 1998-2010 by Neil Hodgson <neilh@scintilla.org>
 | 
			
		||||
// The License.txt file describes the conditions under which this software may be distributed.
 | 
			
		||||
 | 
			
		||||
#ifndef ILEXER_H
 | 
			
		||||
#define ILEXER_H
 | 
			
		||||
 | 
			
		||||
#include "Sci_Position.h"
 | 
			
		||||
 | 
			
		||||
namespace Scintilla {
 | 
			
		||||
 | 
			
		||||
enum { dvRelease4=2 };
 | 
			
		||||
 | 
			
		||||
class IDocument {
 | 
			
		||||
public:
 | 
			
		||||
	virtual int SCI_METHOD Version() const = 0;
 | 
			
		||||
	virtual void SCI_METHOD SetErrorStatus(int status) = 0;
 | 
			
		||||
	virtual Sci_Position SCI_METHOD Length() const = 0;
 | 
			
		||||
	virtual void SCI_METHOD GetCharRange(char *buffer, Sci_Position position, Sci_Position lengthRetrieve) const = 0;
 | 
			
		||||
	virtual char SCI_METHOD StyleAt(Sci_Position position) const = 0;
 | 
			
		||||
	virtual Sci_Position SCI_METHOD LineFromPosition(Sci_Position position) const = 0;
 | 
			
		||||
	virtual Sci_Position SCI_METHOD LineStart(Sci_Position line) const = 0;
 | 
			
		||||
	virtual int SCI_METHOD GetLevel(Sci_Position line) const = 0;
 | 
			
		||||
	virtual int SCI_METHOD SetLevel(Sci_Position line, int level) = 0;
 | 
			
		||||
	virtual int SCI_METHOD GetLineState(Sci_Position line) const = 0;
 | 
			
		||||
	virtual int SCI_METHOD SetLineState(Sci_Position line, int state) = 0;
 | 
			
		||||
	virtual void SCI_METHOD StartStyling(Sci_Position position) = 0;
 | 
			
		||||
	virtual bool SCI_METHOD SetStyleFor(Sci_Position length, char style) = 0;
 | 
			
		||||
	virtual bool SCI_METHOD SetStyles(Sci_Position length, const char *styles) = 0;
 | 
			
		||||
	virtual void SCI_METHOD DecorationSetCurrentIndicator(int indicator) = 0;
 | 
			
		||||
	virtual void SCI_METHOD DecorationFillRange(Sci_Position position, int value, Sci_Position fillLength) = 0;
 | 
			
		||||
	virtual void SCI_METHOD ChangeLexerState(Sci_Position start, Sci_Position end) = 0;
 | 
			
		||||
	virtual int SCI_METHOD CodePage() const = 0;
 | 
			
		||||
	virtual bool SCI_METHOD IsDBCSLeadByte(char ch) const = 0;
 | 
			
		||||
	virtual const char * SCI_METHOD BufferPointer() = 0;
 | 
			
		||||
	virtual int SCI_METHOD GetLineIndentation(Sci_Position line) = 0;
 | 
			
		||||
	virtual Sci_Position SCI_METHOD LineEnd(Sci_Position line) const = 0;
 | 
			
		||||
	virtual Sci_Position SCI_METHOD GetRelativePosition(Sci_Position positionStart, Sci_Position characterOffset) const = 0;
 | 
			
		||||
	virtual int SCI_METHOD GetCharacterAndWidth(Sci_Position position, Sci_Position *pWidth) const = 0;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
enum { lvRelease4=2, lvRelease5=3 };
 | 
			
		||||
 | 
			
		||||
class ILexer4 {
 | 
			
		||||
public:
 | 
			
		||||
	virtual int SCI_METHOD Version() const = 0;
 | 
			
		||||
	virtual void SCI_METHOD Release() = 0;
 | 
			
		||||
	virtual const char * SCI_METHOD PropertyNames() = 0;
 | 
			
		||||
	virtual int SCI_METHOD PropertyType(const char *name) = 0;
 | 
			
		||||
	virtual const char * SCI_METHOD DescribeProperty(const char *name) = 0;
 | 
			
		||||
	virtual Sci_Position SCI_METHOD PropertySet(const char *key, const char *val) = 0;
 | 
			
		||||
	virtual const char * SCI_METHOD DescribeWordListSets() = 0;
 | 
			
		||||
	virtual Sci_Position SCI_METHOD WordListSet(int n, const char *wl) = 0;
 | 
			
		||||
	virtual void SCI_METHOD Lex(Sci_PositionU startPos, Sci_Position lengthDoc, int initStyle, IDocument *pAccess) = 0;
 | 
			
		||||
	virtual void SCI_METHOD Fold(Sci_PositionU startPos, Sci_Position lengthDoc, int initStyle, IDocument *pAccess) = 0;
 | 
			
		||||
	virtual void * SCI_METHOD PrivateCall(int operation, void *pointer) = 0;
 | 
			
		||||
	virtual int SCI_METHOD LineEndTypesSupported() = 0;
 | 
			
		||||
	virtual int SCI_METHOD AllocateSubStyles(int styleBase, int numberStyles) = 0;
 | 
			
		||||
	virtual int SCI_METHOD SubStylesStart(int styleBase) = 0;
 | 
			
		||||
	virtual int SCI_METHOD SubStylesLength(int styleBase) = 0;
 | 
			
		||||
	virtual int SCI_METHOD StyleFromSubStyle(int subStyle) = 0;
 | 
			
		||||
	virtual int SCI_METHOD PrimaryStyleFromStyle(int style) = 0;
 | 
			
		||||
	virtual void SCI_METHOD FreeSubStyles() = 0;
 | 
			
		||||
	virtual void SCI_METHOD SetIdentifiers(int style, const char *identifiers) = 0;
 | 
			
		||||
	virtual int SCI_METHOD DistanceToSecondaryStyles() = 0;
 | 
			
		||||
	virtual const char * SCI_METHOD GetSubStyleBases() = 0;
 | 
			
		||||
	virtual int SCI_METHOD NamedStyles() = 0;
 | 
			
		||||
	virtual const char * SCI_METHOD NameOfStyle(int style) = 0;
 | 
			
		||||
	virtual const char * SCI_METHOD TagsOfStyle(int style) = 0;
 | 
			
		||||
	virtual const char * SCI_METHOD DescriptionOfStyle(int style) = 0;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
class ILexer5 : public ILexer4 {
 | 
			
		||||
public:
 | 
			
		||||
	virtual const char * SCI_METHOD GetName() = 0;
 | 
			
		||||
	virtual int SCI_METHOD  GetIdentifier() = 0;
 | 
			
		||||
	virtual const char * SCI_METHOD PropertyGet(const char *key) = 0;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
							
								
								
									
										38
									
								
								3rdparty/scintilla552/scintilla/include/ILoader.h
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,38 @@
 | 
			
		||||
// Scintilla source code edit control
 | 
			
		||||
/** @file ILoader.h
 | 
			
		||||
 ** Interface for loading into a Scintilla document from a background thread.
 | 
			
		||||
 ** Interface for manipulating a document without a view.
 | 
			
		||||
 **/
 | 
			
		||||
// Copyright 1998-2017 by Neil Hodgson <neilh@scintilla.org>
 | 
			
		||||
// The License.txt file describes the conditions under which this software may be distributed.
 | 
			
		||||
 | 
			
		||||
#ifndef ILOADER_H
 | 
			
		||||
#define ILOADER_H
 | 
			
		||||
 | 
			
		||||
#include "Sci_Position.h"
 | 
			
		||||
 | 
			
		||||
namespace Scintilla {
 | 
			
		||||
 | 
			
		||||
class ILoader {
 | 
			
		||||
public:
 | 
			
		||||
	virtual int SCI_METHOD Release() = 0;
 | 
			
		||||
	// Returns a status code from SC_STATUS_*
 | 
			
		||||
	virtual int SCI_METHOD AddData(const char *data, Sci_Position length) = 0;
 | 
			
		||||
	virtual void * SCI_METHOD ConvertToDocument() = 0;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
static constexpr int deRelease0 = 0;
 | 
			
		||||
 | 
			
		||||
class IDocumentEditable {
 | 
			
		||||
public:
 | 
			
		||||
	// Allow this interface to add methods over time and discover whether new methods available.
 | 
			
		||||
	virtual int SCI_METHOD DEVersion() const noexcept = 0;
 | 
			
		||||
 | 
			
		||||
	// Lifetime control
 | 
			
		||||
	virtual int SCI_METHOD AddRef() noexcept = 0;
 | 
			
		||||
	virtual int SCI_METHOD Release() = 0;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
							
								
								
									
										29
									
								
								3rdparty/scintilla552/scintilla/include/Sci_Position.h
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,29 @@
 | 
			
		||||
// Scintilla source code edit control
 | 
			
		||||
/** @file Sci_Position.h
 | 
			
		||||
 ** Define the Sci_Position type used in Scintilla's external interfaces.
 | 
			
		||||
 ** These need to be available to clients written in C so are not in a C++ namespace.
 | 
			
		||||
 **/
 | 
			
		||||
// Copyright 2015 by Neil Hodgson <neilh@scintilla.org>
 | 
			
		||||
// The License.txt file describes the conditions under which this software may be distributed.
 | 
			
		||||
 | 
			
		||||
#ifndef SCI_POSITION_H
 | 
			
		||||
#define SCI_POSITION_H
 | 
			
		||||
 | 
			
		||||
#include <stddef.h>
 | 
			
		||||
 | 
			
		||||
// Basic signed type used throughout interface
 | 
			
		||||
typedef ptrdiff_t Sci_Position;
 | 
			
		||||
 | 
			
		||||
// Unsigned variant used for ILexer::Lex and ILexer::Fold
 | 
			
		||||
typedef size_t Sci_PositionU;
 | 
			
		||||
 | 
			
		||||
// For Sci_CharacterRange  which is defined as long to be compatible with Win32 CHARRANGE
 | 
			
		||||
typedef long Sci_PositionCR;
 | 
			
		||||
 | 
			
		||||
#ifdef _WIN32
 | 
			
		||||
	#define SCI_METHOD __stdcall
 | 
			
		||||
#else
 | 
			
		||||
	#define SCI_METHOD
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
							
								
								
									
										1476
									
								
								3rdparty/scintilla552/scintilla/include/Scintilla.h
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										3551
									
								
								3rdparty/scintilla552/scintilla/include/Scintilla.iface
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										937
									
								
								3rdparty/scintilla552/scintilla/include/ScintillaCall.h
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						@ -0,0 +1,937 @@
 | 
			
		||||
// SciTE - Scintilla based Text Editor
 | 
			
		||||
/** @file ScintillaCall.h
 | 
			
		||||
 ** Interface to calling a Scintilla instance.
 | 
			
		||||
 **/
 | 
			
		||||
// Copyright 1998-2019 by Neil Hodgson <neilh@scintilla.org>
 | 
			
		||||
// The License.txt file describes the conditions under which this software may be distributed.
 | 
			
		||||
 | 
			
		||||
/* Most of this file is automatically generated from the Scintilla.iface interface definition
 | 
			
		||||
 * file which contains any comments about the definitions. APIFacer.py does the generation. */
 | 
			
		||||
 | 
			
		||||
#ifndef SCINTILLACALL_H
 | 
			
		||||
#define SCINTILLACALL_H
 | 
			
		||||
 | 
			
		||||
namespace Scintilla {
 | 
			
		||||
 | 
			
		||||
enum class Message;	// Declare in case ScintillaMessages.h not included
 | 
			
		||||
 | 
			
		||||
// Declare in case ScintillaStructures.h not included
 | 
			
		||||
struct TextRangeFull;
 | 
			
		||||
struct TextToFindFull;
 | 
			
		||||
struct RangeToFormatFull;
 | 
			
		||||
 | 
			
		||||
class IDocumentEditable;
 | 
			
		||||
 | 
			
		||||
using FunctionDirect = intptr_t(*)(intptr_t ptr, unsigned int iMessage, uintptr_t wParam, intptr_t lParam, int *pStatus);
 | 
			
		||||
 | 
			
		||||
struct Failure {
 | 
			
		||||
	Scintilla::Status status;
 | 
			
		||||
	explicit Failure(Scintilla::Status status_) noexcept : status(status_) {
 | 
			
		||||
	}
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
struct Span {
 | 
			
		||||
	// An ordered range
 | 
			
		||||
	// end may be less than start when, for example, searching backwards
 | 
			
		||||
	Position start;
 | 
			
		||||
	Position end;
 | 
			
		||||
	explicit Span(Position position) noexcept : start(position), end(position) {
 | 
			
		||||
	}
 | 
			
		||||
	Span(Position start_, Position end_) noexcept : start(start_), end(end_) {
 | 
			
		||||
	}
 | 
			
		||||
	Position Length() const noexcept {
 | 
			
		||||
		if (end > start)
 | 
			
		||||
			return end - start;
 | 
			
		||||
		else
 | 
			
		||||
			return start - end;
 | 
			
		||||
	}
 | 
			
		||||
	bool operator==(const Span &other) const noexcept {
 | 
			
		||||
		return (other.start == start) && (other.end == end);
 | 
			
		||||
	}
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
class ScintillaCall {
 | 
			
		||||
	FunctionDirect fn;
 | 
			
		||||
	intptr_t ptr;
 | 
			
		||||
	intptr_t CallPointer(Message msg, uintptr_t wParam, void *s);
 | 
			
		||||
	intptr_t CallString(Message msg, uintptr_t wParam, const char *s);
 | 
			
		||||
	std::string CallReturnString(Message msg, uintptr_t wParam);
 | 
			
		||||
public:
 | 
			
		||||
	Scintilla::Status statusLastCall;
 | 
			
		||||
	ScintillaCall() noexcept;
 | 
			
		||||
	// All standard methods are fine
 | 
			
		||||
 | 
			
		||||
	void SetFnPtr(FunctionDirect fn_, intptr_t ptr_) noexcept;
 | 
			
		||||
	bool IsValid() const noexcept;
 | 
			
		||||
	intptr_t Call(Message msg, uintptr_t wParam=0, intptr_t lParam=0);
 | 
			
		||||
 | 
			
		||||
	// Common APIs made more structured and type-safe
 | 
			
		||||
	Position LineStart(Line line);
 | 
			
		||||
	Position LineEnd(Line line);
 | 
			
		||||
	Span SelectionSpan();
 | 
			
		||||
	Span TargetSpan();
 | 
			
		||||
	void SetTarget(Span span);
 | 
			
		||||
	void ColouriseAll();
 | 
			
		||||
	char CharacterAt(Position position);
 | 
			
		||||
	int UnsignedStyleAt(Position position);
 | 
			
		||||
	std::string StringOfSpan(Span span);
 | 
			
		||||
	std::string StringOfRange(Span span);
 | 
			
		||||
	Position ReplaceTarget(std::string_view text);
 | 
			
		||||
	Position ReplaceTargetRE(std::string_view text);
 | 
			
		||||
	Position ReplaceTargetMinimal(std::string_view text);
 | 
			
		||||
	Position SearchInTarget(std::string_view text);
 | 
			
		||||
	Span SpanSearchInTarget(std::string_view text);
 | 
			
		||||
 | 
			
		||||
	// Generated APIs
 | 
			
		||||
//++Autogenerated -- start of section automatically generated from Scintilla.iface
 | 
			
		||||
//**\(\*\n\)
 | 
			
		||||
	void AddText(Position length, const char *text);
 | 
			
		||||
	void AddStyledText(Position length, const char *c);
 | 
			
		||||
	void InsertText(Position pos, const char *text);
 | 
			
		||||
	void ChangeInsertion(Position length, const char *text);
 | 
			
		||||
	void ClearAll();
 | 
			
		||||
	void DeleteRange(Position start, Position lengthDelete);
 | 
			
		||||
	void ClearDocumentStyle();
 | 
			
		||||
	Position Length();
 | 
			
		||||
	int CharAt(Position pos);
 | 
			
		||||
	Position CurrentPos();
 | 
			
		||||
	Position Anchor();
 | 
			
		||||
	int StyleAt(Position pos);
 | 
			
		||||
	int StyleIndexAt(Position pos);
 | 
			
		||||
	void Redo();
 | 
			
		||||
	void SetUndoCollection(bool collectUndo);
 | 
			
		||||
	void SelectAll();
 | 
			
		||||
	void SetSavePoint();
 | 
			
		||||
	Position GetStyledText(void *tr);
 | 
			
		||||
	Position GetStyledTextFull(TextRangeFull *tr);
 | 
			
		||||
	bool CanRedo();
 | 
			
		||||
	Line MarkerLineFromHandle(int markerHandle);
 | 
			
		||||
	void MarkerDeleteHandle(int markerHandle);
 | 
			
		||||
	int MarkerHandleFromLine(Line line, int which);
 | 
			
		||||
	int MarkerNumberFromLine(Line line, int which);
 | 
			
		||||
	bool UndoCollection();
 | 
			
		||||
	Scintilla::WhiteSpace ViewWS();
 | 
			
		||||
	void SetViewWS(Scintilla::WhiteSpace viewWS);
 | 
			
		||||
	Scintilla::TabDrawMode TabDrawMode();
 | 
			
		||||
	void SetTabDrawMode(Scintilla::TabDrawMode tabDrawMode);
 | 
			
		||||
	Position PositionFromPoint(int x, int y);
 | 
			
		||||
	Position PositionFromPointClose(int x, int y);
 | 
			
		||||
	void GotoLine(Line line);
 | 
			
		||||
	void GotoPos(Position caret);
 | 
			
		||||
	void SetAnchor(Position anchor);
 | 
			
		||||
	Position GetCurLine(Position length, char *text);
 | 
			
		||||
	std::string GetCurLine(Position length);
 | 
			
		||||
	Position EndStyled();
 | 
			
		||||
	void ConvertEOLs(Scintilla::EndOfLine eolMode);
 | 
			
		||||
	Scintilla::EndOfLine EOLMode();
 | 
			
		||||
	void SetEOLMode(Scintilla::EndOfLine eolMode);
 | 
			
		||||
	void StartStyling(Position start, int unused);
 | 
			
		||||
	void SetStyling(Position length, int style);
 | 
			
		||||
	bool BufferedDraw();
 | 
			
		||||
	void SetBufferedDraw(bool buffered);
 | 
			
		||||
	void SetTabWidth(int tabWidth);
 | 
			
		||||
	int TabWidth();
 | 
			
		||||
	void SetTabMinimumWidth(int pixels);
 | 
			
		||||
	int TabMinimumWidth();
 | 
			
		||||
	void ClearTabStops(Line line);
 | 
			
		||||
	void AddTabStop(Line line, int x);
 | 
			
		||||
	int GetNextTabStop(Line line, int x);
 | 
			
		||||
	void SetCodePage(int codePage);
 | 
			
		||||
	void SetFontLocale(const char *localeName);
 | 
			
		||||
	int FontLocale(char *localeName);
 | 
			
		||||
	std::string FontLocale();
 | 
			
		||||
	Scintilla::IMEInteraction IMEInteraction();
 | 
			
		||||
	void SetIMEInteraction(Scintilla::IMEInteraction imeInteraction);
 | 
			
		||||
	void MarkerDefine(int markerNumber, Scintilla::MarkerSymbol markerSymbol);
 | 
			
		||||
	void MarkerSetFore(int markerNumber, Colour fore);
 | 
			
		||||
	void MarkerSetBack(int markerNumber, Colour back);
 | 
			
		||||
	void MarkerSetBackSelected(int markerNumber, Colour back);
 | 
			
		||||
	void MarkerSetForeTranslucent(int markerNumber, ColourAlpha fore);
 | 
			
		||||
	void MarkerSetBackTranslucent(int markerNumber, ColourAlpha back);
 | 
			
		||||
	void MarkerSetBackSelectedTranslucent(int markerNumber, ColourAlpha back);
 | 
			
		||||
	void MarkerSetStrokeWidth(int markerNumber, int hundredths);
 | 
			
		||||
	void MarkerEnableHighlight(bool enabled);
 | 
			
		||||
	int MarkerAdd(Line line, int markerNumber);
 | 
			
		||||
	void MarkerDelete(Line line, int markerNumber);
 | 
			
		||||
	void MarkerDeleteAll(int markerNumber);
 | 
			
		||||
	int MarkerGet(Line line);
 | 
			
		||||
	Line MarkerNext(Line lineStart, int markerMask);
 | 
			
		||||
	Line MarkerPrevious(Line lineStart, int markerMask);
 | 
			
		||||
	void MarkerDefinePixmap(int markerNumber, const char *pixmap);
 | 
			
		||||
	void MarkerAddSet(Line line, int markerSet);
 | 
			
		||||
	void MarkerSetAlpha(int markerNumber, Scintilla::Alpha alpha);
 | 
			
		||||
	Scintilla::Layer MarkerGetLayer(int markerNumber);
 | 
			
		||||
	void MarkerSetLayer(int markerNumber, Scintilla::Layer layer);
 | 
			
		||||
	void SetMarginTypeN(int margin, Scintilla::MarginType marginType);
 | 
			
		||||
	Scintilla::MarginType MarginTypeN(int margin);
 | 
			
		||||
	void SetMarginWidthN(int margin, int pixelWidth);
 | 
			
		||||
	int MarginWidthN(int margin);
 | 
			
		||||
	void SetMarginMaskN(int margin, int mask);
 | 
			
		||||
	int MarginMaskN(int margin);
 | 
			
		||||
	void SetMarginSensitiveN(int margin, bool sensitive);
 | 
			
		||||
	bool MarginSensitiveN(int margin);
 | 
			
		||||
	void SetMarginCursorN(int margin, Scintilla::CursorShape cursor);
 | 
			
		||||
	Scintilla::CursorShape MarginCursorN(int margin);
 | 
			
		||||
	void SetMarginBackN(int margin, Colour back);
 | 
			
		||||
	Colour MarginBackN(int margin);
 | 
			
		||||
	void SetMargins(int margins);
 | 
			
		||||
	int Margins();
 | 
			
		||||
	void StyleClearAll();
 | 
			
		||||
	void StyleSetFore(int style, Colour fore);
 | 
			
		||||
	void StyleSetBack(int style, Colour back);
 | 
			
		||||
	void StyleSetBold(int style, bool bold);
 | 
			
		||||
	void StyleSetItalic(int style, bool italic);
 | 
			
		||||
	void StyleSetSize(int style, int sizePoints);
 | 
			
		||||
	void StyleSetFont(int style, const char *fontName);
 | 
			
		||||
	void StyleSetEOLFilled(int style, bool eolFilled);
 | 
			
		||||
	void StyleResetDefault();
 | 
			
		||||
	void StyleSetUnderline(int style, bool underline);
 | 
			
		||||
	Colour StyleGetFore(int style);
 | 
			
		||||
	Colour StyleGetBack(int style);
 | 
			
		||||
	bool StyleGetBold(int style);
 | 
			
		||||
	bool StyleGetItalic(int style);
 | 
			
		||||
	int StyleGetSize(int style);
 | 
			
		||||
	int StyleGetFont(int style, char *fontName);
 | 
			
		||||
	std::string StyleGetFont(int style);
 | 
			
		||||
	bool StyleGetEOLFilled(int style);
 | 
			
		||||
	bool StyleGetUnderline(int style);
 | 
			
		||||
	Scintilla::CaseVisible StyleGetCase(int style);
 | 
			
		||||
	Scintilla::CharacterSet StyleGetCharacterSet(int style);
 | 
			
		||||
	bool StyleGetVisible(int style);
 | 
			
		||||
	bool StyleGetChangeable(int style);
 | 
			
		||||
	bool StyleGetHotSpot(int style);
 | 
			
		||||
	void StyleSetCase(int style, Scintilla::CaseVisible caseVisible);
 | 
			
		||||
	void StyleSetSizeFractional(int style, int sizeHundredthPoints);
 | 
			
		||||
	int StyleGetSizeFractional(int style);
 | 
			
		||||
	void StyleSetWeight(int style, Scintilla::FontWeight weight);
 | 
			
		||||
	Scintilla::FontWeight StyleGetWeight(int style);
 | 
			
		||||
	void StyleSetCharacterSet(int style, Scintilla::CharacterSet characterSet);
 | 
			
		||||
	void StyleSetHotSpot(int style, bool hotspot);
 | 
			
		||||
	void StyleSetCheckMonospaced(int style, bool checkMonospaced);
 | 
			
		||||
	bool StyleGetCheckMonospaced(int style);
 | 
			
		||||
	void StyleSetStretch(int style, Scintilla::FontStretch stretch);
 | 
			
		||||
	Scintilla::FontStretch StyleGetStretch(int style);
 | 
			
		||||
	void StyleSetInvisibleRepresentation(int style, const char *representation);
 | 
			
		||||
	int StyleGetInvisibleRepresentation(int style, char *representation);
 | 
			
		||||
	std::string StyleGetInvisibleRepresentation(int style);
 | 
			
		||||
	void SetElementColour(Scintilla::Element element, ColourAlpha colourElement);
 | 
			
		||||
	ColourAlpha ElementColour(Scintilla::Element element);
 | 
			
		||||
	void ResetElementColour(Scintilla::Element element);
 | 
			
		||||
	bool ElementIsSet(Scintilla::Element element);
 | 
			
		||||
	bool ElementAllowsTranslucent(Scintilla::Element element);
 | 
			
		||||
	ColourAlpha ElementBaseColour(Scintilla::Element element);
 | 
			
		||||
	void SetSelFore(bool useSetting, Colour fore);
 | 
			
		||||
	void SetSelBack(bool useSetting, Colour back);
 | 
			
		||||
	Scintilla::Alpha SelAlpha();
 | 
			
		||||
	void SetSelAlpha(Scintilla::Alpha alpha);
 | 
			
		||||
	bool SelEOLFilled();
 | 
			
		||||
	void SetSelEOLFilled(bool filled);
 | 
			
		||||
	Scintilla::Layer SelectionLayer();
 | 
			
		||||
	void SetSelectionLayer(Scintilla::Layer layer);
 | 
			
		||||
	Scintilla::Layer CaretLineLayer();
 | 
			
		||||
	void SetCaretLineLayer(Scintilla::Layer layer);
 | 
			
		||||
	bool CaretLineHighlightSubLine();
 | 
			
		||||
	void SetCaretLineHighlightSubLine(bool subLine);
 | 
			
		||||
	void SetCaretFore(Colour fore);
 | 
			
		||||
	void AssignCmdKey(int keyDefinition, int sciCommand);
 | 
			
		||||
	void ClearCmdKey(int keyDefinition);
 | 
			
		||||
	void ClearAllCmdKeys();
 | 
			
		||||
	void SetStylingEx(Position length, const char *styles);
 | 
			
		||||
	void StyleSetVisible(int style, bool visible);
 | 
			
		||||
	int CaretPeriod();
 | 
			
		||||
	void SetCaretPeriod(int periodMilliseconds);
 | 
			
		||||
	void SetWordChars(const char *characters);
 | 
			
		||||
	int WordChars(char *characters);
 | 
			
		||||
	std::string WordChars();
 | 
			
		||||
	void SetCharacterCategoryOptimization(int countCharacters);
 | 
			
		||||
	int CharacterCategoryOptimization();
 | 
			
		||||
	void BeginUndoAction();
 | 
			
		||||
	void EndUndoAction();
 | 
			
		||||
	int UndoSequence();
 | 
			
		||||
	int UndoActions();
 | 
			
		||||
	void SetUndoSavePoint(int action);
 | 
			
		||||
	int UndoSavePoint();
 | 
			
		||||
	void SetUndoDetach(int action);
 | 
			
		||||
	int UndoDetach();
 | 
			
		||||
	void SetUndoTentative(int action);
 | 
			
		||||
	int UndoTentative();
 | 
			
		||||
	void SetUndoCurrent(int action);
 | 
			
		||||
	int UndoCurrent();
 | 
			
		||||
	void PushUndoActionType(int type, Position pos);
 | 
			
		||||
	void ChangeLastUndoActionText(Position length, const char *text);
 | 
			
		||||
	int UndoActionType(int action);
 | 
			
		||||
	Position UndoActionPosition(int action);
 | 
			
		||||
	int UndoActionText(int action, char *text);
 | 
			
		||||
	std::string UndoActionText(int action);
 | 
			
		||||
	void IndicSetStyle(int indicator, Scintilla::IndicatorStyle indicatorStyle);
 | 
			
		||||
	Scintilla::IndicatorStyle IndicGetStyle(int indicator);
 | 
			
		||||
	void IndicSetFore(int indicator, Colour fore);
 | 
			
		||||
	Colour IndicGetFore(int indicator);
 | 
			
		||||
	void IndicSetUnder(int indicator, bool under);
 | 
			
		||||
	bool IndicGetUnder(int indicator);
 | 
			
		||||
	void IndicSetHoverStyle(int indicator, Scintilla::IndicatorStyle indicatorStyle);
 | 
			
		||||
	Scintilla::IndicatorStyle IndicGetHoverStyle(int indicator);
 | 
			
		||||
	void IndicSetHoverFore(int indicator, Colour fore);
 | 
			
		||||
	Colour IndicGetHoverFore(int indicator);
 | 
			
		||||
	void IndicSetFlags(int indicator, Scintilla::IndicFlag flags);
 | 
			
		||||
	Scintilla::IndicFlag IndicGetFlags(int indicator);
 | 
			
		||||
	void IndicSetStrokeWidth(int indicator, int hundredths);
 | 
			
		||||
	int IndicGetStrokeWidth(int indicator);
 | 
			
		||||
	void SetWhitespaceFore(bool useSetting, Colour fore);
 | 
			
		||||
	void SetWhitespaceBack(bool useSetting, Colour back);
 | 
			
		||||
	void SetWhitespaceSize(int size);
 | 
			
		||||
	int WhitespaceSize();
 | 
			
		||||
	void SetLineState(Line line, int state);
 | 
			
		||||
	int LineState(Line line);
 | 
			
		||||
	int MaxLineState();
 | 
			
		||||
	bool CaretLineVisible();
 | 
			
		||||
	void SetCaretLineVisible(bool show);
 | 
			
		||||
	Colour CaretLineBack();
 | 
			
		||||
	void SetCaretLineBack(Colour back);
 | 
			
		||||
	int CaretLineFrame();
 | 
			
		||||
	void SetCaretLineFrame(int width);
 | 
			
		||||
	void StyleSetChangeable(int style, bool changeable);
 | 
			
		||||
	void AutoCShow(Position lengthEntered, const char *itemList);
 | 
			
		||||
	void AutoCCancel();
 | 
			
		||||
	bool AutoCActive();
 | 
			
		||||
	Position AutoCPosStart();
 | 
			
		||||
	void AutoCComplete();
 | 
			
		||||
	void AutoCStops(const char *characterSet);
 | 
			
		||||
	void AutoCSetSeparator(int separatorCharacter);
 | 
			
		||||
	int AutoCGetSeparator();
 | 
			
		||||
	void AutoCSelect(const char *select);
 | 
			
		||||
	void AutoCSetCancelAtStart(bool cancel);
 | 
			
		||||
	bool AutoCGetCancelAtStart();
 | 
			
		||||
	void AutoCSetFillUps(const char *characterSet);
 | 
			
		||||
	void AutoCSetChooseSingle(bool chooseSingle);
 | 
			
		||||
	bool AutoCGetChooseSingle();
 | 
			
		||||
	void AutoCSetIgnoreCase(bool ignoreCase);
 | 
			
		||||
	bool AutoCGetIgnoreCase();
 | 
			
		||||
	void UserListShow(int listType, const char *itemList);
 | 
			
		||||
	void AutoCSetAutoHide(bool autoHide);
 | 
			
		||||
	bool AutoCGetAutoHide();
 | 
			
		||||
	void AutoCSetOptions(Scintilla::AutoCompleteOption options);
 | 
			
		||||
	Scintilla::AutoCompleteOption AutoCGetOptions();
 | 
			
		||||
	void AutoCSetDropRestOfWord(bool dropRestOfWord);
 | 
			
		||||
	bool AutoCGetDropRestOfWord();
 | 
			
		||||
	void RegisterImage(int type, const char *xpmData);
 | 
			
		||||
	void ClearRegisteredImages();
 | 
			
		||||
	int AutoCGetTypeSeparator();
 | 
			
		||||
	void AutoCSetTypeSeparator(int separatorCharacter);
 | 
			
		||||
	void AutoCSetMaxWidth(int characterCount);
 | 
			
		||||
	int AutoCGetMaxWidth();
 | 
			
		||||
	void AutoCSetMaxHeight(int rowCount);
 | 
			
		||||
	int AutoCGetMaxHeight();
 | 
			
		||||
	void AutoCSetStyle(int style);
 | 
			
		||||
	int AutoCGetStyle();
 | 
			
		||||
	void SetIndent(int indentSize);
 | 
			
		||||
	int Indent();
 | 
			
		||||
	void SetUseTabs(bool useTabs);
 | 
			
		||||
	bool UseTabs();
 | 
			
		||||
	void SetLineIndentation(Line line, int indentation);
 | 
			
		||||
	int LineIndentation(Line line);
 | 
			
		||||
	Position LineIndentPosition(Line line);
 | 
			
		||||
	Position Column(Position pos);
 | 
			
		||||
	Position CountCharacters(Position start, Position end);
 | 
			
		||||
	Position CountCodeUnits(Position start, Position end);
 | 
			
		||||
	void SetHScrollBar(bool visible);
 | 
			
		||||
	bool HScrollBar();
 | 
			
		||||
	void SetIndentationGuides(Scintilla::IndentView indentView);
 | 
			
		||||
	Scintilla::IndentView IndentationGuides();
 | 
			
		||||
	void SetHighlightGuide(Position column);
 | 
			
		||||
	Position HighlightGuide();
 | 
			
		||||
	Position LineEndPosition(Line line);
 | 
			
		||||
	int CodePage();
 | 
			
		||||
	Colour CaretFore();
 | 
			
		||||
	bool ReadOnly();
 | 
			
		||||
	void SetCurrentPos(Position caret);
 | 
			
		||||
	void SetSelectionStart(Position anchor);
 | 
			
		||||
	Position SelectionStart();
 | 
			
		||||
	void SetSelectionEnd(Position caret);
 | 
			
		||||
	Position SelectionEnd();
 | 
			
		||||
	void SetEmptySelection(Position caret);
 | 
			
		||||
	void SetPrintMagnification(int magnification);
 | 
			
		||||
	int PrintMagnification();
 | 
			
		||||
	void SetPrintColourMode(Scintilla::PrintOption mode);
 | 
			
		||||
	Scintilla::PrintOption PrintColourMode();
 | 
			
		||||
	Position FindText(Scintilla::FindOption searchFlags, void *ft);
 | 
			
		||||
	Position FindTextFull(Scintilla::FindOption searchFlags, TextToFindFull *ft);
 | 
			
		||||
	Position FormatRange(bool draw, void *fr);
 | 
			
		||||
	Position FormatRangeFull(bool draw, RangeToFormatFull *fr);
 | 
			
		||||
	void SetChangeHistory(Scintilla::ChangeHistoryOption changeHistory);
 | 
			
		||||
	Scintilla::ChangeHistoryOption ChangeHistory();
 | 
			
		||||
	Line FirstVisibleLine();
 | 
			
		||||
	Position GetLine(Line line, char *text);
 | 
			
		||||
	std::string GetLine(Line line);
 | 
			
		||||
	Line LineCount();
 | 
			
		||||
	void AllocateLines(Line lines);
 | 
			
		||||
	void SetMarginLeft(int pixelWidth);
 | 
			
		||||
	int MarginLeft();
 | 
			
		||||
	void SetMarginRight(int pixelWidth);
 | 
			
		||||
	int MarginRight();
 | 
			
		||||
	bool Modify();
 | 
			
		||||
	void SetSel(Position anchor, Position caret);
 | 
			
		||||
	Position GetSelText(char *text);
 | 
			
		||||
	std::string GetSelText();
 | 
			
		||||
	Position GetTextRange(void *tr);
 | 
			
		||||
	Position GetTextRangeFull(TextRangeFull *tr);
 | 
			
		||||
	void HideSelection(bool hide);
 | 
			
		||||
	bool SelectionHidden();
 | 
			
		||||
	int PointXFromPosition(Position pos);
 | 
			
		||||
	int PointYFromPosition(Position pos);
 | 
			
		||||
	Line LineFromPosition(Position pos);
 | 
			
		||||
	Position PositionFromLine(Line line);
 | 
			
		||||
	void LineScroll(Position columns, Line lines);
 | 
			
		||||
	void ScrollCaret();
 | 
			
		||||
	void ScrollRange(Position secondary, Position primary);
 | 
			
		||||
	void ReplaceSel(const char *text);
 | 
			
		||||
	void SetReadOnly(bool readOnly);
 | 
			
		||||
	void Null();
 | 
			
		||||
	bool CanPaste();
 | 
			
		||||
	bool CanUndo();
 | 
			
		||||
	void EmptyUndoBuffer();
 | 
			
		||||
	void Undo();
 | 
			
		||||
	void Cut();
 | 
			
		||||
	void Copy();
 | 
			
		||||
	void Paste();
 | 
			
		||||
	void Clear();
 | 
			
		||||
	void SetText(const char *text);
 | 
			
		||||
	Position GetText(Position length, char *text);
 | 
			
		||||
	std::string GetText(Position length);
 | 
			
		||||
	Position TextLength();
 | 
			
		||||
	void *DirectFunction();
 | 
			
		||||
	void *DirectStatusFunction();
 | 
			
		||||
	void *DirectPointer();
 | 
			
		||||
	void SetOvertype(bool overType);
 | 
			
		||||
	bool Overtype();
 | 
			
		||||
	void SetCaretWidth(int pixelWidth);
 | 
			
		||||
	int CaretWidth();
 | 
			
		||||
	void SetTargetStart(Position start);
 | 
			
		||||
	Position TargetStart();
 | 
			
		||||
	void SetTargetStartVirtualSpace(Position space);
 | 
			
		||||
	Position TargetStartVirtualSpace();
 | 
			
		||||
	void SetTargetEnd(Position end);
 | 
			
		||||
	Position TargetEnd();
 | 
			
		||||
	void SetTargetEndVirtualSpace(Position space);
 | 
			
		||||
	Position TargetEndVirtualSpace();
 | 
			
		||||
	void SetTargetRange(Position start, Position end);
 | 
			
		||||
	Position TargetText(char *text);
 | 
			
		||||
	std::string TargetText();
 | 
			
		||||
	void TargetFromSelection();
 | 
			
		||||
	void TargetWholeDocument();
 | 
			
		||||
	Position ReplaceTarget(Position length, const char *text);
 | 
			
		||||
	Position ReplaceTargetRE(Position length, const char *text);
 | 
			
		||||
	Position ReplaceTargetMinimal(Position length, const char *text);
 | 
			
		||||
	Position SearchInTarget(Position length, const char *text);
 | 
			
		||||
	void SetSearchFlags(Scintilla::FindOption searchFlags);
 | 
			
		||||
	Scintilla::FindOption SearchFlags();
 | 
			
		||||
	void CallTipShow(Position pos, const char *definition);
 | 
			
		||||
	void CallTipCancel();
 | 
			
		||||
	bool CallTipActive();
 | 
			
		||||
	Position CallTipPosStart();
 | 
			
		||||
	void CallTipSetPosStart(Position posStart);
 | 
			
		||||
	void CallTipSetHlt(Position highlightStart, Position highlightEnd);
 | 
			
		||||
	void CallTipSetBack(Colour back);
 | 
			
		||||
	void CallTipSetFore(Colour fore);
 | 
			
		||||
	void CallTipSetForeHlt(Colour fore);
 | 
			
		||||
	void CallTipUseStyle(int tabSize);
 | 
			
		||||
	void CallTipSetPosition(bool above);
 | 
			
		||||
	Line VisibleFromDocLine(Line docLine);
 | 
			
		||||
	Line DocLineFromVisible(Line displayLine);
 | 
			
		||||
	Line WrapCount(Line docLine);
 | 
			
		||||
	void SetFoldLevel(Line line, Scintilla::FoldLevel level);
 | 
			
		||||
	Scintilla::FoldLevel FoldLevel(Line line);
 | 
			
		||||
	Line LastChild(Line line, Scintilla::FoldLevel level);
 | 
			
		||||
	Line FoldParent(Line line);
 | 
			
		||||
	void ShowLines(Line lineStart, Line lineEnd);
 | 
			
		||||
	void HideLines(Line lineStart, Line lineEnd);
 | 
			
		||||
	bool LineVisible(Line line);
 | 
			
		||||
	bool AllLinesVisible();
 | 
			
		||||
	void SetFoldExpanded(Line line, bool expanded);
 | 
			
		||||
	bool FoldExpanded(Line line);
 | 
			
		||||
	void ToggleFold(Line line);
 | 
			
		||||
	void ToggleFoldShowText(Line line, const char *text);
 | 
			
		||||
	void FoldDisplayTextSetStyle(Scintilla::FoldDisplayTextStyle style);
 | 
			
		||||
	Scintilla::FoldDisplayTextStyle FoldDisplayTextGetStyle();
 | 
			
		||||
	void SetDefaultFoldDisplayText(const char *text);
 | 
			
		||||
	int GetDefaultFoldDisplayText(char *text);
 | 
			
		||||
	std::string GetDefaultFoldDisplayText();
 | 
			
		||||
	void FoldLine(Line line, Scintilla::FoldAction action);
 | 
			
		||||
	void FoldChildren(Line line, Scintilla::FoldAction action);
 | 
			
		||||
	void ExpandChildren(Line line, Scintilla::FoldLevel level);
 | 
			
		||||
	void FoldAll(Scintilla::FoldAction action);
 | 
			
		||||
	void EnsureVisible(Line line);
 | 
			
		||||
	void SetAutomaticFold(Scintilla::AutomaticFold automaticFold);
 | 
			
		||||
	Scintilla::AutomaticFold AutomaticFold();
 | 
			
		||||
	void SetFoldFlags(Scintilla::FoldFlag flags);
 | 
			
		||||
	void EnsureVisibleEnforcePolicy(Line line);
 | 
			
		||||
	void SetTabIndents(bool tabIndents);
 | 
			
		||||
	bool TabIndents();
 | 
			
		||||
	void SetBackSpaceUnIndents(bool bsUnIndents);
 | 
			
		||||
	bool BackSpaceUnIndents();
 | 
			
		||||
	void SetMouseDwellTime(int periodMilliseconds);
 | 
			
		||||
	int MouseDwellTime();
 | 
			
		||||
	Position WordStartPosition(Position pos, bool onlyWordCharacters);
 | 
			
		||||
	Position WordEndPosition(Position pos, bool onlyWordCharacters);
 | 
			
		||||
	bool IsRangeWord(Position start, Position end);
 | 
			
		||||
	void SetIdleStyling(Scintilla::IdleStyling idleStyling);
 | 
			
		||||
	Scintilla::IdleStyling IdleStyling();
 | 
			
		||||
	void SetWrapMode(Scintilla::Wrap wrapMode);
 | 
			
		||||
	Scintilla::Wrap WrapMode();
 | 
			
		||||
	void SetWrapVisualFlags(Scintilla::WrapVisualFlag wrapVisualFlags);
 | 
			
		||||
	Scintilla::WrapVisualFlag WrapVisualFlags();
 | 
			
		||||
	void SetWrapVisualFlagsLocation(Scintilla::WrapVisualLocation wrapVisualFlagsLocation);
 | 
			
		||||
	Scintilla::WrapVisualLocation WrapVisualFlagsLocation();
 | 
			
		||||
	void SetWrapStartIndent(int indent);
 | 
			
		||||
	int WrapStartIndent();
 | 
			
		||||
	void SetWrapIndentMode(Scintilla::WrapIndentMode wrapIndentMode);
 | 
			
		||||
	Scintilla::WrapIndentMode WrapIndentMode();
 | 
			
		||||
	void SetLayoutCache(Scintilla::LineCache cacheMode);
 | 
			
		||||
	Scintilla::LineCache LayoutCache();
 | 
			
		||||
	void SetScrollWidth(int pixelWidth);
 | 
			
		||||
	int ScrollWidth();
 | 
			
		||||
	void SetScrollWidthTracking(bool tracking);
 | 
			
		||||
	bool ScrollWidthTracking();
 | 
			
		||||
	int TextWidth(int style, const char *text);
 | 
			
		||||
	void SetEndAtLastLine(bool endAtLastLine);
 | 
			
		||||
	bool EndAtLastLine();
 | 
			
		||||
	int TextHeight(Line line);
 | 
			
		||||
	void SetVScrollBar(bool visible);
 | 
			
		||||
	bool VScrollBar();
 | 
			
		||||
	void AppendText(Position length, const char *text);
 | 
			
		||||
	Scintilla::PhasesDraw PhasesDraw();
 | 
			
		||||
	void SetPhasesDraw(Scintilla::PhasesDraw phases);
 | 
			
		||||
	void SetFontQuality(Scintilla::FontQuality fontQuality);
 | 
			
		||||
	Scintilla::FontQuality FontQuality();
 | 
			
		||||
	void SetFirstVisibleLine(Line displayLine);
 | 
			
		||||
	void SetMultiPaste(Scintilla::MultiPaste multiPaste);
 | 
			
		||||
	Scintilla::MultiPaste MultiPaste();
 | 
			
		||||
	int Tag(int tagNumber, char *tagValue);
 | 
			
		||||
	std::string Tag(int tagNumber);
 | 
			
		||||
	void LinesJoin();
 | 
			
		||||
	void LinesSplit(int pixelWidth);
 | 
			
		||||
	void SetFoldMarginColour(bool useSetting, Colour back);
 | 
			
		||||
	void SetFoldMarginHiColour(bool useSetting, Colour fore);
 | 
			
		||||
	void SetAccessibility(Scintilla::Accessibility accessibility);
 | 
			
		||||
	Scintilla::Accessibility Accessibility();
 | 
			
		||||
	void LineDown();
 | 
			
		||||
	void LineDownExtend();
 | 
			
		||||
	void LineUp();
 | 
			
		||||
	void LineUpExtend();
 | 
			
		||||
	void CharLeft();
 | 
			
		||||
	void CharLeftExtend();
 | 
			
		||||
	void CharRight();
 | 
			
		||||
	void CharRightExtend();
 | 
			
		||||
	void WordLeft();
 | 
			
		||||
	void WordLeftExtend();
 | 
			
		||||
	void WordRight();
 | 
			
		||||
	void WordRightExtend();
 | 
			
		||||
	void Home();
 | 
			
		||||
	void HomeExtend();
 | 
			
		||||
	void LineEnd();
 | 
			
		||||
	void LineEndExtend();
 | 
			
		||||
	void DocumentStart();
 | 
			
		||||
	void DocumentStartExtend();
 | 
			
		||||
	void DocumentEnd();
 | 
			
		||||
	void DocumentEndExtend();
 | 
			
		||||
	void PageUp();
 | 
			
		||||
	void PageUpExtend();
 | 
			
		||||
	void PageDown();
 | 
			
		||||
	void PageDownExtend();
 | 
			
		||||
	void EditToggleOvertype();
 | 
			
		||||
	void Cancel();
 | 
			
		||||
	void DeleteBack();
 | 
			
		||||
	void Tab();
 | 
			
		||||
	void LineIndent();
 | 
			
		||||
	void BackTab();
 | 
			
		||||
	void LineDedent();
 | 
			
		||||
	void NewLine();
 | 
			
		||||
	void FormFeed();
 | 
			
		||||
	void VCHome();
 | 
			
		||||
	void VCHomeExtend();
 | 
			
		||||
	void ZoomIn();
 | 
			
		||||
	void ZoomOut();
 | 
			
		||||
	void DelWordLeft();
 | 
			
		||||
	void DelWordRight();
 | 
			
		||||
	void DelWordRightEnd();
 | 
			
		||||
	void LineCut();
 | 
			
		||||
	void LineDelete();
 | 
			
		||||
	void LineTranspose();
 | 
			
		||||
	void LineReverse();
 | 
			
		||||
	void LineDuplicate();
 | 
			
		||||
	void LowerCase();
 | 
			
		||||
	void UpperCase();
 | 
			
		||||
	void LineScrollDown();
 | 
			
		||||
	void LineScrollUp();
 | 
			
		||||
	void DeleteBackNotLine();
 | 
			
		||||
	void HomeDisplay();
 | 
			
		||||
	void HomeDisplayExtend();
 | 
			
		||||
	void LineEndDisplay();
 | 
			
		||||
	void LineEndDisplayExtend();
 | 
			
		||||
	void HomeWrap();
 | 
			
		||||
	void HomeWrapExtend();
 | 
			
		||||
	void LineEndWrap();
 | 
			
		||||
	void LineEndWrapExtend();
 | 
			
		||||
	void VCHomeWrap();
 | 
			
		||||
	void VCHomeWrapExtend();
 | 
			
		||||
	void LineCopy();
 | 
			
		||||
	void MoveCaretInsideView();
 | 
			
		||||
	Position LineLength(Line line);
 | 
			
		||||
	void BraceHighlight(Position posA, Position posB);
 | 
			
		||||
	void BraceHighlightIndicator(bool useSetting, int indicator);
 | 
			
		||||
	void BraceBadLight(Position pos);
 | 
			
		||||
	void BraceBadLightIndicator(bool useSetting, int indicator);
 | 
			
		||||
	Position BraceMatch(Position pos, int maxReStyle);
 | 
			
		||||
	Position BraceMatchNext(Position pos, Position startPos);
 | 
			
		||||
	bool ViewEOL();
 | 
			
		||||
	void SetViewEOL(bool visible);
 | 
			
		||||
	IDocumentEditable *DocPointer();
 | 
			
		||||
	void SetDocPointer(IDocumentEditable *doc);
 | 
			
		||||
	void SetModEventMask(Scintilla::ModificationFlags eventMask);
 | 
			
		||||
	Position EdgeColumn();
 | 
			
		||||
	void SetEdgeColumn(Position column);
 | 
			
		||||
	Scintilla::EdgeVisualStyle EdgeMode();
 | 
			
		||||
	void SetEdgeMode(Scintilla::EdgeVisualStyle edgeMode);
 | 
			
		||||
	Colour EdgeColour();
 | 
			
		||||
	void SetEdgeColour(Colour edgeColour);
 | 
			
		||||
	void MultiEdgeAddLine(Position column, Colour edgeColour);
 | 
			
		||||
	void MultiEdgeClearAll();
 | 
			
		||||
	Position MultiEdgeColumn(int which);
 | 
			
		||||
	void SearchAnchor();
 | 
			
		||||
	Position SearchNext(Scintilla::FindOption searchFlags, const char *text);
 | 
			
		||||
	Position SearchPrev(Scintilla::FindOption searchFlags, const char *text);
 | 
			
		||||
	Line LinesOnScreen();
 | 
			
		||||
	void UsePopUp(Scintilla::PopUp popUpMode);
 | 
			
		||||
	bool SelectionIsRectangle();
 | 
			
		||||
	void SetZoom(int zoomInPoints);
 | 
			
		||||
	int Zoom();
 | 
			
		||||
	IDocumentEditable *CreateDocument(Position bytes, Scintilla::DocumentOption documentOptions);
 | 
			
		||||
	void AddRefDocument(IDocumentEditable *doc);
 | 
			
		||||
	void ReleaseDocument(IDocumentEditable *doc);
 | 
			
		||||
	Scintilla::DocumentOption DocumentOptions();
 | 
			
		||||
	Scintilla::ModificationFlags ModEventMask();
 | 
			
		||||
	void SetCommandEvents(bool commandEvents);
 | 
			
		||||
	bool CommandEvents();
 | 
			
		||||
	void SetFocus(bool focus);
 | 
			
		||||
	bool Focus();
 | 
			
		||||
	void SetStatus(Scintilla::Status status);
 | 
			
		||||
	Scintilla::Status Status();
 | 
			
		||||
	void SetMouseDownCaptures(bool captures);
 | 
			
		||||
	bool MouseDownCaptures();
 | 
			
		||||
	void SetMouseWheelCaptures(bool captures);
 | 
			
		||||
	bool MouseWheelCaptures();
 | 
			
		||||
	void SetCursor(Scintilla::CursorShape cursorType);
 | 
			
		||||
	Scintilla::CursorShape Cursor();
 | 
			
		||||
	void SetControlCharSymbol(int symbol);
 | 
			
		||||
	int ControlCharSymbol();
 | 
			
		||||
	void WordPartLeft();
 | 
			
		||||
	void WordPartLeftExtend();
 | 
			
		||||
	void WordPartRight();
 | 
			
		||||
	void WordPartRightExtend();
 | 
			
		||||
	void SetVisiblePolicy(Scintilla::VisiblePolicy visiblePolicy, int visibleSlop);
 | 
			
		||||
	void DelLineLeft();
 | 
			
		||||
	void DelLineRight();
 | 
			
		||||
	void SetXOffset(int xOffset);
 | 
			
		||||
	int XOffset();
 | 
			
		||||
	void ChooseCaretX();
 | 
			
		||||
	void GrabFocus();
 | 
			
		||||
	void SetXCaretPolicy(Scintilla::CaretPolicy caretPolicy, int caretSlop);
 | 
			
		||||
	void SetYCaretPolicy(Scintilla::CaretPolicy caretPolicy, int caretSlop);
 | 
			
		||||
	void SetPrintWrapMode(Scintilla::Wrap wrapMode);
 | 
			
		||||
	Scintilla::Wrap PrintWrapMode();
 | 
			
		||||
	void SetHotspotActiveFore(bool useSetting, Colour fore);
 | 
			
		||||
	Colour HotspotActiveFore();
 | 
			
		||||
	void SetHotspotActiveBack(bool useSetting, Colour back);
 | 
			
		||||
	Colour HotspotActiveBack();
 | 
			
		||||
	void SetHotspotActiveUnderline(bool underline);
 | 
			
		||||
	bool HotspotActiveUnderline();
 | 
			
		||||
	void SetHotspotSingleLine(bool singleLine);
 | 
			
		||||
	bool HotspotSingleLine();
 | 
			
		||||
	void ParaDown();
 | 
			
		||||
	void ParaDownExtend();
 | 
			
		||||
	void ParaUp();
 | 
			
		||||
	void ParaUpExtend();
 | 
			
		||||
	Position PositionBefore(Position pos);
 | 
			
		||||
	Position PositionAfter(Position pos);
 | 
			
		||||
	Position PositionRelative(Position pos, Position relative);
 | 
			
		||||
	Position PositionRelativeCodeUnits(Position pos, Position relative);
 | 
			
		||||
	void CopyRange(Position start, Position end);
 | 
			
		||||
	void CopyText(Position length, const char *text);
 | 
			
		||||
	void SetSelectionMode(Scintilla::SelectionMode selectionMode);
 | 
			
		||||
	void ChangeSelectionMode(Scintilla::SelectionMode selectionMode);
 | 
			
		||||
	Scintilla::SelectionMode SelectionMode();
 | 
			
		||||
	void SetMoveExtendsSelection(bool moveExtendsSelection);
 | 
			
		||||
	bool MoveExtendsSelection();
 | 
			
		||||
	Position GetLineSelStartPosition(Line line);
 | 
			
		||||
	Position GetLineSelEndPosition(Line line);
 | 
			
		||||
	void LineDownRectExtend();
 | 
			
		||||
	void LineUpRectExtend();
 | 
			
		||||
	void CharLeftRectExtend();
 | 
			
		||||
	void CharRightRectExtend();
 | 
			
		||||
	void HomeRectExtend();
 | 
			
		||||
	void VCHomeRectExtend();
 | 
			
		||||
	void LineEndRectExtend();
 | 
			
		||||
	void PageUpRectExtend();
 | 
			
		||||
	void PageDownRectExtend();
 | 
			
		||||
	void StutteredPageUp();
 | 
			
		||||
	void StutteredPageUpExtend();
 | 
			
		||||
	void StutteredPageDown();
 | 
			
		||||
	void StutteredPageDownExtend();
 | 
			
		||||
	void WordLeftEnd();
 | 
			
		||||
	void WordLeftEndExtend();
 | 
			
		||||
	void WordRightEnd();
 | 
			
		||||
	void WordRightEndExtend();
 | 
			
		||||
	void SetWhitespaceChars(const char *characters);
 | 
			
		||||
	int WhitespaceChars(char *characters);
 | 
			
		||||
	std::string WhitespaceChars();
 | 
			
		||||
	void SetPunctuationChars(const char *characters);
 | 
			
		||||
	int PunctuationChars(char *characters);
 | 
			
		||||
	std::string PunctuationChars();
 | 
			
		||||
	void SetCharsDefault();
 | 
			
		||||
	int AutoCGetCurrent();
 | 
			
		||||
	int AutoCGetCurrentText(char *text);
 | 
			
		||||
	std::string AutoCGetCurrentText();
 | 
			
		||||
	void AutoCSetCaseInsensitiveBehaviour(Scintilla::CaseInsensitiveBehaviour behaviour);
 | 
			
		||||
	Scintilla::CaseInsensitiveBehaviour AutoCGetCaseInsensitiveBehaviour();
 | 
			
		||||
	void AutoCSetMulti(Scintilla::MultiAutoComplete multi);
 | 
			
		||||
	Scintilla::MultiAutoComplete AutoCGetMulti();
 | 
			
		||||
	void AutoCSetOrder(Scintilla::Ordering order);
 | 
			
		||||
	Scintilla::Ordering AutoCGetOrder();
 | 
			
		||||
	void Allocate(Position bytes);
 | 
			
		||||
	Position TargetAsUTF8(char *s);
 | 
			
		||||
	std::string TargetAsUTF8();
 | 
			
		||||
	void SetLengthForEncode(Position bytes);
 | 
			
		||||
	Position EncodedFromUTF8(const char *utf8, char *encoded);
 | 
			
		||||
	std::string EncodedFromUTF8(const char *utf8);
 | 
			
		||||
	Position FindColumn(Line line, Position column);
 | 
			
		||||
	Scintilla::CaretSticky CaretSticky();
 | 
			
		||||
	void SetCaretSticky(Scintilla::CaretSticky useCaretStickyBehaviour);
 | 
			
		||||
	void ToggleCaretSticky();
 | 
			
		||||
	void SetPasteConvertEndings(bool convert);
 | 
			
		||||
	bool PasteConvertEndings();
 | 
			
		||||
	void ReplaceRectangular(Position length, const char *text);
 | 
			
		||||
	void SelectionDuplicate();
 | 
			
		||||
	void SetCaretLineBackAlpha(Scintilla::Alpha alpha);
 | 
			
		||||
	Scintilla::Alpha CaretLineBackAlpha();
 | 
			
		||||
	void SetCaretStyle(Scintilla::CaretStyle caretStyle);
 | 
			
		||||
	Scintilla::CaretStyle CaretStyle();
 | 
			
		||||
	void SetIndicatorCurrent(int indicator);
 | 
			
		||||
	int IndicatorCurrent();
 | 
			
		||||
	void SetIndicatorValue(int value);
 | 
			
		||||
	int IndicatorValue();
 | 
			
		||||
	void IndicatorFillRange(Position start, Position lengthFill);
 | 
			
		||||
	void IndicatorClearRange(Position start, Position lengthClear);
 | 
			
		||||
	int IndicatorAllOnFor(Position pos);
 | 
			
		||||
	int IndicatorValueAt(int indicator, Position pos);
 | 
			
		||||
	Position IndicatorStart(int indicator, Position pos);
 | 
			
		||||
	Position IndicatorEnd(int indicator, Position pos);
 | 
			
		||||
	void SetPositionCache(int size);
 | 
			
		||||
	int PositionCache();
 | 
			
		||||
	void SetLayoutThreads(int threads);
 | 
			
		||||
	int LayoutThreads();
 | 
			
		||||
	void CopyAllowLine();
 | 
			
		||||
	void CutAllowLine();
 | 
			
		||||
	void SetCopySeparator(const char *separator);
 | 
			
		||||
	int CopySeparator(char *separator);
 | 
			
		||||
	std::string CopySeparator();
 | 
			
		||||
	void *CharacterPointer();
 | 
			
		||||
	void *RangePointer(Position start, Position lengthRange);
 | 
			
		||||
	Position GapPosition();
 | 
			
		||||
	void IndicSetAlpha(int indicator, Scintilla::Alpha alpha);
 | 
			
		||||
	Scintilla::Alpha IndicGetAlpha(int indicator);
 | 
			
		||||
	void IndicSetOutlineAlpha(int indicator, Scintilla::Alpha alpha);
 | 
			
		||||
	Scintilla::Alpha IndicGetOutlineAlpha(int indicator);
 | 
			
		||||
	void SetExtraAscent(int extraAscent);
 | 
			
		||||
	int ExtraAscent();
 | 
			
		||||
	void SetExtraDescent(int extraDescent);
 | 
			
		||||
	int ExtraDescent();
 | 
			
		||||
	int MarkerSymbolDefined(int markerNumber);
 | 
			
		||||
	void MarginSetText(Line line, const char *text);
 | 
			
		||||
	int MarginGetText(Line line, char *text);
 | 
			
		||||
	std::string MarginGetText(Line line);
 | 
			
		||||
	void MarginSetStyle(Line line, int style);
 | 
			
		||||
	int MarginGetStyle(Line line);
 | 
			
		||||
	void MarginSetStyles(Line line, const char *styles);
 | 
			
		||||
	int MarginGetStyles(Line line, char *styles);
 | 
			
		||||
	std::string MarginGetStyles(Line line);
 | 
			
		||||
	void MarginTextClearAll();
 | 
			
		||||
	void MarginSetStyleOffset(int style);
 | 
			
		||||
	int MarginGetStyleOffset();
 | 
			
		||||
	void SetMarginOptions(Scintilla::MarginOption marginOptions);
 | 
			
		||||
	Scintilla::MarginOption MarginOptions();
 | 
			
		||||
	void AnnotationSetText(Line line, const char *text);
 | 
			
		||||
	int AnnotationGetText(Line line, char *text);
 | 
			
		||||
	std::string AnnotationGetText(Line line);
 | 
			
		||||
	void AnnotationSetStyle(Line line, int style);
 | 
			
		||||
	int AnnotationGetStyle(Line line);
 | 
			
		||||
	void AnnotationSetStyles(Line line, const char *styles);
 | 
			
		||||
	int AnnotationGetStyles(Line line, char *styles);
 | 
			
		||||
	std::string AnnotationGetStyles(Line line);
 | 
			
		||||
	int AnnotationGetLines(Line line);
 | 
			
		||||
	void AnnotationClearAll();
 | 
			
		||||
	void AnnotationSetVisible(Scintilla::AnnotationVisible visible);
 | 
			
		||||
	Scintilla::AnnotationVisible AnnotationGetVisible();
 | 
			
		||||
	void AnnotationSetStyleOffset(int style);
 | 
			
		||||
	int AnnotationGetStyleOffset();
 | 
			
		||||
	void ReleaseAllExtendedStyles();
 | 
			
		||||
	int AllocateExtendedStyles(int numberStyles);
 | 
			
		||||
	void AddUndoAction(int token, Scintilla::UndoFlags flags);
 | 
			
		||||
	Position CharPositionFromPoint(int x, int y);
 | 
			
		||||
	Position CharPositionFromPointClose(int x, int y);
 | 
			
		||||
	void SetMouseSelectionRectangularSwitch(bool mouseSelectionRectangularSwitch);
 | 
			
		||||
	bool MouseSelectionRectangularSwitch();
 | 
			
		||||
	void SetMultipleSelection(bool multipleSelection);
 | 
			
		||||
	bool MultipleSelection();
 | 
			
		||||
	void SetAdditionalSelectionTyping(bool additionalSelectionTyping);
 | 
			
		||||
	bool AdditionalSelectionTyping();
 | 
			
		||||
	void SetAdditionalCaretsBlink(bool additionalCaretsBlink);
 | 
			
		||||
	bool AdditionalCaretsBlink();
 | 
			
		||||
	void SetAdditionalCaretsVisible(bool additionalCaretsVisible);
 | 
			
		||||
	bool AdditionalCaretsVisible();
 | 
			
		||||
	int Selections();
 | 
			
		||||
	bool SelectionEmpty();
 | 
			
		||||
	void ClearSelections();
 | 
			
		||||
	void SetSelection(Position caret, Position anchor);
 | 
			
		||||
	void AddSelection(Position caret, Position anchor);
 | 
			
		||||
	int SelectionFromPoint(int x, int y);
 | 
			
		||||
	void DropSelectionN(int selection);
 | 
			
		||||
	void SetMainSelection(int selection);
 | 
			
		||||
	int MainSelection();
 | 
			
		||||
	void SetSelectionNCaret(int selection, Position caret);
 | 
			
		||||
	Position SelectionNCaret(int selection);
 | 
			
		||||
	void SetSelectionNAnchor(int selection, Position anchor);
 | 
			
		||||
	Position SelectionNAnchor(int selection);
 | 
			
		||||
	void SetSelectionNCaretVirtualSpace(int selection, Position space);
 | 
			
		||||
	Position SelectionNCaretVirtualSpace(int selection);
 | 
			
		||||
	void SetSelectionNAnchorVirtualSpace(int selection, Position space);
 | 
			
		||||
	Position SelectionNAnchorVirtualSpace(int selection);
 | 
			
		||||
	void SetSelectionNStart(int selection, Position anchor);
 | 
			
		||||
	Position SelectionNStart(int selection);
 | 
			
		||||
	Position SelectionNStartVirtualSpace(int selection);
 | 
			
		||||
	void SetSelectionNEnd(int selection, Position caret);
 | 
			
		||||
	Position SelectionNEndVirtualSpace(int selection);
 | 
			
		||||
	Position SelectionNEnd(int selection);
 | 
			
		||||
	void SetRectangularSelectionCaret(Position caret);
 | 
			
		||||
	Position RectangularSelectionCaret();
 | 
			
		||||
	void SetRectangularSelectionAnchor(Position anchor);
 | 
			
		||||
	Position RectangularSelectionAnchor();
 | 
			
		||||
	void SetRectangularSelectionCaretVirtualSpace(Position space);
 | 
			
		||||
	Position RectangularSelectionCaretVirtualSpace();
 | 
			
		||||
	void SetRectangularSelectionAnchorVirtualSpace(Position space);
 | 
			
		||||
	Position RectangularSelectionAnchorVirtualSpace();
 | 
			
		||||
	void SetVirtualSpaceOptions(Scintilla::VirtualSpace virtualSpaceOptions);
 | 
			
		||||
	Scintilla::VirtualSpace VirtualSpaceOptions();
 | 
			
		||||
	void SetRectangularSelectionModifier(int modifier);
 | 
			
		||||
	int RectangularSelectionModifier();
 | 
			
		||||
	void SetAdditionalSelFore(Colour fore);
 | 
			
		||||
	void SetAdditionalSelBack(Colour back);
 | 
			
		||||
	void SetAdditionalSelAlpha(Scintilla::Alpha alpha);
 | 
			
		||||
	Scintilla::Alpha AdditionalSelAlpha();
 | 
			
		||||
	void SetAdditionalCaretFore(Colour fore);
 | 
			
		||||
	Colour AdditionalCaretFore();
 | 
			
		||||
	void RotateSelection();
 | 
			
		||||
	void SwapMainAnchorCaret();
 | 
			
		||||
	void MultipleSelectAddNext();
 | 
			
		||||
	void MultipleSelectAddEach();
 | 
			
		||||
	int ChangeLexerState(Position start, Position end);
 | 
			
		||||
	Line ContractedFoldNext(Line lineStart);
 | 
			
		||||
	void VerticalCentreCaret();
 | 
			
		||||
	void MoveSelectedLinesUp();
 | 
			
		||||
	void MoveSelectedLinesDown();
 | 
			
		||||
	void SetIdentifier(int identifier);
 | 
			
		||||
	int Identifier();
 | 
			
		||||
	void RGBAImageSetWidth(int width);
 | 
			
		||||
	void RGBAImageSetHeight(int height);
 | 
			
		||||
	void RGBAImageSetScale(int scalePercent);
 | 
			
		||||
	void MarkerDefineRGBAImage(int markerNumber, const char *pixels);
 | 
			
		||||
	void RegisterRGBAImage(int type, const char *pixels);
 | 
			
		||||
	void ScrollToStart();
 | 
			
		||||
	void ScrollToEnd();
 | 
			
		||||
	void SetTechnology(Scintilla::Technology technology);
 | 
			
		||||
	Scintilla::Technology Technology();
 | 
			
		||||
	void *CreateLoader(Position bytes, Scintilla::DocumentOption documentOptions);
 | 
			
		||||
	void FindIndicatorShow(Position start, Position end);
 | 
			
		||||
	void FindIndicatorFlash(Position start, Position end);
 | 
			
		||||
	void FindIndicatorHide();
 | 
			
		||||
	void VCHomeDisplay();
 | 
			
		||||
	void VCHomeDisplayExtend();
 | 
			
		||||
	bool CaretLineVisibleAlways();
 | 
			
		||||
	void SetCaretLineVisibleAlways(bool alwaysVisible);
 | 
			
		||||
	void SetLineEndTypesAllowed(Scintilla::LineEndType lineEndBitSet);
 | 
			
		||||
	Scintilla::LineEndType LineEndTypesAllowed();
 | 
			
		||||
	Scintilla::LineEndType LineEndTypesActive();
 | 
			
		||||
	void SetRepresentation(const char *encodedCharacter, const char *representation);
 | 
			
		||||
	int Representation(const char *encodedCharacter, char *representation);
 | 
			
		||||
	std::string Representation(const char *encodedCharacter);
 | 
			
		||||
	void ClearRepresentation(const char *encodedCharacter);
 | 
			
		||||
	void ClearAllRepresentations();
 | 
			
		||||
	void SetRepresentationAppearance(const char *encodedCharacter, Scintilla::RepresentationAppearance appearance);
 | 
			
		||||
	Scintilla::RepresentationAppearance RepresentationAppearance(const char *encodedCharacter);
 | 
			
		||||
	void SetRepresentationColour(const char *encodedCharacter, ColourAlpha colour);
 | 
			
		||||
	ColourAlpha RepresentationColour(const char *encodedCharacter);
 | 
			
		||||
	void EOLAnnotationSetText(Line line, const char *text);
 | 
			
		||||
	int EOLAnnotationGetText(Line line, char *text);
 | 
			
		||||
	std::string EOLAnnotationGetText(Line line);
 | 
			
		||||
	void EOLAnnotationSetStyle(Line line, int style);
 | 
			
		||||
	int EOLAnnotationGetStyle(Line line);
 | 
			
		||||
	void EOLAnnotationClearAll();
 | 
			
		||||
	void EOLAnnotationSetVisible(Scintilla::EOLAnnotationVisible visible);
 | 
			
		||||
	Scintilla::EOLAnnotationVisible EOLAnnotationGetVisible();
 | 
			
		||||
	void EOLAnnotationSetStyleOffset(int style);
 | 
			
		||||
	int EOLAnnotationGetStyleOffset();
 | 
			
		||||
	bool SupportsFeature(Scintilla::Supports feature);
 | 
			
		||||
	Scintilla::LineCharacterIndexType LineCharacterIndex();
 | 
			
		||||
	void AllocateLineCharacterIndex(Scintilla::LineCharacterIndexType lineCharacterIndex);
 | 
			
		||||
	void ReleaseLineCharacterIndex(Scintilla::LineCharacterIndexType lineCharacterIndex);
 | 
			
		||||
	Line LineFromIndexPosition(Position pos, Scintilla::LineCharacterIndexType lineCharacterIndex);
 | 
			
		||||
	Position IndexPositionFromLine(Line line, Scintilla::LineCharacterIndexType lineCharacterIndex);
 | 
			
		||||
	void StartRecord();
 | 
			
		||||
	void StopRecord();
 | 
			
		||||
	int Lexer();
 | 
			
		||||
	void Colourise(Position start, Position end);
 | 
			
		||||
	void SetProperty(const char *key, const char *value);
 | 
			
		||||
	void SetKeyWords(int keyWordSet, const char *keyWords);
 | 
			
		||||
	int Property(const char *key, char *value);
 | 
			
		||||
	std::string Property(const char *key);
 | 
			
		||||
	int PropertyExpanded(const char *key, char *value);
 | 
			
		||||
	std::string PropertyExpanded(const char *key);
 | 
			
		||||
	int PropertyInt(const char *key, int defaultValue);
 | 
			
		||||
	int LexerLanguage(char *language);
 | 
			
		||||
	std::string LexerLanguage();
 | 
			
		||||
	void *PrivateLexerCall(int operation, void *pointer);
 | 
			
		||||
	int PropertyNames(char *names);
 | 
			
		||||
	std::string PropertyNames();
 | 
			
		||||
	Scintilla::TypeProperty PropertyType(const char *name);
 | 
			
		||||
	int DescribeProperty(const char *name, char *description);
 | 
			
		||||
	std::string DescribeProperty(const char *name);
 | 
			
		||||
	int DescribeKeyWordSets(char *descriptions);
 | 
			
		||||
	std::string DescribeKeyWordSets();
 | 
			
		||||
	Scintilla::LineEndType LineEndTypesSupported();
 | 
			
		||||
	int AllocateSubStyles(int styleBase, int numberStyles);
 | 
			
		||||
	int SubStylesStart(int styleBase);
 | 
			
		||||
	int SubStylesLength(int styleBase);
 | 
			
		||||
	int StyleFromSubStyle(int subStyle);
 | 
			
		||||
	int PrimaryStyleFromStyle(int style);
 | 
			
		||||
	void FreeSubStyles();
 | 
			
		||||
	void SetIdentifiers(int style, const char *identifiers);
 | 
			
		||||
	int DistanceToSecondaryStyles();
 | 
			
		||||
	int SubStyleBases(char *styles);
 | 
			
		||||
	std::string SubStyleBases();
 | 
			
		||||
	int NamedStyles();
 | 
			
		||||
	int NameOfStyle(int style, char *name);
 | 
			
		||||
	std::string NameOfStyle(int style);
 | 
			
		||||
	int TagsOfStyle(int style, char *tags);
 | 
			
		||||
	std::string TagsOfStyle(int style);
 | 
			
		||||
	int DescriptionOfStyle(int style, char *description);
 | 
			
		||||
	std::string DescriptionOfStyle(int style);
 | 
			
		||||
	void SetILexer(void *ilexer);
 | 
			
		||||
	Scintilla::Bidirectional Bidirectional();
 | 
			
		||||
	void SetBidirectional(Scintilla::Bidirectional bidirectional);
 | 
			
		||||
 | 
			
		||||
//--Autogenerated -- end of section automatically generated from Scintilla.iface
 | 
			
		||||
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||