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!
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.
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:
"json" está incluído na mensagem de ajuda de
--output-format
."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:
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.