43 lines
1.2 KiB
Python
Executable File
43 lines
1.2 KiB
Python
Executable File
#!/usr/bin/env python
|
|
#
|
|
# Simple parser to generate snippets.conf file from the snippets.multiline.conf
|
|
# template.
|
|
# In the template you can write multiline snippets, that will be single-lined
|
|
# by running this generator.
|
|
#
|
|
# Look at the existing template fiel to see the supported syntax.
|
|
#
|
|
|
|
TEMPLATE = 'snippets.multiline.conf'
|
|
OUTPUT = 'snippets.conf'
|
|
|
|
MODE_SEARCH = 0
|
|
MODE_INSIDE = 1
|
|
|
|
mode = MODE_SEARCH
|
|
|
|
with open(TEMPLATE,'r') as infile, open(OUTPUT,'w') as outfile:
|
|
for line in infile:
|
|
|
|
if mode == MODE_INSIDE:
|
|
if line.startswith('# '):
|
|
# print("+", line)
|
|
escaped = line[2:]
|
|
escaped = escaped.replace('\n', '\\n')
|
|
escaped = escaped.replace('\t', '\\t')
|
|
escaped = escaped.replace(' ', '\\t')
|
|
outfile.write(escaped)
|
|
else:
|
|
# print("END", line)
|
|
outfile.write('\n')
|
|
mode = MODE_SEARCH
|
|
|
|
if mode == MODE_SEARCH:
|
|
if line.endswith('=MULTILINE\n'):
|
|
# print("START", line)
|
|
outfile.write(line.replace('MULTILINE\n', ''))
|
|
mode = MODE_INSIDE
|
|
else:
|
|
outfile.write(line)
|
|
|