Entrei na festa tarde. Concordo com a IKashef de que existem outras opções que a resposta selecionada atualmente. A resposta de Yaqub Ahmad salvou minha vida. Não precisei baixar o IDE inteligente. Fiz o download do plug-in CoffeeBytes mencionado no comentário de cking24343, apliquei a configuração de 'null n void' e funcionei bem no Luna. Você precisa reiniciar após a aplicação da configuração
Maximus Decimus
3
começar //region [Description] e terminar com//endregion
Amir Ziarati 8/17
Respostas:
216
Não existe esse padrão equivalente. Alguns IDEs - Intellij, por exemplo, ou Eclipse - podem dobrar dependendo dos tipos de código envolvidos (construtores, importações, etc.), mas não há nada parecido #region.
Na verdade, isso pode ser alcançado. Se você rolar para baixo nesta postagem, "Yaqub Ahmad" explica como obter essa funcionalidade. Também aqui está um link ( kosiara87.blogspot.com/2011/12/… ) que mostra como adicioná-lo ao seu ambiente eclipse existente ... extremamente útil!
cking24343
14
Certo. Mas não há nada padrão . É realizado em IDEs ao invés de ter um construtor de linguagem (ou texto)
Brian Agnew
2
@lKashef - então, qual é o equivalente padrão então? Tudo o que foi observado abaixo se refere a um IDE específico, não é?
Brian Agnew
4
@BrianAgnew, o OP não mencionou nada sobre padrões, ele apenas queria ter blocos semelhantes a regiões em seu código. Por exemplo, você disse "mas não há nada como # região". no IDEA, por exemplo, // region .. // endregion funciona exatamente como #region. Não existe uma maneira padrão de fazer isso em primeiro lugar, pois depende do próprio IDE ou de um plug-in. Os desenvolvedores com experiência na Microsoft sempre verão o MS Visual Studio como "O" IDE, mas na verdade é apenas uma das opções e outro IDE pode ou não implementar essa funcionalidade.
Mazen Elkashef 01/03
4
@BrianAgnew, eu quase desisti até ver as respostas de outras pessoas que ajudaram mais do que a sua. Sério, não há nenhum sentimento difícil aqui, estamos todos aqui para aprender e compartilhar nosso conhecimento e estou afirmando que fui enganada por sua resposta, talvez tenha sido boa em 2010, mas não hoje. Eu espero que você entenda meu lado.
Mazen Elkashef
476
O Jet Brains IDEA possui esse recurso. Você pode usar o atalho surround para isso (ctrl + alt + T). É apenas o recurso IDEA.
estava passando por todas as respostas e calculou que, como o Android Studio é baseado no IntelliJ, isso deve ser suportado. É bom ressaltar isso!
serine
5
Bummi, eu experimentá-lo em 0.4.2 com uma linha em branco e ainda funciona
serina
2
Apenas um comentário / conselho (e de modo algum uma resposta à sua pergunta). É uma opinião generalizada que as regiões devem ser evitadas, pois permitem ocultar a complexidade da classe em vez de trabalhar no seu estilo de codificação. Em vez de grandes classes, nas quais cada classe é responsável por muitas funcionalidades, trabalhe para dividir seu código em classes menores. Isso tornará seu código mais fácil de gerenciar ao longo do tempo. Leia mais aqui: blog.codinghorror.com/the-problem-with-code-folding
Daniel Saidi
5
@DanielSaidi oh, o horror! :) o cara no artigo " Não consigo ver nada! Tenho que expandir manualmente essas seções para navegar por qualquer código nesta classe. " ... então, porque ele é preguiçoso demais para pressionar uma tecla (isso iria expandir tudo seções do arquivo), o recurso não deve ser usado - é um recurso maravilhoso. No momento, estou usando-o para ocultar um por um, os métodos que eu verifiquei são seguros para threads na classe em que estou trabalhando, realmente ajuda a manter a organização. Eu pensei que estava lá, mas isso é um preço pequeno a pagar ...
ycomp 18/10/2015
4
@DanielSaidi Não se trata de ocultar complexidade, mas ocultar código mundano, como declarações de variáveis, getters, código de inicialização e assim por diante. Observe também que você NÃO exige #regions para recolher o "código complexo" encontrado nas funções e classes. A carne com programadores que usam uma ferramenta incorretamente não é "a ferramenta está ruim".
user1567453
96
Não há equivalente no idioma ... Baseado em IDEs ...
Mesmo que não seja uma dobradura específica de idioma, mas ainda me ajudou no NetBeans. Exatamente o que eu queria alcançar. Só quero que meu código seja mais útil e organizado para mim.
Indigo
Existe algum atalho que pode preencher automaticamente essa linha?
@JadChahine: O OP perguntou sobre o Eclipse, mas concorda que isso funciona bem para o NetBeans. A sintaxe é um pouco desajeitada, mas copiar e colar facilita bastante.
+1 obrigado por esta informação. Como o site original do desenvolvedor do plug-in não está mais disponível em 2012 - eu encontrei uma breve descrição para instalação e uso .
K3b
alguém encontrou uma alternativa intelectual?
philx_x
O link para download não existe mais.
DerHugo 31/07/19
49
O recurso de dobragem de código personalizado pode ser adicionado ao eclipse usando o plug-in de dobragem de código CoffeeScript.
Isso foi testado para funcionar com o eclipse Luna e Juno. Aqui estão os passos
Copie e cole o conteúdo do plugin e da pasta features na mesma pasta nomeada dentro do diretório de instalação do eclipse
Reinicie o eclipse
Navegar Window >Preferences >Java >Editor >Folding >Select folding to use: Coffee Bytes Java >General tab >Tick checkboxes in front of User Defined Fold
Crie uma nova região, como mostrado:
Reinicie o Eclipse.
Experimente se a dobragem funciona com comentários prefixados com identificadores iniciais e finais especificados
Você pode baixar o arquivo e encontrar etapas neste blog também.
não está funcionando para mim no eclipse neon: copiar e colar não fez nada: a única coisa que mudou foi no marketplace >> plugins instalados >> update. Eu atualizei o plugin Coffeescript, mas eu não tive a opção "Select dobrável para uso" em java >> editor >> dobrar
Angelo Oparah
Ele funcionou no Eclipse Oxygen, no entanto, você precisa reiniciar o eclipse novamente. O ícone apresentado para mim foi um ícone vermelho então eu mudei na configuração, Janela → Preferências → Java → Editor de → Folding clique em Avançado guia e alterar o conjunto tema Ícone de Modern
No Android studio, pelo menos, você não pode dobrar parte de um bloco. Se a especificação de dobra começar fora de um bloco e terminar dentro de um bloco, ela não será ativada.
Prof Von Lemongargle
30
a maneira mais rápida de Android Studio(ou IntelliJ IDEA)
O que mais está postando é que, EM JAVA, esse é um recurso do IDE.
WhyNotHugo
1
Eu vejo as 2 respostas mais populares dizendo que não existe esse recurso de idioma. -1.
precisa saber é o seguinte
23
Em C #, é parcialmente IDE, parcialmente linguagem. O idioma suporta as diretrizes do pré-processador, mas o pré-processador simplesmente as ignora (da mesma forma que o processador ignora os comentários). O IDE (Visual Studio) os utiliza para fazer dobragem de código.
ADTC
Java não especificou o dobramento de código somente o IDE (Netbeans), o Netbeans possui mais comentários especiais como "TODO" e mais. Eles são muito úteis para acompanhar o seu progresso através do processo de desenvolvimento do projeto SW
Pini Cheyni
17
Eu estava vindo de C # para java e tive o mesmo problema e a melhor e exata alternativa para região é algo como abaixo (trabalhando no Android Studio, não sei sobre o intelliJ):
No AndroidStudio versão 2.3.1, ele se dobra. Não sei quando começou a dobrar.
MiguelSlv
Obrigado. Funciona perfeitamente no Android Studio 3.0 beta 2. Por curiosidade, tentei no Eclipse Oxygen, ele não funciona por padrão, mas não foi mais pesquisado.
Laurent
15
A melhor maneira
//region DESCRIPTION_REGIONint x =22;// CommentsString s ="SomeString";//endregion;
eclipse não dobre o código, qual IDE você está usando?
Oade Cohen
Ele funciona com Android Studio e IntelliJ IDEA (ambos são feitos de mesma base de código por JetBrains)
prashu132
IDE significam "ambiente de desenvolvimento integrado"
Pini Cheyni
12
Se alguém estiver interessado, no Eclipse você pode recolher todos os seus métodos etc. de uma só vez, basta clicar com o botão direito do mouse quando você normalmente inserir um ponto de interrupção, clicar em 'Dobrar'> 'Recolher tudo'. Ele sabe que não é uma resposta para a pergunta, mas apenas fornece uma alternativa para a dobragem rápida de código.
Você também pode fazer com que o Eclipse recolha automaticamente tudo ao abrir um arquivo de código-fonte. Preferências> Java> Editor> Dobrável> "Dobre esses elementos inicialmente" (marque todos na lista). Acho conveniente me concentrar apenas no que eu preciso, especialmente em arquivos de código fonte longos.
ADTC
@ADTC - Obrigado - tantas centenas de vezes que eu o fiz manualmente toda vez que abro um arquivo - nunca mais !!
ToolmakerSteve
@ToolmakerSteve Se você pode fazer algo repetitivo manualmente em um computador, só precisa haver uma maneira de automatizá-lo. = D
ADTC
8
#region// code#endregion
Realmente só oferece algum benefício no IDE. Com Java, não há um padrão definido no IDE; portanto, não há um padrão paralelo #region.
Bem, se há um padrão para region, então podemos ter certeza de que do IDE java vai apoiá-lo, não é?
Pacerier 19/11
@ Pacerier se eles suportam esse padrão, sim. Eu acho que #region é mais um recurso IDE do que um padrão. Em teoria do IDE java poderia implementar este comportamento e torná-lo um de-facto padrão
Na verdade, johann, o # indica que é uma diretiva de pré-processador, o que basicamente significa que diz ao IDE o que fazer.
No caso de usar #regione#endregion no seu código, NÃO faz diferença no código final, esteja ele presente ou não. Você realmente pode chamá-lo de um elemento de linguagem se usá-lo não mudar nada?
Além disso, o java não possui diretivas de pré-processador, o que significa que a opção de dobrar o código é definida por ide, no netbeans, por exemplo, com uma instrução // <code-fold>
você pode realmente chamá-lo de um elemento de linguagem se usá-lo não mudar nada? - que tal comentários ?!
epeleg 21/09/11
2
Já ouvi o argumento de que não é uma função da linguagem. E esta pergunta "Você pode realmente chamá-lo de um elemento de linguagem se usá-lo não mudar nada?" é ridículo. Muitas vezes a refatoração está facilitando a leitura do código para humanos e não faz nada (espero) para impactar a função do código.
Isso é inútil. Ele não funciona dentro de um método, além de quebrar o código! (Variáveis privados se queixam de que eles querem ser final Variável sem definição do escopo não será acessível fora dos suportes internos.!)
ADTC
1
Eu não gosto deste método, adiciona muitas chaves. Isso pode levar a um código confuso :(
Broken_Window
-3
Basta instalar e ativar o plug-in Coffee-Bytes (Eclipse)
Isso não é apenas mencionado em uma resposta anterior , mas você nem mesmo forneceu informações úteis sobre isso.
Xynariz 04/04
-12
Há alguma opção para conseguir o mesmo, siga os pontos abaixo.
1) Abra o Macro Explorer:
2) Crie uma nova macro:
3) Nomeie "OutlineRegions" (ou o que você quiser)
4) Clique com o botão direito do mouse em "OutlineRegions" (Exibindo no Macro Explorer), selecione a opção "Edit" e cole o seguinte código VB nele:
ImportsSystemImportsEnvDTEImportsEnvDTE80ImportsEnvDTE90ImportsEnvDTE90aImportsEnvDTE100ImportsSystem.DiagnosticsImportsSystem.CollectionsPublicModuleOutlineRegionsSubOutlineRegions()Dim selection AsEnvDTE.TextSelection= DTE.ActiveDocument.SelectionConst REGION_START AsString="//#region"Const REGION_END AsString="//#endregion"
selection.SelectAll()Dim text AsString= selection.Text
selection.StartOfDocument(True)Dim startIndex AsIntegerDim endIndex AsIntegerDim lastIndex AsInteger=0Dim startRegions AsStack=NewStack()Do
startIndex = text.IndexOf(REGION_START, lastIndex)
endIndex = text.IndexOf(REGION_END, lastIndex)If startIndex =-1AndAlso endIndex =-1ThenExitDoEndIfIf startIndex <>-1AndAlso startIndex < endIndex Then
startRegions.Push(startIndex)
lastIndex = startIndex +1Else' Outline region ...
selection.MoveToLineAndOffset(CalcLineNumber(text, CInt(startRegions.Pop())), 1)
selection.MoveToLineAndOffset(CalcLineNumber(text, endIndex) + 1, 1, True)
selection.OutlineSection()
lastIndex = endIndex + 1
End If
Loop
selection.StartOfDocument()
End Sub
Private Function CalcLineNumber(ByVal text As String, ByVal index As Integer)
Dim lineNumber As Integer = 1
Dim i As Integer = 0
While i < index
If text.Chars(i) = vbCr Then
lineNumber += 1
i += 1
End If
i += 1
End While
Return lineNumber
End Function
End Module
5) Salve a macro e feche o editor.
6) Agora vamos atribuir um atalho para a macro. Vá em Ferramentas-> Opções-> Ambiente-> Teclado e procure sua macro na caixa de texto "show command contendo" (Digite: Macro na caixa de texto, ele sugerirá o nome das macros, escolha a sua.)
7) agora, na caixa de texto, sob "Pressione as teclas de atalho", você pode inserir o atalho desejado. Eu uso Ctrl + M + N.
//region [Description]
e terminar com//endregion
Respostas:
Não existe esse padrão equivalente. Alguns IDEs - Intellij, por exemplo, ou Eclipse - podem dobrar dependendo dos tipos de código envolvidos (construtores, importações, etc.), mas não há nada parecido
#region
.fonte
O Jet Brains IDEA possui esse recurso. Você pode usar o atalho surround para isso (ctrl + alt + T). É apenas o recurso IDEA.
As regiões ficam assim:
fonte
Com o Android Studio, tente o seguinte:
Cuidado: nenhuma linha em branco após // região ...
E você receberá:
fonte
Não há equivalente no idioma ... Baseado em IDEs ...
Por exemplo, no netbeans:
O NetBeans / Creator suporta esta sintaxe:
http://forums.java.net/jive/thread.jspa?threadID=1311
fonte
Para o Eclipse IDE, o plug-in Coffee-Bytes pode fazer isso, o link para download está aqui .
EDITAR:
As informações mais recentes sobre a Coffee-Bytes estão aqui .
fonte
O recurso de dobragem de código personalizado pode ser adicionado ao eclipse usando o plug-in de dobragem de código CoffeeScript.
Isso foi testado para funcionar com o eclipse Luna e Juno. Aqui estão os passos
Faça o download do plugin aqui
Extrair o conteúdo do arquivo
Navegar
Window >Preferences >Java >Editor >Folding >Select folding to use: Coffee Bytes Java >General tab >Tick checkboxes in front of User Defined Fold
Crie uma nova região, como mostrado:
Reinicie o Eclipse.
Experimente se a dobragem funciona com comentários prefixados com identificadores iniciais e finais especificados
Você pode baixar o arquivo e encontrar etapas neste blog também.
fonte
Este é mais um recurso do IDE do que um recurso do idioma. O Netbeans permite definir suas próprias definições de dobra usando a seguinte definição:
Conforme observado no artigo, isso também pode ser suportado por outros editores, mas não há garantias.
fonte
highlight the code
você quer cercá-loctrl
+alt
+t
c
==> depois digite a descriçãofonte
AndroidStudio
regiãoCriar região
Primeiro , encontre (e defina atalho, se necessário) para o
Surround With
menuEm seguida , selecione o código, pressione
Ctrl+Alt+Semicolon
-> escolharegion..endregion...
Ir para a região
Primeiro, encontre o
Custom Folding
atalhoSegundo, em qualquer lugar do seu código, pressione
Ctrl+Alt+Period('>' on keyboard)
fonte
Ao contrário do que a maioria está postando, isso NÃO é uma coisa IDE. É uma coisa de linguagem. A região # é uma instrução C #.
fonte
Eu estava vindo de C # para java e tive o mesmo problema e a melhor e exata alternativa para região é algo como abaixo (trabalhando no Android Studio, não sei sobre o intelliJ):
o atalho é como abaixo:
1- selecione o código
2- pressione
ctrl
+alt
+t
3- pressione
c
e escreva sua descriçãofonte
A melhor maneira
Dica: coloque ";" no final da "região final"
fonte
Se alguém estiver interessado, no Eclipse você pode recolher todos os seus métodos etc. de uma só vez, basta clicar com o botão direito do mouse quando você normalmente inserir um ponto de interrupção, clicar em 'Dobrar'> 'Recolher tudo'. Ele sabe que não é uma resposta para a pergunta, mas apenas fornece uma alternativa para a dobragem rápida de código.
fonte
Realmente só oferece algum benefício no IDE. Com Java, não há um padrão definido no IDE; portanto, não há um padrão paralelo
#region
.fonte
region
, então podemos ter certeza de que do IDE java vai apoiá-lo, não é?aqui está um exemplo:
100% funciona no estúdio Android
fonte
Normalmente, eu preciso disso para o código comentado, então uso colchetes no início e no final.
Pode ser usado para trechos de código, mas pode criar problemas em algum código, pois altera o escopo da variável.
fonte
Na verdade, johann, o
#
indica que é uma diretiva de pré-processador, o que basicamente significa que diz ao IDE o que fazer.No caso de usar
#region
e#endregion
no seu código, NÃO faz diferença no código final, esteja ele presente ou não. Você realmente pode chamá-lo de um elemento de linguagem se usá-lo não mudar nada?Além disso, o java não possui diretivas de pré-processador, o que significa que a opção de dobrar o código é definida por ide, no netbeans, por exemplo, com uma instrução // <code-fold>
fonte
No Mac e Android Studio, siga esta sequência:
<editor-fold>
Além disso, você pode selecionar outras opções:
fonte
No Eclipse, você pode recolher os colchetes que envolvem o bloco de região variável. O mais próximo é fazer algo assim:
fonte
Basta instalar e ativar o plug-in Coffee-Bytes (Eclipse)
fonte
Há alguma opção para conseguir o mesmo, siga os pontos abaixo.
1) Abra o Macro Explorer:
2) Crie uma nova macro:
3) Nomeie "OutlineRegions" (ou o que você quiser)
4) Clique com o botão direito do mouse em "OutlineRegions" (Exibindo no Macro Explorer), selecione a opção "Edit" e cole o seguinte código VB nele:
5) Salve a macro e feche o editor.
6) Agora vamos atribuir um atalho para a macro. Vá em Ferramentas-> Opções-> Ambiente-> Teclado e procure sua macro na caixa de texto "show command contendo" (Digite: Macro na caixa de texto, ele sugerirá o nome das macros, escolha a sua.)
7) agora, na caixa de texto, sob "Pressione as teclas de atalho", você pode inserir o atalho desejado. Eu uso Ctrl + M + N.
Usar:
8) Pressione a tecla de atalho salva
Veja abaixo o resultado:
fonte
This code seems to be for Visual Basic.NET
que sugere o IDEVisual Studio
.#region
e#endregion