Geany filedefs maker

Stato
Discussione chiusa ad ulteriori risposte.

HackLife

Utente Silver
26 Maggio 2008
57
11
0
73
Non c'era.
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'
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.
 
Sai che per cambiare il tema grafico di geany devi modificare manualmente tutti i file di impostazione in ~/geany/filedefs no? Lui lo fa in automatico in modo che non devi modificarli tutti uno per uno...
 
Stato
Discussione chiusa ad ulteriori risposte.