Pasting code into the cmdline interpreter
Veek M
vek.m1234 at gmail.com
Thu Sep 22 02:33:13 EDT 2016
Ben Finney wrote:
> Veek M <vek.m1234 at gmail.com> writes:
>
>> 1. I had to turn on <TAB> highlighting to catch mixed indent (which
>> is a good thing anyways so this was resolved - not sure how tabs got
>> in anyhow)
>
> The EditorConfig system is a growing consensus for configuring a code
> base to instruct text editors not to mangle it. See the EditorConfig
> site <URL:http://editorconfig.org/> for more information.
>
> Sadly, it seems Kate does not yet recognise EditorConfig instructions
> <URL:https://bugs.kde.org/show_bug.cgi?id=330843>. In the meantime,
> manually configure Kate to only ever insert spaces to indent lines.
>
>> 2. Blank lines in my code within the editor are perfectly acceptable
>> for readability but they act as a block termination on cmd line.
>
> Yes. That is a deliberate compromise to make it easy to write code
> interactively at the interactive prompt.
>
>> I get:
>> IndentationError: unexpected indent
>>
>> How do i deal with this - what's the best way to achieve what I'm
>> trying to do.
>
> Since you are writing code into a module file, why not just run the
> module from that file with the non-interactive Python interpreter?
>
It's part of a hexchat plugin/addon.. like below (basically lots of
hexchat crud interspersed.
Anyway, i should hive it off into a separate function, and hide the
import hexchat - still, bit of a pain.
import hexchat
def send_message(word, word_eol, userdata):
if not(word[0] == "65293"):
return
msg = hexchat.get_info('inputbox')
if msg is None:
return
x = re.match(r'(^\\help)\s+(\w+)', msg)
if x:
filter = x.groups()[1]
for key, value in unicode_tex.tex_to_unicode_map.items():
if filter in key:
print_help(value + ' ' + key)
hexchat.command("settext %s" % '')
return
# findall returns: [(,), (,), ...] or []
tex_matches = re.findall(r'((\\\w+){(.+?)})|(\\\w+)', msg)
if len(tex_matches) == 0:
return
More information about the Python-list
mailing list