Jonathan Fontes

Sublime Text 3 - Perfect Configuration

22 de October de 2017

Como utilizador habitual do Sublime Text, configuro todos os detalhes do meu editor. Aqui está a lista que funciona muito bem no meu dia-a-dia.

Package Manager

Como é obvio este é um pacote que instalo por razões óbvias, sem ele não consigo fazer muito mais no sublime. A sua instação é super rápido e fácil. Segundo a documentação oficial, teriamos que copiar e colar as seguintes instruções na consola do editor.

import urllib.request,os,hashlib; h = '6f4c264a24d933ce70df5dedcf1dcaee' + 'ebe013ee18cced0ef93d5f746d80ef60'; pf = 'Package Control.sublime-package'; ipp = sublime.installed_packages_path(); urllib.request.install_opener( urllib.request.build_opener( urllib.request.ProxyHandler()) ); by = urllib.request.urlopen( 'http://packagecontrol.io/' + pf.replace(' ', '%20')).read(); dh = hashlib.sha256(by).hexdigest(); print('Error validating download (got %s instead of %s), please try manual install' % (dh, h)) if dh != h else open(os.path.join( ipp, pf), 'wb' ).write(by)

Documentação Oficial

Origami

Origami

Costumo usar este package para devidir o editor em multiplas janelas. Criei uns shortcuts, para dividir a janela verticalmente e horizontalmente, no meu caso, basta digitar, :vsp para "vertical split" ou :sp para "horizontal split", no caso de querer remover a janela com cursor activo, basta digitar :bd.

!!! Estas curioso porque usei :bd ? Significa, "Delete Buffer". Está relacionado com o editor VIM. :)

Emmet

Para quem quer escrever HTML muito mais rápido, então este é package que tens que instalar com certeza.

Emmet.

! Não sabes como se usa? Não faz mal, tens no site toda a explicação que precisas.

PHPCompanion

Como a linguagem de eleição é o PHP, não poderia falta um package dedicado! Este tem muitas funcionalidades, as que uso com mais frequência é o import namespace. Como é óbvio utilizo um shortcut para ser mais rápido, quando digito ",fu" vai ser importado no topo do ficheiro a classe que está por debaixo do meu cursor.

!!! Curioso porque ,fu ? Em VIM todos os utilizadores tem um carácter Leader, o meu é ,. O f + u, significa, find use.

SublimePHPCompanion

SnippetMaker

Por fim, mas não menos importante, tenho este package por uma questão de comodidade. Permite-me facilmente criar os meus snippets rápidamente e no local onde estou a programar.

SnippetMaker

Snippets

Agora vamos ao conteúdo porreiro, snippets. São bocados de código já criados anteriormente para qual não tens que repetir o mesmo processo sempre que precisares.

bsabtn

<a href="${1}" class="btn ${2:btn-default}">${0}</a>

Cria um bootstrap button, num link.

bsbutton

<button type="${1:submit}" class="btn ${2:btn-default}">${0:text}</button>

Criação de um botão de bootstrap.

bstext

<div class="form-group">
	<label for="${1:title}">${2:Title}:</label>
	<input type="text" name="${3}" id="${4}" class="form-control" value="${0}">
</div>

Criação de um textfield assim também como todos os "wrapper" que são exegidos pelo a framework bootstrap.

bstextarea

<div class="form-group">
    <label for="${1}">${2:Boby}:</label>
    <textarea name="${3}" id="${1}" rows="${4}" cols="${5}" class="form-control"></textarea>
</div>

O mesmo que o anterior mas com uma textarea.

met

${1:public} function ${2}(${3})
{
	${0}
}

Criação método em php.

test

/** @test */
public function ${1:an_} ()
{
	${0}
}

A criação de um test unitário para PHPUnit.

testclass

<?php

namespace Tests\Feature;

use Tests\TestCase;
use Illuminate\Foundation\Testing\RefreshDatabase;

class ${1:${TM_FILENAME/(.+)\..+|.*/$1/:name}} extends TestCase
{
	use RefreshDatabase;

	/** @test */
	function ${2} ()
	{
		${0}
	}
}

Test Class para Laravel, para criar o ficheiro rápidamente sem ter que mudar para o terminal para criar php artisan make:test <name>.

$

\$this->${0}

Não é chato escrever sempre $this->?

trait

<?php

namespace App${1:\\}${2};

trait ${3:${TM_FILENAME/(.+)\..+|.*/$1/:name}} {
    ${0}
}

Esqueleto de um Trait. :)

I don't know why all developer say, "Proudly Hosted by DigitalOcean".

© 2017 · 2018