Python 3 and Python scripts plugin
-
@Scott-Sumner said:
I am looking forward to being enlightened
And I am enlightened…to your need… Yes, this is one area where Python3 is advantageous over Python2. Fortunately, for myself, I don’t encounter the unicode need very often. Back to the why of Python2 for the Pythonscript plugin, I believe that there were some issues with Scintilla interaction which necessitated (at the time) using Python2 byte-strings versus Python3 unicode strings. I’m sure you can read about all the details of the design decisions on the old Pythonscript Soucreforge forums if you’d like…
-
@Bill-Winder said:
And then it became: What!??? pythonscript can only use 2.7? Why?
@Scott-Sumner said:
I’m sure you can read about all the details of the design decisions on the old Pythonscript Soucreforge forums if you’d like…
Discussion from a few years ago which discusses some of the hurdles switching from v2 to v3: https://sourceforge.net/p/npppythonscript/discussion/1188885/thread/cf066585/
-
@dail Wow! Hairy!
I do encounter just that problem in my normal use of npp. I can paste in è or ã and it generally works fine. But when I open or paste in certain texts (like phonetic transcription from espeak), I get o~ where I should get õ. Npp interprets some accent encoding as two characters, not one (works fine here):
la diskysjˈɔ̃ fˈy syspɑ̃dˈy pɑ̃dˈɑ̃ lə ʁˈɔbʁ
mɛ bjɛ̃tˈoˈandʁuː styˈaʁ la ʁəpʁənˈɛI have found no way to fix it by shifting the encoding. (Jedit does the same thing…, but notepad does not.)
-
@Bill-Winder said:
la diskysjˈɔ̃ fˈy syspɑ̃dˈy pɑ̃dˈɑ̃ lə ʁˈɔbʁ
mɛ bjɛ̃tˈoˈandʁuː styˈaʁ la ʁəpʁənˈɛmake sure that the font you use is capable of displaying needed symbols
Cheers
Claudia -
@Claudia-Frank Thanks Claudia! – that fixed it, the moment I checked “enable global font”.
Thanks! (It’s been bugging me…for a long time…)
-
Here is one of possible ways to get the text from an unsaved file tab in NppExec to allow further processing of the text:
// temporary file name set local tmpfile = $(SYS.TEMP)\text.txt // current selection sci_sendmsg SCI_GETSELECTIONSTART set local selStart = $(MSG_RESULT) sci_sendmsg SCI_GETSELECTIONEND set local selEnd = $(MSG_RESULT) // select all the text and save it sci_sendmsg SCI_SELECTALL sel_saveto "$(tmpfile)" // restore the selection sci_sendmsg SCI_SETSELECTIONSTART $(selStart) sci_sendmsg SCI_SETSELECTIONEND $(selEnd) // now it's time to process the tmpfile...
-
Here is more “advanced” version that avoids visible selection change:
// temporary file name set local tmpfile = $(SYS.TEMP)\text.txt // disable redrawing sci_sendmsg 0x000B 0 // WM_SETREDRAW FALSE // current selection sci_sendmsg SCI_GETSELECTIONSTART set local selStart = $(MSG_RESULT) sci_sendmsg SCI_GETSELECTIONEND set local selEnd = $(MSG_RESULT) // select all the text and save it sci_sendmsg SCI_SELECTALL sel_saveto "$(tmpfile)" // restore the selection sci_sendmsg SCI_SETSELECTIONSTART $(selStart) sci_sendmsg SCI_SETSELECTIONEND $(selEnd) // enable redrawing sci_sendmsg 0x000B 1 // WM_SETREDRAW TRUE // now it's time to process the tmpfile...
-
NppExec v0.6 beta 1 will introduce new command TEXT_SAVETO and TEXT_LOADFROM that will work with the whole current text. Apart from that, these commands will be similar to SEL_SAVETO and SEL_LOADFROM.
-
Hello, @bill-winder, and All,
I’m quite late, but I had have to update my list of fonts and to do some tests, in Notepad++, first ;-))
So, Bill, here is below, a list of Unicode fonts which can, correctly, display your text example :
la diskysjˈɔ̃ fˈy syspɑ̃dˈy pɑ̃dˈɑ̃ lə ʁˈɔbʁ
mɛ bjɛ̃tˈoˈandʁuː styˈaʁ la ʁəpʁənˈɛ
-
The first table concerns Monospaced fonts, where all characters have the same width
-
The second table concerns Proportional fonts, with variable width
Notes :
-
The Unicode number of code-points, handled by the font, is located in the Glyphs column
-
The different fonts are sorted out by increasing number of their glyphs
-
The default regular weight, only, of each font, is listed. The other weights ( Bold, Italic… ) are absent of the tables, below
-
The Lucida Sans Unicode is certainly already installed on your configuation (
v5.00
or higher ) -
The Segoe UI family font is probably installed, too ( v5.28 or higher )
-
For the Ioveska and Ioveska Slab fonts, read very carefully the README.md part, scrolling downwards, because these fonts are highly configurable ! Refer to :
https://github.com/be5invis/Iosevka
- You may also consult this valuable article, Large, multi-script Unicode fonts for Windows computers, at :
http://www.alanwood.net/unicode/fonts.html
•------------------------•------------•--------•-----------------------------------------------------------------------------------• | MONOSPACED Font Name | Version | Glyphs | Web Site Link | •------------------------•------------•--------•-----------------------------------------------------------------------------------• | Linux Libertine Mono | v5.17 | 1,021 | http://www.linuxlibertine.org | | SourceCodePro | v2.030 | 1,585 | https://github.com/adobe-fonts/source-code-pro/releases/tag/2.030R-ro%2F1.050R-it | | DejaVu Sans Mono | v2.37 | 3,377 | https://dejavu-fonts.github.io/Download.html | | | | | | | Iosevka | v1.14.0 | 3,654 | https://github.com/be5invis/Iosevka/releases | | Iosevka Slab | v1.14.0 | 3,654 | https://github.com/be5invis/Iosevka/releases | | | | | | | FreeMono | v0412.2268 | 4,177 | http://ftp.gnu.org/gnu/freefont/freefont-ttf-20120503.zip | •------------------------•------------•--------•-----------------------------------------------------------------------------------• •------------------------•------------•--------•-----------------------------------------------------------------------------------• | PROPORTIONAL Font Name | Version | Glyphs | Web Site Link | •------------------------•------------•--------•-----------------------------------------------------------------------------------• | Lucida Sans Unicode | v2.00 | 1,776 | https://fr.ffonts.net/Lucida-Sans-Unicode.font.zip | | Lucida Sans Unicode | v5.00 | 1,779 | Usually installed in Windows 8 and higher | | | | | | | Linux Biolinum | v1.1.8 | 2,403 | http://www.linuxlibertine.org | | Linux Libertine | v5.3.0 | 2,676 | http://www.linuxlibertine.org | | | | | | | SegoeUI | v5.05 | 2,901 | https://github.com/KingRider/frontcom/tree/master/css/fonts | | SegoeUI | v5.28 | 4,516 | Usually installed in Windows 8 and higher | | | | | | | Junicode | v0.78 | 3,286 | http://sourceforge.net/projects/junicode | | | | | | | DejaVuSerif | v2.37 | 3,528 | https://dejavu-fonts.github.io/Download.html | | DejaVuSans | v2.37 | 6,253 | https://dejavu-fonts.github.io/Download.html | | | | | | | FreeIdgSerif | v1.52 | 6,256 | https://en.m.fontke.com/font/10352047/download/ | | | | | | | FreeSans | v0412.2268 | 6,272 | http://ftp.gnu.org/gnu/freefont/freefont-ttf-20120503.zip | | FreeSerif | v0412.2263 | 10,538 | http://ftp.gnu.org/gnu/freefont/freefont-ttf-20120503.zip | | | | | | | Quivira | v4.1 | 10,486 | http://www.quivira-font.com | | | | | | | Arial Unicode MS | v1.01 | 50,377 | https://www.wfonts.com/font/arial-unicode-ms | | | | | | | Code 2000 | v1.171 | 63,546 | http://www.fontspace.com/james-kass/code2000 | •------------------------•------------•--------•-----------------------------------------------------------------------------------•
Best Regards,
guy038
-
-
@Vitaliy-Dovgan Thanks! Good work around. There must be somewhere direct access to an unsaved tab, because I can close npp with an unsaved tab and when I reopen, it is there. So the unsaved tab is actually saved somewhere. Curious!
-
@Bill-Winder said:
So the unsaved tab is actually saved somewhere.
Yes, saved under a “Backup” folder by default. I just made 5 “new files” and they were created in this folder with the following names:
new 1@2018-02-19_155611 new 2@2018-02-19_155613 new 3@2018-02-19_155613 new 4@2018-02-19_155615 new 5@2018-02-19_155618
-
@guy038 Very cool! I just chose fonts at random until things looked right. Useful description, which will serve elsewhere also – same issue in Jedit. (Though I use Jedit less and less - npp has everything I need and is very fast.)
-
@Scott-Sumner and they are numbered! Perfect. Which essentially solves my problem.
I hope! There is one further step. I will have to capture the name of the active tab and give it to NPPEXec.
But that should be possible through the sci_sendmessage function (will look into that), since this is possible:
sci_sendmsg SCI_GETSELECTIONSTART
set local selStart = $(MSG_RESULT)