Commit Graph

189 Commits (5cf296ee10e3e883510ba38c336dbbfca8f62776)

Author SHA1 Message Date
Don HO 10f6ff6c1f
Fix a crash (regression) due to "new-less" of NppParameters
The commit 'Make NppParameters singleton "new-less"' make NppParameters instantiate in the stack instead of allocating in the heap:
3dbb2c4b8e

It makes Notepad++ crash:
https://community.notepad-plus-plus.org/topic/18316/notepad-7-8-release-candidate-3/4

The crash is on following code:

  vector<MacroShortcut> & vShortcuts = NppParameters::getInstance().getMacroList();
  size_t nbItems = vShortcuts.size();
  for (size_t itemIndex2 = 0; itemIndex2 < nbItems; ++itemIndex2)
  {
  ...

vShortcuts.size() here return a random large number, which makes crash.

The explanation about vector::size() unexpected behaviour:
https://stackoverflow.com/questions/30548944/c-vector-size-is-wrong-and-higher-than-the-number-of-elements

Obviously the stack size is not large enough to contain NppParameters singleton in 64 bits.
2019-10-03 14:05:50 +02:00
Oirfeodent d5c0ef2c77
Increase Keyword Set for the adaptation of new updated Scintilla
This will enable languages having more than 7 keyword sets to use it.

"You can set up to 9 lists of keywords for use by the current lexer. keyWordSet can be 0 to 8" :
https://www.scintilla.org/ScintillaDoc.html#SCI_SETKEYWORDS

Fix #6020, close #6081
2019-08-23 11:29:45 +02:00
Don HO 06db9ee338
Code improvement for NppParameters 2019-08-14 22:13:24 +02:00
Rajendra Singh 938dae9b2a
Improve singleton
Close #6036
2019-08-13 12:48:05 +02:00
Don HO 3dbb2c4b8e
Make NppParameters singleton "new-less" 2019-08-10 23:53:59 +02:00
Rajendra Singh bfd8cd0702
Initialize a member value correctly to prevent from crash
_langType in CmdLineParamsDTO could not be copied so Initialize its value to prevent from the crash.

Close #5838
2019-06-27 09:42:47 +02:00
Rajendra Singh 9539a892eb
Code quality improvement: pass string by reference instead of value
Also remove not implemented methods addBufferToView(), moveBuffer() and doActionOrNot() from Notepad_plus.h

Close #5784
2019-06-25 14:21:35 +02:00
Don HO 57a49c3ba5
Add the commandline argument to open folders in "folder as workspace" panel
Add the ability to open folders in "folder as workspace" panel via command line argument "-openFoldersAsWorkspace".
Example:
notepad++ -openFoldersAsWorkspace c:\src\myProj01 c:\src\myProj02
The above command will launch notepad++ with folder as workspace panel by opening myProj01 and myProj02 in panel.

Close #4253, close #5100
2019-06-25 13:50:41 +02:00
Rajendra Singh cfa702a8a8
Retain read only flag state in session
Close #4987, Fix #4409, Fix #4872, Fix #2970, Fix #2548
2019-03-27 22:15:10 +01:00
Don HO 23bd8e484c
Use new "File Status Auto-Detection" option by default
And make it compatible with the existent arguments.
2019-03-17 21:19:20 +01:00
Don HO 193c4ecc5b
Clean up - remove dead code. 2019-03-17 18:02:06 +01:00
Rajendra Singh ba60fbdd71
Enhance "File status Auto-Detection" to avoid switching editing tab off behaviour
Fix a long waiting issue about file auto change detection, by adding a new option to avoid an annoying behaviour:
If file content is changed outside of Notepad++, while focus back to Notepad++, the current editing tab will be switched off, the changed file will be switched to and user will be asked to reload the file in question.
The new option remains the editing tab. User will be asked to reload it only if the changed file is switched in.

Fix #1087, Fix #3349, Fix #3333, Fix #3528, Fix #3138, Fix #3934, Fix #3160, Fix #1822, Fix #745, Fix #3599, Fix #4329, Fix #3971, Fix #4592, Fix #1116, Fix #2082
Close #4180, Close #5386, Close #4189, Close #1995, Close #2867, Close #3306, Close #2776, Close #2724, Close #2405, Close #4072, Close #4747

Close #5389
2019-03-17 12:21:16 +01:00
Don HO 8b0a85bd56 Use new style open/save file dialog by default 2019-03-05 19:42:29 +01:00
Rajendra Singh 2a4a70ed21 Pass the arguments by reference instead of by copy to improve the performance
Close #5341
2019-02-28 13:38:03 +01:00
Don HO 5bcf55c59e Add stackoverflow as search engine 2019-02-19 13:05:02 +01:00
Don HO 7fe3cda1d0 [EU-FOSSA] Use wcscpy_s instead of lstrcpy to prevent from buffer overflow 2019-02-11 02:07:04 +01:00
Don HO dfb9b5e330 Enhance User Defined Language System for supporting more than one UDL file.
Several UDL xml files can be loaded to allow to manage/share UDL more easily.

1. The old file userDefineLang.xml is kept in its old location and is still used.
2. The new folder userDefineLangs is added beside of the old UDL default file. Any UDL xml file can go into the folder userDefineLangs and will be loaded as UDL.
3. A UDL xml file must contain one (or several) user defined language(s).
4. The created UDL via UDL dialog and imported UDL are saved in  userDefineLang.xml (default UDL file).

https://notepad-plus-plus.org/community/topic/17072/new-enhancement-for-user-defined-language-system
2019-02-07 23:40:17 +01:00
Don HO 775d204ef9 Change loading plugin list location
Loading plugin list location is changed from %LOCALAPPDATA%\Notepad++\plugins\Config\ to
%PROGRAMDATA%\Notepad++\plugins\Config\

Enhance API NPPM_GETPLUGINSCONFIGDIR
2018-12-04 13:38:25 +01:00
Don HO c919dc6270 Notepad++ won't load plugins from %LOCALAPPDATA%\Notepad++\plugins\ anymore
Notepad++ loads plugins only from 2 locations:
1. %PROGRAMDATA%\Notepad++\plugins\ - while Notepad++ installed on: %PROGRAMFILES%\Notepad++\ or wherever without doLocalConf.xml
2. <NPP_INST_DIR>\plugins\ - while Notepad++ installed on wherever (except in %PROGRAMFILES%\Notepad++\) with doLocalConf.xml
2018-11-28 13:31:44 +01:00
Don HO 61402a354f Add elevation capacity for wingup if plugins are installed in %PROGRAMDATA%
While plugins are in %PROGRAMDATA%, we need admin's rights to modify them. This PR detects the plugins installation in %PROGRAMDATA%, then launch wingup with UAC.
2018-11-24 16:26:24 +01:00
Don HO 116f400753 Add thee new capacity to load plugins from %ALLUSERSPROFILE%
By putting an empty "pluginsForAllUsers.xml" file, all the plugins will be loaded from %ALLUSERSPROFILE%\Notepad++\plugins\.
2018-11-21 02:20:36 +01:00
Don HO 8dea25feb5 Refactoring for optimizing/simplifying the code for getting plugin root path 2018-11-07 22:51:27 +01:00
Don HO e9a489c5c9 Remove allowAppDataPlugins.xml detection.
Simply plugins loading emplacement:
NPPM_GETAPPDATAPLUGINSALLOWED to check to see if loading plugins from "%APPDATA%\..\Local\Notepad++\plugins" is allowed.
If doLocalConf no
else yes
2018-11-03 19:45:04 +01:00
Don HO fdf954f714 Revert "Fix scintilla restoring wrapped buffer issue" due to a serious performance issue
Check https://notepad-plus-plus.org/community/topic/16468/notepad-7-5-9-release

This reverts commit 40192bda0c.
2018-10-31 00:38:26 +01:00
Christophe Meriaux 40192bda0c Fix scintilla restoring wrapped buffer issue
When we are restoring a wrapped buffer,
we send SCI_VISIBLEFROMDOCLINE message to convert a file line number to a visual line number,
scintalla seems to ignore the "wrap" option of this buffer.
Workaroud: execute SCI_ENSUREVISIBLE after set position and before executing SCI_VISIBLEFROMDOCLINE.

It seems that this issue has been encountered in ScitillaComponent/FindReplaceDlg.cpp in Searching::displaySectionCentered

Fix #4571, close #4624
2018-10-02 02:52:34 +02:00
Don HO 71dd261a50 Plugin Admin: Change the way to remove & update plugin
uninstall: tell user to restart Notepad++ - Gup.exe remove all - clean in batch - relaunch Notepad++
gup.exe -clean "appPath2Launch" "dest_folder" "fold1" "a fold2" "fold3"
gup.exe -clean "c:\npp\notepad++.exe" "c:\temp\" "toto" "ti ti" "tata"

update:    tell user to restart Notepad++ - Gup.exe download - remove all in directory - unzip/clean in batch - relaunch Notepad++
gup.exe -unzip -clean  "appPath2Launch" "dest_folder" "toto http://toto" "titi http://titi" "tata http://tata"
gup.exe -unzip -clean "c:\npp\notepad++.exe" c:\temp\ "toto http://toto" "ti et ti http://titi" "tata http://tata"

Install:   GUp.exe download - create directory - unzip: one by one, no relaunch
gup.exe -unzipTo c:\donho\notepad++\plugins "https://github.com/npp-plugins/mimetools/releases/download/v2.1/mimetools.v2.1.zip"
2018-09-13 23:07:22 +02:00
Silent 388e874bfc Fixed a crash when trying to launch a secondary instance with string commandline arguments
Fix #4621, close #4622
2018-07-20 03:03:53 +02:00
Silent 9cb8fce854 Migrate timestamps from time_t to FILETIME and store them in UTC universally
Fixes #4491, #3969, #2535 and #215.
2018-06-25 00:32:46 +02:00
Silent 08eb29e3d6 Force cpp standard const char pointer on string literals
const-ified all string literals to suppress warnings on gcc and allow /Zc:strictStrings to be used with Visual Studio

Fix #4146, close #4150
2018-06-25 00:06:26 +02:00
Don HO 593cf451fb Clean up 2018-06-24 01:16:01 +02:00
Don HO 5df6e9bbfe Ghost typing enhancement
1. Make ghost typing Unicode supported so any language can be displayed.
2. Ghost typing's speed (slow, rapid and spped of light) can be set.
3. Any supported programming language (syntax highligting) can be applied.
4. All above supports are accessible via command line arguments.
2018-03-10 11:30:55 +01:00
Don HO 0e60bd8957 Restore "Find Previous" & "Find Next" button in Find dialog
The pair of button "Find Previous" and "Find Next" have been removed in
the previous version due to some regressions. It's restored with being optional.
2018-02-01 10:09:24 +01:00
SinghRajenM 295cbafe7d Code improvement
Closes #3582
2017-08-13 12:10:04 +02:00
Don HO 1f89110b04 Add "-quickPrint" command line argument
"-quickPrint" allows user to launch Notepad++ via command to print a
given document then quit Notepad++ immediately.
Usage:
notepad++.exe -quickPrint c:\funcListTests\EncodingMapper.cpp
2017-08-07 00:01:12 +02:00
Don HO 1d58c1d3d3 Add function list export feature
"notepad++.exe -export=functionList -lcpp c:\funcListTests\whatever.cpp"
will open whatever.cpp as cpp file, then parse this file to write the
funcLst result on disk, then exit Notepad++.
The result will write into c:\funcListTests\whatever.cpp.result.
2017-08-06 00:03:18 +02:00
Cyrillev 02bdd11700 Add new languages support
Connect Scintilla Lexers to npp : SCLEX_ASN1 (Abstract Syntax Notation One), SCLEX_AVS (AviSynth), SCLEX_BLITZBASIC, SCLEX_PUREBASIC, SCLEX_FREEBASIC, SCLEX_CSOUND, SCLEX_ERLANG, SCLEX_ESCRIPT, SCLEX_FORTH, SCLEX_LATEX, SCLEX_MMIXAL, SCLEX_NIMROD, SCLEX_NNCRONTAB, SCLEX_OSCRIPT, SCLEX_REBOL, SCLEX_REGISTRY, SCLEX_RUST, SCLEX_SPICE, SCLEX_TXT2TAGS

Connect Scintilla Lexers to npp :

asn1 (Abstract Syntax Notation One) : https://fr.wikipedia.org/wiki/ASN.1#Exemple
avs (AviSynth) : http://avisynth.nl/index.php/Script_examples
blitzbasic : http://www.blitzbasic.com/bmdocs/command.php?name=Mid&ref=2d_cat
http://www.blitzbasic.com/codearcs/codearcs.php?cat=8"
csound : http://www.csounds.com/manual/html/PrefaceGettingStarted.html
erlang : http://erlang.org/doc/man/file.html
http://erlang.org/documentation/doc-5.3.6.13/doc/getting_started/getting_started.html"
escript : http://erlang.org/doc/man/escript.html
forth : http://wiki.c2.com/?ExampleForthCode
freebasic : http://www.freebasic.net/
latex : http://physics.clarku.edu/sip/tutorials/TeX/intro.html (Sample LaTeX file)
mmixal : http://mmix.cs.hm.edu/examples/hello.html
nimrod : http://www.csse.monash.edu.au/~nimrod/nimrodportal/manual/planfileexamples.shtml
nncrontab : http://www.nncron.ru/help/EN/working/cron-format.htm
oscript : http://www.oscriptadventures.com/
purebasic : https://www.purebasic.com/documentation/reference/ide_form.html
rebol : http://www.rebol.net/cookbook/recipes/0031.html
registry : windows registry file
rust : http://rustbyexample.com/std_misc/file/open.html
spice : http://www.seas.upenn.edu/~jan/spice/spice.overview.html
txt2tags : https://github.com/txt2tags/txt2tags/blob/master/samples/sample.t2t
2017-07-23 10:24:53 +02:00
SinghRajenM a9adc4835d Remove some useless codes
Closes #3472
2017-07-17 10:39:46 +02:00
Don HO 2c9f096d6d Make plugins loadable from %LOCALAPPDATA%\Notepad++\plugins\ 2017-07-09 15:56:18 +02:00
Svyatoslav 6d542a4041 Fixed NULL Pointer Dereference
A weakness has been found by using PVS-Studio analyzer.

Analyzer warnings:

* V595 The 'pScint' pointer was utilized before it was verified against
nullptr. Check lines: 347, 353. scintillaeditview.cpp 347

* V713 The pointer _langList[i] was utilized in the logical expression
before it was verified against nullptr in the same logical expression.
parameters.h 1286

closes #3400
2017-06-14 19:54:59 +02:00
Don HO eb43167fbf Disable document peeker as default 2017-06-11 16:52:03 +02:00
Don HO a067de8ce2 Improve Document Peeker performance issue for large files 2017-05-17 10:01:28 +02:00
Don HO 66d91d93bb Notepad++ release 7.4 - make name right
Change "Document Snapshot" to "Document Peeker".
Fix a peeker bug on reading from setting file.
2017-05-14 20:26:23 +02:00
Don HO 8752bcad57 Add UI part for Document snapshot feature
Enhance doc snapshot on several points.
2017-04-27 13:03:31 +02:00
Don HO a43c9b9745 Add snapshot on document map feature 2017-04-25 09:28:24 +02:00
Don HO 20e669ff01 Add document snapshot feature (in progress) 2017-04-18 01:31:41 +02:00
Don HO fe463dc03a Check content via document map on hovering (in progress) 2017-03-13 02:10:47 +01:00
Don HO bd70dcbe0a Change 2 default settings
Activate parameter hint of auto-completion.
Make caret blink rate slower.
2017-02-18 02:04:59 +01:00
Don HO ee5601960c Activate clicable URL by default 2017-02-17 10:12:20 +01:00
Don HO f524dfaf06 Fix add char into word char list bug
New word characters are applied only on the current document, not on the
other documents or new opened document.
2017-02-17 00:35:28 +01:00
SinghRajenM 3dfe526019 Show OS platform (32/64 bit) in Debug Info.
Closes #2895
2017-02-11 11:28:46 +01:00