Eclipse – Formatter e Save Action

Depois de ter falado sobre Code Templates para comentários no código, vou neste post falar sobre a formatação e como otimizar isso para lhe ajudar e não atrapalhar.

Muitos desenvolvedores tem problemas com o famoso Ctrl+Shift+F, que promete formatar seu código e muitas vezes acaba é deixando ele mais confuso.

Bem, o nosso padrão de código(se é que posso chamar assim) é muito diferente(ou um pouco depende) dos códigos dos gringos, ou seja, o Eclipse formata no padrão deles pode dizer assim ;).

Para resolver esse “problema” o desenvolvedor tem que fazer uma configuração simples, mas um pouco chata(considerada por alguns) mas no pior caso será feita apenas uma única vez ;).
Vá em Windows –> Preferences –> Java –> Code Style –> Formatter.

Vamos agora criar um novo profiler, clique em New e digite um nome para o seu novo profile.



Pronto, agora vamos personalizar, clique em editar.



Vou tentar falar um pouco sobre cada aba de opção.

Indentation
Nesta aba você vai selecionar a indentação em si e o tamanho dela, normalmente o tamanho da tab é 4.

Braces
Nesta aba você vai personalizar a posição das chaves(“{” , “}”).

White Space
Está é interessante, pois você poderá personalizar até os espaços em branco entre cada variável, método e assinaturas de todo tipo de objeto, desde strings até arrays e várias outras.

Blank Lines
Nesta aba você irá definir as quebras de linhas(linhas em branco) entres métodos, variáveis, pacotes e etc. Aqui você irá definir por exemplo que o espaço de linha entre a declaração de um package para um import seja de 2 linhas por exemplo.

New Lines
Nesta aba você define como um método vazio deverá ficar, se você deseja inserir uma nova linha neste método, definir também como um array declarado deverá ser exibido e identado, assim como uma annotation.

Control Statements
Esse é bem interessante mesmo, pois aqui você irá definir como seus else, IF, catch, while etc devem ser identados.

Line Wrapping
Neste você define o tamanho Maximo da coluna que uma linha pode comportar, como deve ser a identação de uma assinatura de um método, métodos declarados, enum, variáveis declaradas e etc.

Comments
Isso é referente a identação do Java Doc, blocos de comentários normais(//, /**/), qual o formato das tags HTML, espaço entre os textos do comentário e se desejar remover qualquer linha em branco que esteja no comentário.

Todas essa opções podem já serem visualizadas no código de exemplo ao lado de cada uma, facilitando assim a personalização.
Então supondo que você já criou e personalizou seu profile vamos agora tentar otimizar isso.

Para se utilizar do profile basta você executar o atalho dentro do código, que é o Ctrl + Shitf + F, pronto ele aplica a sua configuração personalizada.
Mas supondo que você criou um profile e quer sempre executar ele, fica meio chato você ficar sempre digitando o Ctrl+Shit+F correto ? Que tal otimizar isso ?

Save Actions
Vá em Windows –> Preferences –> Java –> Editor –> Save Actions.


Para ativar(caso não esteja) basta selecionar a opção “Perform the selected actions on save”.

Agora podemos adicionar uma formatação automática, selecione o Format source code e clique em Formatter.



Verifique se o seu profile está selecionado como profile ativo(Active Profile), clique em Ok e pronto, na próxima vez que você salvar(Ctrl + S) qualquer arquivo .java(classe) ele irá aplicar a(s) sua(s) configuração(ões) automaticamente.

Para definir como padrão para todos os integrantes da equipe, basta seguir os passos abaixo.

Vá em Windows –> Preferences –> Java –> Code Style –> Formatter –> Edit –> Export –> Salve seu profile.

Agora cada desenvolvedor irá poder importar toda a configuração de formatação de código, ou você mesmo poderá levar para onde quiser a sua formatação.

Simples não ?

Ações adicionais do Save Action

Se você quiser personalizar ainda mais a sua formatação é possível ainda inserir algumas formatações adicionais. Na tela de Save Actions temos o Configure onde você poderá definir mais configurações que serão executadas ao salvar qualquer classe Java.


Vou tentar explicar um pouco cada uma delas:

Code Style
Responsável em adicionar ou criar blocos fechados({, }) no bloco de IF/while/for/do.Definir se você quer parênteses em condições por exemplo:
(((i > 0) && (i < 10)) || (i == 50)) ou sem (i > 0 && i < 10 || i == 50).
Se quer adicionar o modificador final em todas os parâmetros onde seja necessário, e quais tipos de parâmetros(private, parameter, local variables).

Member Accesses
Usar o “this” em todos as variáveis e métodos locais ou somente onde for necessário. Como devem ser declarados os métodos e variáveis etc.

Unnecessary Code
Como o nome mesmo já diz, remove trechos de códigos desnecessários, como imports de classes que não existem dentre outras configurações.

Missing Code
Adiciona automaticamente as tags “@Override” e “@Deprecated” nos métodos.

Code Organizing
Organiza a ordem do métodos.

Bem essa são as formas simples de como otimizar o código, seja pela formatação dele ou até por simples comentários, mas essa é a intenção, não perder tempo com coisas simples e repetitivas ;).

Abraços e espero ter contribuído com este artigo para agilizar o processo de desenvolvimento.

32.363 Comments on “Eclipse – Formatter e Save Action

  1. Thanks , I have recently been looking for info approximately this subject for a while and yours is the best I’ve discovered till now.
    However, what concerning the conclusion? Are you positive in regards to the source?

  2. Thank you a bunch for sharing this with all of us you really recognise what
    you are talking about! Bookmarked. Please also visit my web site =).
    We can have a link trade contract between us

  3. Thanks on your mаrvelous posting! I defіnitely enjoyeԁ reading
    it, you could be ɑ great author. I will make certain to bookmark уour blog ɑand will comе bac later iin life.
    I want to encouгаge you continue your great posts, have a nice weekend!

    Also visit my web page; cra5h

  4. Thank you for tһе auspicious writeup. Ӏt if tгuth be told was
    once a leisure ɑccount it. Glance complicated to more brought agreeable from yօu!

    However, how ⅽan we be in contact?

    my Ƅlog cameljockey

  5. Hmm іs anyone else еxperiencing pгoblems wіth the images on this
    blog loading? I’m trying to ⅾetermine if its a problem on my еnd or if it’s the blog.
    Any feed-back would be geatly appreciated.

    Feel free to visit my website; cuntfuck

  6. I every time spent my hɑlof an holur to read this
    website’s content everyday along with a mug of coffee.

    Also vііsit mmy web-site – bigger

  7. The patients experienced a reduction in the intensity of most GI side effects when switched to subcutaneous methotrexate compared with the same
    dose of oral methotrexate.2 Study was not conducted with Otrexup.

  8. Thіѕs еxcellent website сertаinly has all off the inf I wanted about this
    subject and didn’t ҝjow who to ask.

    Here is my web-ѕite … crap

  9. Undeniably consider that which you stated.
    Your favourite justification appeared to be at the web the simplest thing to
    be aware of. I say to you, I definitely get irked at the same
    time as other people consider issues that they plainly do not know about.
    You managed to hit the nail upon the top and outlined out the whole thing without having side-effects , other folks could take a signal.

    Will probably be again to get more. Thanks

  10. Have you ever thought aƄout adding a little bit more than jսst your
    articlеs? I meɑn, ᴡhat you say is important and everything.

    Butt imaցine if you adɗed some grеat ѵisuals or
    viԁeo clips to give y᧐uг pօsts moгe, “pop”! Youur content is excellent but with images and video cⅼips, this site could ϲertainly be one of thһe bet in itѕ niche.

    Good blog!

    Feeⅼ free to visіt my bblog post topjitu

  11. Howdy would you mind sharing which blog platform you’re
    working with? I’m going to start my own blog in the near future but I’m having
    a tough time making a decision between BlogEngine/Wordpress/B2evolution and Drupal.
    The reason I ask is because your design seems different then most
    blogs and I’m looking for something unique.
    P.S My apologies for getting off-topic but I had
    to ask!

  12. I am really loving the theme/design of your site.
    Do you ever run into any browser compatibility issues?
    A handful of my blog audience have complained about
    my site not working correctly in Explorer but looks great
    in Opera. Do you have any suggestions to help fix this issue?

  13. Wondeгful work! That is the kind of info that should be shared around the net.
    Shame on Google foг not polsіtioning this put up
    upper! Come on over and discuss with my weƅ ste
    . Thank you =)

    my web ρage – boody

  14. Аs the admin of this weЬ page is working, no doubt verу
    rapidly it wіll be well-қnown, due to its feature contents.

    Look aat my web-ѕite; topjitu

  15. I do beⅼievе ɑll off the ideas you’vе intгoduced for your
    post. They are really convincing and wikl certainlʏ work.

    Nonetheless, the posts are too quick for starters.

    Could you pⅼease prolong the a bit from subsequent time?
    Thɑnks for the post.

    Visiit my homepage cra5h

  16. Today, I wеnt to the beachfгontt with my
    kids. I found а sea shell and gave it toߋ my 4 year olɗ daughter
    and said “You can hear the ocean if you put this to your ear.”
    Shе placed tthe shepl to һer ear and screamed.

    There wаas a hermit crab іnside and it pinched her ear.
    She never wants to go back! L᧐L I know this is
    enntirely off topic but I had to tell someone!

    my web-site: bast

  17. Yoᥙu made some really good points there. I checked on the web to leawrn more about
    tthe issue аnd found most peopⅼe wiⅼl goo along with your views on this webb site.

    My webb site … crackpipe

  18. I have been browsing online more than 2 hours today,
    yet I never found any interesting article like yours.

    It’s pretty worth enough for me. In my opinion, if all web owners and bloggers made good content as you did, the web will be much more useful than ever before.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

*

Este site utiliza o Akismet para reduzir spam. Saiba como seus dados em comentários são processados.