diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..940794e --- /dev/null +++ b/.gitignore @@ -0,0 +1,288 @@ +## Ignore Visual Studio temporary files, build results, and +## files generated by popular Visual Studio add-ons. +## +## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore + +# User-specific files +*.suo +*.user +*.userosscache +*.sln.docstates + +# User-specific files (MonoDevelop/Xamarin Studio) +*.userprefs + +# Build results +[Dd]ebug/ +[Dd]ebugPublic/ +[Rr]elease/ +[Rr]eleases/ +x64/ +x86/ +bld/ +[Bb]in/ +[Oo]bj/ +[Ll]og/ + +# Visual Studio 2015 cache/options directory +.vs/ +# Uncomment if you have tasks that create the project's static files in wwwroot +#wwwroot/ + +# MSTest test Results +[Tt]est[Rr]esult*/ +[Bb]uild[Ll]og.* + +# NUNIT +*.VisualState.xml +TestResult.xml + +# Build Results of an ATL Project +[Dd]ebugPS/ +[Rr]eleasePS/ +dlldata.c + +# .NET Core +project.lock.json +project.fragment.lock.json +artifacts/ +**/Properties/launchSettings.json + +*_i.c +*_p.c +*_i.h +*.ilk +*.meta +*.obj +*.pch +*.pdb +*.pgc +*.pgd +*.rsp +*.sbr +*.tlb +*.tli +*.tlh +*.tmp +*.tmp_proj +*.log +*.vspscc +*.vssscc +.builds +*.pidb +*.svclog +*.scc + +# Chutzpah Test files +_Chutzpah* + +# Visual C++ cache files +ipch/ +*.aps +*.ncb +*.opendb +*.opensdf +*.sdf +*.cachefile +*.VC.db +*.VC.VC.opendb + +# Visual Studio profiler +*.psess +*.vsp +*.vspx +*.sap + +# TFS 2012 Local Workspace +$tf/ + +# Guidance Automation Toolkit +*.gpState + +# ReSharper is a .NET coding add-in +_ReSharper*/ +*.[Rr]e[Ss]harper +*.DotSettings.user + +# JustCode is a .NET coding add-in +.JustCode + +# TeamCity is a build add-in +_TeamCity* + +# DotCover is a Code Coverage Tool +*.dotCover + +# Visual Studio code coverage results +*.coverage +*.coveragexml + +# NCrunch +_NCrunch_* +.*crunch*.local.xml +nCrunchTemp_* + +# MightyMoose +*.mm.* +AutoTest.Net/ + +# Web workbench (sass) +.sass-cache/ + +# Installshield output folder +[Ee]xpress/ + +# DocProject is a documentation generator add-in +DocProject/buildhelp/ +DocProject/Help/*.HxT +DocProject/Help/*.HxC +DocProject/Help/*.hhc +DocProject/Help/*.hhk +DocProject/Help/*.hhp +DocProject/Help/Html2 +DocProject/Help/html + +# Click-Once directory +publish/ + +# Publish Web Output +*.[Pp]ublish.xml +*.azurePubxml +# TODO: Comment the next line if you want to checkin your web deploy settings +# but database connection strings (with potential passwords) will be unencrypted +*.pubxml +*.publishproj + +# Microsoft Azure Web App publish settings. Comment the next line if you want to +# checkin your Azure Web App publish settings, but sensitive information contained +# in these scripts will be unencrypted +PublishScripts/ + +# NuGet Packages +*.nupkg +# The packages folder can be ignored because of Package Restore +**/packages/* +# except build/, which is used as an MSBuild target. +!**/packages/build/ +# Uncomment if necessary however generally it will be regenerated when needed +#!**/packages/repositories.config +# NuGet v3's project.json files produces more ignorable files +*.nuget.props +*.nuget.targets + +# Microsoft Azure Build Output +csx/ +*.build.csdef + +# Microsoft Azure Emulator +ecf/ +rcf/ + +# Windows Store app package directories and files +AppPackages/ +BundleArtifacts/ +Package.StoreAssociation.xml +_pkginfo.txt + +# Visual Studio cache files +# files ending in .cache can be ignored +*.[Cc]ache +# but keep track of directories ending in .cache +!*.[Cc]ache/ + +# Others +ClientBin/ +~$* +*~ +*.dbmdl +*.dbproj.schemaview +*.jfm +*.pfx +*.publishsettings +orleans.codegen.cs + +# Since there are multiple workflows, uncomment next line to ignore bower_components +# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) +#bower_components/ + +# RIA/Silverlight projects +Generated_Code/ + +# Backup & report files from converting an old project file +# to a newer Visual Studio version. Backup files are not needed, +# because we have git ;-) +_UpgradeReport_Files/ +Backup*/ +UpgradeLog*.XML +UpgradeLog*.htm + +# SQL Server files +*.mdf +*.ldf +*.ndf + +# Business Intelligence projects +*.rdl.data +*.bim.layout +*.bim_*.settings + +# Microsoft Fakes +FakesAssemblies/ + +# GhostDoc plugin setting file +*.GhostDoc.xml + +# Node.js Tools for Visual Studio +.ntvs_analysis.dat +node_modules/ + +# Typescript v1 declaration files +typings/ + +# Visual Studio 6 build log +*.plg + +# Visual Studio 6 workspace options file +*.opt + +# Visual Studio 6 auto-generated workspace file (contains which files were open etc.) +*.vbw + +# Visual Studio LightSwitch build output +**/*.HTMLClient/GeneratedArtifacts +**/*.DesktopClient/GeneratedArtifacts +**/*.DesktopClient/ModelManifest.xml +**/*.Server/GeneratedArtifacts +**/*.Server/ModelManifest.xml +_Pvt_Extensions + +# Paket dependency manager +.paket/paket.exe +paket-files/ + +# FAKE - F# Make +.fake/ + +# JetBrains Rider +.idea/ +*.sln.iml + +# CodeRush +.cr/ + +# Python Tools for Visual Studio (PTVS) +__pycache__/ +*.pyc + +# Cake - Uncomment if you are using it +# tools/** +# !tools/packages.config + +# Telerik's JustMock configuration file +*.jmconfig + +# BizTalk build output +*.btp.cs +*.btm.cs +*.odx.cs +*.xsd.cs diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..606befa --- /dev/null +++ b/LICENSE @@ -0,0 +1,342 @@ + + + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Lesser General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + {description} + Copyright (C) {year} {fullname} + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License along + with this program; if not, write to the Free Software Foundation, Inc., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + {signature of Ty Coon}, 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. + diff --git a/README.md b/README.md new file mode 100644 index 0000000..04b1cd3 --- /dev/null +++ b/README.md @@ -0,0 +1,21 @@ +# SurroundSelection +Notepad++ plugin to automatically surround the selection in quotes/brackets/parenthesis/etc. + +**Note:** This is still in early development. It has not been tested with non-US keyboard layouts. + +## Usage +Select some text and type one of the following characters: +- `'` +- `"` +- `(` +- `{` +- `[` + +## Installation +No public release is currently available. + +## Development +The code has been developed using MSVC 2013. Building the code will generate the DLL which can be used by Notepad++. For convenience, MSVC copies the DLL into the Notepad++ plugin directory. + +## License +This code is released under the [GNU General Public License version 2](http://www.gnu.org/licenses/gpl-2.0.txt). diff --git a/SurroundSelection.sln b/SurroundSelection.sln new file mode 100644 index 0000000..eaf606c --- /dev/null +++ b/SurroundSelection.sln @@ -0,0 +1,28 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 2013 +VisualStudioVersion = 12.0.40629.0 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SurroundSelection", "src\SurroundSelection.vcxproj", "{1590D7CD-7D3A-4AB7-A355-EE02F7FB987D}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + Debug|x64 = Debug|x64 + Release|Win32 = Release|Win32 + Release|x64 = Release|x64 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {1590D7CD-7D3A-4AB7-A355-EE02F7FB987D}.Debug|Win32.ActiveCfg = Debug|Win32 + {1590D7CD-7D3A-4AB7-A355-EE02F7FB987D}.Debug|Win32.Build.0 = Debug|Win32 + {1590D7CD-7D3A-4AB7-A355-EE02F7FB987D}.Debug|x64.ActiveCfg = Debug|x64 + {1590D7CD-7D3A-4AB7-A355-EE02F7FB987D}.Debug|x64.Build.0 = Debug|x64 + {1590D7CD-7D3A-4AB7-A355-EE02F7FB987D}.Release|Win32.ActiveCfg = Release|Win32 + {1590D7CD-7D3A-4AB7-A355-EE02F7FB987D}.Release|Win32.Build.0 = Release|Win32 + {1590D7CD-7D3A-4AB7-A355-EE02F7FB987D}.Release|x64.ActiveCfg = Release|x64 + {1590D7CD-7D3A-4AB7-A355-EE02F7FB987D}.Release|x64.Build.0 = Release|x64 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/src/Dialogs/AboutDialog.cpp b/src/Dialogs/AboutDialog.cpp new file mode 100644 index 0000000..872f2f1 --- /dev/null +++ b/src/Dialogs/AboutDialog.cpp @@ -0,0 +1,73 @@ +// This file is part of SurroundSelection. +// +// Copyright (C)2017 Justin Dailey +// +// SurroundSelection is free software; you can redistribute it and/or +// modify it under the terms of the GNU General Public License +// as published by the Free Software Foundation; either +// version 2 of the License, or (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program; if not, write to the Free Software +// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +#include +#include "PluginInterface.h" +#include "resource.h" +#include "Hyperlinks.h" +#include "Version.h" + +#ifdef _WIN64 +#define BITNESS TEXT("(64 bit)") +#else +#define BITNESS TEXT("(32 bit)") +#endif + +INT_PTR CALLBACK abtDlgProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam) { + switch(uMsg) { + case WM_INITDIALOG: + ConvertStaticToHyperlink(hwndDlg, IDC_GITHUB); + ConvertStaticToHyperlink(hwndDlg, IDC_README); + Edit_SetText(GetDlgItem(hwndDlg, IDC_VERSION), TEXT("SurroundSelection v") VERSION_TEXT TEXT(" ") VERSION_STAGE TEXT(" ") BITNESS); + return true; + case WM_COMMAND: + switch(LOWORD(wParam)) { + case IDOK: + DestroyWindow(hwndDlg); + return true; + case IDC_GITHUB: + ShellExecute(hwndDlg, TEXT("open"), TEXT("https://github.com/dail8859/SurroundSelection/"), NULL, NULL, SW_SHOWNORMAL); + return true; + } + case WM_DESTROY: + DestroyWindow(hwndDlg); + return true; + } + return false; +} + +void ShowAboutDialog(HINSTANCE hInstance, const wchar_t *lpTemplateName, HWND hWndParent) { + HWND hSelf = CreateDialogParam((HINSTANCE)hInstance, lpTemplateName, hWndParent, abtDlgProc, NULL); + + // Go to center + RECT rc; + GetClientRect(hWndParent, &rc); + POINT center; + int w = rc.right - rc.left; + int h = rc.bottom - rc.top; + center.x = rc.left + w / 2; + center.y = rc.top + h / 2; + ClientToScreen(hWndParent, ¢er); + + RECT dlgRect; + GetClientRect(hSelf, &dlgRect); + int x = center.x - (dlgRect.right - dlgRect.left) / 2; + int y = center.y - (dlgRect.bottom - dlgRect.top) / 2; + + SetWindowPos(hSelf, HWND_TOP, x, y, (dlgRect.right - dlgRect.left), (dlgRect.bottom - dlgRect.top), SWP_SHOWWINDOW); +} diff --git a/src/Dialogs/AboutDialog.h b/src/Dialogs/AboutDialog.h new file mode 100644 index 0000000..e389ae7 --- /dev/null +++ b/src/Dialogs/AboutDialog.h @@ -0,0 +1,21 @@ +// This file is part of Scintillua++. +// +// Copyright (C)2017 Justin Dailey +// +// Scintillua++ is free software; you can redistribute it and/or +// modify it under the terms of the GNU General Public License +// as published by the Free Software Foundation; either +// version 2 of the License, or (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program; if not, write to the Free Software +// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +#pragma once + +void ShowAboutDialog(HINSTANCE hInstance, const wchar_t *lpTemplateName, HWND hWndParent); diff --git a/src/Dialogs/Hyperlinks.cpp b/src/Dialogs/Hyperlinks.cpp new file mode 100644 index 0000000..7b8ebe0 --- /dev/null +++ b/src/Dialogs/Hyperlinks.cpp @@ -0,0 +1,166 @@ +// Hyperlinks.cpp +// +// Copyright 2002 Neal Stublen +// All rights reserved. +// +// http://www.awesoftware.com +// + +#include + +#include "Hyperlinks.h" + + +#define PROP_ORIGINAL_FONT TEXT("_Hyperlink_Original_Font_") +#define PROP_ORIGINAL_PROC TEXT("_Hyperlink_Original_Proc_") +#define PROP_STATIC_HYPERLINK TEXT("_Hyperlink_From_Static_") +#define PROP_UNDERLINE_FONT TEXT("_Hyperlink_Underline_Font_") + + +LRESULT CALLBACK _HyperlinkParentProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) +{ + WNDPROC pfnOrigProc = (WNDPROC) GetProp(hwnd, PROP_ORIGINAL_PROC); + + switch (message) + { + case WM_CTLCOLORSTATIC: + { + HDC hdc = (HDC) wParam; + HWND hwndCtl = (HWND) lParam; + + BOOL fHyperlink = (NULL != GetProp(hwndCtl, PROP_STATIC_HYPERLINK)); + if (fHyperlink) + { + LRESULT lr = CallWindowProc(pfnOrigProc, hwnd, message, wParam, lParam); + SetTextColor(hdc, RGB(0, 0, 192)); + return lr; + } + + break; + } + case WM_DESTROY: + { + SetWindowLongPtr(hwnd, GWLP_WNDPROC, reinterpret_cast(pfnOrigProc)); + RemoveProp(hwnd, PROP_ORIGINAL_PROC); + break; + } + } + return CallWindowProc(pfnOrigProc, hwnd, message, wParam, lParam); +} + +LRESULT CALLBACK _HyperlinkProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam) +{ + WNDPROC pfnOrigProc = (WNDPROC) GetProp(hwnd, PROP_ORIGINAL_PROC); + + switch (message) + { + case WM_DESTROY: + { + SetWindowLongPtr(hwnd, GWLP_WNDPROC, reinterpret_cast(pfnOrigProc)); + RemoveProp(hwnd, PROP_ORIGINAL_PROC); + + HFONT hOrigFont = (HFONT) GetProp(hwnd, PROP_ORIGINAL_FONT); + SendMessage(hwnd, WM_SETFONT, (WPARAM) hOrigFont, 0); + RemoveProp(hwnd, PROP_ORIGINAL_FONT); + + HFONT hFont = (HFONT) GetProp(hwnd, PROP_UNDERLINE_FONT); + DeleteObject(hFont); + RemoveProp(hwnd, PROP_UNDERLINE_FONT); + + RemoveProp(hwnd, PROP_STATIC_HYPERLINK); + + break; + } + case WM_MOUSEMOVE: + { + if (GetCapture() != hwnd) + { + HFONT hFont = (HFONT) GetProp(hwnd, PROP_UNDERLINE_FONT); + SendMessage(hwnd, WM_SETFONT, (WPARAM) hFont, FALSE); + InvalidateRect(hwnd, NULL, FALSE); + SetCapture(hwnd); + } + else + { + RECT rect; + GetWindowRect(hwnd, &rect); + + POINT pt = { LOWORD(lParam), HIWORD(lParam) }; + ClientToScreen(hwnd, &pt); + + if (!PtInRect(&rect, pt)) + { + HFONT hFont = (HFONT) GetProp(hwnd, PROP_ORIGINAL_FONT); + SendMessage(hwnd, WM_SETFONT, (WPARAM) hFont, FALSE); + InvalidateRect(hwnd, NULL, FALSE); + ReleaseCapture(); + } + } + break; + } + case WM_SETCURSOR: + { + // Since IDC_HAND is not available on all operating systems, + // we will load the arrow cursor if IDC_HAND is not present. + HCURSOR hCursor = LoadCursor(NULL, IDC_HAND); + if (NULL == hCursor) + { + hCursor = LoadCursor(NULL, IDC_ARROW); + } + SetCursor(hCursor); + return TRUE; + } + } + + return CallWindowProc(pfnOrigProc, hwnd, message, wParam, lParam); +} + +BOOL ConvertStaticToHyperlink(HWND hwndCtl) +{ + // Subclass the parent so we can color the controls as we desire. + + HWND hwndParent = GetParent(hwndCtl); + if (NULL != hwndParent) + { + WNDPROC pfnOrigProc = (WNDPROC) GetWindowLongPtr(hwndParent, GWLP_WNDPROC); + if (pfnOrigProc != _HyperlinkParentProc) + { + SetProp(hwndParent, PROP_ORIGINAL_PROC, (HANDLE) pfnOrigProc); + SetWindowLongPtr(hwndParent, GWLP_WNDPROC, reinterpret_cast(_HyperlinkParentProc)); + } + } + + // Make sure the control will send notifications. + + LONG_PTR dwStyle = GetWindowLongPtr(hwndCtl, GWL_STYLE); + SetWindowLongPtr(hwndCtl, GWL_STYLE, dwStyle | SS_NOTIFY); + + // Subclass the existing control. + + WNDPROC pfnOrigProc = (WNDPROC) GetWindowLongPtr(hwndCtl, GWLP_WNDPROC); + SetProp(hwndCtl, PROP_ORIGINAL_PROC, (HANDLE) pfnOrigProc); + SetWindowLongPtr(hwndCtl, GWLP_WNDPROC, reinterpret_cast(_HyperlinkProc)); + + // Create an updated font by adding an underline. + + HFONT hOrigFont = (HFONT) SendMessage(hwndCtl, WM_GETFONT, 0, 0); + SetProp(hwndCtl, PROP_ORIGINAL_FONT, (HANDLE) hOrigFont); + + LOGFONT lf; + GetObject(hOrigFont, sizeof(lf), &lf); + lf.lfUnderline = TRUE; + + HFONT hFont = CreateFontIndirect(&lf); + SetProp(hwndCtl, PROP_UNDERLINE_FONT, (HANDLE) hFont); + + // Set a flag on the control so we know what color it should be. + + SetProp(hwndCtl, PROP_STATIC_HYPERLINK, (HANDLE) 1); + + return TRUE; +} + +BOOL ConvertStaticToHyperlink(HWND hwndParent, UINT uiCtlId) +{ + return ConvertStaticToHyperlink(GetDlgItem(hwndParent, uiCtlId)); +} diff --git a/src/Dialogs/Hyperlinks.h b/src/Dialogs/Hyperlinks.h new file mode 100644 index 0000000..6dda1f4 --- /dev/null +++ b/src/Dialogs/Hyperlinks.h @@ -0,0 +1,15 @@ +// Hyperlinks.h +// +// Copyright 2002 Neal Stublen +// All rights reserved. +// +// http://www.awesoftware.com +// + +#ifndef HYPERLINKS_H +#define HYPERLINKS_H + +BOOL ConvertStaticToHyperlink(HWND hwndCtl); +BOOL ConvertStaticToHyperlink(HWND hwndParent, UINT uiCtlId); + +#endif \ No newline at end of file diff --git a/src/Dialogs/Version.rc b/src/Dialogs/Version.rc new file mode 100644 index 0000000..bb0e4eb --- /dev/null +++ b/src/Dialogs/Version.rc @@ -0,0 +1,37 @@ +#include +#include "Version.h" + + +// +// Version Information resources +// +LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL +1 VERSIONINFO + FILEVERSION VERSION_NUM + PRODUCTVERSION VERSION_NUM + FILEFLAGSMASK VS_FFI_FILEFLAGSMASK + FILEFLAGS VS_FF_SPECIALBUILD + FILEOS VOS__WINDOWS32 + FILETYPE VFT_DLL + FILESUBTYPE VFT2_UNKNOWN +{ + BLOCK "StringFileInfo" + { + BLOCK "040904b0" + { + VALUE "Comments", "Notepad++ plugin" + VALUE "CompanyName", "Justin Dailey " + VALUE "FileDescription", "Notepad++ plugin" + VALUE "FileVersion", VERSION_TEXT + VALUE "InternalName", "SurroundSelection" + VALUE "OriginalFilename", "SurroundSelection.dll" + VALUE "ProductName", "SurroundSelection" + VALUE "ProductVersion", VERSION_TEXT + VALUE "SpecialBuild", "UNICODE" + } + } + BLOCK "VarFileInfo" + { + VALUE "Translation", 0x0409, 0x01B5 + } +} diff --git a/src/Dialogs/resource.h b/src/Dialogs/resource.h new file mode 100644 index 0000000..5d8a2db --- /dev/null +++ b/src/Dialogs/resource.h @@ -0,0 +1,8 @@ +#ifndef IDC_STATIC +#define IDC_STATIC (-1) +#endif + +#define IDD_ABOUTDLG 101 +#define IDC_GITHUB 1000 +#define IDC_VERSION 1001 +#define IDC_README 1002 diff --git a/src/Dialogs/resource.rc b/src/Dialogs/resource.rc new file mode 100644 index 0000000..e7fb827 --- /dev/null +++ b/src/Dialogs/resource.rc @@ -0,0 +1,22 @@ + +#include +#include +#include +#include "resource.h" + + +// +// Dialog resources +// +LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL +IDD_ABOUTDLG DIALOGEX 0, 0, 223, 130 +STYLE DS_SETFONT | DS_FIXEDSYS | WS_POPUP | WS_BORDER | WS_SYSMENU +FONT 8, "MS Shell Dlg", 0, 0, 0x1 +{ + PUSHBUTTON "Close", IDOK, 86, 109, 50, 14 + GROUPBOX "", IDC_VERSION, 10, 9, 201, 93, BS_CENTER + LTEXT "Author: Justin Dailey ", IDC_STATIC, 30, 26, 180, 8 + LTEXT "The SurroundSelection code is hosted on", IDC_STATIC, 30, 43, 180, 8 + LTEXT "GitHub", IDC_GITHUB, 152, 43, 27, 8, SS_LEFT | SS_NOTIFY, WS_EX_LEFT + LTEXT "This code is licensed under GPLv2", IDC_STATIC, 30, 80, 180, 8 +} diff --git a/src/Main.cpp b/src/Main.cpp new file mode 100644 index 0000000..d07cc36 --- /dev/null +++ b/src/Main.cpp @@ -0,0 +1,197 @@ +// This file is part of SurroundSelection. +// +// Copyright (C)2017 Justin Dailey +// +// SurroundSelection is free software; you can redistribute it and/or +// modify it under the terms of the GNU General Public License +// as published by the Free Software Foundation; either +// version 2 of the License, or (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program; if not, write to the Free Software +// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +#include "PluginInterface.h" +#include "ScintillaGateway.h" +#include "resource.h" +#include "AboutDialog.h" + +#include +#include + +static HANDLE _hModule; +static NppData nppData; +static HHOOK hook = NULL; +static bool hasFocus = true; +static ScintillaGateway editor; + +static void showAbout(); + +FuncItem funcItem[] = { + { TEXT("About..."), showAbout, 0, false, nullptr } +}; + +static void showAbout() { + ShowAboutDialog((HINSTANCE)_hModule, MAKEINTRESOURCE(IDD_ABOUTDLG), nppData._nppHandle); +} + +static HWND GetCurrentScintilla() { + int which = 0; + SendMessage(nppData._nppHandle, NPPM_GETCURRENTSCINTILLA, SCI_UNUSED, (LPARAM)&which); + return (which == 0) ? nppData._scintillaMainHandle : nppData._scintillaSecondHandle; +} + +static void SurroundSelectionsWith(char ch1, char ch2) { + std::vector> selections; + + int num = editor.GetSelections(); + for (int i = 0; i < num; ++i) { + int start = editor.GetSelectionNStart(i); + int end = editor.GetSelectionNEnd(i); + + if (start != end /* && editor.LineFromPosition(start) == editor.LineFromPosition(end) */) + selections.push_back(std::make_pair(start, end)); + } + + // Sort so they are replaced top to bottom + std::sort(selections.begin(), selections.end()); + + int offset = 0; + int i = 0; + editor.BeginUndoAction(); + for (const auto &selection : selections) { + editor.SetTargetRange(selection.first + offset, selection.second + offset); + + std::string target(editor.GetTargetText(NULL), '\0'); + editor.GetTargetText(&target[0]); + + // Add in the characters + target.insert(target.begin(), 1, ch1); + target.insert(target.end(), 1, ch2); + + editor.ReplaceTarget(-1, target.c_str()); + + editor.SetSelectionNStart(i, selection.first + offset + 1); + editor.SetSelectionNEnd(i, selection.second + offset + 2 - 1); + + offset += 2; + ++i; + } + + editor.EndUndoAction(); +} + +LRESULT CALLBACK KeyboardProc(int ncode, WPARAM wparam, LPARAM lparam) { + if (ncode == HC_ACTION) { + if ((HIWORD(lparam) & KF_UP) == 0) { + if (hasFocus && !(GetKeyState(VK_CONTROL) & KF_UP) && !(GetKeyState(VK_MENU) & KF_UP)) { + char ch1 = 0, ch2 = 0; + + if (wparam == VK_OEM_7) { + if (GetKeyState(VK_SHIFT) & KF_UP) { + ch1 = ch2 = '"'; + } + else { + ch1 = ch2 = '\''; + } + } + else if (wparam == VK_OEM_4) { + if (GetKeyState(VK_SHIFT) & KF_UP) { + ch1 = '{'; + ch2 = '}'; + } + else { + ch1 = '['; + ch2 = ']'; + } + } + else if (wparam == 0x39) { + if (GetKeyState(VK_SHIFT) & KF_UP) { + ch1 = '('; + ch2 = ')'; + } + } + //else if (wparam == VK_OEM_COMMA) { + // if (GetKeyState(VK_SHIFT) & KF_UP) { + // ch1 = '<'; + // ch2 = '>'; + // } + //} + + if (ch1 != 0 && editor.GetSelectionEmpty() == 0) { + SurroundSelectionsWith(ch1, ch2); + return TRUE; // This key has been "handled" and won't propogate + } + } + } + } + return CallNextHookEx(hook, ncode, wparam, lparam); //pass control to next hook in the hook chain. +} + + +BOOL APIENTRY DllMain(HANDLE hModule, DWORD reasonForCall, LPVOID lpReserved) { + switch (reasonForCall) { + case DLL_PROCESS_ATTACH: + _hModule = hModule; + break; + case DLL_PROCESS_DETACH: + break; + case DLL_THREAD_ATTACH: + break; + case DLL_THREAD_DETACH: + break; + } + return TRUE; +} + +extern "C" __declspec(dllexport) void setInfo(NppData notepadPlusData) { + nppData = notepadPlusData; + + // Set this as early as possible so its in a valid state + editor.SetScintillaInstance(nppData._scintillaMainHandle); +} + +extern "C" __declspec(dllexport) const wchar_t *getName() { + return TEXT("SurroundSelection"); +} + +extern "C" __declspec(dllexport) FuncItem *getFuncsArray(int *nbF) { + *nbF = sizeof(funcItem) / sizeof(funcItem[0]);; + return funcItem; +} + +extern "C" __declspec(dllexport) void beNotified(SCNotification *notifyCode) { + switch (notifyCode->nmhdr.code) { + case SCN_FOCUSIN: + hasFocus = true; + break; + case SCN_FOCUSOUT: + hasFocus = false; + break; + case NPPN_READY: + hook = SetWindowsHookEx(WH_KEYBOARD, KeyboardProc, (HINSTANCE)_hModule, ::GetCurrentThreadId()); + break; + case NPPN_SHUTDOWN: + if (hook != NULL) UnhookWindowsHookEx(hook); + break; + case NPPN_BUFFERACTIVATED: + editor.SetScintillaInstance(GetCurrentScintilla()); + break; + } + return; +} + +extern "C" __declspec(dllexport) LRESULT messageProc(UINT Message, WPARAM wParam, LPARAM lParam) { + return TRUE; +} + +#ifdef UNICODE +extern "C" __declspec(dllexport) BOOL isUnicode() { + return TRUE; +} +#endif //UNICODE diff --git a/src/Npp/Notepad_plus_msgs.h b/src/Npp/Notepad_plus_msgs.h new file mode 100644 index 0000000..46d2288 --- /dev/null +++ b/src/Npp/Notepad_plus_msgs.h @@ -0,0 +1,599 @@ +// This file is part of Notepad++ project +// Copyright (C)2003 Don HO +// +// This program is free software; you can redistribute it and/or +// modify it under the terms of the GNU General Public License +// as published by the Free Software Foundation; either +// version 2 of the License, or (at your option) any later version. +// +// Note that the GPL places important restrictions on "derived works", yet +// it does not provide a detailed definition of that term. To avoid +// misunderstandings, we consider an application to constitute a +// "derivative work" for the purpose of this license if it does any of the +// following: +// 1. Integrates source code from Notepad++. +// 2. Integrates/includes/aggregates Notepad++ into a proprietary executable +// installer, such as those produced by InstallShield. +// 3. Links to a library or executes a program that does any of the above. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program; if not, write to the Free Software +// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + + +#ifndef NOTEPAD_PLUS_MSGS_H +#define NOTEPAD_PLUS_MSGS_H + +#include +#include + +enum LangType {L_TEXT, L_PHP , L_C, L_CPP, L_CS, L_OBJC, L_JAVA, L_RC,\ + L_HTML, L_XML, L_MAKEFILE, L_PASCAL, L_BATCH, L_INI, L_ASCII, L_USER,\ + L_ASP, L_SQL, L_VB, L_JS, L_CSS, L_PERL, L_PYTHON, L_LUA, \ + L_TEX, L_FORTRAN, L_BASH, L_FLASH, L_NSIS, L_TCL, L_LISP, L_SCHEME,\ + L_ASM, L_DIFF, L_PROPS, L_PS, L_RUBY, L_SMALLTALK, L_VHDL, L_KIX, L_AU3,\ + L_CAML, L_ADA, L_VERILOG, L_MATLAB, L_HASKELL, L_INNO, L_SEARCHRESULT,\ + L_CMAKE, L_YAML, L_COBOL, L_GUI4CLI, L_D, L_POWERSHELL, L_R, L_JSP,\ + L_COFFEESCRIPT, L_JSON, L_JAVASCRIPT, L_FORTRAN_77,\ + // Don't use L_JS, use L_JAVASCRIPT instead + // The end of enumated language type, so it should be always at the end + L_EXTERNAL}; + +enum winVer{ WV_UNKNOWN, WV_WIN32S, WV_95, WV_98, WV_ME, WV_NT, WV_W2K, WV_XP, WV_S2003, WV_XPX64, WV_VISTA, WV_WIN7, WV_WIN8, WV_WIN81, WV_WIN10}; + + + +//Here you can find how to use these messages : http://docs.notepad-plus-plus.org/index.php/Messages_And_Notifications +#define NPPMSG (WM_USER + 1000) + + #define NPPM_GETCURRENTSCINTILLA (NPPMSG + 4) + #define NPPM_GETCURRENTLANGTYPE (NPPMSG + 5) + #define NPPM_SETCURRENTLANGTYPE (NPPMSG + 6) + + #define NPPM_GETNBOPENFILES (NPPMSG + 7) + #define ALL_OPEN_FILES 0 + #define PRIMARY_VIEW 1 + #define SECOND_VIEW 2 + + #define NPPM_GETOPENFILENAMES (NPPMSG + 8) + + + #define NPPM_MODELESSDIALOG (NPPMSG + 12) + #define MODELESSDIALOGADD 0 + #define MODELESSDIALOGREMOVE 1 + + #define NPPM_GETNBSESSIONFILES (NPPMSG + 13) + #define NPPM_GETSESSIONFILES (NPPMSG + 14) + #define NPPM_SAVESESSION (NPPMSG + 15) + #define NPPM_SAVECURRENTSESSION (NPPMSG + 16) + + struct sessionInfo { + TCHAR* sessionFilePathName; + int nbFile; + TCHAR** files; + }; + + #define NPPM_GETOPENFILENAMESPRIMARY (NPPMSG + 17) + #define NPPM_GETOPENFILENAMESSECOND (NPPMSG + 18) + + #define NPPM_CREATESCINTILLAHANDLE (NPPMSG + 20) + #define NPPM_DESTROYSCINTILLAHANDLE (NPPMSG + 21) + #define NPPM_GETNBUSERLANG (NPPMSG + 22) + + #define NPPM_GETCURRENTDOCINDEX (NPPMSG + 23) + #define MAIN_VIEW 0 + #define SUB_VIEW 1 + + #define NPPM_SETSTATUSBAR (NPPMSG + 24) + #define STATUSBAR_DOC_TYPE 0 + #define STATUSBAR_DOC_SIZE 1 + #define STATUSBAR_CUR_POS 2 + #define STATUSBAR_EOF_FORMAT 3 + #define STATUSBAR_UNICODE_TYPE 4 + #define STATUSBAR_TYPING_MODE 5 + + #define NPPM_GETMENUHANDLE (NPPMSG + 25) + #define NPPPLUGINMENU 0 + #define NPPMAINMENU 1 + // INT NPPM_GETMENUHANDLE(INT menuChoice, 0) + // Return: menu handle (HMENU) of choice (plugin menu handle or Notepad++ main menu handle) + + #define NPPM_ENCODESCI (NPPMSG + 26) + //ascii file to unicode + //int NPPM_ENCODESCI(MAIN_VIEW/SUB_VIEW, 0) + //return new unicodeMode + + #define NPPM_DECODESCI (NPPMSG + 27) + //unicode file to ascii + //int NPPM_DECODESCI(MAIN_VIEW/SUB_VIEW, 0) + //return old unicodeMode + + #define NPPM_ACTIVATEDOC (NPPMSG + 28) + //void NPPM_ACTIVATEDOC(int view, int index2Activate) + + #define NPPM_LAUNCHFINDINFILESDLG (NPPMSG + 29) + //void NPPM_LAUNCHFINDINFILESDLG(TCHAR * dir2Search, TCHAR * filtre) + + #define NPPM_DMMSHOW (NPPMSG + 30) + //void NPPM_DMMSHOW(0, tTbData->hClient) + + #define NPPM_DMMHIDE (NPPMSG + 31) + //void NPPM_DMMHIDE(0, tTbData->hClient) + + #define NPPM_DMMUPDATEDISPINFO (NPPMSG + 32) + //void NPPM_DMMUPDATEDISPINFO(0, tTbData->hClient) + + #define NPPM_DMMREGASDCKDLG (NPPMSG + 33) + //void NPPM_DMMREGASDCKDLG(0, &tTbData) + + #define NPPM_LOADSESSION (NPPMSG + 34) + //void NPPM_LOADSESSION(0, const TCHAR* file name) + + #define NPPM_DMMVIEWOTHERTAB (NPPMSG + 35) + //void WM_DMM_VIEWOTHERTAB(0, tTbData->pszName) + + #define NPPM_RELOADFILE (NPPMSG + 36) + //BOOL NPPM_RELOADFILE(BOOL withAlert, TCHAR *filePathName2Reload) + + #define NPPM_SWITCHTOFILE (NPPMSG + 37) + //BOOL NPPM_SWITCHTOFILE(0, TCHAR *filePathName2switch) + + #define NPPM_SAVECURRENTFILE (NPPMSG + 38) + //BOOL NPPM_SAVECURRENTFILE(0, 0) + + #define NPPM_SAVEALLFILES (NPPMSG + 39) + //BOOL NPPM_SAVEALLFILES(0, 0) + + #define NPPM_SETMENUITEMCHECK (NPPMSG + 40) + //void WM_PIMENU_CHECK(UINT funcItem[X]._cmdID, TRUE/FALSE) + + #define NPPM_ADDTOOLBARICON (NPPMSG + 41) + //void WM_ADDTOOLBARICON(UINT funcItem[X]._cmdID, toolbarIcons icon) + struct toolbarIcons { + HBITMAP hToolbarBmp; + HICON hToolbarIcon; + }; + + #define NPPM_GETWINDOWSVERSION (NPPMSG + 42) + //winVer NPPM_GETWINDOWSVERSION(0, 0) + + #define NPPM_DMMGETPLUGINHWNDBYNAME (NPPMSG + 43) + //HWND WM_DMM_GETPLUGINHWNDBYNAME(const TCHAR *windowName, const TCHAR *moduleName) + // if moduleName is NULL, then return value is NULL + // if windowName is NULL, then the first found window handle which matches with the moduleName will be returned + + #define NPPM_MAKECURRENTBUFFERDIRTY (NPPMSG + 44) + //BOOL NPPM_MAKECURRENTBUFFERDIRTY(0, 0) + + #define NPPM_GETENABLETHEMETEXTUREFUNC (NPPMSG + 45) + //BOOL NPPM_GETENABLETHEMETEXTUREFUNC(0, 0) + + #define NPPM_GETPLUGINSCONFIGDIR (NPPMSG + 46) + //void NPPM_GETPLUGINSCONFIGDIR(int strLen, TCHAR *str) + + #define NPPM_MSGTOPLUGIN (NPPMSG + 47) + //BOOL NPPM_MSGTOPLUGIN(TCHAR *destModuleName, CommunicationInfo *info) + // return value is TRUE when the message arrive to the destination plugins. + // if destModule or info is NULL, then return value is FALSE + struct CommunicationInfo { + long internalMsg; + const TCHAR * srcModuleName; + void * info; // defined by plugin + }; + + #define NPPM_MENUCOMMAND (NPPMSG + 48) + //void NPPM_MENUCOMMAND(0, int cmdID) + // uncomment //#include "menuCmdID.h" + // in the beginning of this file then use the command symbols defined in "menuCmdID.h" file + // to access all the Notepad++ menu command items + + #define NPPM_TRIGGERTABBARCONTEXTMENU (NPPMSG + 49) + //void NPPM_TRIGGERTABBARCONTEXTMENU(int view, int index2Activate) + + #define NPPM_GETNPPVERSION (NPPMSG + 50) + // int NPPM_GETNPPVERSION(0, 0) + // return version + // ex : v4.6 + // HIWORD(version) == 4 + // LOWORD(version) == 6 + + #define NPPM_HIDETABBAR (NPPMSG + 51) + // BOOL NPPM_HIDETABBAR(0, BOOL hideOrNot) + // if hideOrNot is set as TRUE then tab bar will be hidden + // otherwise it'll be shown. + // return value : the old status value + + #define NPPM_ISTABBARHIDDEN (NPPMSG + 52) + // BOOL NPPM_ISTABBARHIDDEN(0, 0) + // returned value : TRUE if tab bar is hidden, otherwise FALSE + + #define NPPM_GETPOSFROMBUFFERID (NPPMSG + 57) + // INT NPPM_GETPOSFROMBUFFERID(INT bufferID, INT priorityView) + // Return VIEW|INDEX from a buffer ID. -1 if the bufferID non existing + // if priorityView set to SUB_VIEW, then SUB_VIEW will be search firstly + // + // VIEW takes 2 highest bits and INDEX (0 based) takes the rest (30 bits) + // Here's the values for the view : + // MAIN_VIEW 0 + // SUB_VIEW 1 + + #define NPPM_GETFULLPATHFROMBUFFERID (NPPMSG + 58) + // INT NPPM_GETFULLPATHFROMBUFFERID(INT bufferID, TCHAR *fullFilePath) + // Get full path file name from a bufferID. + // Return -1 if the bufferID non existing, otherwise the number of TCHAR copied/to copy + // User should call it with fullFilePath be NULL to get the number of TCHAR (not including the nul character), + // allocate fullFilePath with the return values + 1, then call it again to get full path file name + + #define NPPM_GETBUFFERIDFROMPOS (NPPMSG + 59) + // LRESULT NPPM_GETBUFFERIDFROMPOS(INT index, INT iView) + // wParam: Position of document + // lParam: View to use, 0 = Main, 1 = Secondary + // Returns 0 if invalid + + #define NPPM_GETCURRENTBUFFERID (NPPMSG + 60) + // LRESULT NPPM_GETCURRENTBUFFERID(0, 0) + // Returns active Buffer + + #define NPPM_RELOADBUFFERID (NPPMSG + 61) + // VOID NPPM_RELOADBUFFERID(0, 0) + // Reloads Buffer + // wParam: Buffer to reload + // lParam: 0 if no alert, else alert + + + #define NPPM_GETBUFFERLANGTYPE (NPPMSG + 64) + // INT NPPM_GETBUFFERLANGTYPE(INT bufferID, 0) + // wParam: BufferID to get LangType from + // lParam: 0 + // Returns as int, see LangType. -1 on error + + #define NPPM_SETBUFFERLANGTYPE (NPPMSG + 65) + // BOOL NPPM_SETBUFFERLANGTYPE(INT bufferID, INT langType) + // wParam: BufferID to set LangType of + // lParam: LangType + // Returns TRUE on success, FALSE otherwise + // use int, see LangType for possible values + // L_USER and L_EXTERNAL are not supported + + #define NPPM_GETBUFFERENCODING (NPPMSG + 66) + // INT NPPM_GETBUFFERENCODING(INT bufferID, 0) + // wParam: BufferID to get encoding from + // lParam: 0 + // returns as int, see UniMode. -1 on error + + #define NPPM_SETBUFFERENCODING (NPPMSG + 67) + // BOOL NPPM_SETBUFFERENCODING(INT bufferID, INT encoding) + // wParam: BufferID to set encoding of + // lParam: encoding + // Returns TRUE on success, FALSE otherwise + // use int, see UniMode + // Can only be done on new, unedited files + + #define NPPM_GETBUFFERFORMAT (NPPMSG + 68) + // INT NPPM_GETBUFFERFORMAT(INT bufferID, 0) + // wParam: BufferID to get format from + // lParam: 0 + // returns as int, see formatType. -1 on error + + #define NPPM_SETBUFFERFORMAT (NPPMSG + 69) + // BOOL NPPM_SETBUFFERFORMAT(INT bufferID, INT format) + // wParam: BufferID to set format of + // lParam: format + // Returns TRUE on success, FALSE otherwise + // use int, see formatType + +/* + #define NPPM_ADDREBAR (NPPMSG + 57) + // BOOL NPPM_ADDREBAR(0, REBARBANDINFO *) + // Returns assigned ID in wID value of struct pointer + #define NPPM_UPDATEREBAR (NPPMSG + 58) + // BOOL NPPM_ADDREBAR(INT ID, REBARBANDINFO *) + //Use ID assigned with NPPM_ADDREBAR + #define NPPM_REMOVEREBAR (NPPMSG + 59) + // BOOL NPPM_ADDREBAR(INT ID, 0) + //Use ID assigned with NPPM_ADDREBAR +*/ + + #define NPPM_HIDETOOLBAR (NPPMSG + 70) + // BOOL NPPM_HIDETOOLBAR(0, BOOL hideOrNot) + // if hideOrNot is set as TRUE then tool bar will be hidden + // otherwise it'll be shown. + // return value : the old status value + + #define NPPM_ISTOOLBARHIDDEN (NPPMSG + 71) + // BOOL NPPM_ISTOOLBARHIDDEN(0, 0) + // returned value : TRUE if tool bar is hidden, otherwise FALSE + + #define NPPM_HIDEMENU (NPPMSG + 72) + // BOOL NPPM_HIDEMENU(0, BOOL hideOrNot) + // if hideOrNot is set as TRUE then menu will be hidden + // otherwise it'll be shown. + // return value : the old status value + + #define NPPM_ISMENUHIDDEN (NPPMSG + 73) + // BOOL NPPM_ISMENUHIDDEN(0, 0) + // returned value : TRUE if menu is hidden, otherwise FALSE + + #define NPPM_HIDESTATUSBAR (NPPMSG + 74) + // BOOL NPPM_HIDESTATUSBAR(0, BOOL hideOrNot) + // if hideOrNot is set as TRUE then STATUSBAR will be hidden + // otherwise it'll be shown. + // return value : the old status value + + #define NPPM_ISSTATUSBARHIDDEN (NPPMSG + 75) + // BOOL NPPM_ISSTATUSBARHIDDEN(0, 0) + // returned value : TRUE if STATUSBAR is hidden, otherwise FALSE + + #define NPPM_GETSHORTCUTBYCMDID (NPPMSG + 76) + // BOOL NPPM_GETSHORTCUTBYCMDID(int cmdID, ShortcutKey *sk) + // get your plugin command current mapped shortcut into sk via cmdID + // You may need it after getting NPPN_READY notification + // returned value : TRUE if this function call is successful and shorcut is enable, otherwise FALSE + + #define NPPM_DOOPEN (NPPMSG + 77) + // BOOL NPPM_DOOPEN(0, const TCHAR *fullPathName2Open) + // fullPathName2Open indicates the full file path name to be opened. + // The return value is TRUE (1) if the operation is successful, otherwise FALSE (0). + + #define NPPM_SAVECURRENTFILEAS (NPPMSG + 78) + // BOOL NPPM_SAVECURRENTFILEAS (BOOL asCopy, const TCHAR* filename) + + #define NPPM_GETCURRENTNATIVELANGENCODING (NPPMSG + 79) + // INT NPPM_GETCURRENTNATIVELANGENCODING(0, 0) + // returned value : the current native language enconding + + #define NPPM_ALLOCATESUPPORTED (NPPMSG + 80) + // returns TRUE if NPPM_ALLOCATECMDID is supported + // Use to identify if subclassing is necessary + + #define NPPM_ALLOCATECMDID (NPPMSG + 81) + // BOOL NPPM_ALLOCATECMDID(int numberRequested, int* startNumber) + // sets startNumber to the initial command ID if successful + // Returns: TRUE if successful, FALSE otherwise. startNumber will also be set to 0 if unsuccessful + + #define NPPM_ALLOCATEMARKER (NPPMSG + 82) + // BOOL NPPM_ALLOCATEMARKER(int numberRequested, int* startNumber) + // sets startNumber to the initial command ID if successful + // Allocates a marker number to a plugin + // Returns: TRUE if successful, FALSE otherwise. startNumber will also be set to 0 if unsuccessful + + #define NPPM_GETLANGUAGENAME (NPPMSG + 83) + // INT NPPM_GETLANGUAGENAME(int langType, TCHAR *langName) + // Get programing language name from the given language type (LangType) + // Return value is the number of copied character / number of character to copy (\0 is not included) + // You should call this function 2 times - the first time you pass langName as NULL to get the number of characters to copy. + // You allocate a buffer of the length of (the number of characters + 1) then call NPPM_GETLANGUAGENAME function the 2nd time + // by passing allocated buffer as argument langName + + #define NPPM_GETLANGUAGEDESC (NPPMSG + 84) + // INT NPPM_GETLANGUAGEDESC(int langType, TCHAR *langDesc) + // Get programing language short description from the given language type (LangType) + // Return value is the number of copied character / number of character to copy (\0 is not included) + // You should call this function 2 times - the first time you pass langDesc as NULL to get the number of characters to copy. + // You allocate a buffer of the length of (the number of characters + 1) then call NPPM_GETLANGUAGEDESC function the 2nd time + // by passing allocated buffer as argument langDesc + + #define NPPM_SHOWDOCSWITCHER (NPPMSG + 85) + // VOID NPPM_ISDOCSWITCHERSHOWN(0, BOOL toShowOrNot) + // Send this message to show or hide doc switcher. + // if toShowOrNot is TRUE then show doc switcher, otherwise hide it. + + #define NPPM_ISDOCSWITCHERSHOWN (NPPMSG + 86) + // BOOL NPPM_ISDOCSWITCHERSHOWN(0, 0) + // Check to see if doc switcher is shown. + + #define NPPM_GETAPPDATAPLUGINSALLOWED (NPPMSG + 87) + // BOOL NPPM_GETAPPDATAPLUGINSALLOWED(0, 0) + // Check to see if loading plugins from "%APPDATA%\Notepad++\plugins" is allowed. + + #define NPPM_GETCURRENTVIEW (NPPMSG + 88) + // INT NPPM_GETCURRENTVIEW(0, 0) + // Return: current edit view of Notepad++. Only 2 possible values: 0 = Main, 1 = Secondary + + #define NPPM_DOCSWITCHERDISABLECOLUMN (NPPMSG + 89) + // VOID NPPM_DOCSWITCHERDISABLECOLUMN(0, BOOL disableOrNot) + // Disable or enable extension column of doc switcher + + #define NPPM_GETEDITORDEFAULTFOREGROUNDCOLOR (NPPMSG + 90) + // INT NPPM_GETEDITORDEFAULTFOREGROUNDCOLOR(0, 0) + // Return: current editor default foreground color. You should convert the returned value in COLORREF + + #define NPPM_GETEDITORDEFAULTBACKGROUNDCOLOR (NPPMSG + 91) + // INT NPPM_GETEDITORDEFAULTBACKGROUNDCOLOR(0, 0) + // Return: current editor default background color. You should convert the returned value in COLORREF + + #define NPPM_SETSMOOTHFONT (NPPMSG + 92) + // VOID NPPM_SETSMOOTHFONT(0, BOOL setSmoothFontOrNot) + + #define NPPM_SETEDITORBORDEREDGE (NPPMSG + 93) + // VOID NPPM_SETEDITORBORDEREDGE(0, BOOL withEditorBorderEdgeOrNot) + + #define NPPM_SAVEFILE (NPPMSG + 94) + // VOID NPPM_SAVEFILE(0, const TCHAR *fileNameToSave) + + #define NPPM_DISABLEAUTOUPDATE (NPPMSG + 95) // 2119 in decimal + // VOID NPPM_DISABLEAUTOUPDATE(0, 0) + +#define RUNCOMMAND_USER (WM_USER + 3000) + #define NPPM_GETFULLCURRENTPATH (RUNCOMMAND_USER + FULL_CURRENT_PATH) + #define NPPM_GETCURRENTDIRECTORY (RUNCOMMAND_USER + CURRENT_DIRECTORY) + #define NPPM_GETFILENAME (RUNCOMMAND_USER + FILE_NAME) + #define NPPM_GETNAMEPART (RUNCOMMAND_USER + NAME_PART) + #define NPPM_GETEXTPART (RUNCOMMAND_USER + EXT_PART) + #define NPPM_GETCURRENTWORD (RUNCOMMAND_USER + CURRENT_WORD) + #define NPPM_GETNPPDIRECTORY (RUNCOMMAND_USER + NPP_DIRECTORY) + // BOOL NPPM_GETXXXXXXXXXXXXXXXX(size_t strLen, TCHAR *str) + // where str is the allocated TCHAR array, + // strLen is the allocated array size + // The return value is TRUE when get generic_string operation success + // Otherwise (allocated array size is too small) FALSE + + #define NPPM_GETCURRENTLINE (RUNCOMMAND_USER + CURRENT_LINE) + // INT NPPM_GETCURRENTLINE(0, 0) + // return the caret current position line + #define NPPM_GETCURRENTCOLUMN (RUNCOMMAND_USER + CURRENT_COLUMN) + // INT NPPM_GETCURRENTCOLUMN(0, 0) + // return the caret current position column + + #define VAR_NOT_RECOGNIZED 0 + #define FULL_CURRENT_PATH 1 + #define CURRENT_DIRECTORY 2 + #define FILE_NAME 3 + #define NAME_PART 4 + #define EXT_PART 5 + #define CURRENT_WORD 6 + #define NPP_DIRECTORY 7 + #define CURRENT_LINE 8 + #define CURRENT_COLUMN 9 + + +// Notification code +#define NPPN_FIRST 1000 + #define NPPN_READY (NPPN_FIRST + 1) // To notify plugins that all the procedures of launchment of notepad++ are done. + //scnNotification->nmhdr.code = NPPN_READY; + //scnNotification->nmhdr.hwndFrom = hwndNpp; + //scnNotification->nmhdr.idFrom = 0; + + #define NPPN_TBMODIFICATION (NPPN_FIRST + 2) // To notify plugins that toolbar icons can be registered + //scnNotification->nmhdr.code = NPPN_TB_MODIFICATION; + //scnNotification->nmhdr.hwndFrom = hwndNpp; + //scnNotification->nmhdr.idFrom = 0; + + #define NPPN_FILEBEFORECLOSE (NPPN_FIRST + 3) // To notify plugins that the current file is about to be closed + //scnNotification->nmhdr.code = NPPN_FILEBEFORECLOSE; + //scnNotification->nmhdr.hwndFrom = hwndNpp; + //scnNotification->nmhdr.idFrom = BufferID; + + #define NPPN_FILEOPENED (NPPN_FIRST + 4) // To notify plugins that the current file is just opened + //scnNotification->nmhdr.code = NPPN_FILEOPENED; + //scnNotification->nmhdr.hwndFrom = hwndNpp; + //scnNotification->nmhdr.idFrom = BufferID; + + #define NPPN_FILECLOSED (NPPN_FIRST + 5) // To notify plugins that the current file is just closed + //scnNotification->nmhdr.code = NPPN_FILECLOSED; + //scnNotification->nmhdr.hwndFrom = hwndNpp; + //scnNotification->nmhdr.idFrom = BufferID; + + #define NPPN_FILEBEFOREOPEN (NPPN_FIRST + 6) // To notify plugins that the current file is about to be opened + //scnNotification->nmhdr.code = NPPN_FILEBEFOREOPEN; + //scnNotification->nmhdr.hwndFrom = hwndNpp; + //scnNotification->nmhdr.idFrom = BufferID; + + #define NPPN_FILEBEFORESAVE (NPPN_FIRST + 7) // To notify plugins that the current file is about to be saved + //scnNotification->nmhdr.code = NPPN_FILEBEFOREOPEN; + //scnNotification->nmhdr.hwndFrom = hwndNpp; + //scnNotification->nmhdr.idFrom = BufferID; + + #define NPPN_FILESAVED (NPPN_FIRST + 8) // To notify plugins that the current file is just saved + //scnNotification->nmhdr.code = NPPN_FILESAVED; + //scnNotification->nmhdr.hwndFrom = hwndNpp; + //scnNotification->nmhdr.idFrom = BufferID; + + #define NPPN_SHUTDOWN (NPPN_FIRST + 9) // To notify plugins that Notepad++ is about to be shutdowned. + //scnNotification->nmhdr.code = NPPN_SHUTDOWN; + //scnNotification->nmhdr.hwndFrom = hwndNpp; + //scnNotification->nmhdr.idFrom = 0; + + #define NPPN_BUFFERACTIVATED (NPPN_FIRST + 10) // To notify plugins that a buffer was activated (put to foreground). + //scnNotification->nmhdr.code = NPPN_BUFFERACTIVATED; + //scnNotification->nmhdr.hwndFrom = hwndNpp; + //scnNotification->nmhdr.idFrom = activatedBufferID; + + #define NPPN_LANGCHANGED (NPPN_FIRST + 11) // To notify plugins that the language in the current doc is just changed. + //scnNotification->nmhdr.code = NPPN_LANGCHANGED; + //scnNotification->nmhdr.hwndFrom = hwndNpp; + //scnNotification->nmhdr.idFrom = currentBufferID; + + #define NPPN_WORDSTYLESUPDATED (NPPN_FIRST + 12) // To notify plugins that user initiated a WordStyleDlg change. + //scnNotification->nmhdr.code = NPPN_WORDSTYLESUPDATED; + //scnNotification->nmhdr.hwndFrom = hwndNpp; + //scnNotification->nmhdr.idFrom = currentBufferID; + + #define NPPN_SHORTCUTREMAPPED (NPPN_FIRST + 13) // To notify plugins that plugin command shortcut is remapped. + //scnNotification->nmhdr.code = NPPN_SHORTCUTSREMAPPED; + //scnNotification->nmhdr.hwndFrom = ShortcutKeyStructurePointer; + //scnNotification->nmhdr.idFrom = cmdID; + //where ShortcutKeyStructurePointer is pointer of struct ShortcutKey: + //struct ShortcutKey { + // bool _isCtrl; + // bool _isAlt; + // bool _isShift; + // UCHAR _key; + //}; + + #define NPPN_FILEBEFORELOAD (NPPN_FIRST + 14) // To notify plugins that the current file is about to be loaded + //scnNotification->nmhdr.code = NPPN_FILEBEFOREOPEN; + //scnNotification->nmhdr.hwndFrom = hwndNpp; + //scnNotification->nmhdr.idFrom = NULL; + + #define NPPN_FILELOADFAILED (NPPN_FIRST + 15) // To notify plugins that file open operation failed + //scnNotification->nmhdr.code = NPPN_FILEOPENFAILED; + //scnNotification->nmhdr.hwndFrom = hwndNpp; + //scnNotification->nmhdr.idFrom = BufferID; + + #define NPPN_READONLYCHANGED (NPPN_FIRST + 16) // To notify plugins that current document change the readonly status, + //scnNotification->nmhdr.code = NPPN_READONLYCHANGED; + //scnNotification->nmhdr.hwndFrom = bufferID; + //scnNotification->nmhdr.idFrom = docStatus; + // where bufferID is BufferID + // docStatus can be combined by DOCSTAUS_READONLY and DOCSTAUS_BUFFERDIRTY + + #define DOCSTAUS_READONLY 1 + #define DOCSTAUS_BUFFERDIRTY 2 + + #define NPPN_DOCORDERCHANGED (NPPN_FIRST + 17) // To notify plugins that document order is changed + //scnNotification->nmhdr.code = NPPN_DOCORDERCHANGED; + //scnNotification->nmhdr.hwndFrom = newIndex; + //scnNotification->nmhdr.idFrom = BufferID; + + #define NPPN_SNAPSHOTDIRTYFILELOADED (NPPN_FIRST + 18) // To notify plugins that a snapshot dirty file is loaded on startup + //scnNotification->nmhdr.code = NPPN_SNAPSHOTDIRTYFILELOADED; + //scnNotification->nmhdr.hwndFrom = NULL; + //scnNotification->nmhdr.idFrom = BufferID; + + #define NPPN_BEFORESHUTDOWN (NPPN_FIRST + 19) // To notify plugins that Npp shutdown has been triggered, files have not been closed yet + //scnNotification->nmhdr.code = NPPN_BEFORESHUTDOWN; + //scnNotification->nmhdr.hwndFrom = hwndNpp; + //scnNotification->nmhdr.idFrom = 0; + + #define NPPN_CANCELSHUTDOWN (NPPN_FIRST + 20) // To notify plugins that Npp shutdown has been cancelled + //scnNotification->nmhdr.code = NPPN_CANCELSHUTDOWN; + //scnNotification->nmhdr.hwndFrom = hwndNpp; + //scnNotification->nmhdr.idFrom = 0; + + #define NPPN_FILEBEFORERENAME (NPPN_FIRST + 21) // To notify plugins that file is to be renamed + //scnNotification->nmhdr.code = NPPN_FILEBEFORERENAME; + //scnNotification->nmhdr.hwndFrom = hwndNpp; + //scnNotification->nmhdr.idFrom = BufferID; + + #define NPPN_FILERENAMECANCEL (NPPN_FIRST + 22) // To notify plugins that file rename has been cancelled + //scnNotification->nmhdr.code = NPPN_FILERENAMECANCEL; + //scnNotification->nmhdr.hwndFrom = hwndNpp; + //scnNotification->nmhdr.idFrom = BufferID; + + #define NPPN_FILERENAMED (NPPN_FIRST + 23) // To notify plugins that file has been renamed + //scnNotification->nmhdr.code = NPPN_FILERENAMED; + //scnNotification->nmhdr.hwndFrom = hwndNpp; + //scnNotification->nmhdr.idFrom = BufferID; + + #define NPPN_FILEBEFOREDELETE (NPPN_FIRST + 24) // To notify plugins that file is to be deleted + //scnNotification->nmhdr.code = NPPN_FILEBEFOREDELETE; + //scnNotification->nmhdr.hwndFrom = hwndNpp; + //scnNotification->nmhdr.idFrom = BufferID; + + #define NPPN_FILEDELETEFAILED (NPPN_FIRST + 25) // To notify plugins that file deletion has failed + //scnNotification->nmhdr.code = NPPN_FILEDELETEFAILED; + //scnNotification->nmhdr.hwndFrom = hwndNpp; + //scnNotification->nmhdr.idFrom = BufferID; + + #define NPPN_FILEDELETED (NPPN_FIRST + 26) // To notify plugins that file has been deleted + //scnNotification->nmhdr.code = NPPN_FILEDELETED; + //scnNotification->nmhdr.hwndFrom = hwndNpp; + //scnNotification->nmhdr.idFrom = BufferID; + +#endif //NOTEPAD_PLUS_MSGS_H diff --git a/src/Npp/PluginInterface.h b/src/Npp/PluginInterface.h new file mode 100644 index 0000000..a636c0e --- /dev/null +++ b/src/Npp/PluginInterface.h @@ -0,0 +1,87 @@ +// This file is part of Notepad++ project +// Copyright (C)2003 Don HO +// +// This program is free software; you can redistribute it and/or +// modify it under the terms of the GNU General Public License +// as published by the Free Software Foundation; either +// version 2 of the License, or (at your option) any later version. +// +// Note that the GPL places important restrictions on "derived works", yet +// it does not provide a detailed definition of that term. To avoid +// misunderstandings, we consider an application to constitute a +// "derivative work" for the purpose of this license if it does any of the +// following: +// 1. Integrates source code from Notepad++. +// 2. Integrates/includes/aggregates Notepad++ into a proprietary executable +// installer, such as those produced by InstallShield. +// 3. Links to a library or executes a program that does any of the above. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program; if not, write to the Free Software +// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + + +#ifndef PLUGININTERFACE_H +#define PLUGININTERFACE_H + +#ifndef SCINTILLA_H +#include "Scintilla.h" +#endif //SCINTILLA_H + +#ifndef NOTEPAD_PLUS_MSGS_H +#include "Notepad_plus_msgs.h" +#endif //NOTEPAD_PLUS_MSGS_H + +const int nbChar = 64; + +typedef const TCHAR * (__cdecl * PFUNCGETNAME)(); + +struct NppData +{ + HWND _nppHandle; + HWND _scintillaMainHandle; + HWND _scintillaSecondHandle; +}; + +typedef void (__cdecl * PFUNCSETINFO)(NppData); +typedef void (__cdecl * PFUNCPLUGINCMD)(); +typedef void (__cdecl * PBENOTIFIED)(SCNotification *); +typedef LRESULT (__cdecl * PMESSAGEPROC)(UINT Message, WPARAM wParam, LPARAM lParam); + + +struct ShortcutKey +{ + bool _isCtrl; + bool _isAlt; + bool _isShift; + UCHAR _key; +}; + +struct FuncItem +{ + TCHAR _itemName[nbChar]; + PFUNCPLUGINCMD _pFunc; + int _cmdID; + bool _init2Check; + ShortcutKey *_pShKey; +}; + +typedef FuncItem * (__cdecl * PFUNCGETFUNCSARRAY)(int *); + +// You should implement (or define an empty function body) those functions which are called by Notepad++ plugin manager +extern "C" __declspec(dllexport) void setInfo(NppData); +extern "C" __declspec(dllexport) const TCHAR * getName(); +extern "C" __declspec(dllexport) FuncItem * getFuncsArray(int *); +extern "C" __declspec(dllexport) void beNotified(SCNotification *); +extern "C" __declspec(dllexport) LRESULT messageProc(UINT Message, WPARAM wParam, LPARAM lParam); + +// This API return always true now, since Notepad++ isn't compiled in ANSI mode anymore +extern "C" __declspec(dllexport) BOOL isUnicode(); + + +#endif //PLUGININTERFACE_H diff --git a/src/Npp/Scintilla.h b/src/Npp/Scintilla.h new file mode 100644 index 0000000..079e3a4 --- /dev/null +++ b/src/Npp/Scintilla.h @@ -0,0 +1,1177 @@ +/* Scintilla source code edit control */ +/** @file Scintilla.h + ** Interface to the edit control. + **/ +/* Copyright 1998-2003 by Neil Hodgson + * 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. HFacer.py does the generation. */ + +#ifndef SCINTILLA_H +#define SCINTILLA_H + +#ifdef __cplusplus +extern "C" { +#endif + +#if defined(_WIN32) +/* Return false on failure: */ +int Scintilla_RegisterClasses(void *hInstance); +int Scintilla_ReleaseResources(void); +#endif +int Scintilla_LinkLexers(void); + +#ifdef __cplusplus +} +#endif + +/* Here should be placed typedefs for uptr_t, an unsigned integer type large enough to + * hold a pointer and sptr_t, a signed integer large enough to hold a pointer. + * May need to be changed for 64 bit platforms. */ +#if defined(_WIN32) +#include +#endif +#ifdef MAXULONG_PTR +typedef ULONG_PTR uptr_t; +typedef LONG_PTR sptr_t; +#else +typedef unsigned long uptr_t; +typedef long sptr_t; +#endif + +typedef sptr_t (*SciFnDirect)(sptr_t ptr, unsigned int iMessage, uptr_t wParam, sptr_t lParam); + +/* ++Autogenerated -- start of section automatically generated from Scintilla.iface */ +#define INVALID_POSITION -1 +#define SCI_START 2000 +#define SCI_OPTIONAL_START 3000 +#define SCI_LEXER_START 4000 +#define SCI_ADDTEXT 2001 +#define SCI_ADDSTYLEDTEXT 2002 +#define SCI_INSERTTEXT 2003 +#define SCI_CHANGEINSERTION 2672 +#define SCI_CLEARALL 2004 +#define SCI_DELETERANGE 2645 +#define SCI_CLEARDOCUMENTSTYLE 2005 +#define SCI_GETLENGTH 2006 +#define SCI_GETCHARAT 2007 +#define SCI_GETCURRENTPOS 2008 +#define SCI_GETANCHOR 2009 +#define SCI_GETSTYLEAT 2010 +#define SCI_REDO 2011 +#define SCI_SETUNDOCOLLECTION 2012 +#define SCI_SELECTALL 2013 +#define SCI_SETSAVEPOINT 2014 +#define SCI_GETSTYLEDTEXT 2015 +#define SCI_CANREDO 2016 +#define SCI_MARKERLINEFROMHANDLE 2017 +#define SCI_MARKERDELETEHANDLE 2018 +#define SCI_GETUNDOCOLLECTION 2019 +#define SCWS_INVISIBLE 0 +#define SCWS_VISIBLEALWAYS 1 +#define SCWS_VISIBLEAFTERINDENT 2 +#define SCI_GETVIEWWS 2020 +#define SCI_SETVIEWWS 2021 +#define SCI_POSITIONFROMPOINT 2022 +#define SCI_POSITIONFROMPOINTCLOSE 2023 +#define SCI_GOTOLINE 2024 +#define SCI_GOTOPOS 2025 +#define SCI_SETANCHOR 2026 +#define SCI_GETCURLINE 2027 +#define SCI_GETENDSTYLED 2028 +#define SC_EOL_CRLF 0 +#define SC_EOL_CR 1 +#define SC_EOL_LF 2 +#define SCI_CONVERTEOLS 2029 +#define SCI_GETEOLMODE 2030 +#define SCI_SETEOLMODE 2031 +#define SCI_STARTSTYLING 2032 +#define SCI_SETSTYLING 2033 +#define SCI_GETBUFFEREDDRAW 2034 +#define SCI_SETBUFFEREDDRAW 2035 +#define SCI_SETTABWIDTH 2036 +#define SCI_GETTABWIDTH 2121 +#define SCI_CLEARTABSTOPS 2675 +#define SCI_ADDTABSTOP 2676 +#define SCI_GETNEXTTABSTOP 2677 +#define SC_CP_UTF8 65001 +#define SCI_SETCODEPAGE 2037 +#define SC_IME_WINDOWED 0 +#define SC_IME_INLINE 1 +#define SCI_GETIMEINTERACTION 2678 +#define SCI_SETIMEINTERACTION 2679 +#define MARKER_MAX 31 +#define SC_MARK_CIRCLE 0 +#define SC_MARK_ROUNDRECT 1 +#define SC_MARK_ARROW 2 +#define SC_MARK_SMALLRECT 3 +#define SC_MARK_SHORTARROW 4 +#define SC_MARK_EMPTY 5 +#define SC_MARK_ARROWDOWN 6 +#define SC_MARK_MINUS 7 +#define SC_MARK_PLUS 8 +#define SC_MARK_VLINE 9 +#define SC_MARK_LCORNER 10 +#define SC_MARK_TCORNER 11 +#define SC_MARK_BOXPLUS 12 +#define SC_MARK_BOXPLUSCONNECTED 13 +#define SC_MARK_BOXMINUS 14 +#define SC_MARK_BOXMINUSCONNECTED 15 +#define SC_MARK_LCORNERCURVE 16 +#define SC_MARK_TCORNERCURVE 17 +#define SC_MARK_CIRCLEPLUS 18 +#define SC_MARK_CIRCLEPLUSCONNECTED 19 +#define SC_MARK_CIRCLEMINUS 20 +#define SC_MARK_CIRCLEMINUSCONNECTED 21 +#define SC_MARK_BACKGROUND 22 +#define SC_MARK_DOTDOTDOT 23 +#define SC_MARK_ARROWS 24 +#define SC_MARK_PIXMAP 25 +#define SC_MARK_FULLRECT 26 +#define SC_MARK_LEFTRECT 27 +#define SC_MARK_AVAILABLE 28 +#define SC_MARK_UNDERLINE 29 +#define SC_MARK_RGBAIMAGE 30 +#define SC_MARK_BOOKMARK 31 +#define SC_MARK_CHARACTER 10000 +#define SC_MARKNUM_FOLDEREND 25 +#define SC_MARKNUM_FOLDEROPENMID 26 +#define SC_MARKNUM_FOLDERMIDTAIL 27 +#define SC_MARKNUM_FOLDERTAIL 28 +#define SC_MARKNUM_FOLDERSUB 29 +#define SC_MARKNUM_FOLDER 30 +#define SC_MARKNUM_FOLDEROPEN 31 +#define SC_MASK_FOLDERS 0xFE000000 +#define SCI_MARKERDEFINE 2040 +#define SCI_MARKERSETFORE 2041 +#define SCI_MARKERSETBACK 2042 +#define SCI_MARKERSETBACKSELECTED 2292 +#define SCI_MARKERENABLEHIGHLIGHT 2293 +#define SCI_MARKERADD 2043 +#define SCI_MARKERDELETE 2044 +#define SCI_MARKERDELETEALL 2045 +#define SCI_MARKERGET 2046 +#define SCI_MARKERNEXT 2047 +#define SCI_MARKERPREVIOUS 2048 +#define SCI_MARKERDEFINEPIXMAP 2049 +#define SCI_MARKERADDSET 2466 +#define SCI_MARKERSETALPHA 2476 +#define SC_MAX_MARGIN 4 +#define SC_MARGIN_SYMBOL 0 +#define SC_MARGIN_NUMBER 1 +#define SC_MARGIN_BACK 2 +#define SC_MARGIN_FORE 3 +#define SC_MARGIN_TEXT 4 +#define SC_MARGIN_RTEXT 5 +#define SCI_SETMARGINTYPEN 2240 +#define SCI_GETMARGINTYPEN 2241 +#define SCI_SETMARGINWIDTHN 2242 +#define SCI_GETMARGINWIDTHN 2243 +#define SCI_SETMARGINMASKN 2244 +#define SCI_GETMARGINMASKN 2245 +#define SCI_SETMARGINSENSITIVEN 2246 +#define SCI_GETMARGINSENSITIVEN 2247 +#define SCI_SETMARGINCURSORN 2248 +#define SCI_GETMARGINCURSORN 2249 +#define STYLE_DEFAULT 32 +#define STYLE_LINENUMBER 33 +#define STYLE_BRACELIGHT 34 +#define STYLE_BRACEBAD 35 +#define STYLE_CONTROLCHAR 36 +#define STYLE_INDENTGUIDE 37 +#define STYLE_CALLTIP 38 +#define STYLE_LASTPREDEFINED 39 +#define STYLE_MAX 255 +#define SC_CHARSET_ANSI 0 +#define SC_CHARSET_DEFAULT 1 +#define SC_CHARSET_BALTIC 186 +#define SC_CHARSET_CHINESEBIG5 136 +#define SC_CHARSET_EASTEUROPE 238 +#define SC_CHARSET_GB2312 134 +#define SC_CHARSET_GREEK 161 +#define SC_CHARSET_HANGUL 129 +#define SC_CHARSET_MAC 77 +#define SC_CHARSET_OEM 255 +#define SC_CHARSET_RUSSIAN 204 +#define SC_CHARSET_CYRILLIC 1251 +#define SC_CHARSET_SHIFTJIS 128 +#define SC_CHARSET_SYMBOL 2 +#define SC_CHARSET_TURKISH 162 +#define SC_CHARSET_JOHAB 130 +#define SC_CHARSET_HEBREW 177 +#define SC_CHARSET_ARABIC 178 +#define SC_CHARSET_VIETNAMESE 163 +#define SC_CHARSET_THAI 222 +#define SC_CHARSET_8859_15 1000 +#define SCI_STYLECLEARALL 2050 +#define SCI_STYLESETFORE 2051 +#define SCI_STYLESETBACK 2052 +#define SCI_STYLESETBOLD 2053 +#define SCI_STYLESETITALIC 2054 +#define SCI_STYLESETSIZE 2055 +#define SCI_STYLESETFONT 2056 +#define SCI_STYLESETEOLFILLED 2057 +#define SCI_STYLERESETDEFAULT 2058 +#define SCI_STYLESETUNDERLINE 2059 +#define SC_CASE_MIXED 0 +#define SC_CASE_UPPER 1 +#define SC_CASE_LOWER 2 +#define SCI_STYLEGETFORE 2481 +#define SCI_STYLEGETBACK 2482 +#define SCI_STYLEGETBOLD 2483 +#define SCI_STYLEGETITALIC 2484 +#define SCI_STYLEGETSIZE 2485 +#define SCI_STYLEGETFONT 2486 +#define SCI_STYLEGETEOLFILLED 2487 +#define SCI_STYLEGETUNDERLINE 2488 +#define SCI_STYLEGETCASE 2489 +#define SCI_STYLEGETCHARACTERSET 2490 +#define SCI_STYLEGETVISIBLE 2491 +#define SCI_STYLEGETCHANGEABLE 2492 +#define SCI_STYLEGETHOTSPOT 2493 +#define SCI_STYLESETCASE 2060 +#define SC_FONT_SIZE_MULTIPLIER 100 +#define SCI_STYLESETSIZEFRACTIONAL 2061 +#define SCI_STYLEGETSIZEFRACTIONAL 2062 +#define SC_WEIGHT_NORMAL 400 +#define SC_WEIGHT_SEMIBOLD 600 +#define SC_WEIGHT_BOLD 700 +#define SCI_STYLESETWEIGHT 2063 +#define SCI_STYLEGETWEIGHT 2064 +#define SCI_STYLESETCHARACTERSET 2066 +#define SCI_STYLESETHOTSPOT 2409 +#define SCI_SETSELFORE 2067 +#define SCI_SETSELBACK 2068 +#define SCI_GETSELALPHA 2477 +#define SCI_SETSELALPHA 2478 +#define SCI_GETSELEOLFILLED 2479 +#define SCI_SETSELEOLFILLED 2480 +#define SCI_SETCARETFORE 2069 +#define SCI_ASSIGNCMDKEY 2070 +#define SCI_CLEARCMDKEY 2071 +#define SCI_CLEARALLCMDKEYS 2072 +#define SCI_SETSTYLINGEX 2073 +#define SCI_STYLESETVISIBLE 2074 +#define SCI_GETCARETPERIOD 2075 +#define SCI_SETCARETPERIOD 2076 +#define SCI_SETWORDCHARS 2077 +#define SCI_GETWORDCHARS 2646 +#define SCI_BEGINUNDOACTION 2078 +#define SCI_ENDUNDOACTION 2079 +#define INDIC_PLAIN 0 +#define INDIC_SQUIGGLE 1 +#define INDIC_TT 2 +#define INDIC_DIAGONAL 3 +#define INDIC_STRIKE 4 +#define INDIC_HIDDEN 5 +#define INDIC_BOX 6 +#define INDIC_ROUNDBOX 7 +#define INDIC_STRAIGHTBOX 8 +#define INDIC_DASH 9 +#define INDIC_DOTS 10 +#define INDIC_SQUIGGLELOW 11 +#define INDIC_DOTBOX 12 +#define INDIC_SQUIGGLEPIXMAP 13 +#define INDIC_COMPOSITIONTHICK 14 +#define INDIC_COMPOSITIONTHIN 15 +#define INDIC_FULLBOX 16 +#define INDIC_TEXTFORE 17 +#define INDIC_IME 32 +#define INDIC_IME_MAX 35 +#define INDIC_MAX 35 +#define INDIC_CONTAINER 8 +#define INDIC0_MASK 0x20 +#define INDIC1_MASK 0x40 +#define INDIC2_MASK 0x80 +#define INDICS_MASK 0xE0 +#define SCI_INDICSETSTYLE 2080 +#define SCI_INDICGETSTYLE 2081 +#define SCI_INDICSETFORE 2082 +#define SCI_INDICGETFORE 2083 +#define SCI_INDICSETUNDER 2510 +#define SCI_INDICGETUNDER 2511 +#define SCI_INDICSETHOVERSTYLE 2680 +#define SCI_INDICGETHOVERSTYLE 2681 +#define SCI_INDICSETHOVERFORE 2682 +#define SCI_INDICGETHOVERFORE 2683 +#define SC_INDICVALUEBIT 0x1000000 +#define SC_INDICVALUEMASK 0xFFFFFF +#define SC_INDICFLAG_VALUEFORE 1 +#define SCI_INDICSETFLAGS 2684 +#define SCI_INDICGETFLAGS 2685 +#define SCI_SETWHITESPACEFORE 2084 +#define SCI_SETWHITESPACEBACK 2085 +#define SCI_SETWHITESPACESIZE 2086 +#define SCI_GETWHITESPACESIZE 2087 +#define SCI_SETSTYLEBITS 2090 +#define SCI_GETSTYLEBITS 2091 +#define SCI_SETLINESTATE 2092 +#define SCI_GETLINESTATE 2093 +#define SCI_GETMAXLINESTATE 2094 +#define SCI_GETCARETLINEVISIBLE 2095 +#define SCI_SETCARETLINEVISIBLE 2096 +#define SCI_GETCARETLINEBACK 2097 +#define SCI_SETCARETLINEBACK 2098 +#define SCI_STYLESETCHANGEABLE 2099 +#define SCI_AUTOCSHOW 2100 +#define SCI_AUTOCCANCEL 2101 +#define SCI_AUTOCACTIVE 2102 +#define SCI_AUTOCPOSSTART 2103 +#define SCI_AUTOCCOMPLETE 2104 +#define SCI_AUTOCSTOPS 2105 +#define SCI_AUTOCSETSEPARATOR 2106 +#define SCI_AUTOCGETSEPARATOR 2107 +#define SCI_AUTOCSELECT 2108 +#define SCI_AUTOCSETCANCELATSTART 2110 +#define SCI_AUTOCGETCANCELATSTART 2111 +#define SCI_AUTOCSETFILLUPS 2112 +#define SCI_AUTOCSETCHOOSESINGLE 2113 +#define SCI_AUTOCGETCHOOSESINGLE 2114 +#define SCI_AUTOCSETIGNORECASE 2115 +#define SCI_AUTOCGETIGNORECASE 2116 +#define SCI_USERLISTSHOW 2117 +#define SCI_AUTOCSETAUTOHIDE 2118 +#define SCI_AUTOCGETAUTOHIDE 2119 +#define SCI_AUTOCSETDROPRESTOFWORD 2270 +#define SCI_AUTOCGETDROPRESTOFWORD 2271 +#define SCI_REGISTERIMAGE 2405 +#define SCI_CLEARREGISTEREDIMAGES 2408 +#define SCI_AUTOCGETTYPESEPARATOR 2285 +#define SCI_AUTOCSETTYPESEPARATOR 2286 +#define SCI_AUTOCSETMAXWIDTH 2208 +#define SCI_AUTOCGETMAXWIDTH 2209 +#define SCI_AUTOCSETMAXHEIGHT 2210 +#define SCI_AUTOCGETMAXHEIGHT 2211 +#define SCI_SETINDENT 2122 +#define SCI_GETINDENT 2123 +#define SCI_SETUSETABS 2124 +#define SCI_GETUSETABS 2125 +#define SCI_SETLINEINDENTATION 2126 +#define SCI_GETLINEINDENTATION 2127 +#define SCI_GETLINEINDENTPOSITION 2128 +#define SCI_GETCOLUMN 2129 +#define SCI_COUNTCHARACTERS 2633 +#define SCI_SETHSCROLLBAR 2130 +#define SCI_GETHSCROLLBAR 2131 +#define SC_IV_NONE 0 +#define SC_IV_REAL 1 +#define SC_IV_LOOKFORWARD 2 +#define SC_IV_LOOKBOTH 3 +#define SCI_SETINDENTATIONGUIDES 2132 +#define SCI_GETINDENTATIONGUIDES 2133 +#define SCI_SETHIGHLIGHTGUIDE 2134 +#define SCI_GETHIGHLIGHTGUIDE 2135 +#define SCI_GETLINEENDPOSITION 2136 +#define SCI_GETCODEPAGE 2137 +#define SCI_GETCARETFORE 2138 +#define SCI_GETREADONLY 2140 +#define SCI_SETCURRENTPOS 2141 +#define SCI_SETSELECTIONSTART 2142 +#define SCI_GETSELECTIONSTART 2143 +#define SCI_SETSELECTIONEND 2144 +#define SCI_GETSELECTIONEND 2145 +#define SCI_SETEMPTYSELECTION 2556 +#define SCI_SETPRINTMAGNIFICATION 2146 +#define SCI_GETPRINTMAGNIFICATION 2147 +#define SC_PRINT_NORMAL 0 +#define SC_PRINT_INVERTLIGHT 1 +#define SC_PRINT_BLACKONWHITE 2 +#define SC_PRINT_COLOURONWHITE 3 +#define SC_PRINT_COLOURONWHITEDEFAULTBG 4 +#define SCI_SETPRINTCOLOURMODE 2148 +#define SCI_GETPRINTCOLOURMODE 2149 +#define SCFIND_WHOLEWORD 0x2 +#define SCFIND_MATCHCASE 0x4 +#define SCFIND_WORDSTART 0x00100000 +#define SCFIND_REGEXP 0x00200000 +#define SCFIND_POSIX 0x00400000 +#define SCFIND_CXX11REGEX 0x00800000 +#define SCI_FINDTEXT 2150 +#define SCI_FORMATRANGE 2151 +#define SCI_GETFIRSTVISIBLELINE 2152 +#define SCI_GETLINE 2153 +#define SCI_GETLINECOUNT 2154 +#define SCI_SETMARGINLEFT 2155 +#define SCI_GETMARGINLEFT 2156 +#define SCI_SETMARGINRIGHT 2157 +#define SCI_GETMARGINRIGHT 2158 +#define SCI_GETMODIFY 2159 +#define SCI_SETSEL 2160 +#define SCI_GETSELTEXT 2161 +#define SCI_GETTEXTRANGE 2162 +#define SCI_HIDESELECTION 2163 +#define SCI_POINTXFROMPOSITION 2164 +#define SCI_POINTYFROMPOSITION 2165 +#define SCI_LINEFROMPOSITION 2166 +#define SCI_POSITIONFROMLINE 2167 +#define SCI_LINESCROLL 2168 +#define SCI_SCROLLCARET 2169 +#define SCI_SCROLLRANGE 2569 +#define SCI_REPLACESEL 2170 +#define SCI_SETREADONLY 2171 +#define SCI_NULL 2172 +#define SCI_CANPASTE 2173 +#define SCI_CANUNDO 2174 +#define SCI_EMPTYUNDOBUFFER 2175 +#define SCI_UNDO 2176 +#define SCI_CUT 2177 +#define SCI_COPY 2178 +#define SCI_PASTE 2179 +#define SCI_CLEAR 2180 +#define SCI_SETTEXT 2181 +#define SCI_GETTEXT 2182 +#define SCI_GETTEXTLENGTH 2183 +#define SCI_GETDIRECTFUNCTION 2184 +#define SCI_GETDIRECTPOINTER 2185 +#define SCI_SETOVERTYPE 2186 +#define SCI_GETOVERTYPE 2187 +#define SCI_SETCARETWIDTH 2188 +#define SCI_GETCARETWIDTH 2189 +#define SCI_SETTARGETSTART 2190 +#define SCI_GETTARGETSTART 2191 +#define SCI_SETTARGETEND 2192 +#define SCI_GETTARGETEND 2193 +#define SCI_SETTARGETRANGE 2686 +#define SCI_GETTARGETTEXT 2687 +#define SCI_REPLACETARGET 2194 +#define SCI_REPLACETARGETRE 2195 +#define SCI_SEARCHINTARGET 2197 +#define SCI_SETSEARCHFLAGS 2198 +#define SCI_GETSEARCHFLAGS 2199 +#define SCI_CALLTIPSHOW 2200 +#define SCI_CALLTIPCANCEL 2201 +#define SCI_CALLTIPACTIVE 2202 +#define SCI_CALLTIPPOSSTART 2203 +#define SCI_CALLTIPSETPOSSTART 2214 +#define SCI_CALLTIPSETHLT 2204 +#define SCI_CALLTIPSETBACK 2205 +#define SCI_CALLTIPSETFORE 2206 +#define SCI_CALLTIPSETFOREHLT 2207 +#define SCI_CALLTIPUSESTYLE 2212 +#define SCI_CALLTIPSETPOSITION 2213 +#define SCI_VISIBLEFROMDOCLINE 2220 +#define SCI_DOCLINEFROMVISIBLE 2221 +#define SCI_WRAPCOUNT 2235 +#define SC_FOLDLEVELBASE 0x400 +#define SC_FOLDLEVELWHITEFLAG 0x1000 +#define SC_FOLDLEVELHEADERFLAG 0x2000 +#define SC_FOLDLEVELNUMBERMASK 0x0FFF +#define SCI_SETFOLDLEVEL 2222 +#define SCI_GETFOLDLEVEL 2223 +#define SCI_GETLASTCHILD 2224 +#define SCI_GETFOLDPARENT 2225 +#define SCI_SHOWLINES 2226 +#define SCI_HIDELINES 2227 +#define SCI_GETLINEVISIBLE 2228 +#define SCI_GETALLLINESVISIBLE 2236 +#define SCI_SETFOLDEXPANDED 2229 +#define SCI_GETFOLDEXPANDED 2230 +#define SCI_TOGGLEFOLD 2231 +#define SC_FOLDACTION_CONTRACT 0 +#define SC_FOLDACTION_EXPAND 1 +#define SC_FOLDACTION_TOGGLE 2 +#define SCI_FOLDLINE 2237 +#define SCI_FOLDCHILDREN 2238 +#define SCI_EXPANDCHILDREN 2239 +#define SCI_FOLDALL 2662 +#define SCI_ENSUREVISIBLE 2232 +#define SC_AUTOMATICFOLD_SHOW 0x0001 +#define SC_AUTOMATICFOLD_CLICK 0x0002 +#define SC_AUTOMATICFOLD_CHANGE 0x0004 +#define SCI_SETAUTOMATICFOLD 2663 +#define SCI_GETAUTOMATICFOLD 2664 +#define SC_FOLDFLAG_LINEBEFORE_EXPANDED 0x0002 +#define SC_FOLDFLAG_LINEBEFORE_CONTRACTED 0x0004 +#define SC_FOLDFLAG_LINEAFTER_EXPANDED 0x0008 +#define SC_FOLDFLAG_LINEAFTER_CONTRACTED 0x0010 +#define SC_FOLDFLAG_LEVELNUMBERS 0x0040 +#define SC_FOLDFLAG_LINESTATE 0x0080 +#define SCI_SETFOLDFLAGS 2233 +#define SCI_ENSUREVISIBLEENFORCEPOLICY 2234 +#define SCI_SETTABINDENTS 2260 +#define SCI_GETTABINDENTS 2261 +#define SCI_SETBACKSPACEUNINDENTS 2262 +#define SCI_GETBACKSPACEUNINDENTS 2263 +#define SC_TIME_FOREVER 10000000 +#define SCI_SETMOUSEDWELLTIME 2264 +#define SCI_GETMOUSEDWELLTIME 2265 +#define SCI_WORDSTARTPOSITION 2266 +#define SCI_WORDENDPOSITION 2267 +#define SC_WRAP_NONE 0 +#define SC_WRAP_WORD 1 +#define SC_WRAP_CHAR 2 +#define SC_WRAP_WHITESPACE 3 +#define SCI_SETWRAPMODE 2268 +#define SCI_GETWRAPMODE 2269 +#define SC_WRAPVISUALFLAG_NONE 0x0000 +#define SC_WRAPVISUALFLAG_END 0x0001 +#define SC_WRAPVISUALFLAG_START 0x0002 +#define SC_WRAPVISUALFLAG_MARGIN 0x0004 +#define SCI_SETWRAPVISUALFLAGS 2460 +#define SCI_GETWRAPVISUALFLAGS 2461 +#define SC_WRAPVISUALFLAGLOC_DEFAULT 0x0000 +#define SC_WRAPVISUALFLAGLOC_END_BY_TEXT 0x0001 +#define SC_WRAPVISUALFLAGLOC_START_BY_TEXT 0x0002 +#define SCI_SETWRAPVISUALFLAGSLOCATION 2462 +#define SCI_GETWRAPVISUALFLAGSLOCATION 2463 +#define SCI_SETWRAPSTARTINDENT 2464 +#define SCI_GETWRAPSTARTINDENT 2465 +#define SC_WRAPINDENT_FIXED 0 +#define SC_WRAPINDENT_SAME 1 +#define SC_WRAPINDENT_INDENT 2 +#define SCI_SETWRAPINDENTMODE 2472 +#define SCI_GETWRAPINDENTMODE 2473 +#define SC_CACHE_NONE 0 +#define SC_CACHE_CARET 1 +#define SC_CACHE_PAGE 2 +#define SC_CACHE_DOCUMENT 3 +#define SCI_SETLAYOUTCACHE 2272 +#define SCI_GETLAYOUTCACHE 2273 +#define SCI_SETSCROLLWIDTH 2274 +#define SCI_GETSCROLLWIDTH 2275 +#define SCI_SETSCROLLWIDTHTRACKING 2516 +#define SCI_GETSCROLLWIDTHTRACKING 2517 +#define SCI_TEXTWIDTH 2276 +#define SCI_SETENDATLASTLINE 2277 +#define SCI_GETENDATLASTLINE 2278 +#define SCI_TEXTHEIGHT 2279 +#define SCI_SETVSCROLLBAR 2280 +#define SCI_GETVSCROLLBAR 2281 +#define SCI_APPENDTEXT 2282 +#define SCI_GETTWOPHASEDRAW 2283 +#define SCI_SETTWOPHASEDRAW 2284 +#define SC_PHASES_ONE 0 +#define SC_PHASES_TWO 1 +#define SC_PHASES_MULTIPLE 2 +#define SCI_GETPHASESDRAW 2673 +#define SCI_SETPHASESDRAW 2674 +#define SC_EFF_QUALITY_MASK 0xF +#define SC_EFF_QUALITY_DEFAULT 0 +#define SC_EFF_QUALITY_NON_ANTIALIASED 1 +#define SC_EFF_QUALITY_ANTIALIASED 2 +#define SC_EFF_QUALITY_LCD_OPTIMIZED 3 +#define SCI_SETFONTQUALITY 2611 +#define SCI_GETFONTQUALITY 2612 +#define SCI_SETFIRSTVISIBLELINE 2613 +#define SC_MULTIPASTE_ONCE 0 +#define SC_MULTIPASTE_EACH 1 +#define SCI_SETMULTIPASTE 2614 +#define SCI_GETMULTIPASTE 2615 +#define SCI_GETTAG 2616 +#define SCI_TARGETFROMSELECTION 2287 +#define SCI_LINESJOIN 2288 +#define SCI_LINESSPLIT 2289 +#define SCI_SETFOLDMARGINCOLOUR 2290 +#define SCI_SETFOLDMARGINHICOLOUR 2291 +#define SCI_LINEDOWN 2300 +#define SCI_LINEDOWNEXTEND 2301 +#define SCI_LINEUP 2302 +#define SCI_LINEUPEXTEND 2303 +#define SCI_CHARLEFT 2304 +#define SCI_CHARLEFTEXTEND 2305 +#define SCI_CHARRIGHT 2306 +#define SCI_CHARRIGHTEXTEND 2307 +#define SCI_WORDLEFT 2308 +#define SCI_WORDLEFTEXTEND 2309 +#define SCI_WORDRIGHT 2310 +#define SCI_WORDRIGHTEXTEND 2311 +#define SCI_HOME 2312 +#define SCI_HOMEEXTEND 2313 +#define SCI_LINEEND 2314 +#define SCI_LINEENDEXTEND 2315 +#define SCI_DOCUMENTSTART 2316 +#define SCI_DOCUMENTSTARTEXTEND 2317 +#define SCI_DOCUMENTEND 2318 +#define SCI_DOCUMENTENDEXTEND 2319 +#define SCI_PAGEUP 2320 +#define SCI_PAGEUPEXTEND 2321 +#define SCI_PAGEDOWN 2322 +#define SCI_PAGEDOWNEXTEND 2323 +#define SCI_EDITTOGGLEOVERTYPE 2324 +#define SCI_CANCEL 2325 +#define SCI_DELETEBACK 2326 +#define SCI_TAB 2327 +#define SCI_BACKTAB 2328 +#define SCI_NEWLINE 2329 +#define SCI_FORMFEED 2330 +#define SCI_VCHOME 2331 +#define SCI_VCHOMEEXTEND 2332 +#define SCI_ZOOMIN 2333 +#define SCI_ZOOMOUT 2334 +#define SCI_DELWORDLEFT 2335 +#define SCI_DELWORDRIGHT 2336 +#define SCI_DELWORDRIGHTEND 2518 +#define SCI_LINECUT 2337 +#define SCI_LINEDELETE 2338 +#define SCI_LINETRANSPOSE 2339 +#define SCI_LINEDUPLICATE 2404 +#define SCI_LOWERCASE 2340 +#define SCI_UPPERCASE 2341 +#define SCI_LINESCROLLDOWN 2342 +#define SCI_LINESCROLLUP 2343 +#define SCI_DELETEBACKNOTLINE 2344 +#define SCI_HOMEDISPLAY 2345 +#define SCI_HOMEDISPLAYEXTEND 2346 +#define SCI_LINEENDDISPLAY 2347 +#define SCI_LINEENDDISPLAYEXTEND 2348 +#define SCI_HOMEWRAP 2349 +#define SCI_HOMEWRAPEXTEND 2450 +#define SCI_LINEENDWRAP 2451 +#define SCI_LINEENDWRAPEXTEND 2452 +#define SCI_VCHOMEWRAP 2453 +#define SCI_VCHOMEWRAPEXTEND 2454 +#define SCI_LINECOPY 2455 +#define SCI_MOVECARETINSIDEVIEW 2401 +#define SCI_LINELENGTH 2350 +#define SCI_BRACEHIGHLIGHT 2351 +#define SCI_BRACEHIGHLIGHTINDICATOR 2498 +#define SCI_BRACEBADLIGHT 2352 +#define SCI_BRACEBADLIGHTINDICATOR 2499 +#define SCI_BRACEMATCH 2353 +#define SCI_GETVIEWEOL 2355 +#define SCI_SETVIEWEOL 2356 +#define SCI_GETDOCPOINTER 2357 +#define SCI_SETDOCPOINTER 2358 +#define SCI_SETMODEVENTMASK 2359 +#define EDGE_NONE 0 +#define EDGE_LINE 1 +#define EDGE_BACKGROUND 2 +#define SCI_GETEDGECOLUMN 2360 +#define SCI_SETEDGECOLUMN 2361 +#define SCI_GETEDGEMODE 2362 +#define SCI_SETEDGEMODE 2363 +#define SCI_GETEDGECOLOUR 2364 +#define SCI_SETEDGECOLOUR 2365 +#define SCI_SEARCHANCHOR 2366 +#define SCI_SEARCHNEXT 2367 +#define SCI_SEARCHPREV 2368 +#define SCI_LINESONSCREEN 2370 +#define SCI_USEPOPUP 2371 +#define SCI_SELECTIONISRECTANGLE 2372 +#define SCI_SETZOOM 2373 +#define SCI_GETZOOM 2374 +#define SCI_CREATEDOCUMENT 2375 +#define SCI_ADDREFDOCUMENT 2376 +#define SCI_RELEASEDOCUMENT 2377 +#define SCI_GETMODEVENTMASK 2378 +#define SCI_SETFOCUS 2380 +#define SCI_GETFOCUS 2381 +#define SC_STATUS_OK 0 +#define SC_STATUS_FAILURE 1 +#define SC_STATUS_BADALLOC 2 +#define SC_STATUS_WARN_START 1000 +#define SC_STATUS_WARN_REGEX 1001 +#define SCI_SETSTATUS 2382 +#define SCI_GETSTATUS 2383 +#define SCI_SETMOUSEDOWNCAPTURES 2384 +#define SCI_GETMOUSEDOWNCAPTURES 2385 +#define SC_CURSORNORMAL -1 +#define SC_CURSORARROW 2 +#define SC_CURSORWAIT 4 +#define SC_CURSORREVERSEARROW 7 +#define SCI_SETCURSOR 2386 +#define SCI_GETCURSOR 2387 +#define SCI_SETCONTROLCHARSYMBOL 2388 +#define SCI_GETCONTROLCHARSYMBOL 2389 +#define SCI_WORDPARTLEFT 2390 +#define SCI_WORDPARTLEFTEXTEND 2391 +#define SCI_WORDPARTRIGHT 2392 +#define SCI_WORDPARTRIGHTEXTEND 2393 +#define VISIBLE_SLOP 0x01 +#define VISIBLE_STRICT 0x04 +#define SCI_SETVISIBLEPOLICY 2394 +#define SCI_DELLINELEFT 2395 +#define SCI_DELLINERIGHT 2396 +#define SCI_SETXOFFSET 2397 +#define SCI_GETXOFFSET 2398 +#define SCI_CHOOSECARETX 2399 +#define SCI_GRABFOCUS 2400 +#define CARET_SLOP 0x01 +#define CARET_STRICT 0x04 +#define CARET_JUMPS 0x10 +#define CARET_EVEN 0x08 +#define SCI_SETXCARETPOLICY 2402 +#define SCI_SETYCARETPOLICY 2403 +#define SCI_SETPRINTWRAPMODE 2406 +#define SCI_GETPRINTWRAPMODE 2407 +#define SCI_SETHOTSPOTACTIVEFORE 2410 +#define SCI_GETHOTSPOTACTIVEFORE 2494 +#define SCI_SETHOTSPOTACTIVEBACK 2411 +#define SCI_GETHOTSPOTACTIVEBACK 2495 +#define SCI_SETHOTSPOTACTIVEUNDERLINE 2412 +#define SCI_GETHOTSPOTACTIVEUNDERLINE 2496 +#define SCI_SETHOTSPOTSINGLELINE 2421 +#define SCI_GETHOTSPOTSINGLELINE 2497 +#define SCI_PARADOWN 2413 +#define SCI_PARADOWNEXTEND 2414 +#define SCI_PARAUP 2415 +#define SCI_PARAUPEXTEND 2416 +#define SCI_POSITIONBEFORE 2417 +#define SCI_POSITIONAFTER 2418 +#define SCI_POSITIONRELATIVE 2670 +#define SCI_COPYRANGE 2419 +#define SCI_COPYTEXT 2420 +#define SC_SEL_STREAM 0 +#define SC_SEL_RECTANGLE 1 +#define SC_SEL_LINES 2 +#define SC_SEL_THIN 3 +#define SCI_SETSELECTIONMODE 2422 +#define SCI_GETSELECTIONMODE 2423 +#define SCI_GETLINESELSTARTPOSITION 2424 +#define SCI_GETLINESELENDPOSITION 2425 +#define SCI_LINEDOWNRECTEXTEND 2426 +#define SCI_LINEUPRECTEXTEND 2427 +#define SCI_CHARLEFTRECTEXTEND 2428 +#define SCI_CHARRIGHTRECTEXTEND 2429 +#define SCI_HOMERECTEXTEND 2430 +#define SCI_VCHOMERECTEXTEND 2431 +#define SCI_LINEENDRECTEXTEND 2432 +#define SCI_PAGEUPRECTEXTEND 2433 +#define SCI_PAGEDOWNRECTEXTEND 2434 +#define SCI_STUTTEREDPAGEUP 2435 +#define SCI_STUTTEREDPAGEUPEXTEND 2436 +#define SCI_STUTTEREDPAGEDOWN 2437 +#define SCI_STUTTEREDPAGEDOWNEXTEND 2438 +#define SCI_WORDLEFTEND 2439 +#define SCI_WORDLEFTENDEXTEND 2440 +#define SCI_WORDRIGHTEND 2441 +#define SCI_WORDRIGHTENDEXTEND 2442 +#define SCI_SETWHITESPACECHARS 2443 +#define SCI_GETWHITESPACECHARS 2647 +#define SCI_SETPUNCTUATIONCHARS 2648 +#define SCI_GETPUNCTUATIONCHARS 2649 +#define SCI_SETCHARSDEFAULT 2444 +#define SCI_AUTOCGETCURRENT 2445 +#define SCI_AUTOCGETCURRENTTEXT 2610 +#define SC_CASEINSENSITIVEBEHAVIOUR_RESPECTCASE 0 +#define SC_CASEINSENSITIVEBEHAVIOUR_IGNORECASE 1 +#define SCI_AUTOCSETCASEINSENSITIVEBEHAVIOUR 2634 +#define SCI_AUTOCGETCASEINSENSITIVEBEHAVIOUR 2635 +#define SC_MULTIAUTOC_ONCE 0 +#define SC_MULTIAUTOC_EACH 1 +#define SCI_AUTOCSETMULTI 2636 +#define SCI_AUTOCGETMULTI 2637 +#define SC_ORDER_PRESORTED 0 +#define SC_ORDER_PERFORMSORT 1 +#define SC_ORDER_CUSTOM 2 +#define SCI_AUTOCSETORDER 2660 +#define SCI_AUTOCGETORDER 2661 +#define SCI_ALLOCATE 2446 +#define SCI_TARGETASUTF8 2447 +#define SCI_SETLENGTHFORENCODE 2448 +#define SCI_ENCODEDFROMUTF8 2449 +#define SCI_FINDCOLUMN 2456 +#define SCI_GETCARETSTICKY 2457 +#define SCI_SETCARETSTICKY 2458 +#define SC_CARETSTICKY_OFF 0 +#define SC_CARETSTICKY_ON 1 +#define SC_CARETSTICKY_WHITESPACE 2 +#define SCI_TOGGLECARETSTICKY 2459 +#define SCI_SETPASTECONVERTENDINGS 2467 +#define SCI_GETPASTECONVERTENDINGS 2468 +#define SCI_SELECTIONDUPLICATE 2469 +#define SC_ALPHA_TRANSPARENT 0 +#define SC_ALPHA_OPAQUE 255 +#define SC_ALPHA_NOALPHA 256 +#define SCI_SETCARETLINEBACKALPHA 2470 +#define SCI_GETCARETLINEBACKALPHA 2471 +#define CARETSTYLE_INVISIBLE 0 +#define CARETSTYLE_LINE 1 +#define CARETSTYLE_BLOCK 2 +#define SCI_SETCARETSTYLE 2512 +#define SCI_GETCARETSTYLE 2513 +#define SCI_SETINDICATORCURRENT 2500 +#define SCI_GETINDICATORCURRENT 2501 +#define SCI_SETINDICATORVALUE 2502 +#define SCI_GETINDICATORVALUE 2503 +#define SCI_INDICATORFILLRANGE 2504 +#define SCI_INDICATORCLEARRANGE 2505 +#define SCI_INDICATORALLONFOR 2506 +#define SCI_INDICATORVALUEAT 2507 +#define SCI_INDICATORSTART 2508 +#define SCI_INDICATOREND 2509 +#define SCI_SETPOSITIONCACHE 2514 +#define SCI_GETPOSITIONCACHE 2515 +#define SCI_COPYALLOWLINE 2519 +#define SCI_GETCHARACTERPOINTER 2520 +#define SCI_GETRANGEPOINTER 2643 +#define SCI_GETGAPPOSITION 2644 +#define SCI_INDICSETALPHA 2523 +#define SCI_INDICGETALPHA 2524 +#define SCI_INDICSETOUTLINEALPHA 2558 +#define SCI_INDICGETOUTLINEALPHA 2559 +#define SCI_SETEXTRAASCENT 2525 +#define SCI_GETEXTRAASCENT 2526 +#define SCI_SETEXTRADESCENT 2527 +#define SCI_GETEXTRADESCENT 2528 +#define SCI_MARKERSYMBOLDEFINED 2529 +#define SCI_MARGINSETTEXT 2530 +#define SCI_MARGINGETTEXT 2531 +#define SCI_MARGINSETSTYLE 2532 +#define SCI_MARGINGETSTYLE 2533 +#define SCI_MARGINSETSTYLES 2534 +#define SCI_MARGINGETSTYLES 2535 +#define SCI_MARGINTEXTCLEARALL 2536 +#define SCI_MARGINSETSTYLEOFFSET 2537 +#define SCI_MARGINGETSTYLEOFFSET 2538 +#define SC_MARGINOPTION_NONE 0 +#define SC_MARGINOPTION_SUBLINESELECT 1 +#define SCI_SETMARGINOPTIONS 2539 +#define SCI_GETMARGINOPTIONS 2557 +#define SCI_ANNOTATIONSETTEXT 2540 +#define SCI_ANNOTATIONGETTEXT 2541 +#define SCI_ANNOTATIONSETSTYLE 2542 +#define SCI_ANNOTATIONGETSTYLE 2543 +#define SCI_ANNOTATIONSETSTYLES 2544 +#define SCI_ANNOTATIONGETSTYLES 2545 +#define SCI_ANNOTATIONGETLINES 2546 +#define SCI_ANNOTATIONCLEARALL 2547 +#define ANNOTATION_HIDDEN 0 +#define ANNOTATION_STANDARD 1 +#define ANNOTATION_BOXED 2 +#define ANNOTATION_INDENTED 3 +#define SCI_ANNOTATIONSETVISIBLE 2548 +#define SCI_ANNOTATIONGETVISIBLE 2549 +#define SCI_ANNOTATIONSETSTYLEOFFSET 2550 +#define SCI_ANNOTATIONGETSTYLEOFFSET 2551 +#define SCI_RELEASEALLEXTENDEDSTYLES 2552 +#define SCI_ALLOCATEEXTENDEDSTYLES 2553 +#define UNDO_MAY_COALESCE 1 +#define SCI_ADDUNDOACTION 2560 +#define SCI_CHARPOSITIONFROMPOINT 2561 +#define SCI_CHARPOSITIONFROMPOINTCLOSE 2562 +#define SCI_SETMOUSESELECTIONRECTANGULARSWITCH 2668 +#define SCI_GETMOUSESELECTIONRECTANGULARSWITCH 2669 +#define SCI_SETMULTIPLESELECTION 2563 +#define SCI_GETMULTIPLESELECTION 2564 +#define SCI_SETADDITIONALSELECTIONTYPING 2565 +#define SCI_GETADDITIONALSELECTIONTYPING 2566 +#define SCI_SETADDITIONALCARETSBLINK 2567 +#define SCI_GETADDITIONALCARETSBLINK 2568 +#define SCI_SETADDITIONALCARETSVISIBLE 2608 +#define SCI_GETADDITIONALCARETSVISIBLE 2609 +#define SCI_GETSELECTIONS 2570 +#define SCI_GETSELECTIONEMPTY 2650 +#define SCI_CLEARSELECTIONS 2571 +#define SCI_SETSELECTION 2572 +#define SCI_ADDSELECTION 2573 +#define SCI_DROPSELECTIONN 2671 +#define SCI_SETMAINSELECTION 2574 +#define SCI_GETMAINSELECTION 2575 +#define SCI_SETSELECTIONNCARET 2576 +#define SCI_GETSELECTIONNCARET 2577 +#define SCI_SETSELECTIONNANCHOR 2578 +#define SCI_GETSELECTIONNANCHOR 2579 +#define SCI_SETSELECTIONNCARETVIRTUALSPACE 2580 +#define SCI_GETSELECTIONNCARETVIRTUALSPACE 2581 +#define SCI_SETSELECTIONNANCHORVIRTUALSPACE 2582 +#define SCI_GETSELECTIONNANCHORVIRTUALSPACE 2583 +#define SCI_SETSELECTIONNSTART 2584 +#define SCI_GETSELECTIONNSTART 2585 +#define SCI_SETSELECTIONNEND 2586 +#define SCI_GETSELECTIONNEND 2587 +#define SCI_SETRECTANGULARSELECTIONCARET 2588 +#define SCI_GETRECTANGULARSELECTIONCARET 2589 +#define SCI_SETRECTANGULARSELECTIONANCHOR 2590 +#define SCI_GETRECTANGULARSELECTIONANCHOR 2591 +#define SCI_SETRECTANGULARSELECTIONCARETVIRTUALSPACE 2592 +#define SCI_GETRECTANGULARSELECTIONCARETVIRTUALSPACE 2593 +#define SCI_SETRECTANGULARSELECTIONANCHORVIRTUALSPACE 2594 +#define SCI_GETRECTANGULARSELECTIONANCHORVIRTUALSPACE 2595 +#define SCVS_NONE 0 +#define SCVS_RECTANGULARSELECTION 1 +#define SCVS_USERACCESSIBLE 2 +#define SCI_SETVIRTUALSPACEOPTIONS 2596 +#define SCI_GETVIRTUALSPACEOPTIONS 2597 +#define SCI_SETRECTANGULARSELECTIONMODIFIER 2598 +#define SCI_GETRECTANGULARSELECTIONMODIFIER 2599 +#define SCI_SETADDITIONALSELFORE 2600 +#define SCI_SETADDITIONALSELBACK 2601 +#define SCI_SETADDITIONALSELALPHA 2602 +#define SCI_GETADDITIONALSELALPHA 2603 +#define SCI_SETADDITIONALCARETFORE 2604 +#define SCI_GETADDITIONALCARETFORE 2605 +#define SCI_ROTATESELECTION 2606 +#define SCI_SWAPMAINANCHORCARET 2607 +#define SCI_CHANGELEXERSTATE 2617 +#define SCI_CONTRACTEDFOLDNEXT 2618 +#define SCI_VERTICALCENTRECARET 2619 +#define SCI_MOVESELECTEDLINESUP 2620 +#define SCI_MOVESELECTEDLINESDOWN 2621 +#define SCI_SETIDENTIFIER 2622 +#define SCI_GETIDENTIFIER 2623 +#define SCI_RGBAIMAGESETWIDTH 2624 +#define SCI_RGBAIMAGESETHEIGHT 2625 +#define SCI_RGBAIMAGESETSCALE 2651 +#define SCI_MARKERDEFINERGBAIMAGE 2626 +#define SCI_REGISTERRGBAIMAGE 2627 +#define SCI_SCROLLTOSTART 2628 +#define SCI_SCROLLTOEND 2629 +#define SC_TECHNOLOGY_DEFAULT 0 +#define SC_TECHNOLOGY_DIRECTWRITE 1 +#define SC_TECHNOLOGY_DIRECTWRITERETAIN 2 +#define SC_TECHNOLOGY_DIRECTWRITEDC 3 +#define SCI_SETTECHNOLOGY 2630 +#define SCI_GETTECHNOLOGY 2631 +#define SCI_CREATELOADER 2632 +#define SCI_FINDINDICATORSHOW 2640 +#define SCI_FINDINDICATORFLASH 2641 +#define SCI_FINDINDICATORHIDE 2642 +#define SCI_VCHOMEDISPLAY 2652 +#define SCI_VCHOMEDISPLAYEXTEND 2653 +#define SCI_GETCARETLINEVISIBLEALWAYS 2654 +#define SCI_SETCARETLINEVISIBLEALWAYS 2655 +#define SC_LINE_END_TYPE_DEFAULT 0 +#define SC_LINE_END_TYPE_UNICODE 1 +#define SCI_SETLINEENDTYPESALLOWED 2656 +#define SCI_GETLINEENDTYPESALLOWED 2657 +#define SCI_GETLINEENDTYPESACTIVE 2658 +#define SCI_SETREPRESENTATION 2665 +#define SCI_GETREPRESENTATION 2666 +#define SCI_CLEARREPRESENTATION 2667 +#define SCI_STARTRECORD 3001 +#define SCI_STOPRECORD 3002 +#define SCI_SETLEXER 4001 +#define SCI_GETLEXER 4002 +#define SCI_COLOURISE 4003 +#define SCI_SETPROPERTY 4004 +// #define KEYWORDSET_MAX 8 +#define KEYWORDSET_MAX 30 +#define SCI_SETKEYWORDS 4005 +#define SCI_SETLEXERLANGUAGE 4006 +#define SCI_LOADLEXERLIBRARY 4007 +#define SCI_GETPROPERTY 4008 +#define SCI_GETPROPERTYEXPANDED 4009 +#define SCI_GETPROPERTYINT 4010 +#define SCI_GETSTYLEBITSNEEDED 4011 +#define SCI_GETLEXERLANGUAGE 4012 +#define SCI_PRIVATELEXERCALL 4013 +#define SCI_PROPERTYNAMES 4014 +#define SC_TYPE_BOOLEAN 0 +#define SC_TYPE_INTEGER 1 +#define SC_TYPE_STRING 2 +#define SCI_PROPERTYTYPE 4015 +#define SCI_DESCRIBEPROPERTY 4016 +#define SCI_DESCRIBEKEYWORDSETS 4017 +#define SCI_GETLINEENDTYPESSUPPORTED 4018 +#define SCI_ALLOCATESUBSTYLES 4020 +#define SCI_GETSUBSTYLESSTART 4021 +#define SCI_GETSUBSTYLESLENGTH 4022 +#define SCI_GETSTYLEFROMSUBSTYLE 4027 +#define SCI_GETPRIMARYSTYLEFROMSTYLE 4028 +#define SCI_FREESUBSTYLES 4023 +#define SCI_SETIDENTIFIERS 4024 +#define SCI_DISTANCETOSECONDARYSTYLES 4025 +#define SCI_GETSUBSTYLEBASES 4026 +#define SC_MOD_INSERTTEXT 0x1 +#define SC_MOD_DELETETEXT 0x2 +#define SC_MOD_CHANGESTYLE 0x4 +#define SC_MOD_CHANGEFOLD 0x8 +#define SC_PERFORMED_USER 0x10 +#define SC_PERFORMED_UNDO 0x20 +#define SC_PERFORMED_REDO 0x40 +#define SC_MULTISTEPUNDOREDO 0x80 +#define SC_LASTSTEPINUNDOREDO 0x100 +#define SC_MOD_CHANGEMARKER 0x200 +#define SC_MOD_BEFOREINSERT 0x400 +#define SC_MOD_BEFOREDELETE 0x800 +#define SC_MULTILINEUNDOREDO 0x1000 +#define SC_STARTACTION 0x2000 +#define SC_MOD_CHANGEINDICATOR 0x4000 +#define SC_MOD_CHANGELINESTATE 0x8000 +#define SC_MOD_CHANGEMARGIN 0x10000 +#define SC_MOD_CHANGEANNOTATION 0x20000 +#define SC_MOD_CONTAINER 0x40000 +#define SC_MOD_LEXERSTATE 0x80000 +#define SC_MOD_INSERTCHECK 0x100000 +#define SC_MOD_CHANGETABSTOPS 0x200000 +#define SC_MODEVENTMASKALL 0x3FFFFF +#define SC_SEARCHRESULT_LINEBUFFERMAXLENGTH 1024 +#define SC_UPDATE_CONTENT 0x1 +#define SC_UPDATE_SELECTION 0x2 +#define SC_UPDATE_V_SCROLL 0x4 +#define SC_UPDATE_H_SCROLL 0x8 +#define SCEN_CHANGE 768 +#define SCEN_SETFOCUS 512 +#define SCEN_KILLFOCUS 256 +#define SCK_DOWN 300 +#define SCK_UP 301 +#define SCK_LEFT 302 +#define SCK_RIGHT 303 +#define SCK_HOME 304 +#define SCK_END 305 +#define SCK_PRIOR 306 +#define SCK_NEXT 307 +#define SCK_DELETE 308 +#define SCK_INSERT 309 +#define SCK_ESCAPE 7 +#define SCK_BACK 8 +#define SCK_TAB 9 +#define SCK_RETURN 13 +#define SCK_ADD 310 +#define SCK_SUBTRACT 311 +#define SCK_DIVIDE 312 +#define SCK_WIN 313 +#define SCK_RWIN 314 +#define SCK_MENU 315 +#define SCMOD_NORM 0 +#define SCMOD_SHIFT 1 +#define SCMOD_CTRL 2 +#define SCMOD_ALT 4 +#define SCMOD_SUPER 8 +#define SCMOD_META 16 +#define SCN_STYLENEEDED 2000 +#define SCN_CHARADDED 2001 +#define SCN_SAVEPOINTREACHED 2002 +#define SCN_SAVEPOINTLEFT 2003 +#define SCN_MODIFYATTEMPTRO 2004 +#define SCN_KEY 2005 +#define SCN_DOUBLECLICK 2006 +#define SCN_UPDATEUI 2007 +#define SCN_MODIFIED 2008 +#define SCN_MACRORECORD 2009 +#define SCN_MARGINCLICK 2010 +#define SCN_NEEDSHOWN 2011 +#define SCN_PAINTED 2013 +#define SCN_USERLISTSELECTION 2014 +#define SCN_URIDROPPED 2015 +#define SCN_DWELLSTART 2016 +#define SCN_DWELLEND 2017 +#define SCN_ZOOM 2018 +#define SCN_HOTSPOTCLICK 2019 +#define SCN_HOTSPOTDOUBLECLICK 2020 +#define SCN_CALLTIPCLICK 2021 +#define SCN_AUTOCSELECTION 2022 +#define SCN_INDICATORCLICK 2023 +#define SCN_INDICATORRELEASE 2024 +#define SCN_AUTOCCANCELLED 2025 +#define SCN_AUTOCCHARDELETED 2026 +#define SCN_HOTSPOTRELEASECLICK 2027 +#define SCN_FOCUSIN 2028 +#define SCN_FOCUSOUT 2029 +#define SCN_SCROLLED 2080 +#define SCN_FOLDINGSTATECHANGED 2081 +/* --Autogenerated -- end of section automatically generated from Scintilla.iface */ + +/* These structures are defined to be exactly the same shape as the Win32 + * CHARRANGE, TEXTRANGE, FINDTEXTEX, FORMATRANGE, and NMHDR structs. + * So older code that treats Scintilla as a RichEdit will work. */ + +#if defined(__cplusplus) && defined(SCI_NAMESPACE) +namespace Scintilla { +#endif + +struct Sci_CharacterRange { + long cpMin; + long cpMax; +}; + +struct Sci_TextRange { + struct Sci_CharacterRange chrg; + char *lpstrText; +}; + +struct Sci_TextToFind { + struct Sci_CharacterRange chrg; + const char *lpstrText; + struct Sci_CharacterRange chrgText; +}; + +#define CharacterRange Sci_CharacterRange +#define TextRange Sci_TextRange +#define TextToFind Sci_TextToFind + +typedef void *Sci_SurfaceID; + +struct Sci_Rectangle { + int left; + int top; + int right; + int bottom; +}; + +/* This structure is used in printing and requires some of the graphics types + * from Platform.h. Not needed by most client code. */ + +struct Sci_RangeToFormat { + Sci_SurfaceID hdc; + Sci_SurfaceID hdcTarget; + struct Sci_Rectangle rc; + struct Sci_Rectangle rcPage; + struct Sci_CharacterRange chrg; +}; + +#define RangeToFormat Sci_RangeToFormat + +struct Sci_NotifyHeader { + /* Compatible with Windows NMHDR. + * hwndFrom is really an environment specific window handle or pointer + * but most clients of Scintilla.h do not have this type visible. */ + void *hwndFrom; + uptr_t idFrom; + unsigned int code; +}; + +#define NotifyHeader Sci_NotifyHeader + +struct SCNotification { + struct Sci_NotifyHeader nmhdr; + int position; + /* SCN_STYLENEEDED, SCN_DOUBLECLICK, SCN_MODIFIED, SCN_MARGINCLICK, */ + /* SCN_NEEDSHOWN, SCN_DWELLSTART, SCN_DWELLEND, SCN_CALLTIPCLICK, */ + /* SCN_HOTSPOTCLICK, SCN_HOTSPOTDOUBLECLICK, SCN_HOTSPOTRELEASECLICK, */ + /* SCN_INDICATORCLICK, SCN_INDICATORRELEASE, */ + /* SCN_USERLISTSELECTION, SCN_AUTOCSELECTION */ + + int ch; /* SCN_CHARADDED, SCN_KEY */ + int modifiers; + /* SCN_KEY, SCN_DOUBLECLICK, SCN_HOTSPOTCLICK, SCN_HOTSPOTDOUBLECLICK, */ + /* SCN_HOTSPOTRELEASECLICK, SCN_INDICATORCLICK, SCN_INDICATORRELEASE, */ + + int modificationType; /* SCN_MODIFIED */ + const char *text; + /* SCN_MODIFIED, SCN_USERLISTSELECTION, SCN_AUTOCSELECTION, SCN_URIDROPPED */ + + int length; /* SCN_MODIFIED */ + int linesAdded; /* SCN_MODIFIED */ + int message; /* SCN_MACRORECORD */ + uptr_t wParam; /* SCN_MACRORECORD */ + sptr_t lParam; /* SCN_MACRORECORD */ + int line; /* SCN_MODIFIED */ + int foldLevelNow; /* SCN_MODIFIED */ + int foldLevelPrev; /* SCN_MODIFIED */ + int margin; /* SCN_MARGINCLICK */ + int listType; /* SCN_USERLISTSELECTION */ + int x; /* SCN_DWELLSTART, SCN_DWELLEND */ + int y; /* SCN_DWELLSTART, SCN_DWELLEND */ + int token; /* SCN_MODIFIED with SC_MOD_CONTAINER */ + int annotationLinesAdded; /* SCN_MODIFIED with SC_MOD_CHANGEANNOTATION */ + int updated; /* SCN_UPDATEUI */ +}; + +struct SearchResultMarking { + long _start; + long _end; +}; + +struct SearchResultMarkings { + long _length; + SearchResultMarking *_markings; +}; + +#if defined(__cplusplus) && defined(SCI_NAMESPACE) +} +#endif + +#ifdef INCLUDE_DEPRECATED_FEATURES + +#define SC_CP_DBCS 1 +#define SCI_SETUSEPALETTE 2039 +#define SCI_GETUSEPALETTE 2139 +#define SCI_SETKEYSUNICODE 2521 +#define SCI_GETKEYSUNICODE 2522 + +#endif + +#endif diff --git a/src/Npp/menuCmdID.h b/src/Npp/menuCmdID.h new file mode 100644 index 0000000..eb171bf --- /dev/null +++ b/src/Npp/menuCmdID.h @@ -0,0 +1,522 @@ +// This file is part of Notepad++ project +// Copyright (C)2003 Don HO +// +// This program is free software; you can redistribute it and/or +// modify it under the terms of the GNU General Public License +// as published by the Free Software Foundation; either +// version 2 of the License, or (at your option) any later version. +// +// Note that the GPL places important restrictions on "derived works", yet +// it does not provide a detailed definition of that term. To avoid +// misunderstandings, we consider an application to constitute a +// "derivative work" for the purpose of this license if it does any of the +// following: +// 1. Integrates source code from Notepad++. +// 2. Integrates/includes/aggregates Notepad++ into a proprietary executable +// installer, such as those produced by InstallShield. +// 3. Links to a library or executes a program that does any of the above. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program; if not, write to the Free Software +// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + + +#ifndef MENUCMDID_H +#define MENUCMDID_H + +#define IDM 40000 + +#define IDM_FILE (IDM + 1000) +// IMPORTANT: If list below is modified, you have to change the value of IDM_FILEMENU_LASTONE and IDM_FILEMENU_EXISTCMDPOSITION + #define IDM_FILE_NEW (IDM_FILE + 1) + #define IDM_FILE_OPEN (IDM_FILE + 2) + #define IDM_FILE_CLOSE (IDM_FILE + 3) + #define IDM_FILE_CLOSEALL (IDM_FILE + 4) + #define IDM_FILE_CLOSEALL_BUT_CURRENT (IDM_FILE + 5) + #define IDM_FILE_SAVE (IDM_FILE + 6) + #define IDM_FILE_SAVEALL (IDM_FILE + 7) + #define IDM_FILE_SAVEAS (IDM_FILE + 8) + #define IDM_FILE_CLOSEALL_TOLEFT (IDM_FILE + 9) + #define IDM_FILE_PRINT (IDM_FILE + 10) + #define IDM_FILE_PRINTNOW 1001 + #define IDM_FILE_EXIT (IDM_FILE + 11) + #define IDM_FILE_LOADSESSION (IDM_FILE + 12) + #define IDM_FILE_SAVESESSION (IDM_FILE + 13) + #define IDM_FILE_RELOAD (IDM_FILE + 14) + #define IDM_FILE_SAVECOPYAS (IDM_FILE + 15) + #define IDM_FILE_DELETE (IDM_FILE + 16) + #define IDM_FILE_RENAME (IDM_FILE + 17) + #define IDM_FILE_CLOSEALL_TORIGHT (IDM_FILE + 18) + #define IDM_FILE_OPEN_FOLDER (IDM_FILE + 19) + #define IDM_FILE_OPEN_CMD (IDM_FILE + 20) + #define IDM_FILE_RESTORELASTCLOSEDFILE (IDM_FILE + 21) + #define IDM_FILE_OPENFOLDERASWORSPACE (IDM_FILE + 22) +// IMPORTANT: If list above is modified, you have to change the following values: + +// To be updated if new menu item(s) is (are) added in menu "File" + #define IDM_FILEMENU_LASTONE IDM_FILE_OPENFOLDERASWORSPACE + +// 0 based position of command "Exit" including the bars in the file menu +// and without counting "Recent files history" items + +// 0 New +// 1 Open... +// 2 Open Containing Folder +// 3 Open Folder as Workspace +// 4 Reload from Disk +// 5 Save +// 6 Save As... +// 7 Save a Copy As... +// 8 Save All +// 9 Rename... +//10 Close +//11 Close All +//12 Close More +//13 Move to Recycle Bin +//14 -------- +//15 Load Session... +//16 Save Session... +//17 -------- +//18 Print... +//19 Print Now +//20 -------- +//21 Exit + #define IDM_FILEMENU_EXISTCMDPOSITION 21 + + +#define IDM_EDIT (IDM + 2000) + #define IDM_EDIT_CUT (IDM_EDIT + 1) + #define IDM_EDIT_COPY (IDM_EDIT + 2) + #define IDM_EDIT_UNDO (IDM_EDIT + 3) + #define IDM_EDIT_REDO (IDM_EDIT + 4) + #define IDM_EDIT_PASTE (IDM_EDIT + 5) + #define IDM_EDIT_DELETE (IDM_EDIT + 6) + #define IDM_EDIT_SELECTALL (IDM_EDIT + 7) + #define IDM_EDIT_BEGINENDSELECT (IDM_EDIT + 20) + + #define IDM_EDIT_INS_TAB (IDM_EDIT + 8) + #define IDM_EDIT_RMV_TAB (IDM_EDIT + 9) + #define IDM_EDIT_DUP_LINE (IDM_EDIT + 10) + #define IDM_EDIT_TRANSPOSE_LINE (IDM_EDIT + 11) + #define IDM_EDIT_SPLIT_LINES (IDM_EDIT + 12) + #define IDM_EDIT_JOIN_LINES (IDM_EDIT + 13) + #define IDM_EDIT_LINE_UP (IDM_EDIT + 14) + #define IDM_EDIT_LINE_DOWN (IDM_EDIT + 15) + #define IDM_EDIT_UPPERCASE (IDM_EDIT + 16) + #define IDM_EDIT_LOWERCASE (IDM_EDIT + 17) + #define IDM_EDIT_REMOVEEMPTYLINES (IDM_EDIT + 55) + #define IDM_EDIT_REMOVEEMPTYLINESWITHBLANK (IDM_EDIT + 56) + #define IDM_EDIT_BLANKLINEABOVECURRENT (IDM_EDIT + 57) + #define IDM_EDIT_BLANKLINEBELOWCURRENT (IDM_EDIT + 58) + #define IDM_EDIT_SORTLINES_LEXICOGRAPHIC_ASCENDING (IDM_EDIT + 59) + #define IDM_EDIT_SORTLINES_LEXICOGRAPHIC_DESCENDING (IDM_EDIT + 60) + #define IDM_EDIT_SORTLINES_INTEGER_ASCENDING (IDM_EDIT + 61) + #define IDM_EDIT_SORTLINES_INTEGER_DESCENDING (IDM_EDIT + 62) + #define IDM_EDIT_SORTLINES_DECIMALCOMMA_ASCENDING (IDM_EDIT + 63) + #define IDM_EDIT_SORTLINES_DECIMALCOMMA_DESCENDING (IDM_EDIT + 64) + #define IDM_EDIT_SORTLINES_DECIMALDOT_ASCENDING (IDM_EDIT + 65) + #define IDM_EDIT_SORTLINES_DECIMALDOT_DESCENDING (IDM_EDIT + 66) + +// Menu macro + #define IDM_MACRO_STARTRECORDINGMACRO (IDM_EDIT + 18) + #define IDM_MACRO_STOPRECORDINGMACRO (IDM_EDIT + 19) + #define IDM_MACRO_PLAYBACKRECORDEDMACRO (IDM_EDIT + 21) +//----------- + + #define IDM_EDIT_BLOCK_COMMENT (IDM_EDIT + 22) + #define IDM_EDIT_STREAM_COMMENT (IDM_EDIT + 23) + #define IDM_EDIT_TRIMTRAILING (IDM_EDIT + 24) + #define IDM_EDIT_TRIMLINEHEAD (IDM_EDIT + 42) + #define IDM_EDIT_TRIM_BOTH (IDM_EDIT + 43) + #define IDM_EDIT_EOL2WS (IDM_EDIT + 44) + #define IDM_EDIT_TRIMALL (IDM_EDIT + 45) + #define IDM_EDIT_TAB2SW (IDM_EDIT + 46) + #define IDM_EDIT_SW2TAB_LEADING (IDM_EDIT + 53) + #define IDM_EDIT_SW2TAB_ALL (IDM_EDIT + 54) + #define IDM_EDIT_STREAM_UNCOMMENT (IDM_EDIT + 47) + +// Menu macro + #define IDM_MACRO_SAVECURRENTMACRO (IDM_EDIT + 25) +//----------- + + #define IDM_EDIT_RTL (IDM_EDIT + 26) + #define IDM_EDIT_LTR (IDM_EDIT + 27) + #define IDM_EDIT_SETREADONLY (IDM_EDIT + 28) + #define IDM_EDIT_FULLPATHTOCLIP (IDM_EDIT + 29) + #define IDM_EDIT_FILENAMETOCLIP (IDM_EDIT + 30) + #define IDM_EDIT_CURRENTDIRTOCLIP (IDM_EDIT + 31) + +// Menu macro + #define IDM_MACRO_RUNMULTIMACRODLG (IDM_EDIT + 32) +//----------- + + #define IDM_EDIT_CLEARREADONLY (IDM_EDIT + 33) + #define IDM_EDIT_COLUMNMODE (IDM_EDIT + 34) + #define IDM_EDIT_BLOCK_COMMENT_SET (IDM_EDIT + 35) + #define IDM_EDIT_BLOCK_UNCOMMENT (IDM_EDIT + 36) + #define IDM_EDIT_COLUMNMODETIP (IDM_EDIT + 37) + #define IDM_EDIT_PASTE_AS_HTML (IDM_EDIT + 38) + #define IDM_EDIT_PASTE_AS_RTF (IDM_EDIT + 39) + #define IDM_EDIT_COPY_BINARY (IDM_EDIT + 48) + #define IDM_EDIT_CUT_BINARY (IDM_EDIT + 49) + #define IDM_EDIT_PASTE_BINARY (IDM_EDIT + 50) + #define IDM_EDIT_CHAR_PANEL (IDM_EDIT + 51) + #define IDM_EDIT_CLIPBOARDHISTORY_PANEL (IDM_EDIT + 52) + + #define IDM_EDIT_AUTOCOMPLETE (50000 + 0) + #define IDM_EDIT_AUTOCOMPLETE_CURRENTFILE (50000 + 1) + #define IDM_EDIT_FUNCCALLTIP (50000 + 2) + #define IDM_EDIT_AUTOCOMPLETE_PATH (50000 + 6) + + //Belong to MENU FILE + #define IDM_OPEN_ALL_RECENT_FILE (IDM_EDIT + 40) + #define IDM_CLEAN_RECENT_FILE_LIST (IDM_EDIT + 41) + +#define IDM_SEARCH (IDM + 3000) + #define IDM_SEARCH_FIND (IDM_SEARCH + 1) + #define IDM_SEARCH_FINDNEXT (IDM_SEARCH + 2) + #define IDM_SEARCH_REPLACE (IDM_SEARCH + 3) + #define IDM_SEARCH_GOTOLINE (IDM_SEARCH + 4) + #define IDM_SEARCH_TOGGLE_BOOKMARK (IDM_SEARCH + 5) + #define IDM_SEARCH_NEXT_BOOKMARK (IDM_SEARCH + 6) + #define IDM_SEARCH_PREV_BOOKMARK (IDM_SEARCH + 7) + #define IDM_SEARCH_CLEAR_BOOKMARKS (IDM_SEARCH + 8) + #define IDM_SEARCH_GOTOMATCHINGBRACE (IDM_SEARCH + 9) + #define IDM_SEARCH_FINDPREV (IDM_SEARCH + 10) + #define IDM_SEARCH_FINDINCREMENT (IDM_SEARCH + 11) + #define IDM_SEARCH_FINDINFILES (IDM_SEARCH + 13) + #define IDM_SEARCH_VOLATILE_FINDNEXT (IDM_SEARCH + 14) + #define IDM_SEARCH_VOLATILE_FINDPREV (IDM_SEARCH + 15) + #define IDM_SEARCH_CUTMARKEDLINES (IDM_SEARCH + 18) + #define IDM_SEARCH_COPYMARKEDLINES (IDM_SEARCH + 19) + #define IDM_SEARCH_PASTEMARKEDLINES (IDM_SEARCH + 20) + #define IDM_SEARCH_DELETEMARKEDLINES (IDM_SEARCH + 21) + #define IDM_SEARCH_MARKALLEXT1 (IDM_SEARCH + 22) + #define IDM_SEARCH_UNMARKALLEXT1 (IDM_SEARCH + 23) + #define IDM_SEARCH_MARKALLEXT2 (IDM_SEARCH + 24) + #define IDM_SEARCH_UNMARKALLEXT2 (IDM_SEARCH + 25) + #define IDM_SEARCH_MARKALLEXT3 (IDM_SEARCH + 26) + #define IDM_SEARCH_UNMARKALLEXT3 (IDM_SEARCH + 27) + #define IDM_SEARCH_MARKALLEXT4 (IDM_SEARCH + 28) + #define IDM_SEARCH_UNMARKALLEXT4 (IDM_SEARCH + 29) + #define IDM_SEARCH_MARKALLEXT5 (IDM_SEARCH + 30) + #define IDM_SEARCH_UNMARKALLEXT5 (IDM_SEARCH + 31) + #define IDM_SEARCH_CLEARALLMARKS (IDM_SEARCH + 32) + + #define IDM_SEARCH_GOPREVMARKER1 (IDM_SEARCH + 33) + #define IDM_SEARCH_GOPREVMARKER2 (IDM_SEARCH + 34) + #define IDM_SEARCH_GOPREVMARKER3 (IDM_SEARCH + 35) + #define IDM_SEARCH_GOPREVMARKER4 (IDM_SEARCH + 36) + #define IDM_SEARCH_GOPREVMARKER5 (IDM_SEARCH + 37) + #define IDM_SEARCH_GOPREVMARKER_DEF (IDM_SEARCH + 38) + + #define IDM_SEARCH_GONEXTMARKER1 (IDM_SEARCH + 39) + #define IDM_SEARCH_GONEXTMARKER2 (IDM_SEARCH + 40) + #define IDM_SEARCH_GONEXTMARKER3 (IDM_SEARCH + 41) + #define IDM_SEARCH_GONEXTMARKER4 (IDM_SEARCH + 42) + #define IDM_SEARCH_GONEXTMARKER5 (IDM_SEARCH + 43) + #define IDM_SEARCH_GONEXTMARKER_DEF (IDM_SEARCH + 44) + + #define IDM_FOCUS_ON_FOUND_RESULTS (IDM_SEARCH + 45) + #define IDM_SEARCH_GOTONEXTFOUND (IDM_SEARCH + 46) + #define IDM_SEARCH_GOTOPREVFOUND (IDM_SEARCH + 47) + + #define IDM_SEARCH_SETANDFINDNEXT (IDM_SEARCH + 48) + #define IDM_SEARCH_SETANDFINDPREV (IDM_SEARCH + 49) + #define IDM_SEARCH_INVERSEMARKS (IDM_SEARCH + 50) + #define IDM_SEARCH_DELETEUNMARKEDLINES (IDM_SEARCH + 51) + #define IDM_SEARCH_FINDCHARINRANGE (IDM_SEARCH + 52) + #define IDM_SEARCH_SELECTMATCHINGBRACES (IDM_SEARCH + 53) + #define IDM_SEARCH_MARK (IDM_SEARCH + 54) + +#define IDM_MISC (IDM + 3500) + #define IDM_FILESWITCHER_FILESCLOSE (IDM_MISC + 1) + #define IDM_FILESWITCHER_FILESCLOSEOTHERS (IDM_MISC + 2) + + +#define IDM_VIEW (IDM + 4000) + //#define IDM_VIEW_TOOLBAR_HIDE (IDM_VIEW + 1) + #define IDM_VIEW_TOOLBAR_REDUCE (IDM_VIEW + 2) + #define IDM_VIEW_TOOLBAR_ENLARGE (IDM_VIEW + 3) + #define IDM_VIEW_TOOLBAR_STANDARD (IDM_VIEW + 4) + #define IDM_VIEW_REDUCETABBAR (IDM_VIEW + 5) + #define IDM_VIEW_LOCKTABBAR (IDM_VIEW + 6) + #define IDM_VIEW_DRAWTABBAR_TOPBAR (IDM_VIEW + 7) + #define IDM_VIEW_DRAWTABBAR_INACIVETAB (IDM_VIEW + 8) + #define IDM_VIEW_POSTIT (IDM_VIEW + 9) + #define IDM_VIEW_TOGGLE_FOLDALL (IDM_VIEW + 10) + //#define IDM_VIEW_USER_DLG (IDM_VIEW + 11) + #define IDM_VIEW_LINENUMBER (IDM_VIEW + 12) + #define IDM_VIEW_SYMBOLMARGIN (IDM_VIEW + 13) + #define IDM_VIEW_FOLDERMAGIN (IDM_VIEW + 14) + #define IDM_VIEW_FOLDERMAGIN_SIMPLE (IDM_VIEW + 15) + #define IDM_VIEW_FOLDERMAGIN_ARROW (IDM_VIEW + 16) + #define IDM_VIEW_FOLDERMAGIN_CIRCLE (IDM_VIEW + 17) + #define IDM_VIEW_FOLDERMAGIN_BOX (IDM_VIEW + 18) + #define IDM_VIEW_ALL_CHARACTERS (IDM_VIEW + 19) + #define IDM_VIEW_INDENT_GUIDE (IDM_VIEW + 20) + #define IDM_VIEW_CURLINE_HILITING (IDM_VIEW + 21) + #define IDM_VIEW_WRAP (IDM_VIEW + 22) + #define IDM_VIEW_ZOOMIN (IDM_VIEW + 23) + #define IDM_VIEW_ZOOMOUT (IDM_VIEW + 24) + #define IDM_VIEW_TAB_SPACE (IDM_VIEW + 25) + #define IDM_VIEW_EOL (IDM_VIEW + 26) + #define IDM_VIEW_EDGELINE (IDM_VIEW + 27) + #define IDM_VIEW_EDGEBACKGROUND (IDM_VIEW + 28) + #define IDM_VIEW_TOGGLE_UNFOLDALL (IDM_VIEW + 29) + #define IDM_VIEW_FOLD_CURRENT (IDM_VIEW + 30) + #define IDM_VIEW_UNFOLD_CURRENT (IDM_VIEW + 31) + #define IDM_VIEW_FULLSCREENTOGGLE (IDM_VIEW + 32) + #define IDM_VIEW_ZOOMRESTORE (IDM_VIEW + 33) + #define IDM_VIEW_ALWAYSONTOP (IDM_VIEW + 34) + #define IDM_VIEW_SYNSCROLLV (IDM_VIEW + 35) + #define IDM_VIEW_SYNSCROLLH (IDM_VIEW + 36) + #define IDM_VIEW_EDGENONE (IDM_VIEW + 37) + #define IDM_VIEW_DRAWTABBAR_CLOSEBOTTUN (IDM_VIEW + 38) + #define IDM_VIEW_DRAWTABBAR_DBCLK2CLOSE (IDM_VIEW + 39) + #define IDM_VIEW_REFRESHTABAR (IDM_VIEW + 40) + #define IDM_VIEW_WRAP_SYMBOL (IDM_VIEW + 41) + #define IDM_VIEW_HIDELINES (IDM_VIEW + 42) + #define IDM_VIEW_DRAWTABBAR_VERTICAL (IDM_VIEW + 43) + #define IDM_VIEW_DRAWTABBAR_MULTILINE (IDM_VIEW + 44) + #define IDM_VIEW_DOCCHANGEMARGIN (IDM_VIEW + 45) + #define IDM_VIEW_LWDEF (IDM_VIEW + 46) + #define IDM_VIEW_LWALIGN (IDM_VIEW + 47) + #define IDM_VIEW_LWINDENT (IDM_VIEW + 48) + #define IDM_VIEW_SUMMARY (IDM_VIEW + 49) + + #define IDM_VIEW_FOLD (IDM_VIEW + 50) + #define IDM_VIEW_FOLD_1 (IDM_VIEW_FOLD + 1) + #define IDM_VIEW_FOLD_2 (IDM_VIEW_FOLD + 2) + #define IDM_VIEW_FOLD_3 (IDM_VIEW_FOLD + 3) + #define IDM_VIEW_FOLD_4 (IDM_VIEW_FOLD + 4) + #define IDM_VIEW_FOLD_5 (IDM_VIEW_FOLD + 5) + #define IDM_VIEW_FOLD_6 (IDM_VIEW_FOLD + 6) + #define IDM_VIEW_FOLD_7 (IDM_VIEW_FOLD + 7) + #define IDM_VIEW_FOLD_8 (IDM_VIEW_FOLD + 8) + + #define IDM_VIEW_UNFOLD (IDM_VIEW + 60) + #define IDM_VIEW_UNFOLD_1 (IDM_VIEW_UNFOLD + 1) + #define IDM_VIEW_UNFOLD_2 (IDM_VIEW_UNFOLD + 2) + #define IDM_VIEW_UNFOLD_3 (IDM_VIEW_UNFOLD + 3) + #define IDM_VIEW_UNFOLD_4 (IDM_VIEW_UNFOLD + 4) + #define IDM_VIEW_UNFOLD_5 (IDM_VIEW_UNFOLD + 5) + #define IDM_VIEW_UNFOLD_6 (IDM_VIEW_UNFOLD + 6) + #define IDM_VIEW_UNFOLD_7 (IDM_VIEW_UNFOLD + 7) + #define IDM_VIEW_UNFOLD_8 (IDM_VIEW_UNFOLD + 8) + + #define IDM_VIEW_FILESWITCHER_PANEL (IDM_VIEW + 70) + #define IDM_VIEW_SWITCHTO_OTHER_VIEW (IDM_VIEW + 72) + + #define IDM_VIEW_DOC_MAP (IDM_VIEW + 80) + + #define IDM_VIEW_PROJECT_PANEL_1 (IDM_VIEW + 81) + #define IDM_VIEW_PROJECT_PANEL_2 (IDM_VIEW + 82) + #define IDM_VIEW_PROJECT_PANEL_3 (IDM_VIEW + 83) + + #define IDM_VIEW_FUNC_LIST (IDM_VIEW + 84) + #define IDM_VIEW_FILEBROWSER (IDM_VIEW + 85) + + #define IDM_VIEW_TAB1 (IDM_VIEW + 86) + #define IDM_VIEW_TAB2 (IDM_VIEW + 87) + #define IDM_VIEW_TAB3 (IDM_VIEW + 88) + #define IDM_VIEW_TAB4 (IDM_VIEW + 89) + #define IDM_VIEW_TAB5 (IDM_VIEW + 90) + #define IDM_VIEW_TAB6 (IDM_VIEW + 91) + #define IDM_VIEW_TAB7 (IDM_VIEW + 92) + #define IDM_VIEW_TAB8 (IDM_VIEW + 93) + #define IDM_VIEW_TAB9 (IDM_VIEW + 94) + #define IDM_VIEW_TAB_NEXT (IDM_VIEW + 95) + #define IDM_VIEW_TAB_PREV (IDM_VIEW + 96) + #define IDM_VIEW_MONITORING (IDM_VIEW + 97) + + #define IDM_VIEW_GOTO_ANOTHER_VIEW 10001 + #define IDM_VIEW_CLONE_TO_ANOTHER_VIEW 10002 + #define IDM_VIEW_GOTO_NEW_INSTANCE 10003 + #define IDM_VIEW_LOAD_IN_NEW_INSTANCE 10004 + + +#define IDM_FORMAT (IDM + 5000) + #define IDM_FORMAT_TODOS (IDM_FORMAT + 1) + #define IDM_FORMAT_TOUNIX (IDM_FORMAT + 2) + #define IDM_FORMAT_TOMAC (IDM_FORMAT + 3) + #define IDM_FORMAT_ANSI (IDM_FORMAT + 4) + #define IDM_FORMAT_UTF_8 (IDM_FORMAT + 5) + #define IDM_FORMAT_UCS_2BE (IDM_FORMAT + 6) + #define IDM_FORMAT_UCS_2LE (IDM_FORMAT + 7) + #define IDM_FORMAT_AS_UTF_8 (IDM_FORMAT + 8) + #define IDM_FORMAT_CONV2_ANSI (IDM_FORMAT + 9) + #define IDM_FORMAT_CONV2_AS_UTF_8 (IDM_FORMAT + 10) + #define IDM_FORMAT_CONV2_UTF_8 (IDM_FORMAT + 11) + #define IDM_FORMAT_CONV2_UCS_2BE (IDM_FORMAT + 12) + #define IDM_FORMAT_CONV2_UCS_2LE (IDM_FORMAT + 13) + + #define IDM_FORMAT_ENCODE (IDM_FORMAT + 20) + #define IDM_FORMAT_WIN_1250 (IDM_FORMAT_ENCODE + 0) + #define IDM_FORMAT_WIN_1251 (IDM_FORMAT_ENCODE + 1) + #define IDM_FORMAT_WIN_1252 (IDM_FORMAT_ENCODE + 2) + #define IDM_FORMAT_WIN_1253 (IDM_FORMAT_ENCODE + 3) + #define IDM_FORMAT_WIN_1254 (IDM_FORMAT_ENCODE + 4) + #define IDM_FORMAT_WIN_1255 (IDM_FORMAT_ENCODE + 5) + #define IDM_FORMAT_WIN_1256 (IDM_FORMAT_ENCODE + 6) + #define IDM_FORMAT_WIN_1257 (IDM_FORMAT_ENCODE + 7) + #define IDM_FORMAT_WIN_1258 (IDM_FORMAT_ENCODE + 8) + #define IDM_FORMAT_ISO_8859_1 (IDM_FORMAT_ENCODE + 9) + #define IDM_FORMAT_ISO_8859_2 (IDM_FORMAT_ENCODE + 10) + #define IDM_FORMAT_ISO_8859_3 (IDM_FORMAT_ENCODE + 11) + #define IDM_FORMAT_ISO_8859_4 (IDM_FORMAT_ENCODE + 12) + #define IDM_FORMAT_ISO_8859_5 (IDM_FORMAT_ENCODE + 13) + #define IDM_FORMAT_ISO_8859_6 (IDM_FORMAT_ENCODE + 14) + #define IDM_FORMAT_ISO_8859_7 (IDM_FORMAT_ENCODE + 15) + #define IDM_FORMAT_ISO_8859_8 (IDM_FORMAT_ENCODE + 16) + #define IDM_FORMAT_ISO_8859_9 (IDM_FORMAT_ENCODE + 17) + #define IDM_FORMAT_ISO_8859_10 (IDM_FORMAT_ENCODE + 18) + #define IDM_FORMAT_ISO_8859_11 (IDM_FORMAT_ENCODE + 19) + #define IDM_FORMAT_ISO_8859_13 (IDM_FORMAT_ENCODE + 20) + #define IDM_FORMAT_ISO_8859_14 (IDM_FORMAT_ENCODE + 21) + #define IDM_FORMAT_ISO_8859_15 (IDM_FORMAT_ENCODE + 22) + #define IDM_FORMAT_ISO_8859_16 (IDM_FORMAT_ENCODE + 23) + #define IDM_FORMAT_DOS_437 (IDM_FORMAT_ENCODE + 24) + #define IDM_FORMAT_DOS_720 (IDM_FORMAT_ENCODE + 25) + #define IDM_FORMAT_DOS_737 (IDM_FORMAT_ENCODE + 26) + #define IDM_FORMAT_DOS_775 (IDM_FORMAT_ENCODE + 27) + #define IDM_FORMAT_DOS_850 (IDM_FORMAT_ENCODE + 28) + #define IDM_FORMAT_DOS_852 (IDM_FORMAT_ENCODE + 29) + #define IDM_FORMAT_DOS_855 (IDM_FORMAT_ENCODE + 30) + #define IDM_FORMAT_DOS_857 (IDM_FORMAT_ENCODE + 31) + #define IDM_FORMAT_DOS_858 (IDM_FORMAT_ENCODE + 32) + #define IDM_FORMAT_DOS_860 (IDM_FORMAT_ENCODE + 33) + #define IDM_FORMAT_DOS_861 (IDM_FORMAT_ENCODE + 34) + #define IDM_FORMAT_DOS_862 (IDM_FORMAT_ENCODE + 35) + #define IDM_FORMAT_DOS_863 (IDM_FORMAT_ENCODE + 36) + #define IDM_FORMAT_DOS_865 (IDM_FORMAT_ENCODE + 37) + #define IDM_FORMAT_DOS_866 (IDM_FORMAT_ENCODE + 38) + #define IDM_FORMAT_DOS_869 (IDM_FORMAT_ENCODE + 39) + #define IDM_FORMAT_BIG5 (IDM_FORMAT_ENCODE + 40) + #define IDM_FORMAT_GB2312 (IDM_FORMAT_ENCODE + 41) + #define IDM_FORMAT_SHIFT_JIS (IDM_FORMAT_ENCODE + 42) + #define IDM_FORMAT_KOREAN_WIN (IDM_FORMAT_ENCODE + 43) + #define IDM_FORMAT_EUC_KR (IDM_FORMAT_ENCODE + 44) + #define IDM_FORMAT_TIS_620 (IDM_FORMAT_ENCODE + 45) + #define IDM_FORMAT_MAC_CYRILLIC (IDM_FORMAT_ENCODE + 46) + #define IDM_FORMAT_KOI8U_CYRILLIC (IDM_FORMAT_ENCODE + 47) + #define IDM_FORMAT_KOI8R_CYRILLIC (IDM_FORMAT_ENCODE + 48) + #define IDM_FORMAT_ENCODE_END IDM_FORMAT_KOI8R_CYRILLIC + + //#define IDM_FORMAT_CONVERT 200 + +#define IDM_LANG (IDM + 6000) + #define IDM_LANGSTYLE_CONFIG_DLG (IDM_LANG + 1) + #define IDM_LANG_C (IDM_LANG + 2) + #define IDM_LANG_CPP (IDM_LANG + 3) + #define IDM_LANG_JAVA (IDM_LANG + 4) + #define IDM_LANG_HTML (IDM_LANG + 5) + #define IDM_LANG_XML (IDM_LANG + 6) + #define IDM_LANG_JS (IDM_LANG + 7) + #define IDM_LANG_PHP (IDM_LANG + 8) + #define IDM_LANG_ASP (IDM_LANG + 9) + #define IDM_LANG_CSS (IDM_LANG + 10) + #define IDM_LANG_PASCAL (IDM_LANG + 11) + #define IDM_LANG_PYTHON (IDM_LANG + 12) + #define IDM_LANG_PERL (IDM_LANG + 13) + #define IDM_LANG_OBJC (IDM_LANG + 14) + #define IDM_LANG_ASCII (IDM_LANG + 15) + #define IDM_LANG_TEXT (IDM_LANG + 16) + #define IDM_LANG_RC (IDM_LANG + 17) + #define IDM_LANG_MAKEFILE (IDM_LANG + 18) + #define IDM_LANG_INI (IDM_LANG + 19) + #define IDM_LANG_SQL (IDM_LANG + 20) + #define IDM_LANG_VB (IDM_LANG + 21) + #define IDM_LANG_BATCH (IDM_LANG + 22) + #define IDM_LANG_CS (IDM_LANG + 23) + #define IDM_LANG_LUA (IDM_LANG + 24) + #define IDM_LANG_TEX (IDM_LANG + 25) + #define IDM_LANG_FORTRAN (IDM_LANG + 26) + #define IDM_LANG_BASH (IDM_LANG + 27) + #define IDM_LANG_FLASH (IDM_LANG + 28) + #define IDM_LANG_NSIS (IDM_LANG + 29) + #define IDM_LANG_TCL (IDM_LANG + 30) + #define IDM_LANG_LISP (IDM_LANG + 31) + #define IDM_LANG_SCHEME (IDM_LANG + 32) + #define IDM_LANG_ASM (IDM_LANG + 33) + #define IDM_LANG_DIFF (IDM_LANG + 34) + #define IDM_LANG_PROPS (IDM_LANG + 35) + #define IDM_LANG_PS (IDM_LANG + 36) + #define IDM_LANG_RUBY (IDM_LANG + 37) + #define IDM_LANG_SMALLTALK (IDM_LANG + 38) + #define IDM_LANG_VHDL (IDM_LANG + 39) + #define IDM_LANG_CAML (IDM_LANG + 40) + #define IDM_LANG_KIX (IDM_LANG + 41) + #define IDM_LANG_ADA (IDM_LANG + 42) + #define IDM_LANG_VERILOG (IDM_LANG + 43) + #define IDM_LANG_AU3 (IDM_LANG + 44) + #define IDM_LANG_MATLAB (IDM_LANG + 45) + #define IDM_LANG_HASKELL (IDM_LANG + 46) + #define IDM_LANG_INNO (IDM_LANG + 47) + #define IDM_LANG_CMAKE (IDM_LANG + 48) + #define IDM_LANG_YAML (IDM_LANG + 49) + #define IDM_LANG_COBOL (IDM_LANG + 50) + #define IDM_LANG_D (IDM_LANG + 51) + #define IDM_LANG_GUI4CLI (IDM_LANG + 52) + #define IDM_LANG_POWERSHELL (IDM_LANG + 53) + #define IDM_LANG_R (IDM_LANG + 54) + #define IDM_LANG_JSP (IDM_LANG + 55) + #define IDM_LANG_COFFEESCRIPT (IDM_LANG + 56) + #define IDM_LANG_JSON (IDM_LANG + 57) + #define IDM_LANG_FORTRAN_77 (IDM_LANG + 58) + + #define IDM_LANG_EXTERNAL (IDM_LANG + 65) + #define IDM_LANG_EXTERNAL_LIMIT (IDM_LANG + 79) + + #define IDM_LANG_USER (IDM_LANG + 80) //46080 + #define IDM_LANG_USER_LIMIT (IDM_LANG + 110) //46110 + #define IDM_LANG_USER_DLG (IDM_LANG + 150) + + + +#define IDM_ABOUT (IDM + 7000) + #define IDM_HOMESWEETHOME (IDM_ABOUT + 1) + #define IDM_PROJECTPAGE (IDM_ABOUT + 2) + #define IDM_ONLINEHELP (IDM_ABOUT + 3) + #define IDM_FORUM (IDM_ABOUT + 4) + #define IDM_PLUGINSHOME (IDM_ABOUT + 5) + #define IDM_UPDATE_NPP (IDM_ABOUT + 6) + #define IDM_WIKIFAQ (IDM_ABOUT + 7) + #define IDM_HELP (IDM_ABOUT + 8) + #define IDM_CONFUPDATERPROXY (IDM_ABOUT + 9) + #define IDM_CMDLINEARGUMENTS (IDM_ABOUT + 10) + #define IDM_ONLINESUPPORT (IDM_ABOUT + 11) + #define IDM_DEBUGINFO (IDM_ABOUT + 12) + + +#define IDM_SETTING (IDM + 8000) +// #define IDM_SETTING_TAB_SIZE (IDM_SETTING + 1) +// #define IDM_SETTING_TAB_REPLCESPACE (IDM_SETTING + 2) +// #define IDM_SETTING_HISTORY_SIZE (IDM_SETTING + 3) +// #define IDM_SETTING_EDGE_SIZE (IDM_SETTING + 4) + #define IDM_SETTING_IMPORTPLUGIN (IDM_SETTING + 5) + #define IDM_SETTING_IMPORTSTYLETHEMS (IDM_SETTING + 6) + #define IDM_SETTING_TRAYICON (IDM_SETTING + 8) + #define IDM_SETTING_SHORTCUT_MAPPER (IDM_SETTING + 9) + #define IDM_SETTING_REMEMBER_LAST_SESSION (IDM_SETTING + 10) + #define IDM_SETTING_PREFERECE (IDM_SETTING + 11) +// #define IDM_SETTING_AUTOCNBCHAR (IDM_SETTING + 15) + #define IDM_SETTING_SHORTCUT_MAPPER_MACRO (IDM_SETTING + 16) + #define IDM_SETTING_SHORTCUT_MAPPER_RUN (IDM_SETTING + 17) + #define IDM_SETTING_EDITCONTEXTMENU (IDM_SETTING + 18) + +#define IDM_EXECUTE (IDM + 9000) + +#define IDM_SYSTRAYPOPUP (IDM + 3100) + #define IDM_SYSTRAYPOPUP_ACTIVATE (IDM_SYSTRAYPOPUP + 1) + #define IDM_SYSTRAYPOPUP_NEWDOC (IDM_SYSTRAYPOPUP + 2) + #define IDM_SYSTRAYPOPUP_NEW_AND_PASTE (IDM_SYSTRAYPOPUP + 3) + #define IDM_SYSTRAYPOPUP_OPENFILE (IDM_SYSTRAYPOPUP + 4) + #define IDM_SYSTRAYPOPUP_CLOSE (IDM_SYSTRAYPOPUP + 5) + +#endif //MENUCMDID_H diff --git a/src/ScintillaGateway.h b/src/ScintillaGateway.h new file mode 100644 index 0000000..887b239 --- /dev/null +++ b/src/ScintillaGateway.h @@ -0,0 +1,3037 @@ +// This file is part of ElasticTabstops. +// +// Copyright (C)2017 Justin Dailey +// +// ElasticTabstops is free software; you can redistribute it and/or +// modify it under the terms of the GNU General Public License +// as published by the Free Software Foundation; either +// version 2 of the License, or (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program; if not, write to the Free Software +// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +#pragma once + +#include "Scintilla.h" + +#define SCI_UNUSED 0 + +typedef struct { + unsigned char ch; + unsigned char style; +} Cell; + +typedef int Colour; +typedef int KeyModifier; + +class ScintillaGateway final { +private: + HWND scintilla = nullptr; + SciFnDirect directFunction = nullptr; + sptr_t directPointer = 0; + +public: + ScintillaGateway() {} + + explicit ScintillaGateway(HWND scintilla) { + SetScintillaInstance(scintilla); + } + + void SetScintillaInstance(HWND scintilla) { + this->scintilla = scintilla; + directFunction = (SciFnDirect)SendMessage(scintilla, SCI_GETDIRECTFUNCTION, 0, 0); + directPointer = SendMessage(scintilla, SCI_GETDIRECTPOINTER, 0, 0); + } + + HWND GetScintillaInstance() const { + return scintilla; + } + + template + inline sptr_t Call(unsigned int message, T wParam = 0, U lParam = 0) const { + sptr_t retVal = directFunction(directPointer, message, (uptr_t)wParam, (sptr_t)lParam); + return retVal; + } + + /* ++Autogenerated -- start of section automatically generated from Scintilla.iface */ + + void AddText(int length, const char* text) const { + Call(SCI_ADDTEXT, length, text); + } + + void AddStyledText(int length, const Cell* c) const { + Call(SCI_ADDSTYLEDTEXT, length, c); + } + + void InsertText(int pos, const char* text) const { + Call(SCI_INSERTTEXT, pos, text); + } + + void ChangeInsertion(int length, const char* text) const { + Call(SCI_CHANGEINSERTION, length, text); + } + + void ClearAll() const { + Call(SCI_CLEARALL, SCI_UNUSED, SCI_UNUSED); + } + + void DeleteRange(int pos, int deleteLength) const { + Call(SCI_DELETERANGE, pos, deleteLength); + } + + void ClearDocumentStyle() const { + Call(SCI_CLEARDOCUMENTSTYLE, SCI_UNUSED, SCI_UNUSED); + } + + int GetLength() const { + sptr_t res = Call(SCI_GETLENGTH, SCI_UNUSED, SCI_UNUSED); + return static_cast(res); + } + + int GetCharAt(int pos) const { + sptr_t res = Call(SCI_GETCHARAT, pos, SCI_UNUSED); + return static_cast(res); + } + + int GetCurrentPos() const { + sptr_t res = Call(SCI_GETCURRENTPOS, SCI_UNUSED, SCI_UNUSED); + return static_cast(res); + } + + int GetAnchor() const { + sptr_t res = Call(SCI_GETANCHOR, SCI_UNUSED, SCI_UNUSED); + return static_cast(res); + } + + int GetStyleAt(int pos) const { + sptr_t res = Call(SCI_GETSTYLEAT, pos, SCI_UNUSED); + return static_cast(res); + } + + void Redo() const { + Call(SCI_REDO, SCI_UNUSED, SCI_UNUSED); + } + + void SetUndoCollection(bool collectUndo) const { + Call(SCI_SETUNDOCOLLECTION, collectUndo, SCI_UNUSED); + } + + void SelectAll() const { + Call(SCI_SELECTALL, SCI_UNUSED, SCI_UNUSED); + } + + void SetSavePoint() const { + Call(SCI_SETSAVEPOINT, SCI_UNUSED, SCI_UNUSED); + } + + int GetStyledText(Sci_TextRange* tr) const { + sptr_t res = Call(SCI_GETSTYLEDTEXT, SCI_UNUSED, tr); + return static_cast(res); + } + + bool CanRedo() const { + sptr_t res = Call(SCI_CANREDO, SCI_UNUSED, SCI_UNUSED); + return res != 0; + } + + int MarkerLineFromHandle(int handle) const { + sptr_t res = Call(SCI_MARKERLINEFROMHANDLE, handle, SCI_UNUSED); + return static_cast(res); + } + + void MarkerDeleteHandle(int handle) const { + Call(SCI_MARKERDELETEHANDLE, handle, SCI_UNUSED); + } + + bool GetUndoCollection() const { + sptr_t res = Call(SCI_GETUNDOCOLLECTION, SCI_UNUSED, SCI_UNUSED); + return res != 0; + } + + int GetViewWS() const { + sptr_t res = Call(SCI_GETVIEWWS, SCI_UNUSED, SCI_UNUSED); + return static_cast(res); + } + + void SetViewWS(int viewWS) const { + Call(SCI_SETVIEWWS, viewWS, SCI_UNUSED); + } + + int PositionFromPoint(int x, int y) const { + sptr_t res = Call(SCI_POSITIONFROMPOINT, x, y); + return static_cast(res); + } + + int PositionFromPointClose(int x, int y) const { + sptr_t res = Call(SCI_POSITIONFROMPOINTCLOSE, x, y); + return static_cast(res); + } + + void GotoLine(int line) const { + Call(SCI_GOTOLINE, line, SCI_UNUSED); + } + + void GotoPos(int pos) const { + Call(SCI_GOTOPOS, pos, SCI_UNUSED); + } + + void SetAnchor(int posAnchor) const { + Call(SCI_SETANCHOR, posAnchor, SCI_UNUSED); + } + + int GetCurLine(int length, char* text) const { + sptr_t res = Call(SCI_GETCURLINE, length, text); + return static_cast(res); + } + + int GetEndStyled() const { + sptr_t res = Call(SCI_GETENDSTYLED, SCI_UNUSED, SCI_UNUSED); + return static_cast(res); + } + + void ConvertEOLs(int eolMode) const { + Call(SCI_CONVERTEOLS, eolMode, SCI_UNUSED); + } + + int GetEOLMode() const { + sptr_t res = Call(SCI_GETEOLMODE, SCI_UNUSED, SCI_UNUSED); + return static_cast(res); + } + + void SetEOLMode(int eolMode) const { + Call(SCI_SETEOLMODE, eolMode, SCI_UNUSED); + } + + void StartStyling(int pos, int mask) const { + Call(SCI_STARTSTYLING, pos, mask); + } + + void SetStyling(int length, int style) const { + Call(SCI_SETSTYLING, length, style); + } + + bool GetBufferedDraw() const { + sptr_t res = Call(SCI_GETBUFFEREDDRAW, SCI_UNUSED, SCI_UNUSED); + return res != 0; + } + + void SetBufferedDraw(bool buffered) const { + Call(SCI_SETBUFFEREDDRAW, buffered, SCI_UNUSED); + } + + void SetTabWidth(int tabWidth) const { + Call(SCI_SETTABWIDTH, tabWidth, SCI_UNUSED); + } + + int GetTabWidth() const { + sptr_t res = Call(SCI_GETTABWIDTH, SCI_UNUSED, SCI_UNUSED); + return static_cast(res); + } + + void ClearTabStops(int line) const { + Call(SCI_CLEARTABSTOPS, line, SCI_UNUSED); + } + + void AddTabStop(int line, int x) const { + Call(SCI_ADDTABSTOP, line, x); + } + + int GetNextTabStop(int line, int x) const { + sptr_t res = Call(SCI_GETNEXTTABSTOP, line, x); + return static_cast(res); + } + + void SetCodePage(int codePage) const { + Call(SCI_SETCODEPAGE, codePage, SCI_UNUSED); + } + + int GetIMEInteraction() const { + sptr_t res = Call(SCI_GETIMEINTERACTION, SCI_UNUSED, SCI_UNUSED); + return static_cast(res); + } + + void SetIMEInteraction(int imeInteraction) const { + Call(SCI_SETIMEINTERACTION, imeInteraction, SCI_UNUSED); + } + + void MarkerDefine(int markerNumber, int markerSymbol) const { + Call(SCI_MARKERDEFINE, markerNumber, markerSymbol); + } + + void MarkerSetFore(int markerNumber, Colour fore) const { + Call(SCI_MARKERSETFORE, markerNumber, fore); + } + + void MarkerSetBack(int markerNumber, Colour back) const { + Call(SCI_MARKERSETBACK, markerNumber, back); + } + + void MarkerSetBackSelected(int markerNumber, Colour back) const { + Call(SCI_MARKERSETBACKSELECTED, markerNumber, back); + } + + void MarkerEnableHighlight(bool enabled) const { + Call(SCI_MARKERENABLEHIGHLIGHT, enabled, SCI_UNUSED); + } + + int MarkerAdd(int line, int markerNumber) const { + sptr_t res = Call(SCI_MARKERADD, line, markerNumber); + return static_cast(res); + } + + void MarkerDelete(int line, int markerNumber) const { + Call(SCI_MARKERDELETE, line, markerNumber); + } + + void MarkerDeleteAll(int markerNumber) const { + Call(SCI_MARKERDELETEALL, markerNumber, SCI_UNUSED); + } + + int MarkerGet(int line) const { + sptr_t res = Call(SCI_MARKERGET, line, SCI_UNUSED); + return static_cast(res); + } + + int MarkerNext(int lineStart, int markerMask) const { + sptr_t res = Call(SCI_MARKERNEXT, lineStart, markerMask); + return static_cast(res); + } + + int MarkerPrevious(int lineStart, int markerMask) const { + sptr_t res = Call(SCI_MARKERPREVIOUS, lineStart, markerMask); + return static_cast(res); + } + + void MarkerDefinePixmap(int markerNumber, const char* pixmap) const { + Call(SCI_MARKERDEFINEPIXMAP, markerNumber, pixmap); + } + + void MarkerAddSet(int line, int set) const { + Call(SCI_MARKERADDSET, line, set); + } + + void MarkerSetAlpha(int markerNumber, int alpha) const { + Call(SCI_MARKERSETALPHA, markerNumber, alpha); + } + + void SetMarginTypeN(int margin, int marginType) const { + Call(SCI_SETMARGINTYPEN, margin, marginType); + } + + int GetMarginTypeN(int margin) const { + sptr_t res = Call(SCI_GETMARGINTYPEN, margin, SCI_UNUSED); + return static_cast(res); + } + + void SetMarginWidthN(int margin, int pixelWidth) const { + Call(SCI_SETMARGINWIDTHN, margin, pixelWidth); + } + + int GetMarginWidthN(int margin) const { + sptr_t res = Call(SCI_GETMARGINWIDTHN, margin, SCI_UNUSED); + return static_cast(res); + } + + void SetMarginMaskN(int margin, int mask) const { + Call(SCI_SETMARGINMASKN, margin, mask); + } + + int GetMarginMaskN(int margin) const { + sptr_t res = Call(SCI_GETMARGINMASKN, margin, SCI_UNUSED); + return static_cast(res); + } + + void SetMarginSensitiveN(int margin, bool sensitive) const { + Call(SCI_SETMARGINSENSITIVEN, margin, sensitive); + } + + bool GetMarginSensitiveN(int margin) const { + sptr_t res = Call(SCI_GETMARGINSENSITIVEN, margin, SCI_UNUSED); + return res != 0; + } + + void SetMarginCursorN(int margin, int cursor) const { + Call(SCI_SETMARGINCURSORN, margin, cursor); + } + + int GetMarginCursorN(int margin) const { + sptr_t res = Call(SCI_GETMARGINCURSORN, margin, SCI_UNUSED); + return static_cast(res); + } + + void StyleClearAll() const { + Call(SCI_STYLECLEARALL, SCI_UNUSED, SCI_UNUSED); + } + + void StyleSetFore(int style, Colour fore) const { + Call(SCI_STYLESETFORE, style, fore); + } + + void StyleSetBack(int style, Colour back) const { + Call(SCI_STYLESETBACK, style, back); + } + + void StyleSetBold(int style, bool bold) const { + Call(SCI_STYLESETBOLD, style, bold); + } + + void StyleSetItalic(int style, bool italic) const { + Call(SCI_STYLESETITALIC, style, italic); + } + + void StyleSetSize(int style, int sizePoints) const { + Call(SCI_STYLESETSIZE, style, sizePoints); + } + + void StyleSetFont(int style, const char* fontName) const { + Call(SCI_STYLESETFONT, style, fontName); + } + + void StyleSetEOLFilled(int style, bool filled) const { + Call(SCI_STYLESETEOLFILLED, style, filled); + } + + void StyleResetDefault() const { + Call(SCI_STYLERESETDEFAULT, SCI_UNUSED, SCI_UNUSED); + } + + void StyleSetUnderline(int style, bool underline) const { + Call(SCI_STYLESETUNDERLINE, style, underline); + } + + Colour StyleGetFore(int style) const { + sptr_t res = Call(SCI_STYLEGETFORE, style, SCI_UNUSED); + return static_cast(res); + } + + Colour StyleGetBack(int style) const { + sptr_t res = Call(SCI_STYLEGETBACK, style, SCI_UNUSED); + return static_cast(res); + } + + bool StyleGetBold(int style) const { + sptr_t res = Call(SCI_STYLEGETBOLD, style, SCI_UNUSED); + return res != 0; + } + + bool StyleGetItalic(int style) const { + sptr_t res = Call(SCI_STYLEGETITALIC, style, SCI_UNUSED); + return res != 0; + } + + int StyleGetSize(int style) const { + sptr_t res = Call(SCI_STYLEGETSIZE, style, SCI_UNUSED); + return static_cast(res); + } + + int StyleGetFont(int style, char* fontName) const { + sptr_t res = Call(SCI_STYLEGETFONT, style, fontName); + return static_cast(res); + } + + bool StyleGetEOLFilled(int style) const { + sptr_t res = Call(SCI_STYLEGETEOLFILLED, style, SCI_UNUSED); + return res != 0; + } + + bool StyleGetUnderline(int style) const { + sptr_t res = Call(SCI_STYLEGETUNDERLINE, style, SCI_UNUSED); + return res != 0; + } + + int StyleGetCase(int style) const { + sptr_t res = Call(SCI_STYLEGETCASE, style, SCI_UNUSED); + return static_cast(res); + } + + int StyleGetCharacterSet(int style) const { + sptr_t res = Call(SCI_STYLEGETCHARACTERSET, style, SCI_UNUSED); + return static_cast(res); + } + + bool StyleGetVisible(int style) const { + sptr_t res = Call(SCI_STYLEGETVISIBLE, style, SCI_UNUSED); + return res != 0; + } + + bool StyleGetChangeable(int style) const { + sptr_t res = Call(SCI_STYLEGETCHANGEABLE, style, SCI_UNUSED); + return res != 0; + } + + bool StyleGetHotSpot(int style) const { + sptr_t res = Call(SCI_STYLEGETHOTSPOT, style, SCI_UNUSED); + return res != 0; + } + + void StyleSetCase(int style, int caseForce) const { + Call(SCI_STYLESETCASE, style, caseForce); + } + + void StyleSetSizeFractional(int style, int caseForce) const { + Call(SCI_STYLESETSIZEFRACTIONAL, style, caseForce); + } + + int StyleGetSizeFractional(int style) const { + sptr_t res = Call(SCI_STYLEGETSIZEFRACTIONAL, style, SCI_UNUSED); + return static_cast(res); + } + + void StyleSetWeight(int style, int weight) const { + Call(SCI_STYLESETWEIGHT, style, weight); + } + + int StyleGetWeight(int style) const { + sptr_t res = Call(SCI_STYLEGETWEIGHT, style, SCI_UNUSED); + return static_cast(res); + } + + void StyleSetCharacterSet(int style, int characterSet) const { + Call(SCI_STYLESETCHARACTERSET, style, characterSet); + } + + void StyleSetHotSpot(int style, bool hotspot) const { + Call(SCI_STYLESETHOTSPOT, style, hotspot); + } + + void SetSelFore(bool useSetting, Colour fore) const { + Call(SCI_SETSELFORE, useSetting, fore); + } + + void SetSelBack(bool useSetting, Colour back) const { + Call(SCI_SETSELBACK, useSetting, back); + } + + int GetSelAlpha() const { + sptr_t res = Call(SCI_GETSELALPHA, SCI_UNUSED, SCI_UNUSED); + return static_cast(res); + } + + void SetSelAlpha(int alpha) const { + Call(SCI_SETSELALPHA, alpha, SCI_UNUSED); + } + + bool GetSelEOLFilled() const { + sptr_t res = Call(SCI_GETSELEOLFILLED, SCI_UNUSED, SCI_UNUSED); + return res != 0; + } + + void SetSelEOLFilled(bool filled) const { + Call(SCI_SETSELEOLFILLED, filled, SCI_UNUSED); + } + + void SetCaretFore(Colour fore) const { + Call(SCI_SETCARETFORE, fore, SCI_UNUSED); + } + + void AssignCmdKey(KeyModifier km, int msg) const { + Call(SCI_ASSIGNCMDKEY, km, msg); + } + + void ClearCmdKey(KeyModifier km) const { + Call(SCI_CLEARCMDKEY, km, SCI_UNUSED); + } + + void ClearAllCmdKeys() const { + Call(SCI_CLEARALLCMDKEYS, SCI_UNUSED, SCI_UNUSED); + } + + void SetStylingEx(int length, const char* styles) const { + Call(SCI_SETSTYLINGEX, length, styles); + } + + void StyleSetVisible(int style, bool visible) const { + Call(SCI_STYLESETVISIBLE, style, visible); + } + + int GetCaretPeriod() const { + sptr_t res = Call(SCI_GETCARETPERIOD, SCI_UNUSED, SCI_UNUSED); + return static_cast(res); + } + + void SetCaretPeriod(int periodMilliseconds) const { + Call(SCI_SETCARETPERIOD, periodMilliseconds, SCI_UNUSED); + } + + void SetWordChars(const char* characters) const { + Call(SCI_SETWORDCHARS, SCI_UNUSED, characters); + } + + int GetWordChars(char* characters) const { + sptr_t res = Call(SCI_GETWORDCHARS, SCI_UNUSED, characters); + return static_cast(res); + } + + void BeginUndoAction() const { + Call(SCI_BEGINUNDOACTION, SCI_UNUSED, SCI_UNUSED); + } + + void EndUndoAction() const { + Call(SCI_ENDUNDOACTION, SCI_UNUSED, SCI_UNUSED); + } + + void IndicSetStyle(int indic, int style) const { + Call(SCI_INDICSETSTYLE, indic, style); + } + + int IndicGetStyle(int indic) const { + sptr_t res = Call(SCI_INDICGETSTYLE, indic, SCI_UNUSED); + return static_cast(res); + } + + void IndicSetFore(int indic, Colour fore) const { + Call(SCI_INDICSETFORE, indic, fore); + } + + Colour IndicGetFore(int indic) const { + sptr_t res = Call(SCI_INDICGETFORE, indic, SCI_UNUSED); + return static_cast(res); + } + + void IndicSetUnder(int indic, bool under) const { + Call(SCI_INDICSETUNDER, indic, under); + } + + bool IndicGetUnder(int indic) const { + sptr_t res = Call(SCI_INDICGETUNDER, indic, SCI_UNUSED); + return res != 0; + } + + void IndicSetHoverStyle(int indic, int style) const { + Call(SCI_INDICSETHOVERSTYLE, indic, style); + } + + int IndicGetHoverStyle(int indic) const { + sptr_t res = Call(SCI_INDICGETHOVERSTYLE, indic, SCI_UNUSED); + return static_cast(res); + } + + void IndicSetHoverFore(int indic, Colour fore) const { + Call(SCI_INDICSETHOVERFORE, indic, fore); + } + + Colour IndicGetHoverFore(int indic) const { + sptr_t res = Call(SCI_INDICGETHOVERFORE, indic, SCI_UNUSED); + return static_cast(res); + } + + void IndicSetFlags(int indic, int flags) const { + Call(SCI_INDICSETFLAGS, indic, flags); + } + + int IndicGetFlags(int indic) const { + sptr_t res = Call(SCI_INDICGETFLAGS, indic, SCI_UNUSED); + return static_cast(res); + } + + void SetWhitespaceFore(bool useSetting, Colour fore) const { + Call(SCI_SETWHITESPACEFORE, useSetting, fore); + } + + void SetWhitespaceBack(bool useSetting, Colour back) const { + Call(SCI_SETWHITESPACEBACK, useSetting, back); + } + + void SetWhitespaceSize(int size) const { + Call(SCI_SETWHITESPACESIZE, size, SCI_UNUSED); + } + + int GetWhitespaceSize() const { + sptr_t res = Call(SCI_GETWHITESPACESIZE, SCI_UNUSED, SCI_UNUSED); + return static_cast(res); + } + + void SetStyleBits(int bits) const { + Call(SCI_SETSTYLEBITS, bits, SCI_UNUSED); + } + + int GetStyleBits() const { + sptr_t res = Call(SCI_GETSTYLEBITS, SCI_UNUSED, SCI_UNUSED); + return static_cast(res); + } + + void SetLineState(int line, int state) const { + Call(SCI_SETLINESTATE, line, state); + } + + int GetLineState(int line) const { + sptr_t res = Call(SCI_GETLINESTATE, line, SCI_UNUSED); + return static_cast(res); + } + + int GetMaxLineState() const { + sptr_t res = Call(SCI_GETMAXLINESTATE, SCI_UNUSED, SCI_UNUSED); + return static_cast(res); + } + + bool GetCaretLineVisible() const { + sptr_t res = Call(SCI_GETCARETLINEVISIBLE, SCI_UNUSED, SCI_UNUSED); + return res != 0; + } + + void SetCaretLineVisible(bool show) const { + Call(SCI_SETCARETLINEVISIBLE, show, SCI_UNUSED); + } + + Colour GetCaretLineBack() const { + sptr_t res = Call(SCI_GETCARETLINEBACK, SCI_UNUSED, SCI_UNUSED); + return static_cast(res); + } + + void SetCaretLineBack(Colour back) const { + Call(SCI_SETCARETLINEBACK, back, SCI_UNUSED); + } + + void StyleSetChangeable(int style, bool changeable) const { + Call(SCI_STYLESETCHANGEABLE, style, changeable); + } + + void AutoCShow(int lenEntered, const char* itemList) const { + Call(SCI_AUTOCSHOW, lenEntered, itemList); + } + + void AutoCCancel() const { + Call(SCI_AUTOCCANCEL, SCI_UNUSED, SCI_UNUSED); + } + + bool AutoCActive() const { + sptr_t res = Call(SCI_AUTOCACTIVE, SCI_UNUSED, SCI_UNUSED); + return res != 0; + } + + int AutoCPosStart() const { + sptr_t res = Call(SCI_AUTOCPOSSTART, SCI_UNUSED, SCI_UNUSED); + return static_cast(res); + } + + void AutoCComplete() const { + Call(SCI_AUTOCCOMPLETE, SCI_UNUSED, SCI_UNUSED); + } + + void AutoCStops(const char* characterSet) const { + Call(SCI_AUTOCSTOPS, SCI_UNUSED, characterSet); + } + + void AutoCSetSeparator(int separatorCharacter) const { + Call(SCI_AUTOCSETSEPARATOR, separatorCharacter, SCI_UNUSED); + } + + int AutoCGetSeparator() const { + sptr_t res = Call(SCI_AUTOCGETSEPARATOR, SCI_UNUSED, SCI_UNUSED); + return static_cast(res); + } + + void AutoCSelect(const char* text) const { + Call(SCI_AUTOCSELECT, SCI_UNUSED, text); + } + + void AutoCSetCancelAtStart(bool cancel) const { + Call(SCI_AUTOCSETCANCELATSTART, cancel, SCI_UNUSED); + } + + bool AutoCGetCancelAtStart() const { + sptr_t res = Call(SCI_AUTOCGETCANCELATSTART, SCI_UNUSED, SCI_UNUSED); + return res != 0; + } + + void AutoCSetFillUps(const char* characterSet) const { + Call(SCI_AUTOCSETFILLUPS, SCI_UNUSED, characterSet); + } + + void AutoCSetChooseSingle(bool chooseSingle) const { + Call(SCI_AUTOCSETCHOOSESINGLE, chooseSingle, SCI_UNUSED); + } + + bool AutoCGetChooseSingle() const { + sptr_t res = Call(SCI_AUTOCGETCHOOSESINGLE, SCI_UNUSED, SCI_UNUSED); + return res != 0; + } + + void AutoCSetIgnoreCase(bool ignoreCase) const { + Call(SCI_AUTOCSETIGNORECASE, ignoreCase, SCI_UNUSED); + } + + bool AutoCGetIgnoreCase() const { + sptr_t res = Call(SCI_AUTOCGETIGNORECASE, SCI_UNUSED, SCI_UNUSED); + return res != 0; + } + + void UserListShow(int listType, const char* itemList) const { + Call(SCI_USERLISTSHOW, listType, itemList); + } + + void AutoCSetAutoHide(bool autoHide) const { + Call(SCI_AUTOCSETAUTOHIDE, autoHide, SCI_UNUSED); + } + + bool AutoCGetAutoHide() const { + sptr_t res = Call(SCI_AUTOCGETAUTOHIDE, SCI_UNUSED, SCI_UNUSED); + return res != 0; + } + + void AutoCSetDropRestOfWord(bool dropRestOfWord) const { + Call(SCI_AUTOCSETDROPRESTOFWORD, dropRestOfWord, SCI_UNUSED); + } + + bool AutoCGetDropRestOfWord() const { + sptr_t res = Call(SCI_AUTOCGETDROPRESTOFWORD, SCI_UNUSED, SCI_UNUSED); + return res != 0; + } + + void RegisterImage(int type, const char* xpmData) const { + Call(SCI_REGISTERIMAGE, type, xpmData); + } + + void ClearRegisteredImages() const { + Call(SCI_CLEARREGISTEREDIMAGES, SCI_UNUSED, SCI_UNUSED); + } + + int AutoCGetTypeSeparator() const { + sptr_t res = Call(SCI_AUTOCGETTYPESEPARATOR, SCI_UNUSED, SCI_UNUSED); + return static_cast(res); + } + + void AutoCSetTypeSeparator(int separatorCharacter) const { + Call(SCI_AUTOCSETTYPESEPARATOR, separatorCharacter, SCI_UNUSED); + } + + void AutoCSetMaxWidth(int characterCount) const { + Call(SCI_AUTOCSETMAXWIDTH, characterCount, SCI_UNUSED); + } + + int AutoCGetMaxWidth() const { + sptr_t res = Call(SCI_AUTOCGETMAXWIDTH, SCI_UNUSED, SCI_UNUSED); + return static_cast(res); + } + + void AutoCSetMaxHeight(int rowCount) const { + Call(SCI_AUTOCSETMAXHEIGHT, rowCount, SCI_UNUSED); + } + + int AutoCGetMaxHeight() const { + sptr_t res = Call(SCI_AUTOCGETMAXHEIGHT, SCI_UNUSED, SCI_UNUSED); + return static_cast(res); + } + + void SetIndent(int indentSize) const { + Call(SCI_SETINDENT, indentSize, SCI_UNUSED); + } + + int GetIndent() const { + sptr_t res = Call(SCI_GETINDENT, SCI_UNUSED, SCI_UNUSED); + return static_cast(res); + } + + void SetUseTabs(bool useTabs) const { + Call(SCI_SETUSETABS, useTabs, SCI_UNUSED); + } + + bool GetUseTabs() const { + sptr_t res = Call(SCI_GETUSETABS, SCI_UNUSED, SCI_UNUSED); + return res != 0; + } + + void SetLineIndentation(int line, int indentSize) const { + Call(SCI_SETLINEINDENTATION, line, indentSize); + } + + int GetLineIndentation(int line) const { + sptr_t res = Call(SCI_GETLINEINDENTATION, line, SCI_UNUSED); + return static_cast(res); + } + + int GetLineIndentPosition(int line) const { + sptr_t res = Call(SCI_GETLINEINDENTPOSITION, line, SCI_UNUSED); + return static_cast(res); + } + + int GetColumn(int pos) const { + sptr_t res = Call(SCI_GETCOLUMN, pos, SCI_UNUSED); + return static_cast(res); + } + + int CountCharacters(int startPos, int endPos) const { + sptr_t res = Call(SCI_COUNTCHARACTERS, startPos, endPos); + return static_cast(res); + } + + void SetHScrollBar(bool show) const { + Call(SCI_SETHSCROLLBAR, show, SCI_UNUSED); + } + + bool GetHScrollBar() const { + sptr_t res = Call(SCI_GETHSCROLLBAR, SCI_UNUSED, SCI_UNUSED); + return res != 0; + } + + void SetIndentationGuides(int indentView) const { + Call(SCI_SETINDENTATIONGUIDES, indentView, SCI_UNUSED); + } + + int GetIndentationGuides() const { + sptr_t res = Call(SCI_GETINDENTATIONGUIDES, SCI_UNUSED, SCI_UNUSED); + return static_cast(res); + } + + void SetHighlightGuide(int column) const { + Call(SCI_SETHIGHLIGHTGUIDE, column, SCI_UNUSED); + } + + int GetHighlightGuide() const { + sptr_t res = Call(SCI_GETHIGHLIGHTGUIDE, SCI_UNUSED, SCI_UNUSED); + return static_cast(res); + } + + int GetLineEndPosition(int line) const { + sptr_t res = Call(SCI_GETLINEENDPOSITION, line, SCI_UNUSED); + return static_cast(res); + } + + int GetCodePage() const { + sptr_t res = Call(SCI_GETCODEPAGE, SCI_UNUSED, SCI_UNUSED); + return static_cast(res); + } + + Colour GetCaretFore() const { + sptr_t res = Call(SCI_GETCARETFORE, SCI_UNUSED, SCI_UNUSED); + return static_cast(res); + } + + bool GetReadOnly() const { + sptr_t res = Call(SCI_GETREADONLY, SCI_UNUSED, SCI_UNUSED); + return res != 0; + } + + void SetCurrentPos(int pos) const { + Call(SCI_SETCURRENTPOS, pos, SCI_UNUSED); + } + + void SetSelectionStart(int pos) const { + Call(SCI_SETSELECTIONSTART, pos, SCI_UNUSED); + } + + int GetSelectionStart() const { + sptr_t res = Call(SCI_GETSELECTIONSTART, SCI_UNUSED, SCI_UNUSED); + return static_cast(res); + } + + void SetSelectionEnd(int pos) const { + Call(SCI_SETSELECTIONEND, pos, SCI_UNUSED); + } + + int GetSelectionEnd() const { + sptr_t res = Call(SCI_GETSELECTIONEND, SCI_UNUSED, SCI_UNUSED); + return static_cast(res); + } + + void SetEmptySelection(int pos) const { + Call(SCI_SETEMPTYSELECTION, pos, SCI_UNUSED); + } + + void SetPrintMagnification(int magnification) const { + Call(SCI_SETPRINTMAGNIFICATION, magnification, SCI_UNUSED); + } + + int GetPrintMagnification() const { + sptr_t res = Call(SCI_GETPRINTMAGNIFICATION, SCI_UNUSED, SCI_UNUSED); + return static_cast(res); + } + + void SetPrintColourMode(int mode) const { + Call(SCI_SETPRINTCOLOURMODE, mode, SCI_UNUSED); + } + + int GetPrintColourMode() const { + sptr_t res = Call(SCI_GETPRINTCOLOURMODE, SCI_UNUSED, SCI_UNUSED); + return static_cast(res); + } + + int FindText(int flags, Sci_TextToFind* ft) const { + sptr_t res = Call(SCI_FINDTEXT, flags, ft); + return static_cast(res); + } + + int FormatRange(bool draw, Sci_RangeToFormat* fr) const { + sptr_t res = Call(SCI_FORMATRANGE, draw, fr); + return static_cast(res); + } + + int GetFirstVisibleLine() const { + sptr_t res = Call(SCI_GETFIRSTVISIBLELINE, SCI_UNUSED, SCI_UNUSED); + return static_cast(res); + } + + int GetLine(int line, char* text) const { + sptr_t res = Call(SCI_GETLINE, line, text); + return static_cast(res); + } + + int GetLineCount() const { + sptr_t res = Call(SCI_GETLINECOUNT, SCI_UNUSED, SCI_UNUSED); + return static_cast(res); + } + + void SetMarginLeft(int pixelWidth) const { + Call(SCI_SETMARGINLEFT, SCI_UNUSED, pixelWidth); + } + + int GetMarginLeft() const { + sptr_t res = Call(SCI_GETMARGINLEFT, SCI_UNUSED, SCI_UNUSED); + return static_cast(res); + } + + void SetMarginRight(int pixelWidth) const { + Call(SCI_SETMARGINRIGHT, SCI_UNUSED, pixelWidth); + } + + int GetMarginRight() const { + sptr_t res = Call(SCI_GETMARGINRIGHT, SCI_UNUSED, SCI_UNUSED); + return static_cast(res); + } + + bool GetModify() const { + sptr_t res = Call(SCI_GETMODIFY, SCI_UNUSED, SCI_UNUSED); + return res != 0; + } + + void SetSel(int start, int end) const { + Call(SCI_SETSEL, start, end); + } + + int GetSelText(char* text) const { + sptr_t res = Call(SCI_GETSELTEXT, SCI_UNUSED, text); + return static_cast(res); + } + + int GetTextRange(Sci_TextRange* tr) const { + sptr_t res = Call(SCI_GETTEXTRANGE, SCI_UNUSED, tr); + return static_cast(res); + } + + void HideSelection(bool normal) const { + Call(SCI_HIDESELECTION, normal, SCI_UNUSED); + } + + int PointXFromPosition(int pos) const { + sptr_t res = Call(SCI_POINTXFROMPOSITION, SCI_UNUSED, pos); + return static_cast(res); + } + + int PointYFromPosition(int pos) const { + sptr_t res = Call(SCI_POINTYFROMPOSITION, SCI_UNUSED, pos); + return static_cast(res); + } + + int LineFromPosition(int pos) const { + sptr_t res = Call(SCI_LINEFROMPOSITION, pos, SCI_UNUSED); + return static_cast(res); + } + + int PositionFromLine(int line) const { + sptr_t res = Call(SCI_POSITIONFROMLINE, line, SCI_UNUSED); + return static_cast(res); + } + + void LineScroll(int columns, int lines) const { + Call(SCI_LINESCROLL, columns, lines); + } + + void ScrollCaret() const { + Call(SCI_SCROLLCARET, SCI_UNUSED, SCI_UNUSED); + } + + void ScrollRange(int secondary, int primary) const { + Call(SCI_SCROLLRANGE, secondary, primary); + } + + void ReplaceSel(const char* text) const { + Call(SCI_REPLACESEL, SCI_UNUSED, text); + } + + void SetReadOnly(bool readOnly) const { + Call(SCI_SETREADONLY, readOnly, SCI_UNUSED); + } + + void Null() const { + Call(SCI_NULL, SCI_UNUSED, SCI_UNUSED); + } + + bool CanPaste() const { + sptr_t res = Call(SCI_CANPASTE, SCI_UNUSED, SCI_UNUSED); + return res != 0; + } + + bool CanUndo() const { + sptr_t res = Call(SCI_CANUNDO, SCI_UNUSED, SCI_UNUSED); + return res != 0; + } + + void EmptyUndoBuffer() const { + Call(SCI_EMPTYUNDOBUFFER, SCI_UNUSED, SCI_UNUSED); + } + + void Undo() const { + Call(SCI_UNDO, SCI_UNUSED, SCI_UNUSED); + } + + void Cut() const { + Call(SCI_CUT, SCI_UNUSED, SCI_UNUSED); + } + + void Copy() const { + Call(SCI_COPY, SCI_UNUSED, SCI_UNUSED); + } + + void Paste() const { + Call(SCI_PASTE, SCI_UNUSED, SCI_UNUSED); + } + + void Clear() const { + Call(SCI_CLEAR, SCI_UNUSED, SCI_UNUSED); + } + + void SetText(const char* text) const { + Call(SCI_SETTEXT, SCI_UNUSED, text); + } + + int GetText(int length, char* text) const { + sptr_t res = Call(SCI_GETTEXT, length, text); + return static_cast(res); + } + + int GetTextLength() const { + sptr_t res = Call(SCI_GETTEXTLENGTH, SCI_UNUSED, SCI_UNUSED); + return static_cast(res); + } + + sptr_t GetDirectFunction() const { + sptr_t res = Call(SCI_GETDIRECTFUNCTION, SCI_UNUSED, SCI_UNUSED); + return res; + } + + sptr_t GetDirectPointer() const { + sptr_t res = Call(SCI_GETDIRECTPOINTER, SCI_UNUSED, SCI_UNUSED); + return res; + } + + void SetOvertype(bool overtype) const { + Call(SCI_SETOVERTYPE, overtype, SCI_UNUSED); + } + + bool GetOvertype() const { + sptr_t res = Call(SCI_GETOVERTYPE, SCI_UNUSED, SCI_UNUSED); + return res != 0; + } + + void SetCaretWidth(int pixelWidth) const { + Call(SCI_SETCARETWIDTH, pixelWidth, SCI_UNUSED); + } + + int GetCaretWidth() const { + sptr_t res = Call(SCI_GETCARETWIDTH, SCI_UNUSED, SCI_UNUSED); + return static_cast(res); + } + + void SetTargetStart(int pos) const { + Call(SCI_SETTARGETSTART, pos, SCI_UNUSED); + } + + int GetTargetStart() const { + sptr_t res = Call(SCI_GETTARGETSTART, SCI_UNUSED, SCI_UNUSED); + return static_cast(res); + } + + void SetTargetEnd(int pos) const { + Call(SCI_SETTARGETEND, pos, SCI_UNUSED); + } + + int GetTargetEnd() const { + sptr_t res = Call(SCI_GETTARGETEND, SCI_UNUSED, SCI_UNUSED); + return static_cast(res); + } + + void SetTargetRange(int start, int end) const { + Call(SCI_SETTARGETRANGE, start, end); + } + + int GetTargetText(char* characters) const { + sptr_t res = Call(SCI_GETTARGETTEXT, SCI_UNUSED, characters); + return static_cast(res); + } + + int ReplaceTarget(int length, const char* text) const { + sptr_t res = Call(SCI_REPLACETARGET, length, text); + return static_cast(res); + } + + int ReplaceTargetRE(int length, const char* text) const { + sptr_t res = Call(SCI_REPLACETARGETRE, length, text); + return static_cast(res); + } + + int SearchInTarget(int length, const char* text) const { + sptr_t res = Call(SCI_SEARCHINTARGET, length, text); + return static_cast(res); + } + + void SetSearchFlags(int flags) const { + Call(SCI_SETSEARCHFLAGS, flags, SCI_UNUSED); + } + + int GetSearchFlags() const { + sptr_t res = Call(SCI_GETSEARCHFLAGS, SCI_UNUSED, SCI_UNUSED); + return static_cast(res); + } + + void CallTipShow(int pos, const char* definition) const { + Call(SCI_CALLTIPSHOW, pos, definition); + } + + void CallTipCancel() const { + Call(SCI_CALLTIPCANCEL, SCI_UNUSED, SCI_UNUSED); + } + + bool CallTipActive() const { + sptr_t res = Call(SCI_CALLTIPACTIVE, SCI_UNUSED, SCI_UNUSED); + return res != 0; + } + + int CallTipPosStart() const { + sptr_t res = Call(SCI_CALLTIPPOSSTART, SCI_UNUSED, SCI_UNUSED); + return static_cast(res); + } + + void CallTipSetPosStart(int posStart) const { + Call(SCI_CALLTIPSETPOSSTART, posStart, SCI_UNUSED); + } + + void CallTipSetHlt(int start, int end) const { + Call(SCI_CALLTIPSETHLT, start, end); + } + + void CallTipSetBack(Colour back) const { + Call(SCI_CALLTIPSETBACK, back, SCI_UNUSED); + } + + void CallTipSetFore(Colour fore) const { + Call(SCI_CALLTIPSETFORE, fore, SCI_UNUSED); + } + + void CallTipSetForeHlt(Colour fore) const { + Call(SCI_CALLTIPSETFOREHLT, fore, SCI_UNUSED); + } + + void CallTipUseStyle(int tabSize) const { + Call(SCI_CALLTIPUSESTYLE, tabSize, SCI_UNUSED); + } + + void CallTipSetPosition(bool above) const { + Call(SCI_CALLTIPSETPOSITION, above, SCI_UNUSED); + } + + int VisibleFromDocLine(int line) const { + sptr_t res = Call(SCI_VISIBLEFROMDOCLINE, line, SCI_UNUSED); + return static_cast(res); + } + + int DocLineFromVisible(int lineDisplay) const { + sptr_t res = Call(SCI_DOCLINEFROMVISIBLE, lineDisplay, SCI_UNUSED); + return static_cast(res); + } + + int WrapCount(int line) const { + sptr_t res = Call(SCI_WRAPCOUNT, line, SCI_UNUSED); + return static_cast(res); + } + + void SetFoldLevel(int line, int level) const { + Call(SCI_SETFOLDLEVEL, line, level); + } + + int GetFoldLevel(int line) const { + sptr_t res = Call(SCI_GETFOLDLEVEL, line, SCI_UNUSED); + return static_cast(res); + } + + int GetLastChild(int line, int level) const { + sptr_t res = Call(SCI_GETLASTCHILD, line, level); + return static_cast(res); + } + + int GetFoldParent(int line) const { + sptr_t res = Call(SCI_GETFOLDPARENT, line, SCI_UNUSED); + return static_cast(res); + } + + void ShowLines(int lineStart, int lineEnd) const { + Call(SCI_SHOWLINES, lineStart, lineEnd); + } + + void HideLines(int lineStart, int lineEnd) const { + Call(SCI_HIDELINES, lineStart, lineEnd); + } + + bool GetLineVisible(int line) const { + sptr_t res = Call(SCI_GETLINEVISIBLE, line, SCI_UNUSED); + return res != 0; + } + + bool GetAllLinesVisible() const { + sptr_t res = Call(SCI_GETALLLINESVISIBLE, SCI_UNUSED, SCI_UNUSED); + return res != 0; + } + + void SetFoldExpanded(int line, bool expanded) const { + Call(SCI_SETFOLDEXPANDED, line, expanded); + } + + bool GetFoldExpanded(int line) const { + sptr_t res = Call(SCI_GETFOLDEXPANDED, line, SCI_UNUSED); + return res != 0; + } + + void ToggleFold(int line) const { + Call(SCI_TOGGLEFOLD, line, SCI_UNUSED); + } + + void FoldLine(int line, int action) const { + Call(SCI_FOLDLINE, line, action); + } + + void FoldChildren(int line, int action) const { + Call(SCI_FOLDCHILDREN, line, action); + } + + void ExpandChildren(int line, int level) const { + Call(SCI_EXPANDCHILDREN, line, level); + } + + void FoldAll(int action) const { + Call(SCI_FOLDALL, action, SCI_UNUSED); + } + + void EnsureVisible(int line) const { + Call(SCI_ENSUREVISIBLE, line, SCI_UNUSED); + } + + void SetAutomaticFold(int automaticFold) const { + Call(SCI_SETAUTOMATICFOLD, automaticFold, SCI_UNUSED); + } + + int GetAutomaticFold() const { + sptr_t res = Call(SCI_GETAUTOMATICFOLD, SCI_UNUSED, SCI_UNUSED); + return static_cast(res); + } + + void SetFoldFlags(int flags) const { + Call(SCI_SETFOLDFLAGS, flags, SCI_UNUSED); + } + + void EnsureVisibleEnforcePolicy(int line) const { + Call(SCI_ENSUREVISIBLEENFORCEPOLICY, line, SCI_UNUSED); + } + + void SetTabIndents(bool tabIndents) const { + Call(SCI_SETTABINDENTS, tabIndents, SCI_UNUSED); + } + + bool GetTabIndents() const { + sptr_t res = Call(SCI_GETTABINDENTS, SCI_UNUSED, SCI_UNUSED); + return res != 0; + } + + void SetBackSpaceUnIndents(bool bsUnIndents) const { + Call(SCI_SETBACKSPACEUNINDENTS, bsUnIndents, SCI_UNUSED); + } + + bool GetBackSpaceUnIndents() const { + sptr_t res = Call(SCI_GETBACKSPACEUNINDENTS, SCI_UNUSED, SCI_UNUSED); + return res != 0; + } + + void SetMouseDwellTime(int periodMilliseconds) const { + Call(SCI_SETMOUSEDWELLTIME, periodMilliseconds, SCI_UNUSED); + } + + int GetMouseDwellTime() const { + sptr_t res = Call(SCI_GETMOUSEDWELLTIME, SCI_UNUSED, SCI_UNUSED); + return static_cast(res); + } + + int WordStartPosition(int pos, bool onlyWordCharacters) const { + sptr_t res = Call(SCI_WORDSTARTPOSITION, pos, onlyWordCharacters); + return static_cast(res); + } + + int WordEndPosition(int pos, bool onlyWordCharacters) const { + sptr_t res = Call(SCI_WORDENDPOSITION, pos, onlyWordCharacters); + return static_cast(res); + } + + void SetWrapMode(int mode) const { + Call(SCI_SETWRAPMODE, mode, SCI_UNUSED); + } + + int GetWrapMode() const { + sptr_t res = Call(SCI_GETWRAPMODE, SCI_UNUSED, SCI_UNUSED); + return static_cast(res); + } + + void SetWrapVisualFlags(int wrapVisualFlags) const { + Call(SCI_SETWRAPVISUALFLAGS, wrapVisualFlags, SCI_UNUSED); + } + + int GetWrapVisualFlags() const { + sptr_t res = Call(SCI_GETWRAPVISUALFLAGS, SCI_UNUSED, SCI_UNUSED); + return static_cast(res); + } + + void SetWrapVisualFlagsLocation(int wrapVisualFlagsLocation) const { + Call(SCI_SETWRAPVISUALFLAGSLOCATION, wrapVisualFlagsLocation, SCI_UNUSED); + } + + int GetWrapVisualFlagsLocation() const { + sptr_t res = Call(SCI_GETWRAPVISUALFLAGSLOCATION, SCI_UNUSED, SCI_UNUSED); + return static_cast(res); + } + + void SetWrapStartIndent(int indent) const { + Call(SCI_SETWRAPSTARTINDENT, indent, SCI_UNUSED); + } + + int GetWrapStartIndent() const { + sptr_t res = Call(SCI_GETWRAPSTARTINDENT, SCI_UNUSED, SCI_UNUSED); + return static_cast(res); + } + + void SetWrapIndentMode(int mode) const { + Call(SCI_SETWRAPINDENTMODE, mode, SCI_UNUSED); + } + + int GetWrapIndentMode() const { + sptr_t res = Call(SCI_GETWRAPINDENTMODE, SCI_UNUSED, SCI_UNUSED); + return static_cast(res); + } + + void SetLayoutCache(int mode) const { + Call(SCI_SETLAYOUTCACHE, mode, SCI_UNUSED); + } + + int GetLayoutCache() const { + sptr_t res = Call(SCI_GETLAYOUTCACHE, SCI_UNUSED, SCI_UNUSED); + return static_cast(res); + } + + void SetScrollWidth(int pixelWidth) const { + Call(SCI_SETSCROLLWIDTH, pixelWidth, SCI_UNUSED); + } + + int GetScrollWidth() const { + sptr_t res = Call(SCI_GETSCROLLWIDTH, SCI_UNUSED, SCI_UNUSED); + return static_cast(res); + } + + void SetScrollWidthTracking(bool tracking) const { + Call(SCI_SETSCROLLWIDTHTRACKING, tracking, SCI_UNUSED); + } + + bool GetScrollWidthTracking() const { + sptr_t res = Call(SCI_GETSCROLLWIDTHTRACKING, SCI_UNUSED, SCI_UNUSED); + return res != 0; + } + + int TextWidth(int style, const char* text) const { + sptr_t res = Call(SCI_TEXTWIDTH, style, text); + return static_cast(res); + } + + void SetEndAtLastLine(bool endAtLastLine) const { + Call(SCI_SETENDATLASTLINE, endAtLastLine, SCI_UNUSED); + } + + bool GetEndAtLastLine() const { + sptr_t res = Call(SCI_GETENDATLASTLINE, SCI_UNUSED, SCI_UNUSED); + return res != 0; + } + + int TextHeight(int line) const { + sptr_t res = Call(SCI_TEXTHEIGHT, line, SCI_UNUSED); + return static_cast(res); + } + + void SetVScrollBar(bool show) const { + Call(SCI_SETVSCROLLBAR, show, SCI_UNUSED); + } + + bool GetVScrollBar() const { + sptr_t res = Call(SCI_GETVSCROLLBAR, SCI_UNUSED, SCI_UNUSED); + return res != 0; + } + + void AppendText(int length, const char* text) const { + Call(SCI_APPENDTEXT, length, text); + } + + bool GetTwoPhaseDraw() const { + sptr_t res = Call(SCI_GETTWOPHASEDRAW, SCI_UNUSED, SCI_UNUSED); + return res != 0; + } + + void SetTwoPhaseDraw(bool twoPhase) const { + Call(SCI_SETTWOPHASEDRAW, twoPhase, SCI_UNUSED); + } + + int GetPhasesDraw() const { + sptr_t res = Call(SCI_GETPHASESDRAW, SCI_UNUSED, SCI_UNUSED); + return static_cast(res); + } + + void SetPhasesDraw(int phases) const { + Call(SCI_SETPHASESDRAW, phases, SCI_UNUSED); + } + + void SetFontQuality(int fontQuality) const { + Call(SCI_SETFONTQUALITY, fontQuality, SCI_UNUSED); + } + + int GetFontQuality() const { + sptr_t res = Call(SCI_GETFONTQUALITY, SCI_UNUSED, SCI_UNUSED); + return static_cast(res); + } + + void SetFirstVisibleLine(int lineDisplay) const { + Call(SCI_SETFIRSTVISIBLELINE, lineDisplay, SCI_UNUSED); + } + + void SetMultiPaste(int multiPaste) const { + Call(SCI_SETMULTIPASTE, multiPaste, SCI_UNUSED); + } + + int GetMultiPaste() const { + sptr_t res = Call(SCI_GETMULTIPASTE, SCI_UNUSED, SCI_UNUSED); + return static_cast(res); + } + + int GetTag(int tagNumber, char* tagValue) const { + sptr_t res = Call(SCI_GETTAG, tagNumber, tagValue); + return static_cast(res); + } + + void TargetFromSelection() const { + Call(SCI_TARGETFROMSELECTION, SCI_UNUSED, SCI_UNUSED); + } + + void LinesJoin() const { + Call(SCI_LINESJOIN, SCI_UNUSED, SCI_UNUSED); + } + + void LinesSplit(int pixelWidth) const { + Call(SCI_LINESSPLIT, pixelWidth, SCI_UNUSED); + } + + void SetFoldMarginColour(bool useSetting, Colour back) const { + Call(SCI_SETFOLDMARGINCOLOUR, useSetting, back); + } + + void SetFoldMarginHiColour(bool useSetting, Colour fore) const { + Call(SCI_SETFOLDMARGINHICOLOUR, useSetting, fore); + } + + void LineDown() const { + Call(SCI_LINEDOWN, SCI_UNUSED, SCI_UNUSED); + } + + void LineDownExtend() const { + Call(SCI_LINEDOWNEXTEND, SCI_UNUSED, SCI_UNUSED); + } + + void LineUp() const { + Call(SCI_LINEUP, SCI_UNUSED, SCI_UNUSED); + } + + void LineUpExtend() const { + Call(SCI_LINEUPEXTEND, SCI_UNUSED, SCI_UNUSED); + } + + void CharLeft() const { + Call(SCI_CHARLEFT, SCI_UNUSED, SCI_UNUSED); + } + + void CharLeftExtend() const { + Call(SCI_CHARLEFTEXTEND, SCI_UNUSED, SCI_UNUSED); + } + + void CharRight() const { + Call(SCI_CHARRIGHT, SCI_UNUSED, SCI_UNUSED); + } + + void CharRightExtend() const { + Call(SCI_CHARRIGHTEXTEND, SCI_UNUSED, SCI_UNUSED); + } + + void WordLeft() const { + Call(SCI_WORDLEFT, SCI_UNUSED, SCI_UNUSED); + } + + void WordLeftExtend() const { + Call(SCI_WORDLEFTEXTEND, SCI_UNUSED, SCI_UNUSED); + } + + void WordRight() const { + Call(SCI_WORDRIGHT, SCI_UNUSED, SCI_UNUSED); + } + + void WordRightExtend() const { + Call(SCI_WORDRIGHTEXTEND, SCI_UNUSED, SCI_UNUSED); + } + + void Home() const { + Call(SCI_HOME, SCI_UNUSED, SCI_UNUSED); + } + + void HomeExtend() const { + Call(SCI_HOMEEXTEND, SCI_UNUSED, SCI_UNUSED); + } + + void LineEnd() const { + Call(SCI_LINEEND, SCI_UNUSED, SCI_UNUSED); + } + + void LineEndExtend() const { + Call(SCI_LINEENDEXTEND, SCI_UNUSED, SCI_UNUSED); + } + + void DocumentStart() const { + Call(SCI_DOCUMENTSTART, SCI_UNUSED, SCI_UNUSED); + } + + void DocumentStartExtend() const { + Call(SCI_DOCUMENTSTARTEXTEND, SCI_UNUSED, SCI_UNUSED); + } + + void DocumentEnd() const { + Call(SCI_DOCUMENTEND, SCI_UNUSED, SCI_UNUSED); + } + + void DocumentEndExtend() const { + Call(SCI_DOCUMENTENDEXTEND, SCI_UNUSED, SCI_UNUSED); + } + + void PageUp() const { + Call(SCI_PAGEUP, SCI_UNUSED, SCI_UNUSED); + } + + void PageUpExtend() const { + Call(SCI_PAGEUPEXTEND, SCI_UNUSED, SCI_UNUSED); + } + + void PageDown() const { + Call(SCI_PAGEDOWN, SCI_UNUSED, SCI_UNUSED); + } + + void PageDownExtend() const { + Call(SCI_PAGEDOWNEXTEND, SCI_UNUSED, SCI_UNUSED); + } + + void EditToggleOvertype() const { + Call(SCI_EDITTOGGLEOVERTYPE, SCI_UNUSED, SCI_UNUSED); + } + + void Cancel() const { + Call(SCI_CANCEL, SCI_UNUSED, SCI_UNUSED); + } + + void DeleteBack() const { + Call(SCI_DELETEBACK, SCI_UNUSED, SCI_UNUSED); + } + + void Tab() const { + Call(SCI_TAB, SCI_UNUSED, SCI_UNUSED); + } + + void BackTab() const { + Call(SCI_BACKTAB, SCI_UNUSED, SCI_UNUSED); + } + + void NewLine() const { + Call(SCI_NEWLINE, SCI_UNUSED, SCI_UNUSED); + } + + void FormFeed() const { + Call(SCI_FORMFEED, SCI_UNUSED, SCI_UNUSED); + } + + void VCHome() const { + Call(SCI_VCHOME, SCI_UNUSED, SCI_UNUSED); + } + + void VCHomeExtend() const { + Call(SCI_VCHOMEEXTEND, SCI_UNUSED, SCI_UNUSED); + } + + void ZoomIn() const { + Call(SCI_ZOOMIN, SCI_UNUSED, SCI_UNUSED); + } + + void ZoomOut() const { + Call(SCI_ZOOMOUT, SCI_UNUSED, SCI_UNUSED); + } + + void DelWordLeft() const { + Call(SCI_DELWORDLEFT, SCI_UNUSED, SCI_UNUSED); + } + + void DelWordRight() const { + Call(SCI_DELWORDRIGHT, SCI_UNUSED, SCI_UNUSED); + } + + void DelWordRightEnd() const { + Call(SCI_DELWORDRIGHTEND, SCI_UNUSED, SCI_UNUSED); + } + + void LineCut() const { + Call(SCI_LINECUT, SCI_UNUSED, SCI_UNUSED); + } + + void LineDelete() const { + Call(SCI_LINEDELETE, SCI_UNUSED, SCI_UNUSED); + } + + void LineTranspose() const { + Call(SCI_LINETRANSPOSE, SCI_UNUSED, SCI_UNUSED); + } + + void LineDuplicate() const { + Call(SCI_LINEDUPLICATE, SCI_UNUSED, SCI_UNUSED); + } + + void LowerCase() const { + Call(SCI_LOWERCASE, SCI_UNUSED, SCI_UNUSED); + } + + void UpperCase() const { + Call(SCI_UPPERCASE, SCI_UNUSED, SCI_UNUSED); + } + + void LineScrollDown() const { + Call(SCI_LINESCROLLDOWN, SCI_UNUSED, SCI_UNUSED); + } + + void LineScrollUp() const { + Call(SCI_LINESCROLLUP, SCI_UNUSED, SCI_UNUSED); + } + + void DeleteBackNotLine() const { + Call(SCI_DELETEBACKNOTLINE, SCI_UNUSED, SCI_UNUSED); + } + + void HomeDisplay() const { + Call(SCI_HOMEDISPLAY, SCI_UNUSED, SCI_UNUSED); + } + + void HomeDisplayExtend() const { + Call(SCI_HOMEDISPLAYEXTEND, SCI_UNUSED, SCI_UNUSED); + } + + void LineEndDisplay() const { + Call(SCI_LINEENDDISPLAY, SCI_UNUSED, SCI_UNUSED); + } + + void LineEndDisplayExtend() const { + Call(SCI_LINEENDDISPLAYEXTEND, SCI_UNUSED, SCI_UNUSED); + } + + void HomeWrap() const { + Call(SCI_HOMEWRAP, SCI_UNUSED, SCI_UNUSED); + } + + void HomeWrapExtend() const { + Call(SCI_HOMEWRAPEXTEND, SCI_UNUSED, SCI_UNUSED); + } + + void LineEndWrap() const { + Call(SCI_LINEENDWRAP, SCI_UNUSED, SCI_UNUSED); + } + + void LineEndWrapExtend() const { + Call(SCI_LINEENDWRAPEXTEND, SCI_UNUSED, SCI_UNUSED); + } + + void VCHomeWrap() const { + Call(SCI_VCHOMEWRAP, SCI_UNUSED, SCI_UNUSED); + } + + void VCHomeWrapExtend() const { + Call(SCI_VCHOMEWRAPEXTEND, SCI_UNUSED, SCI_UNUSED); + } + + void LineCopy() const { + Call(SCI_LINECOPY, SCI_UNUSED, SCI_UNUSED); + } + + void MoveCaretInsideView() const { + Call(SCI_MOVECARETINSIDEVIEW, SCI_UNUSED, SCI_UNUSED); + } + + int LineLength(int line) const { + sptr_t res = Call(SCI_LINELENGTH, line, SCI_UNUSED); + return static_cast(res); + } + + void BraceHighlight(int pos1, int pos2) const { + Call(SCI_BRACEHIGHLIGHT, pos1, pos2); + } + + void BraceHighlightIndicator(bool useBraceHighlightIndicator, int indicator) const { + Call(SCI_BRACEHIGHLIGHTINDICATOR, useBraceHighlightIndicator, indicator); + } + + void BraceBadLight(int pos) const { + Call(SCI_BRACEBADLIGHT, pos, SCI_UNUSED); + } + + void BraceBadLightIndicator(bool useBraceBadLightIndicator, int indicator) const { + Call(SCI_BRACEBADLIGHTINDICATOR, useBraceBadLightIndicator, indicator); + } + + int BraceMatch(int pos) const { + sptr_t res = Call(SCI_BRACEMATCH, pos, SCI_UNUSED); + return static_cast(res); + } + + bool GetViewEOL() const { + sptr_t res = Call(SCI_GETVIEWEOL, SCI_UNUSED, SCI_UNUSED); + return res != 0; + } + + void SetViewEOL(bool visible) const { + Call(SCI_SETVIEWEOL, visible, SCI_UNUSED); + } + + sptr_t GetDocPointer() const { + sptr_t res = Call(SCI_GETDOCPOINTER, SCI_UNUSED, SCI_UNUSED); + return res; + } + + void SetDocPointer(sptr_t pointer) const { + Call(SCI_SETDOCPOINTER, SCI_UNUSED, pointer); + } + + void SetModEventMask(int mask) const { + Call(SCI_SETMODEVENTMASK, mask, SCI_UNUSED); + } + + int GetEdgeColumn() const { + sptr_t res = Call(SCI_GETEDGECOLUMN, SCI_UNUSED, SCI_UNUSED); + return static_cast(res); + } + + void SetEdgeColumn(int column) const { + Call(SCI_SETEDGECOLUMN, column, SCI_UNUSED); + } + + int GetEdgeMode() const { + sptr_t res = Call(SCI_GETEDGEMODE, SCI_UNUSED, SCI_UNUSED); + return static_cast(res); + } + + void SetEdgeMode(int mode) const { + Call(SCI_SETEDGEMODE, mode, SCI_UNUSED); + } + + Colour GetEdgeColour() const { + sptr_t res = Call(SCI_GETEDGECOLOUR, SCI_UNUSED, SCI_UNUSED); + return static_cast(res); + } + + void SetEdgeColour(Colour edgeColour) const { + Call(SCI_SETEDGECOLOUR, edgeColour, SCI_UNUSED); + } + + void SearchAnchor() const { + Call(SCI_SEARCHANCHOR, SCI_UNUSED, SCI_UNUSED); + } + + int SearchNext(int flags, const char* text) const { + sptr_t res = Call(SCI_SEARCHNEXT, flags, text); + return static_cast(res); + } + + int SearchPrev(int flags, const char* text) const { + sptr_t res = Call(SCI_SEARCHPREV, flags, text); + return static_cast(res); + } + + int LinesOnScreen() const { + sptr_t res = Call(SCI_LINESONSCREEN, SCI_UNUSED, SCI_UNUSED); + return static_cast(res); + } + + void UsePopUp(bool allowPopUp) const { + Call(SCI_USEPOPUP, allowPopUp, SCI_UNUSED); + } + + bool SelectionIsRectangle() const { + sptr_t res = Call(SCI_SELECTIONISRECTANGLE, SCI_UNUSED, SCI_UNUSED); + return res != 0; + } + + void SetZoom(int zoom) const { + Call(SCI_SETZOOM, zoom, SCI_UNUSED); + } + + int GetZoom() const { + sptr_t res = Call(SCI_GETZOOM, SCI_UNUSED, SCI_UNUSED); + return static_cast(res); + } + + sptr_t CreateDocument() const { + sptr_t res = Call(SCI_CREATEDOCUMENT, SCI_UNUSED, SCI_UNUSED); + return res; + } + + void AddRefDocument(sptr_t doc) const { + Call(SCI_ADDREFDOCUMENT, SCI_UNUSED, doc); + } + + void ReleaseDocument(sptr_t doc) const { + Call(SCI_RELEASEDOCUMENT, SCI_UNUSED, doc); + } + + int GetModEventMask() const { + sptr_t res = Call(SCI_GETMODEVENTMASK, SCI_UNUSED, SCI_UNUSED); + return static_cast(res); + } + + void SetFocus(bool focus) const { + Call(SCI_SETFOCUS, focus, SCI_UNUSED); + } + + bool GetFocus() const { + sptr_t res = Call(SCI_GETFOCUS, SCI_UNUSED, SCI_UNUSED); + return res != 0; + } + + void SetStatus(int statusCode) const { + Call(SCI_SETSTATUS, statusCode, SCI_UNUSED); + } + + int GetStatus() const { + sptr_t res = Call(SCI_GETSTATUS, SCI_UNUSED, SCI_UNUSED); + return static_cast(res); + } + + void SetMouseDownCaptures(bool captures) const { + Call(SCI_SETMOUSEDOWNCAPTURES, captures, SCI_UNUSED); + } + + bool GetMouseDownCaptures() const { + sptr_t res = Call(SCI_GETMOUSEDOWNCAPTURES, SCI_UNUSED, SCI_UNUSED); + return res != 0; + } + + void SetCursor(int cursorType) const { + Call(SCI_SETCURSOR, cursorType, SCI_UNUSED); + } + + int GetCursor() const { + sptr_t res = Call(SCI_GETCURSOR, SCI_UNUSED, SCI_UNUSED); + return static_cast(res); + } + + void SetControlCharSymbol(int symbol) const { + Call(SCI_SETCONTROLCHARSYMBOL, symbol, SCI_UNUSED); + } + + int GetControlCharSymbol() const { + sptr_t res = Call(SCI_GETCONTROLCHARSYMBOL, SCI_UNUSED, SCI_UNUSED); + return static_cast(res); + } + + void WordPartLeft() const { + Call(SCI_WORDPARTLEFT, SCI_UNUSED, SCI_UNUSED); + } + + void WordPartLeftExtend() const { + Call(SCI_WORDPARTLEFTEXTEND, SCI_UNUSED, SCI_UNUSED); + } + + void WordPartRight() const { + Call(SCI_WORDPARTRIGHT, SCI_UNUSED, SCI_UNUSED); + } + + void WordPartRightExtend() const { + Call(SCI_WORDPARTRIGHTEXTEND, SCI_UNUSED, SCI_UNUSED); + } + + void SetVisiblePolicy(int visiblePolicy, int visibleSlop) const { + Call(SCI_SETVISIBLEPOLICY, visiblePolicy, visibleSlop); + } + + void DelLineLeft() const { + Call(SCI_DELLINELEFT, SCI_UNUSED, SCI_UNUSED); + } + + void DelLineRight() const { + Call(SCI_DELLINERIGHT, SCI_UNUSED, SCI_UNUSED); + } + + void SetXOffset(int newOffset) const { + Call(SCI_SETXOFFSET, newOffset, SCI_UNUSED); + } + + int GetXOffset() const { + sptr_t res = Call(SCI_GETXOFFSET, SCI_UNUSED, SCI_UNUSED); + return static_cast(res); + } + + void ChooseCaretX() const { + Call(SCI_CHOOSECARETX, SCI_UNUSED, SCI_UNUSED); + } + + void GrabFocus() const { + Call(SCI_GRABFOCUS, SCI_UNUSED, SCI_UNUSED); + } + + void SetXCaretPolicy(int caretPolicy, int caretSlop) const { + Call(SCI_SETXCARETPOLICY, caretPolicy, caretSlop); + } + + void SetYCaretPolicy(int caretPolicy, int caretSlop) const { + Call(SCI_SETYCARETPOLICY, caretPolicy, caretSlop); + } + + void SetPrintWrapMode(int mode) const { + Call(SCI_SETPRINTWRAPMODE, mode, SCI_UNUSED); + } + + int GetPrintWrapMode() const { + sptr_t res = Call(SCI_GETPRINTWRAPMODE, SCI_UNUSED, SCI_UNUSED); + return static_cast(res); + } + + void SetHotspotActiveFore(bool useSetting, Colour fore) const { + Call(SCI_SETHOTSPOTACTIVEFORE, useSetting, fore); + } + + Colour GetHotspotActiveFore() const { + sptr_t res = Call(SCI_GETHOTSPOTACTIVEFORE, SCI_UNUSED, SCI_UNUSED); + return static_cast(res); + } + + void SetHotspotActiveBack(bool useSetting, Colour back) const { + Call(SCI_SETHOTSPOTACTIVEBACK, useSetting, back); + } + + Colour GetHotspotActiveBack() const { + sptr_t res = Call(SCI_GETHOTSPOTACTIVEBACK, SCI_UNUSED, SCI_UNUSED); + return static_cast(res); + } + + void SetHotspotActiveUnderline(bool underline) const { + Call(SCI_SETHOTSPOTACTIVEUNDERLINE, underline, SCI_UNUSED); + } + + bool GetHotspotActiveUnderline() const { + sptr_t res = Call(SCI_GETHOTSPOTACTIVEUNDERLINE, SCI_UNUSED, SCI_UNUSED); + return res != 0; + } + + void SetHotspotSingleLine(bool singleLine) const { + Call(SCI_SETHOTSPOTSINGLELINE, singleLine, SCI_UNUSED); + } + + bool GetHotspotSingleLine() const { + sptr_t res = Call(SCI_GETHOTSPOTSINGLELINE, SCI_UNUSED, SCI_UNUSED); + return res != 0; + } + + void ParaDown() const { + Call(SCI_PARADOWN, SCI_UNUSED, SCI_UNUSED); + } + + void ParaDownExtend() const { + Call(SCI_PARADOWNEXTEND, SCI_UNUSED, SCI_UNUSED); + } + + void ParaUp() const { + Call(SCI_PARAUP, SCI_UNUSED, SCI_UNUSED); + } + + void ParaUpExtend() const { + Call(SCI_PARAUPEXTEND, SCI_UNUSED, SCI_UNUSED); + } + + int PositionBefore(int pos) const { + sptr_t res = Call(SCI_POSITIONBEFORE, pos, SCI_UNUSED); + return static_cast(res); + } + + int PositionAfter(int pos) const { + sptr_t res = Call(SCI_POSITIONAFTER, pos, SCI_UNUSED); + return static_cast(res); + } + + int PositionRelative(int pos, int relative) const { + sptr_t res = Call(SCI_POSITIONRELATIVE, pos, relative); + return static_cast(res); + } + + void CopyRange(int start, int end) const { + Call(SCI_COPYRANGE, start, end); + } + + void CopyText(int length, const char* text) const { + Call(SCI_COPYTEXT, length, text); + } + + void SetSelectionMode(int mode) const { + Call(SCI_SETSELECTIONMODE, mode, SCI_UNUSED); + } + + int GetSelectionMode() const { + sptr_t res = Call(SCI_GETSELECTIONMODE, SCI_UNUSED, SCI_UNUSED); + return static_cast(res); + } + + int GetLineSelStartPosition(int line) const { + sptr_t res = Call(SCI_GETLINESELSTARTPOSITION, line, SCI_UNUSED); + return static_cast(res); + } + + int GetLineSelEndPosition(int line) const { + sptr_t res = Call(SCI_GETLINESELENDPOSITION, line, SCI_UNUSED); + return static_cast(res); + } + + void LineDownRectExtend() const { + Call(SCI_LINEDOWNRECTEXTEND, SCI_UNUSED, SCI_UNUSED); + } + + void LineUpRectExtend() const { + Call(SCI_LINEUPRECTEXTEND, SCI_UNUSED, SCI_UNUSED); + } + + void CharLeftRectExtend() const { + Call(SCI_CHARLEFTRECTEXTEND, SCI_UNUSED, SCI_UNUSED); + } + + void CharRightRectExtend() const { + Call(SCI_CHARRIGHTRECTEXTEND, SCI_UNUSED, SCI_UNUSED); + } + + void HomeRectExtend() const { + Call(SCI_HOMERECTEXTEND, SCI_UNUSED, SCI_UNUSED); + } + + void VCHomeRectExtend() const { + Call(SCI_VCHOMERECTEXTEND, SCI_UNUSED, SCI_UNUSED); + } + + void LineEndRectExtend() const { + Call(SCI_LINEENDRECTEXTEND, SCI_UNUSED, SCI_UNUSED); + } + + void PageUpRectExtend() const { + Call(SCI_PAGEUPRECTEXTEND, SCI_UNUSED, SCI_UNUSED); + } + + void PageDownRectExtend() const { + Call(SCI_PAGEDOWNRECTEXTEND, SCI_UNUSED, SCI_UNUSED); + } + + void StutteredPageUp() const { + Call(SCI_STUTTEREDPAGEUP, SCI_UNUSED, SCI_UNUSED); + } + + void StutteredPageUpExtend() const { + Call(SCI_STUTTEREDPAGEUPEXTEND, SCI_UNUSED, SCI_UNUSED); + } + + void StutteredPageDown() const { + Call(SCI_STUTTEREDPAGEDOWN, SCI_UNUSED, SCI_UNUSED); + } + + void StutteredPageDownExtend() const { + Call(SCI_STUTTEREDPAGEDOWNEXTEND, SCI_UNUSED, SCI_UNUSED); + } + + void WordLeftEnd() const { + Call(SCI_WORDLEFTEND, SCI_UNUSED, SCI_UNUSED); + } + + void WordLeftEndExtend() const { + Call(SCI_WORDLEFTENDEXTEND, SCI_UNUSED, SCI_UNUSED); + } + + void WordRightEnd() const { + Call(SCI_WORDRIGHTEND, SCI_UNUSED, SCI_UNUSED); + } + + void WordRightEndExtend() const { + Call(SCI_WORDRIGHTENDEXTEND, SCI_UNUSED, SCI_UNUSED); + } + + void SetWhitespaceChars(const char* characters) const { + Call(SCI_SETWHITESPACECHARS, SCI_UNUSED, characters); + } + + int GetWhitespaceChars(char* characters) const { + sptr_t res = Call(SCI_GETWHITESPACECHARS, SCI_UNUSED, characters); + return static_cast(res); + } + + void SetPunctuationChars(const char* characters) const { + Call(SCI_SETPUNCTUATIONCHARS, SCI_UNUSED, characters); + } + + int GetPunctuationChars(char* characters) const { + sptr_t res = Call(SCI_GETPUNCTUATIONCHARS, SCI_UNUSED, characters); + return static_cast(res); + } + + void SetCharsDefault() const { + Call(SCI_SETCHARSDEFAULT, SCI_UNUSED, SCI_UNUSED); + } + + int AutoCGetCurrent() const { + sptr_t res = Call(SCI_AUTOCGETCURRENT, SCI_UNUSED, SCI_UNUSED); + return static_cast(res); + } + + int AutoCGetCurrentText(char* s) const { + sptr_t res = Call(SCI_AUTOCGETCURRENTTEXT, SCI_UNUSED, s); + return static_cast(res); + } + + void AutoCSetCaseInsensitiveBehaviour(int behaviour) const { + Call(SCI_AUTOCSETCASEINSENSITIVEBEHAVIOUR, behaviour, SCI_UNUSED); + } + + int AutoCGetCaseInsensitiveBehaviour() const { + sptr_t res = Call(SCI_AUTOCGETCASEINSENSITIVEBEHAVIOUR, SCI_UNUSED, SCI_UNUSED); + return static_cast(res); + } + + void AutoCSetMulti(int multi) const { + Call(SCI_AUTOCSETMULTI, multi, SCI_UNUSED); + } + + int AutoCGetMulti() const { + sptr_t res = Call(SCI_AUTOCGETMULTI, SCI_UNUSED, SCI_UNUSED); + return static_cast(res); + } + + void AutoCSetOrder(int order) const { + Call(SCI_AUTOCSETORDER, order, SCI_UNUSED); + } + + int AutoCGetOrder() const { + sptr_t res = Call(SCI_AUTOCGETORDER, SCI_UNUSED, SCI_UNUSED); + return static_cast(res); + } + + void Allocate(int bytes) const { + Call(SCI_ALLOCATE, bytes, SCI_UNUSED); + } + + int TargetAsUTF8(char* s) const { + sptr_t res = Call(SCI_TARGETASUTF8, SCI_UNUSED, s); + return static_cast(res); + } + + void SetLengthForEncode(int bytes) const { + Call(SCI_SETLENGTHFORENCODE, bytes, SCI_UNUSED); + } + + int EncodedFromUTF8(const char* utf8, char* encoded) const { + sptr_t res = Call(SCI_ENCODEDFROMUTF8, utf8, encoded); + return static_cast(res); + } + + int FindColumn(int line, int column) const { + sptr_t res = Call(SCI_FINDCOLUMN, line, column); + return static_cast(res); + } + + int GetCaretSticky() const { + sptr_t res = Call(SCI_GETCARETSTICKY, SCI_UNUSED, SCI_UNUSED); + return static_cast(res); + } + + void SetCaretSticky(int useCaretStickyBehaviour) const { + Call(SCI_SETCARETSTICKY, useCaretStickyBehaviour, SCI_UNUSED); + } + + void ToggleCaretSticky() const { + Call(SCI_TOGGLECARETSTICKY, SCI_UNUSED, SCI_UNUSED); + } + + void SetPasteConvertEndings(bool convert) const { + Call(SCI_SETPASTECONVERTENDINGS, convert, SCI_UNUSED); + } + + bool GetPasteConvertEndings() const { + sptr_t res = Call(SCI_GETPASTECONVERTENDINGS, SCI_UNUSED, SCI_UNUSED); + return res != 0; + } + + void SelectionDuplicate() const { + Call(SCI_SELECTIONDUPLICATE, SCI_UNUSED, SCI_UNUSED); + } + + void SetCaretLineBackAlpha(int alpha) const { + Call(SCI_SETCARETLINEBACKALPHA, alpha, SCI_UNUSED); + } + + int GetCaretLineBackAlpha() const { + sptr_t res = Call(SCI_GETCARETLINEBACKALPHA, SCI_UNUSED, SCI_UNUSED); + return static_cast(res); + } + + void SetCaretStyle(int caretStyle) const { + Call(SCI_SETCARETSTYLE, caretStyle, SCI_UNUSED); + } + + int GetCaretStyle() const { + sptr_t res = Call(SCI_GETCARETSTYLE, SCI_UNUSED, SCI_UNUSED); + return static_cast(res); + } + + void SetIndicatorCurrent(int indicator) const { + Call(SCI_SETINDICATORCURRENT, indicator, SCI_UNUSED); + } + + int GetIndicatorCurrent() const { + sptr_t res = Call(SCI_GETINDICATORCURRENT, SCI_UNUSED, SCI_UNUSED); + return static_cast(res); + } + + void SetIndicatorValue(int value) const { + Call(SCI_SETINDICATORVALUE, value, SCI_UNUSED); + } + + int GetIndicatorValue() const { + sptr_t res = Call(SCI_GETINDICATORVALUE, SCI_UNUSED, SCI_UNUSED); + return static_cast(res); + } + + void IndicatorFillRange(int position, int fillLength) const { + Call(SCI_INDICATORFILLRANGE, position, fillLength); + } + + void IndicatorClearRange(int position, int clearLength) const { + Call(SCI_INDICATORCLEARRANGE, position, clearLength); + } + + int IndicatorAllOnFor(int position) const { + sptr_t res = Call(SCI_INDICATORALLONFOR, position, SCI_UNUSED); + return static_cast(res); + } + + int IndicatorValueAt(int indicator, int position) const { + sptr_t res = Call(SCI_INDICATORVALUEAT, indicator, position); + return static_cast(res); + } + + int IndicatorStart(int indicator, int position) const { + sptr_t res = Call(SCI_INDICATORSTART, indicator, position); + return static_cast(res); + } + + int IndicatorEnd(int indicator, int position) const { + sptr_t res = Call(SCI_INDICATOREND, indicator, position); + return static_cast(res); + } + + void SetPositionCache(int size) const { + Call(SCI_SETPOSITIONCACHE, size, SCI_UNUSED); + } + + int GetPositionCache() const { + sptr_t res = Call(SCI_GETPOSITIONCACHE, SCI_UNUSED, SCI_UNUSED); + return static_cast(res); + } + + void CopyAllowLine() const { + Call(SCI_COPYALLOWLINE, SCI_UNUSED, SCI_UNUSED); + } + + const char* GetCharacterPointer() const { + sptr_t res = Call(SCI_GETCHARACTERPOINTER, SCI_UNUSED, SCI_UNUSED); + return reinterpret_cast(res); + } + + const char* GetRangePointer(int position, int rangeLength) const { + sptr_t res = Call(SCI_GETRANGEPOINTER, position, rangeLength); + return reinterpret_cast(res); + } + + int GetGapPosition() const { + sptr_t res = Call(SCI_GETGAPPOSITION, SCI_UNUSED, SCI_UNUSED); + return static_cast(res); + } + + void IndicSetAlpha(int indicator, int alpha) const { + Call(SCI_INDICSETALPHA, indicator, alpha); + } + + int IndicGetAlpha(int indicator) const { + sptr_t res = Call(SCI_INDICGETALPHA, indicator, SCI_UNUSED); + return static_cast(res); + } + + void IndicSetOutlineAlpha(int indicator, int alpha) const { + Call(SCI_INDICSETOUTLINEALPHA, indicator, alpha); + } + + int IndicGetOutlineAlpha(int indicator) const { + sptr_t res = Call(SCI_INDICGETOUTLINEALPHA, indicator, SCI_UNUSED); + return static_cast(res); + } + + void SetExtraAscent(int extraAscent) const { + Call(SCI_SETEXTRAASCENT, extraAscent, SCI_UNUSED); + } + + int GetExtraAscent() const { + sptr_t res = Call(SCI_GETEXTRAASCENT, SCI_UNUSED, SCI_UNUSED); + return static_cast(res); + } + + void SetExtraDescent(int extraDescent) const { + Call(SCI_SETEXTRADESCENT, extraDescent, SCI_UNUSED); + } + + int GetExtraDescent() const { + sptr_t res = Call(SCI_GETEXTRADESCENT, SCI_UNUSED, SCI_UNUSED); + return static_cast(res); + } + + int MarkerSymbolDefined(int markerNumber) const { + sptr_t res = Call(SCI_MARKERSYMBOLDEFINED, markerNumber, SCI_UNUSED); + return static_cast(res); + } + + void MarginSetText(int line, const char* text) const { + Call(SCI_MARGINSETTEXT, line, text); + } + + int MarginGetText(int line, char* text) const { + sptr_t res = Call(SCI_MARGINGETTEXT, line, text); + return static_cast(res); + } + + void MarginSetStyle(int line, int style) const { + Call(SCI_MARGINSETSTYLE, line, style); + } + + int MarginGetStyle(int line) const { + sptr_t res = Call(SCI_MARGINGETSTYLE, line, SCI_UNUSED); + return static_cast(res); + } + + void MarginSetStyles(int line, const char* styles) const { + Call(SCI_MARGINSETSTYLES, line, styles); + } + + int MarginGetStyles(int line, char* styles) const { + sptr_t res = Call(SCI_MARGINGETSTYLES, line, styles); + return static_cast(res); + } + + void MarginTextClearAll() const { + Call(SCI_MARGINTEXTCLEARALL, SCI_UNUSED, SCI_UNUSED); + } + + void MarginSetStyleOffset(int style) const { + Call(SCI_MARGINSETSTYLEOFFSET, style, SCI_UNUSED); + } + + int MarginGetStyleOffset() const { + sptr_t res = Call(SCI_MARGINGETSTYLEOFFSET, SCI_UNUSED, SCI_UNUSED); + return static_cast(res); + } + + void SetMarginOptions(int marginOptions) const { + Call(SCI_SETMARGINOPTIONS, marginOptions, SCI_UNUSED); + } + + int GetMarginOptions() const { + sptr_t res = Call(SCI_GETMARGINOPTIONS, SCI_UNUSED, SCI_UNUSED); + return static_cast(res); + } + + void AnnotationSetText(int line, const char* text) const { + Call(SCI_ANNOTATIONSETTEXT, line, text); + } + + int AnnotationGetText(int line, char* text) const { + sptr_t res = Call(SCI_ANNOTATIONGETTEXT, line, text); + return static_cast(res); + } + + void AnnotationSetStyle(int line, int style) const { + Call(SCI_ANNOTATIONSETSTYLE, line, style); + } + + int AnnotationGetStyle(int line) const { + sptr_t res = Call(SCI_ANNOTATIONGETSTYLE, line, SCI_UNUSED); + return static_cast(res); + } + + void AnnotationSetStyles(int line, const char* styles) const { + Call(SCI_ANNOTATIONSETSTYLES, line, styles); + } + + int AnnotationGetStyles(int line, char* styles) const { + sptr_t res = Call(SCI_ANNOTATIONGETSTYLES, line, styles); + return static_cast(res); + } + + int AnnotationGetLines(int line) const { + sptr_t res = Call(SCI_ANNOTATIONGETLINES, line, SCI_UNUSED); + return static_cast(res); + } + + void AnnotationClearAll() const { + Call(SCI_ANNOTATIONCLEARALL, SCI_UNUSED, SCI_UNUSED); + } + + void AnnotationSetVisible(int visible) const { + Call(SCI_ANNOTATIONSETVISIBLE, visible, SCI_UNUSED); + } + + int AnnotationGetVisible() const { + sptr_t res = Call(SCI_ANNOTATIONGETVISIBLE, SCI_UNUSED, SCI_UNUSED); + return static_cast(res); + } + + void AnnotationSetStyleOffset(int style) const { + Call(SCI_ANNOTATIONSETSTYLEOFFSET, style, SCI_UNUSED); + } + + int AnnotationGetStyleOffset() const { + sptr_t res = Call(SCI_ANNOTATIONGETSTYLEOFFSET, SCI_UNUSED, SCI_UNUSED); + return static_cast(res); + } + + void ReleaseAllExtendedStyles() const { + Call(SCI_RELEASEALLEXTENDEDSTYLES, SCI_UNUSED, SCI_UNUSED); + } + + int AllocateExtendedStyles(int numberStyles) const { + sptr_t res = Call(SCI_ALLOCATEEXTENDEDSTYLES, numberStyles, SCI_UNUSED); + return static_cast(res); + } + + void AddUndoAction(int token, int flags) const { + Call(SCI_ADDUNDOACTION, token, flags); + } + + int CharPositionFromPoint(int x, int y) const { + sptr_t res = Call(SCI_CHARPOSITIONFROMPOINT, x, y); + return static_cast(res); + } + + int CharPositionFromPointClose(int x, int y) const { + sptr_t res = Call(SCI_CHARPOSITIONFROMPOINTCLOSE, x, y); + return static_cast(res); + } + + void SetMouseSelectionRectangularSwitch(bool mouseSelectionRectangularSwitch) const { + Call(SCI_SETMOUSESELECTIONRECTANGULARSWITCH, mouseSelectionRectangularSwitch, SCI_UNUSED); + } + + bool GetMouseSelectionRectangularSwitch() const { + sptr_t res = Call(SCI_GETMOUSESELECTIONRECTANGULARSWITCH, SCI_UNUSED, SCI_UNUSED); + return res != 0; + } + + void SetMultipleSelection(bool multipleSelection) const { + Call(SCI_SETMULTIPLESELECTION, multipleSelection, SCI_UNUSED); + } + + bool GetMultipleSelection() const { + sptr_t res = Call(SCI_GETMULTIPLESELECTION, SCI_UNUSED, SCI_UNUSED); + return res != 0; + } + + void SetAdditionalSelectionTyping(bool additionalSelectionTyping) const { + Call(SCI_SETADDITIONALSELECTIONTYPING, additionalSelectionTyping, SCI_UNUSED); + } + + bool GetAdditionalSelectionTyping() const { + sptr_t res = Call(SCI_GETADDITIONALSELECTIONTYPING, SCI_UNUSED, SCI_UNUSED); + return res != 0; + } + + void SetAdditionalCaretsBlink(bool additionalCaretsBlink) const { + Call(SCI_SETADDITIONALCARETSBLINK, additionalCaretsBlink, SCI_UNUSED); + } + + bool GetAdditionalCaretsBlink() const { + sptr_t res = Call(SCI_GETADDITIONALCARETSBLINK, SCI_UNUSED, SCI_UNUSED); + return res != 0; + } + + void SetAdditionalCaretsVisible(bool additionalCaretsBlink) const { + Call(SCI_SETADDITIONALCARETSVISIBLE, additionalCaretsBlink, SCI_UNUSED); + } + + bool GetAdditionalCaretsVisible() const { + sptr_t res = Call(SCI_GETADDITIONALCARETSVISIBLE, SCI_UNUSED, SCI_UNUSED); + return res != 0; + } + + int GetSelections() const { + sptr_t res = Call(SCI_GETSELECTIONS, SCI_UNUSED, SCI_UNUSED); + return static_cast(res); + } + + bool GetSelectionEmpty() const { + sptr_t res = Call(SCI_GETSELECTIONEMPTY, SCI_UNUSED, SCI_UNUSED); + return res != 0; + } + + void ClearSelections() const { + Call(SCI_CLEARSELECTIONS, SCI_UNUSED, SCI_UNUSED); + } + + int SetSelection(int caret, int anchor) const { + sptr_t res = Call(SCI_SETSELECTION, caret, anchor); + return static_cast(res); + } + + int AddSelection(int caret, int anchor) const { + sptr_t res = Call(SCI_ADDSELECTION, caret, anchor); + return static_cast(res); + } + + void DropSelectionN(int selection) const { + Call(SCI_DROPSELECTIONN, selection, SCI_UNUSED); + } + + void SetMainSelection(int selection) const { + Call(SCI_SETMAINSELECTION, selection, SCI_UNUSED); + } + + int GetMainSelection() const { + sptr_t res = Call(SCI_GETMAINSELECTION, SCI_UNUSED, SCI_UNUSED); + return static_cast(res); + } + + void SetSelectionNCaret(int selection, int pos) const { + Call(SCI_SETSELECTIONNCARET, selection, pos); + } + + int GetSelectionNCaret(int selection) const { + sptr_t res = Call(SCI_GETSELECTIONNCARET, selection, SCI_UNUSED); + return static_cast(res); + } + + void SetSelectionNAnchor(int selection, int posAnchor) const { + Call(SCI_SETSELECTIONNANCHOR, selection, posAnchor); + } + + int GetSelectionNAnchor(int selection) const { + sptr_t res = Call(SCI_GETSELECTIONNANCHOR, selection, SCI_UNUSED); + return static_cast(res); + } + + void SetSelectionNCaretVirtualSpace(int selection, int space) const { + Call(SCI_SETSELECTIONNCARETVIRTUALSPACE, selection, space); + } + + int GetSelectionNCaretVirtualSpace(int selection) const { + sptr_t res = Call(SCI_GETSELECTIONNCARETVIRTUALSPACE, selection, SCI_UNUSED); + return static_cast(res); + } + + void SetSelectionNAnchorVirtualSpace(int selection, int space) const { + Call(SCI_SETSELECTIONNANCHORVIRTUALSPACE, selection, space); + } + + int GetSelectionNAnchorVirtualSpace(int selection) const { + sptr_t res = Call(SCI_GETSELECTIONNANCHORVIRTUALSPACE, selection, SCI_UNUSED); + return static_cast(res); + } + + void SetSelectionNStart(int selection, int pos) const { + Call(SCI_SETSELECTIONNSTART, selection, pos); + } + + int GetSelectionNStart(int selection) const { + sptr_t res = Call(SCI_GETSELECTIONNSTART, selection, SCI_UNUSED); + return static_cast(res); + } + + void SetSelectionNEnd(int selection, int pos) const { + Call(SCI_SETSELECTIONNEND, selection, pos); + } + + int GetSelectionNEnd(int selection) const { + sptr_t res = Call(SCI_GETSELECTIONNEND, selection, SCI_UNUSED); + return static_cast(res); + } + + void SetRectangularSelectionCaret(int pos) const { + Call(SCI_SETRECTANGULARSELECTIONCARET, pos, SCI_UNUSED); + } + + int GetRectangularSelectionCaret() const { + sptr_t res = Call(SCI_GETRECTANGULARSELECTIONCARET, SCI_UNUSED, SCI_UNUSED); + return static_cast(res); + } + + void SetRectangularSelectionAnchor(int posAnchor) const { + Call(SCI_SETRECTANGULARSELECTIONANCHOR, posAnchor, SCI_UNUSED); + } + + int GetRectangularSelectionAnchor() const { + sptr_t res = Call(SCI_GETRECTANGULARSELECTIONANCHOR, SCI_UNUSED, SCI_UNUSED); + return static_cast(res); + } + + void SetRectangularSelectionCaretVirtualSpace(int space) const { + Call(SCI_SETRECTANGULARSELECTIONCARETVIRTUALSPACE, space, SCI_UNUSED); + } + + int GetRectangularSelectionCaretVirtualSpace() const { + sptr_t res = Call(SCI_GETRECTANGULARSELECTIONCARETVIRTUALSPACE, SCI_UNUSED, SCI_UNUSED); + return static_cast(res); + } + + void SetRectangularSelectionAnchorVirtualSpace(int space) const { + Call(SCI_SETRECTANGULARSELECTIONANCHORVIRTUALSPACE, space, SCI_UNUSED); + } + + int GetRectangularSelectionAnchorVirtualSpace() const { + sptr_t res = Call(SCI_GETRECTANGULARSELECTIONANCHORVIRTUALSPACE, SCI_UNUSED, SCI_UNUSED); + return static_cast(res); + } + + void SetVirtualSpaceOptions(int virtualSpaceOptions) const { + Call(SCI_SETVIRTUALSPACEOPTIONS, virtualSpaceOptions, SCI_UNUSED); + } + + int GetVirtualSpaceOptions() const { + sptr_t res = Call(SCI_GETVIRTUALSPACEOPTIONS, SCI_UNUSED, SCI_UNUSED); + return static_cast(res); + } + + void SetRectangularSelectionModifier(int modifier) const { + Call(SCI_SETRECTANGULARSELECTIONMODIFIER, modifier, SCI_UNUSED); + } + + int GetRectangularSelectionModifier() const { + sptr_t res = Call(SCI_GETRECTANGULARSELECTIONMODIFIER, SCI_UNUSED, SCI_UNUSED); + return static_cast(res); + } + + void SetAdditionalSelFore(Colour fore) const { + Call(SCI_SETADDITIONALSELFORE, fore, SCI_UNUSED); + } + + void SetAdditionalSelBack(Colour back) const { + Call(SCI_SETADDITIONALSELBACK, back, SCI_UNUSED); + } + + void SetAdditionalSelAlpha(int alpha) const { + Call(SCI_SETADDITIONALSELALPHA, alpha, SCI_UNUSED); + } + + int GetAdditionalSelAlpha() const { + sptr_t res = Call(SCI_GETADDITIONALSELALPHA, SCI_UNUSED, SCI_UNUSED); + return static_cast(res); + } + + void SetAdditionalCaretFore(Colour fore) const { + Call(SCI_SETADDITIONALCARETFORE, fore, SCI_UNUSED); + } + + Colour GetAdditionalCaretFore() const { + sptr_t res = Call(SCI_GETADDITIONALCARETFORE, SCI_UNUSED, SCI_UNUSED); + return static_cast(res); + } + + void RotateSelection() const { + Call(SCI_ROTATESELECTION, SCI_UNUSED, SCI_UNUSED); + } + + void SwapMainAnchorCaret() const { + Call(SCI_SWAPMAINANCHORCARET, SCI_UNUSED, SCI_UNUSED); + } + + int ChangeLexerState(int start, int end) const { + sptr_t res = Call(SCI_CHANGELEXERSTATE, start, end); + return static_cast(res); + } + + int ContractedFoldNext(int lineStart) const { + sptr_t res = Call(SCI_CONTRACTEDFOLDNEXT, lineStart, SCI_UNUSED); + return static_cast(res); + } + + void VerticalCentreCaret() const { + Call(SCI_VERTICALCENTRECARET, SCI_UNUSED, SCI_UNUSED); + } + + void MoveSelectedLinesUp() const { + Call(SCI_MOVESELECTEDLINESUP, SCI_UNUSED, SCI_UNUSED); + } + + void MoveSelectedLinesDown() const { + Call(SCI_MOVESELECTEDLINESDOWN, SCI_UNUSED, SCI_UNUSED); + } + + void SetIdentifier(int identifier) const { + Call(SCI_SETIDENTIFIER, identifier, SCI_UNUSED); + } + + int GetIdentifier() const { + sptr_t res = Call(SCI_GETIDENTIFIER, SCI_UNUSED, SCI_UNUSED); + return static_cast(res); + } + + void RGBAImageSetWidth(int width) const { + Call(SCI_RGBAIMAGESETWIDTH, width, SCI_UNUSED); + } + + void RGBAImageSetHeight(int height) const { + Call(SCI_RGBAIMAGESETHEIGHT, height, SCI_UNUSED); + } + + void RGBAImageSetScale(int scalePercent) const { + Call(SCI_RGBAIMAGESETSCALE, scalePercent, SCI_UNUSED); + } + + void MarkerDefineRGBAImage(int markerNumber, const char* pixels) const { + Call(SCI_MARKERDEFINERGBAIMAGE, markerNumber, pixels); + } + + void RegisterRGBAImage(int type, const char* pixels) const { + Call(SCI_REGISTERRGBAIMAGE, type, pixels); + } + + void ScrollToStart() const { + Call(SCI_SCROLLTOSTART, SCI_UNUSED, SCI_UNUSED); + } + + void ScrollToEnd() const { + Call(SCI_SCROLLTOEND, SCI_UNUSED, SCI_UNUSED); + } + + void SetTechnology(int technology) const { + Call(SCI_SETTECHNOLOGY, technology, SCI_UNUSED); + } + + int GetTechnology() const { + sptr_t res = Call(SCI_GETTECHNOLOGY, SCI_UNUSED, SCI_UNUSED); + return static_cast(res); + } + + int CreateLoader(int bytes) const { + sptr_t res = Call(SCI_CREATELOADER, bytes, SCI_UNUSED); + return static_cast(res); + } + + void FindIndicatorShow(int start, int end) const { + Call(SCI_FINDINDICATORSHOW, start, end); + } + + void FindIndicatorFlash(int start, int end) const { + Call(SCI_FINDINDICATORFLASH, start, end); + } + + void FindIndicatorHide() const { + Call(SCI_FINDINDICATORHIDE, SCI_UNUSED, SCI_UNUSED); + } + + void VCHomeDisplay() const { + Call(SCI_VCHOMEDISPLAY, SCI_UNUSED, SCI_UNUSED); + } + + void VCHomeDisplayExtend() const { + Call(SCI_VCHOMEDISPLAYEXTEND, SCI_UNUSED, SCI_UNUSED); + } + + bool GetCaretLineVisibleAlways() const { + sptr_t res = Call(SCI_GETCARETLINEVISIBLEALWAYS, SCI_UNUSED, SCI_UNUSED); + return res != 0; + } + + void SetCaretLineVisibleAlways(bool alwaysVisible) const { + Call(SCI_SETCARETLINEVISIBLEALWAYS, alwaysVisible, SCI_UNUSED); + } + + void SetLineEndTypesAllowed(int lineEndBitSet) const { + Call(SCI_SETLINEENDTYPESALLOWED, lineEndBitSet, SCI_UNUSED); + } + + int GetLineEndTypesAllowed() const { + sptr_t res = Call(SCI_GETLINEENDTYPESALLOWED, SCI_UNUSED, SCI_UNUSED); + return static_cast(res); + } + + int GetLineEndTypesActive() const { + sptr_t res = Call(SCI_GETLINEENDTYPESACTIVE, SCI_UNUSED, SCI_UNUSED); + return static_cast(res); + } + + void SetRepresentation(const char* encodedCharacter, const char* representation) const { + Call(SCI_SETREPRESENTATION, encodedCharacter, representation); + } + + int GetRepresentation(const char* encodedCharacter, char* representation) const { + sptr_t res = Call(SCI_GETREPRESENTATION, encodedCharacter, representation); + return static_cast(res); + } + + void ClearRepresentation(const char* encodedCharacter) const { + Call(SCI_CLEARREPRESENTATION, encodedCharacter, SCI_UNUSED); + } + + void StartRecord() const { + Call(SCI_STARTRECORD, SCI_UNUSED, SCI_UNUSED); + } + + void StopRecord() const { + Call(SCI_STOPRECORD, SCI_UNUSED, SCI_UNUSED); + } + + void SetLexer(int lexer) const { + Call(SCI_SETLEXER, lexer, SCI_UNUSED); + } + + int GetLexer() const { + sptr_t res = Call(SCI_GETLEXER, SCI_UNUSED, SCI_UNUSED); + return static_cast(res); + } + + void Colourise(int start, int end) const { + Call(SCI_COLOURISE, start, end); + } + + void SetProperty(const char* key, const char* value) const { + Call(SCI_SETPROPERTY, key, value); + } + + void SetKeyWords(int keywordSet, const char* keyWords) const { + Call(SCI_SETKEYWORDS, keywordSet, keyWords); + } + + void SetLexerLanguage(const char* language) const { + Call(SCI_SETLEXERLANGUAGE, SCI_UNUSED, language); + } + + void LoadLexerLibrary(const char* path) const { + Call(SCI_LOADLEXERLIBRARY, SCI_UNUSED, path); + } + + int GetProperty(const char* key, char* buf) const { + sptr_t res = Call(SCI_GETPROPERTY, key, buf); + return static_cast(res); + } + + int GetPropertyExpanded(const char* key, char* buf) const { + sptr_t res = Call(SCI_GETPROPERTYEXPANDED, key, buf); + return static_cast(res); + } + + int GetPropertyInt(const char* key) const { + sptr_t res = Call(SCI_GETPROPERTYINT, key, SCI_UNUSED); + return static_cast(res); + } + + int GetStyleBitsNeeded() const { + sptr_t res = Call(SCI_GETSTYLEBITSNEEDED, SCI_UNUSED, SCI_UNUSED); + return static_cast(res); + } + + int GetLexerLanguage(char* text) const { + sptr_t res = Call(SCI_GETLEXERLANGUAGE, SCI_UNUSED, text); + return static_cast(res); + } + + int PrivateLexerCall(int operation, sptr_t pointer) const { + sptr_t res = Call(SCI_PRIVATELEXERCALL, operation, pointer); + return static_cast(res); + } + + int PropertyNames(char* names) const { + sptr_t res = Call(SCI_PROPERTYNAMES, SCI_UNUSED, names); + return static_cast(res); + } + + int PropertyType(const char* name) const { + sptr_t res = Call(SCI_PROPERTYTYPE, name, SCI_UNUSED); + return static_cast(res); + } + + int DescribeProperty(const char* name, char* description) const { + sptr_t res = Call(SCI_DESCRIBEPROPERTY, name, description); + return static_cast(res); + } + + int DescribeKeyWordSets(char* descriptions) const { + sptr_t res = Call(SCI_DESCRIBEKEYWORDSETS, SCI_UNUSED, descriptions); + return static_cast(res); + } + + int GetLineEndTypesSupported() const { + sptr_t res = Call(SCI_GETLINEENDTYPESSUPPORTED, SCI_UNUSED, SCI_UNUSED); + return static_cast(res); + } + + int AllocateSubStyles(int styleBase, int numberStyles) const { + sptr_t res = Call(SCI_ALLOCATESUBSTYLES, styleBase, numberStyles); + return static_cast(res); + } + + int GetSubStylesStart(int styleBase) const { + sptr_t res = Call(SCI_GETSUBSTYLESSTART, styleBase, SCI_UNUSED); + return static_cast(res); + } + + int GetSubStylesLength(int styleBase) const { + sptr_t res = Call(SCI_GETSUBSTYLESLENGTH, styleBase, SCI_UNUSED); + return static_cast(res); + } + + int GetStyleFromSubStyle(int subStyle) const { + sptr_t res = Call(SCI_GETSTYLEFROMSUBSTYLE, subStyle, SCI_UNUSED); + return static_cast(res); + } + + int GetPrimaryStyleFromStyle(int style) const { + sptr_t res = Call(SCI_GETPRIMARYSTYLEFROMSTYLE, style, SCI_UNUSED); + return static_cast(res); + } + + void FreeSubStyles() const { + Call(SCI_FREESUBSTYLES, SCI_UNUSED, SCI_UNUSED); + } + + void SetIdentifiers(int style, const char* identifiers) const { + Call(SCI_SETIDENTIFIERS, style, identifiers); + } + + int DistanceToSecondaryStyles() const { + sptr_t res = Call(SCI_DISTANCETOSECONDARYSTYLES, SCI_UNUSED, SCI_UNUSED); + return static_cast(res); + } + + int GetSubStyleBases(char* styles) const { + sptr_t res = Call(SCI_GETSUBSTYLEBASES, SCI_UNUSED, styles); + return static_cast(res); + } + + /* --Autogenerated -- end of section automatically generated from Scintilla.iface */ +}; diff --git a/src/SurroundSelection.vcxproj b/src/SurroundSelection.vcxproj new file mode 100644 index 0000000..e1d0d5d --- /dev/null +++ b/src/SurroundSelection.vcxproj @@ -0,0 +1,226 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {1590D7CD-7D3A-4AB7-A355-EE02F7FB987D} + SurroundSelection + Win32Proj + + + + DynamicLibrary + Unicode + v120_xp + + + DynamicLibrary + Unicode + v120_xp + + + DynamicLibrary + Unicode + v120_xp + true + + + DynamicLibrary + Unicode + v120_xp + true + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + bin\$(Configuration)_$(Platform)\ + bin\$(Configuration)_$(Platform)\ + false + false + bin\$(Configuration)_$(Platform)\ + bin\$(Configuration)_$(Platform)\ + true + true + + + $(ProjectName)_64 + bin\$(Configuration)_$(Platform)\ + bin\$(Configuration)_$(Platform)\ + + + $(ProjectName)_64 + bin\$(Configuration)_$(Platform)\ + bin\$(Configuration)_$(Platform)\ + + + + .\Dialogs;.\Parsers;.\Npp;.\Utilities;.\;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;_USRDLL;SurroundSelection_EXPORTS;__STDC_WANT_SECURE_LIB__=1;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + MultiThreaded + Level3 + ProgramDatabase + true + Size + true + MaxSpeed + Sync + true + true + + + shlwapi.lib;%(AdditionalDependencies) + $(OutDir)SurroundSelection.dll + true + Windows + true + true + true + true + $(OutDir)SurroundSelection.lib + MachineX86 + + + if EXIST "C:\Program Files (x86)\Notepad++\plugins" (copy "$(TargetPath)" "C:\Program Files (x86)\Notepad++\plugins") + + + + + .\Dialogs;.\Parsers;.\Npp;.\Utilities;.\;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;_USRDLL;SurroundSelection_EXPORTS;__STDC_WANT_SECURE_LIB__=1;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + MultiThreaded + Level3 + ProgramDatabase + true + Size + true + MaxSpeed + Sync + true + true + + + shlwapi.lib;%(AdditionalDependencies) + $(OutDir)SurroundSelection_64.dll + true + Windows + true + true + true + true + $(OutDir)SurroundSelection.lib + + + if EXIST "C:\Program Files\Notepad++\plugins" (copy "$(TargetPath)" "C:\Program Files\Notepad++\plugins") + + + + + Disabled + .\Dialogs;.\Parsers;.\Npp;.\Utilities;.\;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;_USRDLL;SurroundSelection_EXPORTS;__STDC_WANT_SECURE_LIB__=1;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + true + EnableFastChecks + MultiThreadedDebug + Level3 + EditAndContinue + true + + + shlwapi.lib;%(AdditionalDependencies) + $(OutDir)SurroundSelection.dll + true + $(OutDir)SurroundSelection.pdb + Windows + true + true + $(OutDir)SurroundSelection.lib + MachineX86 + + + if EXIST "C:\Program Files (x86)\Notepad++\plugins" (copy "$(TargetPath)" "C:\Program Files (x86)\Notepad++\plugins") + + + + + Disabled + .\Dialogs;.\Parsers;.\Npp;.\Utilities;.\;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;_USRDLL;SurroundSelection_EXPORTS;__STDC_WANT_SECURE_LIB__=1;_CRT_NONSTDC_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + EnableFastChecks + MultiThreadedDebug + Level3 + ProgramDatabase + true + + + shlwapi.lib;%(AdditionalDependencies) + $(OutDir)SurroundSelection_64.dll + true + $(OutDir)SurroundSelection.pdb + Windows + true + true + $(OutDir)SurroundSelection.lib + + + if EXIST "C:\Program Files\Notepad++\plugins" (copy "$(TargetPath)" "C:\Program Files\Notepad++\plugins") + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/SurroundSelection.vcxproj.filters b/src/SurroundSelection.vcxproj.filters new file mode 100644 index 0000000..bf7dd75 --- /dev/null +++ b/src/SurroundSelection.vcxproj.filters @@ -0,0 +1,65 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hpp;hxx;hm;inl;inc;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx + + + + + Source Files + + + Source Files + + + Source Files + + + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + + + Resource Files + + + Resource Files + + + \ No newline at end of file diff --git a/src/Version.h b/src/Version.h new file mode 100644 index 0000000..22b4b03 --- /dev/null +++ b/src/Version.h @@ -0,0 +1,23 @@ +// This file is part of SurroundSelection. +// +// Copyright (C)2017 Justin Dailey +// +// SurroundSelection is free software; you can redistribute it and/or +// modify it under the terms of the GNU General Public License +// as published by the Free Software Foundation; either +// version 2 of the License, or (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program; if not, write to the Free Software +// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +#define VERSION_NUM 1,0,0,0 +#define VERSION_LINEAR 1000 +#define VERSION_LINEAR_TEXT TEXT("1000") +#define VERSION_TEXT TEXT("1.0") // This must match the tag pushed on the server minus the "v" +#define VERSION_STAGE TEXT("") // "alpha", "beta", ""