Как добавить поддержку Go в Geany - PullRequest
7 голосов
/ 03 сентября 2010

Я пытаюсь сделать так, чтобы подсветка синтаксиса и опции построения работали для Джани, любой совет?

Ответы [ 5 ]

7 голосов
/ 06 апреля 2012

Я только что заметил эту страницу: http://go -lang.cat-v.org / text-editors / geany /

Кажется, у них есть все, что вам нужно прямо здесь.

3 голосов
/ 28 апреля 2012

Вот инструкции по форматированию Geany, опубликованные Стивом Хорсли в golang-nuts:

  1. В Geany перейдите в раздел Инструменты-> Файлы конфигурации-> filetype_extensions.confи добавьте следующий новый заголовок:

    Go=*.go;
    
  2. Скопируйте файл определения C filetypes.c в filedefs / filetypes.Go.conf:

    cp /usr/share/geany/filetypes.c ~/.config/geany/filedefs/filetypes.Go.conf
    
  3. Отредактируйте filetypes.Go.conf и измените настройки и ключевые слова на следующие:

    [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
    
3 голосов
/ 03 сентября 2010

Посмотрите в $ GOROOT / misc и http://go -lang.cat-v.org / text-editors / файлы синтаксиса от других редакторов, чтобы получить представление.

За исключением этого, начните с C или C ++ и добавляйте / вычитайте такие вещи, как go, <-, func и т. Д.

1 голос
/ 22 февраля 2013

Я создал скрипт Python, который автоматизирует указания в ссылке, предоставленной 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!"

Я не уверен, означает ли это, что я ленивый или наоборот ... o.O.

1 голос
/ 01 декабря 2010

Определили ли вы тип файла Go в ~ / .config / geany / filetype_extensions.conf?

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

, если файл conf еще не существует, скопируйте его из / usr / share / geany идобавьте эту строку в «Расширения» (или найдите ее в разделе «Инструменты»> «Файлы конфигурации»).

...