Como posso obter o Eclipse para inserir guias em vez de espaços para o Java Content Assist?

StackOverflow https://stackoverflow.com/questions/2636589

  •  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>.

Foi útil?

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 de ASTRewrite. Temos que garantir que as configurações do formatador de código estejam disponíveis para a parte de reescrita.
Movendo para JDT/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:

  1. Vá para o Projeto-> Propriedades.
  2. Na caixa resultante, vá para "Java Code Style"-> Formatter.
  3. Clique no link "Configurações de espaço de trabalho" no canto superior direito da caixa.
  4. Clique no botão Editar ao lado do nome.
  5. 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.
  6. Você precisará alterar o "nome do perfil" na parte superior da caixa para salvar suas alterações.
  7. 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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top