Compartilhar via


Desenvolver com o Visual F# no Visual Studio

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

Instalar o suporte do F#

Para desenvolver com o F# no Visual Studio, primeiro instale a carga de trabalho de desenvolvimento da área de trabalho do .NET , caso ainda não tenha feito isso. Instale cargas de trabalho do Visual Studio por meio do Instalador do Visual Studio, que você pode abrir selecionando Ferramentas>Obter Ferramentas e Recursos.

Carga de trabalho de desenvolvimento da área de trabalho do .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 Com suporte em F#? Anotações
Arquivos de recurso Sim
Configurações de build, depuração e referência Sim
Multiplataforma Sim
Ícone e manifesto Não Disponível por meio de opções de linha de comando do compilador.
serviços cliente do ASP.NET Não
ClickOnce Não Use um projeto cliente em outro idioma .NET, se aplicável.
Nomenclatura forte Não Disponível por meio de opções de linha de comando do compilador.
Publicação e controle de versão do 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-build.
Segurança (alterar níveis de confiança) Não

Designer de Projeto

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

Página Designer de Projeto Links relacionados Descrição
Aplicação Página aplicativo, Designer de Projeto Permite que você especifique as configurações e as 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 Compilar, Designer de Projeto Permite controlar como o código é compilado.
Eventos de compilação Página Eventos de Build, Designer de Projeto Permite que você especifique comandos a serem executados antes ou depois de uma compilação.
Depurar Página de depuração , do Designer de Projeto Permite controlar como o aplicativo é executado durante a depuração. Isso inclui quais comandos usar e qual é o diretório inicial do aplicativo e todos os modos especiais de depuração que você deseja habilitar, como código nativo e SQL.
Pacote (somente SDK do .NET) Não aplicável Permite definir metadados do Pacote NuGet ao publicar como um pacote NuGet.
Caminhos de referência Gerenciar referências em um projeto Permite que você especifique de onde pesquisar assemblies dos quais o código depende.
Recursos (somente SDK do .NET) Não aplicável Permite que você gere e gerencie um arquivo de recursos padrão.

Configurações específicas de F#

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

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

Recursos do editor de código e texto

Os seguintes recursos dos editores de código e texto do Visual Studio têm suporte em F#:

Característica Descrição Com suporte em F#?
Comentar automaticamente Permite que você comente ou descompacte seções de código. Sim
Formatar automaticamente Reformats code with standard indentation and style. Não
Favoritos Permite que você salve lugares no editor. Sim
Alterar recuo Recuos ou linhas selecionadas de não-recuos. Sim
Recuo inteligente Recuará e desabilitará automaticamente o cursor de acordo com as regras de escopo F#. Sim
Localizar e substituir texto Permite que você pesquise em um arquivo, projeto ou solução e potencialmente altere o texto. Sim
Ir para a definição para a API do .NET Quando o cursor é posicionado em uma API .NET, mostra o código gerado a partir de metadados do .NET. Não
Ir para a definição de API definida pelo usuário Quando o cursor está em uma entidade de programa que você definiu, move o cursor para o local em seu código em que a entidade é definida. Sim
Ir para a linha Permite que você acesse uma linha específica em um arquivo, por número de linha. Sim
Barras de navegação na parte superior do arquivo Permite que você vá para locais no código, por exemplo, o nome da função. Sim
Diretrizes de estrutura de blocos Mostra diretrizes que indicam escopos F#, que podem ser focalizados para uma visualização. Sim
Estrutura de tópicos Permite recolher seções do código para criar uma exibição mais compacta. Sim
Tabify Converte espaços em guias. Sim
Colorização de tipo Mostra nomes de tipo definidos em uma cor especial. Sim
Localização Rápida. Veja a janela Localizar, Localizar e Substituir Rapidamente. Permite que você pesquise em um arquivo ou projeto. Sim
Ctrl+clique em Ir para Definição Permite que você segure Ctrl e clique em um símbolo F# para invocar Ir para Definição. Sim
Ir para Definição do QuickInfo Símbolos clicáveis dentro de dicas de ferramenta que invocam Ir para Definição. Sim
Ir para Todos Habilita a navegação global de correspondência difusa para todos os constructos F# por meio do Ctrl+T. Sim
Renomear embutido Renomeia todas as ocorrências de um símbolo embutido. Sim
Localizar todas as referências Localiza todas as ocorrências de um símbolo em uma base de código. Sim
Simplificar correção de código de nome Remove qualificadores desnecessários para símbolos F#. Sim
Remover correção de código de instrução não utilizado 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 com suporte e sem suporte em F#:

Característica Descrição Com suporte 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
Concluir o Word Salva a digitação concluindo palavras e nomes conforme você digita. Sim
Conclusão automática Quando habilitado, faz com que a conclusão da palavra selecione a primeira correspondência conforme você digita, em vez de esperar que você selecione uma ou pressione Ctrl+Space. Sim
Conclusão da oferta para símbolos em namespaces não abertos Com a conclusão automática, um símbolo correspondente que reside em um namespace não aberto é sugerido, oferecendo a conclusão com a instrução correspondente open quando selecionada. Sim
Gerar elementos de código Permite que você gere código stub para uma variedade de constructos. Não
Listar 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 abertas 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
Conclusão automática da chave Conclui automaticamente construções de sintaxe semelhantes a chaves 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 disponíveis ao depurar código F#:

Característica Descrição Com suporte em F#?
Janela de 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 Habilita pontos de interrupção que testam uma condição que determina se a execução deve pausar. 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ão Avalia e executa o código em tempo de execução. Não, mas o avaliador de expressão C# pode ser usado, embora você precise usar a sintaxe C#.
Depuração de histórico Permite que você entre no código executado anteriormente. Sim
Janela de Locais Mostra valores e variáveis definidos localmente. Sim
Executar para o cursor Permite que você execute o código até que a linha que contém o cursor seja atingida. Sim
Depuração Completa Permite que você avance a execução e vá para qualquer chamada de função. Sim
Passo a passo 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 Depuração no Visual Studio.

Ferramentas adicionais

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

Ferramenta Descrição Com suporte 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 Coleta informações sobre seu código, como contagens de linhas. Não
Exibiçã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 criação do seu projeto. A janela F# Interativa é um REPL (Leitura, Avaliação, Loop de Impressão). Sim
Pesquisador de Objetos Permite exibir os tipos em um assembly. Os tipos F# exibidos 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 do build. Sim
Análise de desempenho Fornece ferramentas para medir o desempenho do código. Sim
Janela Propriedades Exibe e habilita a edição de propriedades do objeto no ambiente de desenvolvimento que tem foco. Sim
Gerenciador de Servidores Fornece maneiras de interagir com uma variedade de recursos de servidor. Sim
Gerenciador de Soluções Permite que você exiba e gerencie projetos e arquivos. Sim
Lista de tarefas Permite que você gerencie itens de trabalho pertencentes ao seu código. Não
Testar projetos 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

Consulte também