Menu de refatoração ausente do Visual Studio 2015


87

Estou tendo problemas para encontrar o menu de contexto do botão direito do mouse no Visual Studio 2015. Sei que não há nada de errado com meu projeto ou com o arquivo que estou trabalhando. Posso encontrar o menu de refatoração de contexto do botão direito no Visual Studio 2013. No entanto, no Visual Studio 2015 não há um menu de contexto de refatoração no menu de contexto do botão direito.

Para onde foi? Como faço para recuperá-la?

Sua sugestão não pode incluir o menu EditarRefatorar .

Eu tentei redefinir minhas configurações do Visual Studio de volta ao padrão usando o menu FerramentasImportar e exportar configurações e isso também não trouxe o menu de volta.


Meu ponto é, o menu de refatoração da barra de menus não é o que está faltando.
Sr. Young

Algum momento específico em que ele não está chegando? como renomear método ou extração de método? ou apenas em todos os lugares?
Kritner

O problema parece existir em todos os lugares.
Sr. Young

1
Ele não funciona mais quando o código não compila. Anteriormente, você poderia usá-lo em código incompleto.
PRMan

Respostas:


93

Algumas das ferramentas de refatoração foram realocadas ou estão pelo menos acessíveis de uma maneira diferente da anterior.

Usando o refactor do método extract como exemplo, você ainda pode usar esta função; simplesmente não é feito da mesma forma que antes:

Selecione as peças para extrair

Clique com o botão direito

Clique com o botão direito

Ações rápidas

Ações rápidas

Clique em Extrair Método

Clique no método de extração

Eu acho que eles mudaram para parecer mais "ReSharper". Todas as funcionalidades ainda devem estar lá.

Aqui estão mais informações sobre refatoração no Visual Studio 2015 - espero que isso ajude! Refatoração (C #)


sim, vai demorar um pouco para se acostumar com certeza. Aposto que é mais intuitivo para usuários regulares de resharper ... talvez ...
Kritner

2
Obrigado pelas imagens. Não tenho certeza se teria encontrado para onde isso foi movido de outra forma! :-)
Sr. Young

1
Para sua informação: parece haver um bug em alguma versão do VS em torno dessa funcionalidade, o VS trava ao refatorar algum código para extrair um novo método
Liam,

2
Bela explicação. + Eu
adoro

1
@BarthoBernsmann é específico do contexto, você tem certeza que tem um código válido dentro de um método destacado para extração?
Kritner

2

Você não precisa mais acessar a refatoração usando o botão direito do mouse.

É recomendável que você use as teclas de atalho do teclado no Visual Studio.

Para todas as teclas de atalho possíveis, consulte Atalhos de teclado padrão no Visual Studio, Refatorar .


1
O link fornecido leva a uma página do Visual Studio 2008. Uma lista do VS 2015 está em msdn.microsoft.com/en-us/library/da5kh0wa.aspx#bkmk_refactor .
Theophilus

Versão curta: CTRL + R, M. Além disso, Editar> Refatorar> Extrair Método ... (visível apenas quando um bloco de código é realçado).
Chris

1

Pode ser necessário construir o projeto para fazê-lo funcionar.

Consulte Editando códigos ASP.NET Web Forms no Visual Studio 2013 | Microsoft Docs . (Se estiver faltando, a questão é que estou usando um exemplo fornecido pela Microsoft.). Em Refatoração e renomeação, consulte Para extrair um método em uma página C # . Quando sigo as instruções, não consigo encontrar o recurso para extrair o código para um método. Quando tentei o menu Editar, ele disse que não tinha um código válido. Então eu construí o projeto e o recurso para extrair o código estava disponível e funcionou.


0

Se você alterar o nome do objeto que está refatorando, a lâmpada aparecerá à esquerda, perguntando se você deseja alterar o nome do objeto (isto é, refatorar) ou gerar um novo construtor para o novo objeto nomeado.


2
Meu OP mencionou especificamente o refatoramento do "Clique com o botão direito". Eu odeio a lâmpada, o que provoca minha pergunta.
Sr. Young de

0

Ctrl+ .é a tecla de atalho para extrair um método no Visual Studio 2015 e posteriores.

Ctrl+ M, Rnão funciona mais nas novas versões.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.