2010-09-03 13 views
7

Estoy tratando de hacer que la sintaxis de hightlighting y las opciones de construcción funcionen para Geany, ¿algún consejo?Cómo agregar soporte Go a Geany

+0

Para mis compañeros programadores de Windows, hay un truco tonto para hacer que esto funcione: 'filetypes.go.conf' en realidad debe llamarse' filetypes.Go.conf' –

Respuesta

3

Busque en $ GOROOT/misc y http://go-lang.cat-v.org/text-editors/ para los archivos de sintaxis de otros editores para tener una idea.

Aparte de eso, empieza con C o C++ y añadir/Restar cosas como go, <-, func, etc.

+0

Empecé con C y nada funciona :(I ' he creado un ~/.config/geany/filetypes.go basado en el C proporcionado y no obtuve ninguna luz. –

1

¿Ha definido el tipo de archivo Ir en ~/.config/geany/filetype_extensions.conf?

[Extensions] 
... 
Go=*.go 
... 

si todavía no existe el archivo conf, copiarlo desde/usr/share/geany y añadir esa línea bajo 'Extensiones' (o lo buscan en Herramientas> Archivos de configuración).

+0

¡No lo sabía! –

7

me he dado cuenta de esta página: http://go-lang.cat-v.org/text-editors/geany/

Parece como si tuvieran todo lo que necesita allí.

+1

¡Bienvenido a Stack Overflow! Si bien esto podría responder teóricamente a la pregunta, [lo haría ser preferible] (http://meta.stackexchange.com/q/8259) para incluir las partes esenciales de la respuesta aquí, y proporcione el enlace para referencia. –

3

Aquí es el Geany formatting Instructions posted by Steve Horsley to golang-nuts:

  1. En Geany, ir a Herramientas> Configuración Files-> filetype_extensions.conf y añadir en el nuevo título:

    Go=*.go; 
    
  2. copiar los tipos de archivos de definición de C .c a filedefs/filetypes.Go.conf:

    cp /usr/share/geany/filetypes.c ~/.config/geany/filedefs/filetypes.Go.conf 
    
  3. Editar filetypes.Go.conf y cambiar las secciones de ajuste y de palabras clave para esto:

    [settings] 
    # default extension used when saving files 
    extension=go 
    lexer_filetype=C 
    
    [keywords] 
    # all items must be in one line 
    primary=break case chan const continue default defer else fallthrough for func go goto if import interface map package range return select struct switch type var 
    secondary=byte int int8 int16 int32 int64 uint uint8 uint16 uint32 uint64 float32 float64 complex64 complex128 uintptr string 
    
1

hice un script en Python que automatiza las instrucciones en el enlace proporcionado por Jaybill McCarthy.

import shutil, re, os 

HOME = os.environ['HOME'] 

shutil.copy('/usr/share/geany/filetype_extensions.conf', HOME +'/.config/geany/') 
with open(HOME + '/.config/geany/filetype_extensions.conf', 'r') as f: 
    fileData = f.read() 
fileData = re.sub(r'Haskell=.*;', r'Go=*.go;\nHaskell=*.hs;*.lhs;', fileData) 
fileData = re.compile('(\[Groups\][^\[]Programming=.*?$)', re.DOTALL|re.MULTILINE).sub(r'\1Go;', fileData) 
with open(HOME + '/.config/geany/filetype_extensions.conf', 'w') as f: 
    f.write(fileData) 


textSettings = """[settings] 
extension=go 
lexer_filetype=C 
comment_single=// 
comment_open=/* 
comment_close=*/ 
comment_use_indent=true 
""" 
textKeywords = """[keywords] 
primary=break case chan const continue default defer else fallthrough for func go goto if import interface map package range return select struct switch type var 
secondary=byte int int8 int16 int32 int64 uint uint8 uint16 uint32 uint64 float32 float64 complex64 complex128 uintptr string""" 

shutil.copy('/usr/share/geany/filetypes.c', HOME + '/.config/geany/filedefs/filetypes.Go.conf') 
with open(HOME + '/.config/geany/filedefs/filetypes.Go.conf', 'r') as f: 
    fileData = f.read() 
fileData = re.compile(r'\[settings\].*?^\[', re.DOTALL|re.MULTILINE).sub('%s\n\n[' %textSettings, fileData) 
fileData = re.compile(r'\[keywords\].*?^\[', re.DOTALL|re.MULTILINE).sub('%s\n\n[' %textKeywords, fileData) 
with open(HOME + '/.config/geany/filedefs/filetypes.Go.conf', 'w') as f: 
    f.write(fileData) 

print "Complete!" 

No estoy seguro de si esto significa que soy perezoso, o al revés ... o.O.

+0

¡Gracias! ¿Tiene esto como una esencia? – Ratul

+0

@Ratul ahora lo hace https://gist.github.com/danieltd/7016094 – DanielTA

+0

Marcado: D ¡Gracias de nuevo! – Ratul