Partilhar via


Desenvolver com Visual F# no Visual Studio

Este artigo inclui informações sobre recursos do Visual Studio para desenvolvimento em F#.

Instalar suporte a F#

Para desenvolver com F# no Visual Studio, primeiro instale a carga de trabalho de desenvolvimento da área de trabalho .NET , se ainda não o tiver feito. Você instala cargas de trabalho do Visual Studio por meio do Visual Studio Installer, que você pode abrir selecionando Ferramentas>Obter ferramentas e recursos.

Carga de trabalho de desenvolvimento de área de trabalho .NET no Visual Studio

Recursos do projeto F#

Vários modelos de projeto e item estão disponíveis para F# no Visual Studio. A imagem a seguir mostra alguns dos modelos de projeto F# para .NET Core e .NET Standard:

Modelos de projeto F# no Visual Studio

A imagem a seguir mostra alguns dos modelos de item F#:

Modelos de item F# no Visual Studio

Para obter mais informações sobre os modelos de item para acesso a dados, consulte Provedores de tipo F#.

A tabela a seguir resume os recursos nas propriedades do projeto para F#:

Configuração do projeto Suportado em F#? Observações
Ficheiros de recursos Sim
Configurações de compilação, depuração e referência Sim
Multisegmentação Sim
Ícone e manifesto Não Disponível através das opções de linha de comando do compilador.
ASP.NET Serviços ao Cliente Não
ClickOnce Não Use um projeto cliente em outra linguagem .NET, se aplicável.
Nomenclatura forte Não Disponível através das opções de linha de comando do compilador.
Publicação e controle de versão em assembly Não
Análise de código Não As ferramentas de análise de código podem ser executadas manualmente ou como parte de um comando pós-compilação.
Segurança (alterar níveis de confiança) Não

Projetista

O Project Designer consiste em várias páginas de propriedades do projeto agrupadas por funcionalidade relacionada. As páginas disponíveis para projetos F# são principalmente um subconjunto daquelas disponíveis para outros idiomas e são descritas na tabela a seguir. Os links são fornecidos para a página correspondente do Designer de Projeto em C#.

Página do Project Designer Ligações relacionadas Descrição
Aplicação Página de Aplicação, Project Designer Permite especificar configurações e propriedades no nível do aplicativo, como se você está criando uma biblioteca ou um arquivo executável, qual versão do .NET o aplicativo destina e informações sobre onde os arquivos de recurso que o aplicativo usa são armazenados.
Construir Página de Construção, Project Designer Permite controlar como o código é compilado.
Criar eventos Página Criar Eventos, Project Designer Permite especificar comandos a serem executados antes ou depois de uma compilação.
Depurar Página de Depuração, Project Designer Permite controlar como o aplicativo é executado durante a depuração. Isso inclui quais comandos usar e qual é o diretório inicial do seu aplicativo, além de quaisquer modos de depuração especiais que você deseja habilitar, como código nativo e SQL.
Pacote (somente SDK do .NET) N/A Permite definir metadados do Pacote NuGet ao publicar como um pacote NuGet.
Caminhos de referência Gerenciar referências em um projeto Permite especificar onde procurar assemblies dos quais o código depende.
Recursos (somente SDK do .NET) N/A Permite gerar e gerenciar um arquivo de recursos padrão.

Configurações específicas do F#

A tabela a seguir resume as configurações específicas do F#:

Página do Project Designer Configurações Descrição
Construir Gerar chamadas de cauda Se selecionado, habilita o uso da instrução tail Microsoft Intermediate Language (MSIL). Isso faz com que o quadro de pilha seja reutilizado para funções recursivas de cauda. Equivalente à opção do --tailcalls compilador.
Construir Outras bandeiras Permite especificar opções adicionais de linha de comando do compilador.

Recursos do editor de código e texto

Os seguintes recursos dos editores de código e texto do Visual Studio são suportados em F#:

Característica Descrição Suportado em F#?
Comentar automaticamente Permite que você comente ou descomente seções de código. Sim
Formatar automaticamente Reformata o código com recuo e estilo padrão. Não
Favoritos Permite que você salve lugares no editor. Sim
Alterar recuo Recua ou anula recuos de linhas selecionadas. Sim
Recuo inteligente Recua e recua automaticamente o cursor de acordo com as regras de escopo do F#. Sim
Localizar e substituir texto Permite pesquisar em um arquivo, projeto ou solução e, potencialmente, alterar texto. Sim
Ir para a definição para a API .NET Quando o cursor é posicionado em uma API .NET, mostra o código gerado a partir de metadados .NET. Não
Ir para a definição da API definida pelo usuário Quando o cursor estiver em uma entidade de programa que você definiu, move o cursor para o local no código onde a entidade está definida. Sim
Ir para a linha Permite que você vá para uma linha específica em um arquivo, por número de linha. Sim
Barras de navegação na parte superior do ficheiro Permite que você vá para locais no código, por exemplo, nome da função. Sim
Diretrizes de estrutura de blocos Mostra diretrizes que indicam escopos F#, que podem ser pairados para uma visualização. Sim
Esboçando Permite recolher seções do seu código para criar uma exibição mais compacta. Sim
Tabify Converte espaços em guias. Sim
Coloração de tipo Mostra nomes de tipo definidos em uma cor especial. Sim
Localização rápida. Consulte Janela de localização rápida, localização e substituição. Permite pesquisar em um arquivo ou projeto. Sim
+ Ctrlclique para Ir para Definição Permite que você mantenha pressionada a tecla Ctrl e clique em um símbolo F# para invocar Ir para Definição. Sim
Ir para Definição a partir de QuickInfo Símbolos clicáveis dentro de dicas de ferramentas que invocam Ir para Definição. Sim
Ir para Todos Permite a navegação global de correspondência difusa para todas as construções de F# via Ctrl+T. Sim
Renomeação em linha Renomeia todas as ocorrências de um símbolo embutido. Sim
Encontrar todas as referências Localiza todas as ocorrências de um símbolo em uma base de código. Sim
Simplifique a correção do código de nome Remove qualificadores desnecessários para símbolos F#. Sim
Remover correção de código de instrução não utilizada open Remove todas as instruções desnecessárias open em um documento. Sim
Correção de código de valor não utilizado Sugere renomear um identificador não utilizado para sublinhar. Sim

Para obter informações gerais sobre como editar código no Visual Studio e recursos do editor de texto, consulte Escrever código no editor.

Recursos do IntelliSense

A tabela a seguir resume os recursos do IntelliSense suportados e não suportados em F#:

Característica Descrição Suportado em F#?
Implementar interfaces automaticamente Gera stubs de código para métodos de interface. Sim
Trechos de código Injeta código de uma biblioteca de construções de codificação comuns em tópicos. Não
Palavra Completa Salva a digitação completando palavras e nomes à medida que você digita. Sim
Conclusão automática Quando habilitado, faz com que o preenchimento de palavras selecione a primeira correspondência enquanto você digita, em vez de esperar que você selecione uma ou pressione Ctrl+Space. Sim
Conclusão de oferta para símbolos em namespaces não abertos Com o preenchimento automático, um símbolo correspondente que reside em um namespace não aberto é sugerido, oferecendo-se para completar com a instrução correspondente open quando selecionado. Sim
Gerar elementos de código Permite gerar código de stub para uma variedade de construções. Não
Lista de Membros Quando você digita o operador de acesso de membro (.), mostra membros para um tipo. Sim
Organizar Usos/Abrir Organiza namespaces referenciados usando instruções em C# ou diretivas open em F#. Não
Informações do parâmetro Mostra informações úteis sobre parâmetros à medida que você digita uma chamada de função. Sim
Informações rápidas Exibe a declaração completa para qualquer identificador em seu código. Sim
Preenchimento automático da cinta Conclui automaticamente construções de sintaxe tipo chave F# de maneira transacional. Sim

Para obter informações gerais sobre o IntelliSense, consulte Usar o IntelliSense.

Recursos de depuração

A tabela a seguir resume os recursos que estão disponíveis quando você depura o código F#:

Característica Descrição Suportado em F#?
Janela Autos Mostra variáveis automáticas ou temporárias. Não
Pontos de interrupção Permite pausar a execução de código em pontos específicos durante a depuração. Sim
Pontos de interrupção condicionais Permite pontos de interrupção que testam uma condição que determina se a execução deve ser pausada. Sim
Editar e continuar Permite que o código seja modificado e compilado à medida que você depura um programa em execução sem parar e reiniciar o depurador. Não
Avaliador de expressões Avalia e executa código em tempo de execução. Não, mas o avaliador de expressão C# pode ser usado, embora você deva usar a sintaxe C#.
Depuração histórica Permite que você entre em código executado anteriormente. Sim
Janela de Variáveis Locais Mostra valores e variáveis definidos localmente. Sim
Executar para o cursor Permite executar código até que a linha que contém o cursor seja atingida. Sim
Entre em Permite que você avance na execução e passe para qualquer chamada de função. Sim
Passo por cima Permite que você avance a execução no quadro de pilha atual e passe por qualquer chamada de função. Sim

Para obter informações gerais sobre o depurador do Visual Studio, consulte Depurando no Visual Studio.

Ferramentas adicionais

A tabela a seguir resume o suporte para F# nas ferramentas do Visual Studio.

Ferramenta Descrição Suportado em F#?
Hierarquia de chamadas Exibe a estrutura aninhada de chamadas de função em seu código. Não
Métricas de código Reúne informações sobre seu código, como contagens de linhas. Não
Visualização de classe Fornece uma exibição baseada em tipo do código em um projeto. Não
Janela de Lista de Erros Mostra uma lista de erros no código. Sim
F# interativo Permite digitar (ou copiar e colar) código F# e executá-lo imediatamente, independentemente da construção do seu projeto. A janela F# Interactive é um Read, Evaluate, Print Loop (REPL). Sim
Pesquisador de objetos Permite visualizar os tipos em um assembly. Os tipos F# como aparecem em assemblies compilados não aparecem exatamente como você os cria. Você pode navegar pela representação compilada de tipos F#, mas não pode exibir os tipos como eles aparecem em F#.
Janela de saída Exibe a saída de compilação. Sim
Análise de desempenho Fornece ferramentas para medir o desempenho do seu código. Sim
Janela Propriedades Exibe e habilita a edição de propriedades do objeto no ambiente de desenvolvimento que tem foco. Sim
Explorador de Servidores Fornece maneiras de interagir com uma variedade de recursos do servidor. Sim
Explorador de Soluções Permite visualizar e gerenciar projetos e arquivos. Sim
Lista de tarefas Permite que você gerencie itens de trabalho pertencentes ao seu código. Não
Projetos de teste Fornece recursos que ajudam você a testar seu código. Não
Caixa de ferramentas Exibe guias que contêm objetos arrastáveis, como controles e seções de texto ou código. Sim

Ver também