fd51703ad8
Use the _isFolding flag to fix several overlooked edge case hangs. This pull request fixes additional hangs I found after #4867 when working with deeply-nested fully-folded files. The hangs are easy to reproduce by following these steps: Download the sample file https://raw.githubusercontent.com/notepad-plus-plus/notepad-plus-plus/master/PowerEditor/src/Parameters.cpp Open the downloaded file by itself in NPP and fold it using Alt-0 Create a new empty tab and remain focused on it Perform the six actions below, each of which will produce a hang as NPP tries to change focus back to the first tab. On my machine, each hang lasts about 30 seconds. After control returns, refocus the empty tab again and try the next action. Use File>>Open to reopen the downloaded file, even though it is already open Drag and drop the downloaded file onto NPP to reopen it Double-click the downloaded file to reopen it Right-click the downloaded file and select Edit with Notepad++ in the context menu Open the downloaded file from the command line: C:\Program Files (x86)\Notepad++\notepad++.exe" .\Parameters.cpp Click the red [X] in the upper right corner to close NPP After applying the patch, none of the hangs should happen any more. Close #4999 |
||
---|---|---|
PowerEditor | ||
scintilla | ||
.gitignore | ||
CONTRIBUTING.md | ||
ISSUE_TEMPLATE.md | ||
LICENSE | ||
README.md | ||
appveyor.yml |
README.md
What is Notepad++ ?
Notepad++ is a free (free as in both "free speech" and "free beer") source code editor and Notepad replacement that supports several programming languages and natural languages. Running in the MS Windows environment, its use is governed by GPL License.
Build Status
To build Notepad++ from source:
There are two components that need to be built separately:
notepad++.exe
: (depends onSciLexer.dll
)SciLexer.dll
: (with nmake)
You can build Notepad++ with or without Boost - The release build of Notepad++ is built with Boost.
Since Notepad++
version 6.0, the build of SciLexer.dll
that is distributed
uses features from Boost's Boost.Regex
library.
You can build SciLexer.dll without Boost, ie. with its default POSIX regular expression support instead of boost's PCRE one. This is useful if you would like to debug Notepad++, but don't have boost.
To build notepad++.exe
:
- Open
PowerEditor\visual.net\notepadPlus.vcxproj
- Build Notepad++ like a normal Visual Studio project.
To build SciLexer.dll
with boost:
Here are the instructions to build SciLexer.dll (for both 32-bit & 64-bit) for Notepad++:
- Download the Boost source code.
v1.55 should be used with VS 2013. Then unzip it. In my case,
boost_1_55_0
is copied inC:\sources\
- Go to
scintilla\boostregex\
then run BuildBoost.bat with your boost path. In my case:BuildBoost.bat C:\sources\boost_1_55_0
If you are compiling a 64 bit Scintilla under your VS2013 x64 Native tool command prompt, add-x64
flag. In my case:BuildBoost.bat C:\sources\boost_1_55_0 -x64
- Go in
scintilla\win32\
then runnmake -f scintilla.mak
To build SciLexer.dll
without boost:
This will work with notepad++.exe
, however some functionality in Notepad++ will be broken.
To build SciLexer.dll without PCRE support (for both 32-bit & 64-bit):
-
For 32-bit, open a command prompt for building (a.k.a. the Developer Command Prompt for VS2013)
- From the IDE, you can do this by right clicking on a file in Solution Explorer, and clicking "Open Command Prompt". This will open up a command prompt with all the proper environment variables.
- From the Windows Start screen/menu, type
Developer Command Prompt for VS2013
, and click/select the result. - From an already open command prompt, run
vcvarsall.bat
(e.g. "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\vcvarsall.bat").
For 64-bit, open VS2013 x64 Native tool command prompt.
-
Change directory (
cd
orpushd
) toscintilla\win32\
-
Build
SciLexer.dll
with one of the following commands:nmake NOBOOST=1 -f scintilla.mak
(normal build)nmake NOBOOST=1 DEBUG=1 -f scintilla.mak
(debugging build)
-
Copy
SciLexer.dll
fromscintilla\bin\
to the same directory asnotepad++.exe
.- For the
Unicode Release
configuration, the output directory (wherenotepad++.exe
is) isPowerEditor\bin\
. - For the
Unicode Debug
configuration, the output directory (wherenotepad++.exe
is) isPowerEditor\visual.net\Unicode Debug\
.
- For the
See the Notepad++ official site for more information.