Non c'era.
Mi serviva.
Script senza pretese, non mantenuto. Facile da usare: lo mettete nella cartella dove ci sono i filedefs, settate i parametri (params) come li volete voi e lui li applica a tutti i formati (formats) che specificate.
Mi serviva.
Codice:
#Geany filedef maker
class filetype:
def __init__(self, text):
self.text = text
self.params = self.getParams()
def getParams(self):
params = []
for line in self.text.split('\n'):
if '#' not in line:
try:
params.append(line[:line.index('=')])
except ValueError:
continue
return params
def setParams(self,params):
ntext = ''
for line in self.text.split('\n'):
if '#' not in line and '=' in line:
if line[:line.index('=')] in params:
nline = '%s=%s;%s;false;false' % (
line[:line.index('=')],
params[line[:line.index('=')]],
backg)
ntext += nline + '\n'
elif ';' in line:
nline = '%s;%s;false;false' % (
line[:line.index(';')],
backg)
ntext += nline + '\n'
else:
ntext += line + '\n'
return ntext
def filedef(params,langs):
filetypes = {}
for lang in langs:
ft = 'filetypes.%s' %lang
f = open(ft,'r')
data = f.read()
f.close()
f = open(ft,'w')
filetypes[f] = filetype(data)
for f in filetypes:
f.write(filetypes[f].setParams(params))
f.close()
#Variabili esemplificative, cambiate queste:
params = {'default':'0x2b6c9e',
'comment':'0x940000',
'commentline':'0x940000',
'commentblock':'0x940000',
'word':'0x1a4c7d',
'string':'0xffffff',
'tiple':'0xffffff',
'character':'0xffffff',
'identifier':'0x808080',
'classname':'0x0016ba',
'defname':'0x0016ba',
}
backg = '0x000000'
formats = ['cpp','c','python']
filedef(params,formats)
print 'Done'