Como posso obter o Eclipse para inserir guias em vez de espaços para o Java Content Assist?
-
26-09-2019 - |
Pergunta
Existe alguma maneira de convencer o Eclipse a usar as guias em vez de espaços para recuar suas propostas de assistência de conteúdo Java interno (como ao criar um método vazio que substitua um método na classe pai)?
A única configuração que eu consegui achar que parecia relevante é em Windows/Preferências/General/Editores/Editores de Texto/Inserir espaços para guias, e essa configuração está desmarcada.
(Editar: vários pôsteres apontaram Java / Code Style / Formatter / Indentation / Tab Policy, que está definido como "apenas guias")
No momento, tenho que lembrar de selecioná-los e se formar com <Ctrl>+<Shift>+<F>
.
Solução
Parece atualmente um bug (não corrigido no trem 3.5):
Bug 44755 (para comentários, mas também válido para outras operações de JDT de refatoração)
Também vinculado a Bug 231832, envolvendo um bug na reescrita AST ...
Eu acredito que isso é um problema com
ASTRewrite
, não com o cliente deASTRewrite
. Temos que garantir que as configurações do formatador de código estejam disponíveis para a parte de reescrita.
Movendo paraJDT/Core
para investigação.
Detectado no final de 3.4, ainda não corrigido em 3.5
Outras dicas
Encontrei a solução, graças ao comentário de Simon Nickerson acima, que é a que o pôster original estava se referindo em sua edição. Depois de encontrar o cenário, vejo do que eles estão falando. No entanto, o caminho para isso recebeu alguns passos do início do caminho, por isso não dá uma resposta clara a pessoas que são novas no eclipse ou estão longe disso há alguns anos, como eu. Então, vou dar o caminho completo aqui:
- Vá para o Projeto-> Propriedades.
- Na caixa resultante, vá para "Java Code Style"-> Formatter.
- Clique no link "Configurações de espaço de trabalho" no canto superior direito da caixa.
- Clique no botão Editar ao lado do nome.
- Alterar "Política da guia:" Soltar a caixa suspensa para "espaços" porque as guias são maus e inevitavelmente resultam em código mal formatado. > :-( É também onde você pode realmente afetar o tamanho do recuo e o tamanho da guia em seus arquivos.
- Você precisará alterar o "nome do perfil" na parte superior da caixa para salvar suas alterações.
- Felizmente, depois de bater em "OK", o Eclipse usará seu perfil para o seu projeto atual, para que você termine após esta etapa.
Agora, o que está realmente quebrado é o fato de que essas configurações substituem a interface mais inicial para alterar as configurações de som semelhante em "Windows/Preferências/General/Editores/Editores de Texto/Spaces Inserir para guias". Para alguém relativamente novo para o editor, isso parece o local para definir as guias padrão = configuração de espaços. Depois de encontrar a resposta real, fica claro que isso é apenas para edição geral de texto, e as configurações específicas do idioma precisam ser configuradas nos perfis para os idiomas em questão. Isso deve ficar um pouco mais claro para Noobs, no entanto. ;-)
Dê uma olhada nas preferências no estilo / estilo / formatador de código
Crie seu próprio perfil e defina "Indentação" / "Política da guia" para "apenas guias"
Preferências> Java> Estilo de Código> Formatter> Editar> Indentação> Usar guias apenas para liderar a caixa de seleção de recuperação
A maneira como eu tenho a configuração é ativar o "código-fonte do formato" nas preferências do editor-> Salvar ações.
Dessa forma, ele reforma o código -fonte em SAVE.
Eu também tive esse problema. A questão acabou sendo uma configuração que foi enterrada em algum lugar do meu espaço de trabalho. Criei um novo espaço de trabalho e reimportei meu projeto e minhas guias não foram mais convertidas em espaços.
Eu certifiquei -me de que o modo de edição> Smart Insert não fosse verificado, e isso parecia me ajudar na configuração das configurações de indentação e formatação não funcionavam. Eclipse em execução 3.7.0.
Mesmo após definir a opção de inserir espaços para guias nas preferências do editor de texto e definir minha política de guia Perfil do formatador em espaços, apenas o Eclipse ainda estava inserindo caracteres da guia. Somente após a remoção de todas as guias do arquivo, insira corretamente os espaços para as guias. Depois de descobrir isso, determinei os espaços de inserção para a opção de guias nas preferências do editor de texto não parece ter nenhum efeito, e é a alteração na política da guia Formatter Perfil que atinge os resultados desejados.
Mais uma solução que "funcionou para mim", mesmo que as outras soluções não funcionem (versão: 3.8.1):
Preferências> Java> Estilo de Código> Formatter> Editar> Indentação> Use espaços para recuar linhas - Definir desmarcado
Esta é essencialmente a opção "Smart Tabs". Funciona para o formatador, mas define incorretamente a geração de código apenas para usar espaços. Irritantemente, a solução quebra o formatador.