Is this possible, suffix text based on a list.
-
@PeterJones said in Is this possible, suffix text based on a list.:
I’ll fix that in a future post.
The easiest fix is to always use \( and \) for parentheses in the suffixes map
'G21': "Programming in millimeters \(mm\)",
-
@PeterJones
1,2 and 3 all okHere is the screenshot.
-
Sorry I’ve just seen it myself now, not sure how that 1 got in there sorry again :)
-
Your screenshot didn’t show line 59 of
addSuffixes.py
, but that’s where the error lies.If you really have the same input as mine, line 59 was the last line of the file, beyond
editor.endUndoAction()
… if so, just make sure there are no characters on the last line of the file (make it an empty line, without any spaces).Looking at the error message, you appear to have an
l
or a1
or something at the end of the file, which may or may not be indented. There shouldn’t be. -
all good
-
Sorry to be a pain Peter,
My mistake the semi colon should be open bracket then the text suffix then close bracket
I’ve tried to edit the code where i thought it should work and failed.
-
It’s probably failing because in the replacement, parentheses are a special character, so to get a literal paren wrapped around the replacement, you will need to use the \( and \) … so to replicate the final line on the left in your screenshot, you would want
editor.rereplace(search_re, '$0 \({}\)'.format(suffix))
… yes, with that line in the script, the output for your original example input yielded:
G90 (Absolute programming) G21 (Programming in millimeters (mm)) G40 (Tool radius compensation off) G80 (Cancel canned cycle)
The PythonScript plugin uses the boost regex engine (the same that Notepad++ uses) for the
editor.research()
calls, so the substitution follows all the same rules as for Notepad++ replacements, as described here -
Hi, @mark-littlefair, @peterjones and All,
Given your new conditions about the ouptut text, the regex S/R, provided in my last post, becomes :
SEARCH
(G90)|(G21)|(G40)|(G80)
REPLACE
$0 \((?1Absolute programming)(?2Programming in millimeters \(mm\))(?3Tool radius compensation off)(?4Cancel canned cycle)\)
BR
guy038
-
Thank you Guy, this is the problem with your method though if I’m limited in the replacement zone to 2048 characters
-
That’s run through great now, thank you. :)