UDL: Suffix Mode
-
Yes, as I’m using x64 version as well.
Where did you download pythonscript plugin from?
Why didn’t you use Plugin Manager?
The official release channel for python script plugin is here. -
I don’t have plugin manager so I went through http://docs.notepad-plus-plus.org/index.php?title=Plugin_Central .
Thanks for dealing with my idiocy. Going through plugin manager worked perfectly. Is there any way I can donate for your time?
-
Is there any way I can donate for your time?
yes, we urgently need 5 macbook pro’s. 👍
thanks in advance. 😂 -
Thank you very much for asking and yes there is one thing
you could do if you like :-)
It might sound strange but if you have or know a cooking recipe
which is worth testing - I would appreciate.
I know tastes are different so … :-) -
REALLY - macbooks … NOWADAYS … :-D
-
I will get you a recipe when I get home from work. :-)
The macbooks will take some time. :-D
-
https://imgur.com/a/GWRaqec @Eko-palypse here’s my favorite recipe for muffins. :-D
Thanks again for your help.
I also realized afterwards that there are a few internal functions that end with $ and don’t start with fn but I just modified the regex to take care of them.
-
thank you thank you very much - very much appreciated - I LOVE MUFFINS (who doesn’t ?)
And also nice to see that you already made the script do what you want.
Have a nice day. -
Much better to have an actual recipe than simply all the talk of “baking cookies” that goes on around here sometimes!
-
Help, I need somebody help I need somebody heeeelllppp :-D
-
yesterday … all my troubles seemed so far away :-D
-
I see the Beatles song lyrics references, but I’m unsure why Eko started it??
-
I found a little bug in the script.
The area which needs to be styled is wrongly calculated if there are folded parts within this area.
Please replace, within the style function, this line
end_line = start_line + editor.linesOnScreen()
with that line
end_line = editor.docLineFromVisible(start_line + editor.linesOnScreen())
-
@Alan-Kilborn said:
I see the Beatles song lyrics references, but I’m unsure why Eko started it??
because this was the first thing which came into my mind after reading your comment about Scott-Sumner’s baking cookie comments :-D
-
Hello, @michael-miller31, @eko-palypse, @alan-kilborn, @meta-chuh and All,
Eko, I’ve just tried your python script and it works fine :-))
I was a bit intrigued by your regex and I wanted to test other syntaxes. But after a while, I understood that your just take care of group 1 and dismiss the solution
fn[A-Za-z0-9_]+?\$
Don’t you ?I tested this other solution
(\b(?!fn)\w+\$)
, with success ! Of course, we could get rid of the group 1 but I suppose that your script should be slightly modified !
Secondly, I tried to build, from the michael’s picture and text, an equivalent UDL, what I named… EKO and after some tests I was surprised because, although I just missed to update the UDL name, in your script, as below :
self.lexer_name = 'User Defined language file - EKO'
Seemingly, it does not care about it ?! ( Just a comment : my BR Basic test file has no extension and I didn’t associate the EKO UDL to a specific extension )
Cheers,
guy038
-
thanks for testing and sharing an alternative regex.
Concerning the script, if you just run the script it will flag the current
document being of interest.
If you would open multiple UDL documents and switch between them,
then you should see that those documents work only if the UDL name
is the one configured in the script. -
Thanks for this great piece of code, Eko, I had a very similar problem, and simply changed the symbol and the color in the relevant line to fit my case.
I was just wondering if you could help me with two additions, if it isn’t too much work to integrate:
-
I have some cases where I don’t just want to change the color of the text, but also change the text from italic to non italic:
int( —> int(
Is this possible? -
In an ideal case, I would like comment lines to be excluded from this. In my case every line that start with, or contains # would have to be ignored by the python script.
Thanks in advance, and have a nice day :)
-
-
I will follow up on this later today from at home as I’m finished with work today. YEAH :-D
-
Hi Alexander, concerning number 2 I would add
self.excluded_styles = [1, 2] # SCE_USER_STYLE_COMMENT=1 SCE_USER_STYLE_COMMENTLINE=2
to the init function like
def __init__(self): editor.callbackSync(self.on_updateui, [SCINTILLANOTIFICATION.UPDATEUI]) notepad.callback(self.on_langchanged, [NOTIFICATION.LANGCHANGED]) notepad.callback(self.on_bufferactivated, [NOTIFICATION.BUFFERACTIVATED]) self.excluded_styles = [1, 2] # SCE_USER_STYLE_COMMENT=1 SCE_USER_STYLE_COMMENTLINE=2 self.__is_lexer_doc = False self.lexer_name = None self.npp_hwnd = user32.FindWindowW(u'Notepad++', None) self.configure()
and modify the if clause line in paint_it function to
if (pos >= 0) and (editor.getStyleAt(pos) not in self.excluded_styles):
that would skip painting if the matched position is in a comment line or block
Regarding the first point, no, unfortunately scintilla doesn’t allow to modify
the font attributes via an indicator other than the foreground color.
But I’m confused why it is italic at all, in UDL you must have it set explicitly, didn’t you? -
Thanks for the quick work, Eko!
Sadly, the code doesn’t work :(Now, I checked the conditional function, and noticed that getStyleAt returns 0 if the pos is out of bounds, but weirdly, when I use this line:
if (pos >= 0) and (editor.getStyleAt(pos) == 0):
the code works and does so just as I intended. Comment lines are not changed, but normal lines are.
I really don’t get why it does, because I expected it to only return 0 in case of an error, and not for normal lines in the text, but apparently that’s how it works.
Concerning the italic: Yes, I set a lot of variably type names like int and double to italic, but the language I’m programming in also has int(“4”) and string(4) as functions at the same time.