Ctags: Saída JSON não disponível em OSX / Debian

Criado em 20 fev. 2019  ·  3Comentários  ·  Fonte: universal-ctags/ctags

Oi, pessoal,

Acabei de instalar ctags universais usando homebrew no OSX, e como estava recebendo um erro com o
--output-format=json opção, então decidi compilá-lo a partir de fontes no Debian após clonar o branch master atual. Mas recebo o mesmo erro:

ctags: unknown output format name supplied for "output-format=json"

ao usar o comando

ctags --output-format=json myfile.c

Todo o resto parece funcionar perfeitamente, então o formato de saída JSON não é mais compatível?

Tenham um bom pessoal!

Comentários muito úteis

Eu acho que libjansson.so, biblioteca de back-end para --output-format=json , não estava disponível em seu PC ou não estava devidamente vinculada ao seu executável ctags.

Se a opção estiver disponível, você pode verificá-la com a outra opção:

[yamato@slave]$ u-ctags --help | grep -e --output-format
  --output-format=u-ctags|e-ctags|etags|xref|json

"json" está incluído na mensagem de ajuda de --output-format .

[yamato@slave]$ u-ctags --list-features                 
#NAME             DESCRIPTION
aspell            linked with code for spell checking (internal use)
debug             TO BE WRITTEN
iconv             can convert input/output encodings
interactive       accepts source code from stdin
json              supports json format output
option-directory  TO BE WRITTEN
regex             can use regular expression based pattern matching
sandbox           linked with code for system call level sandbox
wildcards         can use glob matching
xpath             linked with library for parsing xml input
yaml              linked with library for parsing yaml input

"json" está incluído na saída da opção --list-features .

Para usar o recurso, você deve instalar o libjansson.so primeiro.
Você deve reiniciar os procedimentos de construção de "./configure ...".
Se uma ferramenta executada no processo de compilação reconhecer a instalação de libjansson.so corretamente, você verá a seguinte mensagem:

[yamato@slave]~/var/ctags-github% ./configure
...
checking for JANSSON... yes
...

Não conheço bem o Debian (estou usando o Fedora diariamente), no entanto, você pode instalar o libjansson como um pacote.
Eu acho que o pacote libjansson-devel ou libjansson-dev também é necessário.

Parece que o pacote debian u-ctags também está disponível.
https://github.com/universal-ctags/ctags/issues/1785
Se --output-format=json do executável no pacote binário não funcionar, me avise.
Vou tentar consertar com @hnakamur.

Todos 3 comentários

Eu acho que libjansson.so, biblioteca de back-end para --output-format=json , não estava disponível em seu PC ou não estava devidamente vinculada ao seu executável ctags.

Se a opção estiver disponível, você pode verificá-la com a outra opção:

[yamato@slave]$ u-ctags --help | grep -e --output-format
  --output-format=u-ctags|e-ctags|etags|xref|json

"json" está incluído na mensagem de ajuda de --output-format .

[yamato@slave]$ u-ctags --list-features                 
#NAME             DESCRIPTION
aspell            linked with code for spell checking (internal use)
debug             TO BE WRITTEN
iconv             can convert input/output encodings
interactive       accepts source code from stdin
json              supports json format output
option-directory  TO BE WRITTEN
regex             can use regular expression based pattern matching
sandbox           linked with code for system call level sandbox
wildcards         can use glob matching
xpath             linked with library for parsing xml input
yaml              linked with library for parsing yaml input

"json" está incluído na saída da opção --list-features .

Para usar o recurso, você deve instalar o libjansson.so primeiro.
Você deve reiniciar os procedimentos de construção de "./configure ...".
Se uma ferramenta executada no processo de compilação reconhecer a instalação de libjansson.so corretamente, você verá a seguinte mensagem:

[yamato@slave]~/var/ctags-github% ./configure
...
checking for JANSSON... yes
...

Não conheço bem o Debian (estou usando o Fedora diariamente), no entanto, você pode instalar o libjansson como um pacote.
Eu acho que o pacote libjansson-devel ou libjansson-dev também é necessário.

Parece que o pacote debian u-ctags também está disponível.
https://github.com/universal-ctags/ctags/issues/1785
Se --output-format=json do executável no pacote binário não funcionar, me avise.
Vou tentar consertar com @hnakamur.

@masatake Obrigado pelo seu apoio!

de fato estava faltando libjansson, então aqui está o que eu fiz:

No Debian , instalei o pacote libjansson-dev e recompilei a partir de fontes usando o automake:

[user<strong i="11">@vps</strong>:~/ctags] ~$ sudo apt-get install libjansson-dev && ./autogen.sh && ./configure && make && sudo make install

E funcionou corretamente.

No OSX , tive que usar a opção --with-jansson como tal:

[user<strong i="18">@macosx</strong>:~/ctags] ~$  brew install jansson
[user<strong i="19">@macosx</strong>:~/ctags] ~$  brew install --with-jansson --HEAD universal-ctags/universal-ctags/universal-ctags

Agora, os dois binários mostram:

[user<strong i="23">@vps</strong>:~/ctags] ~$ ./ctags --list-features

#NAME                       DESCRIPTION
[...]
json                        supports json format output
[...]

Muito obrigado pela sua ajuda, companheiro!

@fabiensabatie Para

Aqui está o último Build-Depends
https://salsa.debian.org/debian/universal-ctags/blob/cedf9a1c5106d371398b35031409ae09caecf3e6/debian/control#L5 -13

Então eu acho que universal-ctags na próxima versão do Debian terá suporte json fora da caixa.

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

jagjordi picture jagjordi  ·  9Comentários

cweagans picture cweagans  ·  13Comentários

trevordmiller picture trevordmiller  ·  9Comentários

lvc picture lvc  ·  8Comentários

EvanCarroll picture EvanCarroll  ·  14Comentários