Para um curso, estou usando a linguagem Racket , que agrupa seu próprio IDE (Dr Racket) com a instalação. Eu o instalei com sucesso na minha máquina Ubuntu 22.04.
No entanto, o instalador não cria um mimetype para .rkt
arquivos (a extensão padrão para arquivos de código Racket usados pelo IDE). Eu queria que meus .rkt
arquivos abrissem no Racket IDE quando eu clicasse neles, então criei um mimetype personalizado, chamado text/rkt
, que funcionou bem. O ícone personalizado funciona e quando eu clico duas vezes nos arquivos eles abrem no Racket IDE. Em arquivos de código que eu já criei com código dentro deles, o mimetype personalizado parece funcionar corretamente.
No entanto, se eu fizer, touch test.rkt
por exemplo, para criar um novo arquivo, esse arquivo recebe o text/plain
mimetype e quando eu clico duas vezes nele, ele abre o editor de texto em vez do Racket IDE. Isso não é o ideal, porque eu gostaria de poder criar arquivos vazios do terminal e abri-los no IDE (é mais conveniente do que fazer Salvar como -> qualquer coisa toda vez no IDE).
É possível que meus arquivos vazios com a *.rkt
extensão sejam reconhecidos como meu mimetype personalizado, em vez de texto simples?
Aqui está o código para meu tipo MIME personalizado, caso eu tenha feito algo errado:
<?xml version="1.0" encoding="UTF-8"?>
<mime-info xmlns='http://www.freedesktop.org/standards/shared-mime-info'>
<mime-type type="text/rkt">
<comment>Racket code file</comment>
<glob pattern="*.rkt"/>
</mime-type>
</mime-info>
Eu segui a documentação do Ubuntu aqui , que eu posso ver que foi editada pela última vez em 2014, assim como um post aqui que é mais recente, mas talvez algo tenha mudado desde então. Sou novo no Linux, então talvez eu não saiba onde procurar para encontrar as instruções corretas.
Na verdade, ele recebe o
application/x-zerosize
tipo MIME, cujo manipulador padrão geralmente é o editor de texto padrão.Citando Emmanuele Bassi , da equipe GNOME:
O que significa que se o arquivo existir e estiver em um armazenamento local, não faremos como o Windows (adivinhar com base na extensão), mas olharemos para números mágicos. Para um arquivo de comprimento 0, olhar para números mágicos resultará em
application/x-zerosize
:No entanto, isso não é o caso para outras distribuições / ambientes de desktop. Na minha caixa OpenSuse Leap / KDE:
Então pode haver uma maneira de fazer o Ubuntu / GNOME funcionar como o OpenSuse Leap / KDE. Tentei pesquisar sobre isso, mas até agora não entendi nem como isso poderia ser feito nem se isso exigiria alterar o código-fonte em algum lugar.
No entanto, para ter arquivos .rkt "vazios" abrindo com o Dr Racket depois de
touch
executá-los, já que arquivos .rkt que não são de comprimento 0 já são abertos pelo Dr Racket, você pode substituirtouch
o comportamento do fazendo-o criar um arquivo .rkt contendo apenas um comentário caso o comando siga a sinopsetouch <filename_ending_in_.rkt>
e<filename_ending_in_.rkt>
não exista, definindo uma função Bash como esta (que será adiada para o realtouch
se alimentado com mais de um argumento / o argumento não termina em .rkt / um diretório, arquivo etc. com o mesmo nome do argumento já existir):