Coqide 8.5: нет подсветки синтаксиса в Linux

Я установил Coqide 8.5 с nix. К сожалению, текст черный на всех панелях; нет никакой подсветки синтаксиса (в остальном 8.5 кажется большим улучшением по сравнению с 8.4, который я тоже установил). Я также получаю следующее:

(coqide:17272): GtkSourceView-WARNING **: Unknown parent scheme 'classic' in scheme 'coq_style'

(coqide:17272): GtkSourceView-WARNING **: Failed to load '/nix/store/2sxcqfc4q3ls4g2q13n1zwfhnydvgq-coq-8.5pl1/share/coq/coq.lang': could not find the RelaxNG schema file

Вывод cat ~/.nix-profile/share/coq/coq_style.xml:

<?xml version="1.0" encoding="UTF-8"?>
<style-scheme id="coq_style" _name="Coq highlighting based on Ssr manual"
          parent-scheme="classic" version="1.0">
<author>The Coq Dev Team</author>
<_description>Coq/Ssreflect color scheme for the vernacular language</_description>

<style name="coq:comment" foreground="#brown"/>
<style name="coq:coqdoc" foreground="#brown" italic="true"/>
<style name="coq:vernac-keyword" bold="true" foreground="#dark violet"/>
<style name="coq:gallina-keyword" bold="true" foreground="#orange red"/>
<style name="coq:identifier" foreground="#navy"/>
<style name="coq:constr-keyword" foreground="#dark green"/>
<style name="coq:constr-sort" foreground="#008080"/>

<style name="coq-ssreflect:comment" foreground="#b22222"/>
<style name="coq-ssreflect:coqdoc" foreground="#b22222" italic="true"/>
<style name="coq-ssreflect:vernac-keyword" bold="true" foreground="#a021f0"/>
<style name="coq-ssreflect:gallina-keyword" bold="true" foreground="#a021f0"/>
<style name="coq-ssreflect:identifier" bold="true" foreground="#0000ff"/>
<style name="coq-ssreflect:constr-keyword" foreground="#228b22"/>
<style name="coq-ssreflect:constr-sort" foreground="#228b22"/>
<style name="coq-ssreflect:tactic" foreground="#101092"/>
<style name="coq-ssreflect:endtactic" foreground="#ff3f3f"/>
<style name="coq-ssreflect:iterator" foreground="#be6ad4"/>
<style name="coq-ssreflect:string" foreground="#8b2252"/>
</style-scheme>

Учитывая первое предупреждение, я предполагаю, что вместо "classic" должно быть что-то еще, но что


person jaam    schedule 18.06.2016    source источник


Ответы (2)


У меня установлен libgtksourceview3.0-common, но CoqIDE зависит от libgtksourceview2.0-common. Установка последнего исправила это

person jaam    schedule 10.07.2016
comment
Не могли бы вы указать, как вы установили эти пакеты? Используете nix или другой менеджер пакетов? Какую команду вы использовали? - person Zimm i48; 25.10.2016
comment
3.0 была установлена ​​с моим дистрибутивом (Linux Light, побочным продуктом Ubuntu). Насчет 2.0 не помню, но ~/.nix-profile/share показывает только ~coq и ~nix, значит 2.0 была установлена ​​с синаптиком - person jaam; 29.10.2016

Я только что столкнулся с той же проблемой с coqide, установленным через nix (в пакете coq-8.6).

Вот скрипт, который устанавливает символические ссылки на некоторые файлы в вашем домашнем каталоге, чтобы обойти несколько предупреждающих сообщений:

## Find the nix-installed version of the GTK SourceView 2.0 library
sourceview="$(nix-env -q coq --no-name --out-path |
    xargs nix-store -q --references |
    grep -- -gtksourceview-)"

## Link files into the correct hierarchical folders in your home dir:
share=share/gtksourceview-2.0
for file in language-specs/language2.rng \
    language-specs/def.lang \
    styles/classic.xml
do
    target="$HOME/.local/$share/$file"
    mkdir -vp "$(dirname "$target")"
    ln -vfns "$sourceview/$share/$file" "$target"
done

Это исправляет следующие GtkSourceView-WARNINGs:

## fixed by language-specs/language2.rng
Failed to load '.../share/coq/coq.lang': could not find the RelaxNG schema file

## fixed by language-specs/def.lang
in file .../share/coq/coq.lang: style 'def:comment' not defined
Failed to load '.../share/coq/coq.lang': unable to resolve language 'def'

## fixed by styles/classic.xml
Unknown parent scheme 'classic' in scheme 'coq_style'

Я, вероятно, попытаюсь исправить вывод coq в какой-то момент, чтобы не нуждаться в этом обходном пути. Я подозреваю, что нужно будет сделать одно или оба из следующих действий:

  • Исправьте, как coq настраивает пути поиска GTK SourceView (поскольку он включает определение языка)
  • Исправьте, как gnome2.gtksourceview экспортирует свои пути поиска для использования другими программами.
person benizi    schedule 07.06.2017
comment
Очень хорошо! Кстати, это намекнуло мне на другое (временное) решение, которое просто: nix-env -iA nixos.gnome2.gtksourceview, так как это переносит папку share/ этого пакета куда-то, что CoqIDE может найти. - person Zimm i48; 08.06.2017