Como configurar o manipulador de protocolo subl: // com o Unity?

5

Meu aplicativo da Web gera URLs clicáveis, como os seguintes, quando ocorre um erro:

subl://open?url=file://%2Fusr%2Flocal%2Fwebenginex%2Fclass%2Fmodels%2Fwxclient.php&line=123

Quando clico nele, recebo esta solicitação:

Clicar em "Iniciar aplicativo" não faz nada. Eu quero que ele abra o texto sublime como pretendido. Como posso configurar isso?

    
por mpen 22.09.2014 / 20:13

2 respostas

2

Etapa 1: crie o arquivo da área de trabalho

Crie o arquivo /usr/share/applications/sublime-handler.desktop

[Desktop Entry]
Name=Sublime Text 2 URL Handler
GenericName=Text Editor
Comment=Handle URL Scheme subl://
Exec=/usr/share/handlers/sublime-handler %u
Terminal=false
Type=Application
MimeType=x-scheme-handler/subl;
Icon=sublime-text-2
Categories=TextEditor;Development;Utility;
Name[en_US]=Sublime Text 2 URL Handler

Etapa 2: atualize o banco de dados de tipos MIME

$ sudo update-desktop-database

Etapa 3: criar o arquivo do manipulador

Crie o arquivo /usr/share/handlers/sublime-handler

#!/usr/bin/env bash

request="${1#*://}"             # Remove schema from url (subl://)
request="${request#*?url=}"     # Remove open?url=
request="${request//%2F//}"     # Replace %2F with /
request="${request/&line=/:}"   # Replace &line= with :
request="${request/&column=/:}" # Replace &column= with :

subl "$request"                 # Launch sublime

Torne-o executável:

$sudo chmod +x /usr/share/handlers/sublime-handler

Etapa 4: registre o manipulador do tipo mime

$ xdg-mime default /usr/share/applications/sublime-handler.desktop x-scheme-handler/subl

Etapa 5: Lucro

Agora você pode usar os links como:

subl:///home/path/to/file.php:123
subl://open?url=/home/path/to/file.php:123
subl://open?url=/home/path/to/file.php&line=123
subl://open?url=/home/path/to/file.php&column=123
subl://open?url=%2Fhome%2Fpath%2Fto%2Ffile.php&line=123
subl://open?url=%2Fhome%2Fpath%2Fto%2Ffile.php&column=123

Etapa 6: modificar

Pode ser portado para uso com o IDE diferente, por exemplo phpstorm

    
por Andrey Izman 28.05.2017 / 21:51
1

Estou resumindo isso e tornando-o mais passível de copiar ...

Crie o arquivo do analisador de URL do Sublime '/ usr / local / bin / subl-analisador de URL':

sudo tee /usr/local/bin/subl-url-parser > /dev/null <<"EOF"
#!/usr/bin/env bash

request=${1:23}               # Delete the first 23 characters "subl://open?url=file://"
request=${request//%2F//}     # Replace %2F with /
request=${request/&line=/:}   # Replace &line= with :
request=${request/&column=/:} # Replace &column= with :
sublime $request              # Launch Sublime
EOF

Torne-o executável e crie um link simbólico para "subl-url-handler":

sudo chmod +x /usr/local/bin/subl-url-parser
sudo ln -s subl-url-parser /usr/local/bin/subl-url-handler

Crie (ou atualize) o arquivo da área de trabalho '/usr/share/applications/sublime-handler.desktop' para usar seu novo analisador de URL via 'subl-url-handler':

sudo tee /usr/share/applications/sublime-handler.desktop > /dev/null <<EOF
[Desktop Entry]
Name=Sublime Text URL Handler
GenericName=Text Editor
Comment=Handle URL Scheme subl://
Exec=subl-url-handler %u
Terminal=false
Type=Application
MimeType=x-scheme-handler/subl;
Icon=sublime-text
Categories=TextEditor;Development;Utility;
Name[en_US]=Sublime Text URL Handler
EOF

Atualize o banco de dados:

sudo update-desktop-database

NB : isso pressupõe que você tenha um sublime no seu $PATH e não apenas subl , como eu faço. Se não, você pode fazer um assim:

sudo ln -s 'which subl' $(dirname 'which subl')/sublime
    
por Karl Wilbur 15.03.2015 / 23:53

Tags