Lista de métodos no código do Visual Studio


278

Recentemente, comecei a usar o editor de código do Visual Studio. Estou gostando muito, mas há um recurso crítico (para mim) que não consegui encontrar. Existe uma lista de métodos semelhante ao menu suspenso Navigator no NetBeans ou Member no Visual Studio?



Esse recurso ausente está sendo rastreado em github.com/Microsoft/vscode/issues/5605
foz

Respostas:


266

Sim, existe o workbench.action.gotoSymbolcomando No Windows e Linux, está definido como CTRL+ Shift+ Opor padrão.

Se esse comando não estiver disponível para os tipos de arquivo com os quais você está trabalhando, verifique as extensões do VSCode . Nem todos os idiomas suportam esse recurso.


4
Hmm, não o comportamento que eu estava esperando. Tentei alguns tipos de arquivo: em um arquivo C ++, ele diz "Infelizmente não temos informações de símbolos para o arquivo" e no Python diz "Houve um erro na extensão do Python".
Jim Carr

Bem, parece que estou sem sorte. Eu tentei uma extensão Python diferente, agora estou recebendo o erro "sem informações de símbolo". :( Obrigado pela informação, no entanto.
Jim Carr


Funciona muito bem em javascript, atalho pode ser diferente quando se utiliza outros keymaps atalho
Ray1618

37
Além disso, se você pressionar :depois Ctrl+ Shift + O, os resultados serão agrupados por tipo, que listará todas as funções em uma sub-lista.
Aditya Vikas Devarapalli

184

Atualização : conforme declarado nos comentários de @ jeff-xiao, esta extensão foi preterida e agora é um recurso interno do código do Visual Studio . Ele deve estar disponível na parte inferior do explorador de arquivos como visualização "Estrutura de tópicos".

Texto anterior: Agora existe uma extensão que suporta isso. O Esboço do código cria um painel na seção "Explorer" e, para JavaScript, listará variáveis ​​e funções em um arquivo. Eu tenho usado isso por um tempo agora e arranha a coceira que eu tinha. Outros comentaristas mencionaram que ele suporta Python e PHP também.

Ainda parece estar em desenvolvimento, mas não tive nenhum problema. Versão de desenvolvimento disponível no GitHub . Se você é o autor que está lendo isso, obrigado!

Isto é o que parece:
Plugin de estrutura de tópicos de código para VSCode

Se o Esboço do código não estiver visível, você poderá mostrá-lo: insira a descrição da imagem aqui


4
Boa ligação, funciona bem com JavaScript e não é necessário procurar atalhos de teclado ocultos.
Julian Knight

6
A extensão está obsoleta: DEPRECATED. Por favor, use a exibição de estrutura de tópicos que acompanha o código do Visual Studio.
Xiao

Estou correto que não suporta a visualização de todos os métodos de uma classe em Python?
Eric Auld

Eu acho que às vezes a exibição de estrutura de tópicos não mostra nada para arquivos python.
Nurp 07/12

Existe essa opção para C ++?
Dikla 25/03

118

Invoque o Go to symbolcomando do código :

  • macOS: cmd+ shift+ o(a letra o, não zero)

  • Windows / Linux: ctrl+ shift+o

Digitar dois pontos ( :) após a chamada agrupará Go to symbolsímbolos por tipo (classes, interfaces, métodos, propriedades, variáveis). Em seguida, basta rolar para a methodsseção.


3
Confirmado que também funciona em PHP também, mas observe que tenho o plug-in PHP intellisense instalado. Não sei se isso faz alguma diferença.
Ignacio Segura

Deve haver uma maneira fácil de apenas ver os métodos. É meio difícil percorrer a lista de várias outras coisas para encontrar a seção de métodos. Alguém deve criar um plug-in para fazer isso, caso contrário não seja possível.
orrd

1
digite @ em vez de: para a lista de funções Go
Altimac

1
Se não estiver trabalhando para PHP, verifique se você possui o plug-in 'PHP Symbols' e que irá funcionar com certeza.
Neeraj Singh


17

No VSCode 1.24, você pode fazer isso.

Clique com o botão direito do mouse na EXPLORERbarra lateral e marque Outline.


1
Não consigo explorar métodos de uma classe js usando o esboço!
Legends

funciona bem para Java! Estou usando a versão atualizada do vscode 2020
oshan2csd

15

ATUALIZAÇÃO: os recursos da extensão agora estão integrados e a própria extensão agora está obsoleta

Eu encontrei esta extensão: Esboço do código . É assim que parece:


É assim que parece


Eu acredito que é isso que você está procurando.


1
Esta extensão não existe mais. Eu acho que não foi publicado porque o recurso agora está incorporado no VSCode.
Gama11

13

Hoje não existe esse recurso hoje, o CTRL+ SHIFT+ O== CTRL+ P@ não funciona em todos os idiomas.

Como último recurso, você pode usar o painel de pesquisa - embora não seja tão rápido e fácil de usar quanto você gostaria - você pode inserir esse regex no painel de pesquisa para encontrar todas as funções:

function\s([_A-Za-z0-9]+)\s*\(

5

Para usuários do PHP :)

  1. Verifique se você possui o plug-in ' PHP Symbol ', para obter todos os métodos e classes na parte inferior da barra lateral ' OUTLINE '.

  2. Pressione ⌘ command+ ⇧ shift+ Ono "macOS" ou Ctrl+ Shift+ Oenquanto estiver usando o "Windows"

ESBOÇO: insira a descrição da imagem aqui

@Símbolo: insira a descrição da imagem aqui


4

É uma parte extra da resposta a esta pergunta aqui, mas achei que poderia ser útil. Como muitas pessoas mencionaram, o Visual Studio Code possui a parte OUTLINE, que fornece a capacidade de navegar para funções diferentes e mostrá-las ao lado.

Também gostaria de acrescentar que, se você marcar a marca do cursor a seguir, ele destaca o nome da função na visualização OUTLINE, o que é muito útil para navegar e ver em qual função você está.

insira a descrição da imagem aqui


4

O mercado de código do Visual Studio possui uma extensão muito boa chamada Go To Method para navegar apenas por métodos em um arquivo de código.

Pressione Ctrl+ Shift+ Pe digite install extensionse pressione enter

insira a descrição da imagem aqui

Agora digite a Add to methodcaixa de pesquisa de extensões do mercado e pressione Enter.

insira a descrição da imagem aqui

Clique installpara instalar a extensão.

O último passo é vincular um atalho de teclado ao comando workbench.action.gotoMethodpara torná-lo uma coisa real de produtividade para um desenvolvedor.



3

Na versão 2020 do VSCode
Cmd+P

  • # - Encontre símbolo entre arquivos
  • @ - Encontre o símbolo no arquivo
  • @: - Agrupar símbolos dentro de um arquivo

Símbolos em um arquivo Código VS v1.44.0


2
ctrl+shift+o // This should work for javascript files by default

Para PHP instale a extensão PHP SYMBOLS

PARA PYTHON instale a extensão PYTHON

No Recarregar, isso funcionará bem


2
Você também pode fazer Ctrl+Pe digitar @- isso lista todas as funções / símbolos no arquivo. E ao digitar @function_name, uma string difusa pesquisa nos símbolos.
Roopak A Nelliat

sim, boa sugestão .. mas você sabe que isso requer duas etapas, onde ctrl + shift + o é uma etapa. :)
Moh .S

1

CTRL+ F12( CMD+ F12para Mac) - abre para mim todos os métodos e membros da classe PHP.


Não funcionou, você tem certeza de que não está usando nenhuma extensão?
Mohammed Atif Sami

1

Existe um plugin chamado show functions que lista todas as definições de função em um arquivo. Também permite que você classifique a função para que possa pesquisá-las facilmente.


2
Um link para uma solução é bem-vindo, mas garanta que sua resposta seja útil sem ela: adicione contexto ao link para que seus colegas usuários tenham uma idéia do que é e por que está lá, depois cite a parte mais relevante da página que você ' reencaminhando para o caso de a página de destino não estar disponível. Respostas que são pouco mais que um link podem ser excluídas.
Zoe

1

Para encontrar o método em todos os arquivos, você pode pressionar CTRL + Pe iniciar a pesquisa com#

exemplo: #signin

insira a descrição da imagem aqui


0

Dê uma olhada no Show Functionsplugin. Pode listar funções, símbolos, marcadores por expressões regulares configuráveis. Expressões regulares são realmente poupadoras, especialmente quando você não está usando um idioma convencional e quando o CodeOutline não faz o trabalho. É feio ver uma janela dividida com essas funções (o CodeOutline parece estar melhor integrado), mas pelo menos há algo para usar

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.