Desenvolver com o Visual F# no Visual StudioDevelop with Visual F# in Visual Studio
Este artigo inclui informações sobre os recursos do Visual Studio para o desenvolvimento do F#.This article includes information about Visual Studio features for F# development.
Instalar o suporte do F#Install F# support
Para desenvolver com o F# no Visual Studio, primeiro instale a carga de trabalho desenvolvimento para desktop do .NET, caso ainda não tenha feito isso.To develop with F# in Visual Studio, first install the .NET desktop development workload if you haven't already. Você instala cargas de trabalho do Visual Studio por meio do instalador do Visual Studio, que pode ser aberto selecionando ferramentas > obter ferramentas e recursos.You install Visual Studio workloads through Visual Studio Installer, which you can open by selecting Tools > Get Tools and Features.
Recursos de projeto do F#F# project features
Vários modelos de projeto e de item estão disponíveis para o F# no Visual Studio.Various project and item templates are available for F# in Visual Studio. A seguinte imagem mostra alguns dos modelos de projeto do F# para o .NET Core e o .NET Standard:The following image shows some of the F# project templates for .NET Core and .NET Standard:
A seguinte imagem mostra alguns dos modelos de item do F#:The following image shows some of the F# item templates:
Para obter mais informações sobre os modelos de item para acesso a dados, confira Provedores de tipos F#.For more information about the item templates for data access, see F# type providers.
A seguinte tabela resume os recursos nas propriedades do projeto para o F#:The following table summarizes features in project properties for F#:
Configuração do projetoProject setting | Compatível com o F#?Supported in F#? | ObservaçõesNotes |
---|---|---|
Arquivos de recursoResource files | SimYes | |
Configurações de build, depuração e referênciaBuild, debug, and reference settings | SimYes | |
MultiplataformaMultitargeting | SimYes | |
Ícone e manifestoIcon and manifest | NãoNo | Disponível por meio das opções da linha de comando do compilador.Available through compiler command-line options. |
Serviços de Cliente ASP.NETASP.NET Client Services | NãoNo | |
ClickOnceClickOnce | NãoNo | Use um projeto de cliente em outra linguagem .NET, se aplicável.Use a client project in another .NET language, if applicable. |
Nomenclatura forteStrong naming | NãoNo | Disponível por meio das opções da linha de comando do compilador.Available through compiler command-line options. |
Publicação e controle de versão de assemblyAssembly publishing and versioning | NãoNo | |
Análise de códigoCode analysis | NãoNo | As ferramentas de análise de código podem ser executadas manualmente ou como parte de um comando pós-build.Code analysis tools can be run manually or as part of a post-build command. |
Segurança (alterar níveis de confiança)Security (change trust levels) | NãoNo |
Designer de ProjetoProject Designer
O Designer de Projeto consiste no agrupamento de várias páginas de propriedades do projeto por funcionalidade relacionada.Project Designer consists of several project property pages grouped by related functionality. As páginas disponíveis para projetos do F# são, principalmente, um subconjunto daquelas disponíveis para outras linguagens e são descritas na tabela a seguir.The pages available for F# projects are mostly a subset of those available for other languages, and are described in the following table. Links são fornecidos para a página correspondente do Designer de Projeto do C#.Links are provided to the corresponding C# Project Designer page.
Página do Designer de ProjetoProject Designer page | Links relacionadosRelated links | DescriçãoDescription |
---|---|---|
AplicativoApplication | Página Aplicativo, Designer de ProjetoApplication Page, Project Designer | Permite que você especifique configurações e propriedades no nível do aplicativo, como se estivesse criando uma biblioteca ou um arquivo executável, qual é a versão de destino do .NET para o aplicativo e informações sobre o local de armazenamento dos arquivos de recurso usados pelo aplicativo.Enables you to specify application-level settings and properties, such as whether you are creating a library or an executable file, what version of .NET the application targets, and information about where the resource files that the application uses are stored. |
CompilaçãoBuild | Página de build, Designer de ProjetoBuild Page, Project Designer | Permite que você controle como o código é compilado.Enables you to control how the code is compiled. |
Eventos de compilaçãoBuild Events | Página Eventos de Build, Designer de ProjetoBuild Events Page, Project Designer | Permite que você especifique os comandos a serem executados antes ou depois de uma compilação.Enables you to specify commands to run before or after a compilation. |
DepurarDebug | Página de Depuração, Designer de ProjetoDebug Page, Project Designer | Permite que você controle como o aplicativo é executado durante a depuração.Enables you to control how the application runs during debugging. Isso inclui os comandos a serem usados e o diretório inicial do aplicativo, bem como os modos de depuração especiais que você deseja habilitar, como o código nativo e o SQL.This includes what commands to use and what your application's starting directory is, and any special debugging modes you want to enable, such as native code and SQL. |
Pacote (somente SDK do .NET)Package (.NET SDK only) | N/DN/A | Permite que você defina metadados do Pacote NuGet durante a publicação como um pacote NuGet.Enables you to define NuGet Package metadata when publishing as a NuGet package. |
Caminhos de ReferênciaReference Paths | Gerenciar referências em um projetoManage references in a project | Permite que você especifique o local em que pesquisar assemblies dos quais o código depende.Enables you to specify where to search for assemblies that the code depends on. |
Recursos (somente SDK do .NET)Resources (.NET SDK only) | N/DN/A | Permite que você gere e gerencie um arquivo de recurso padrão.Enables you to generate and manage a default resources file. |
Configurações específicas do F#F#-specific settings
A seguinte tabela resume as configurações específicas do F#:The following table summarizes settings that are specific to F#:
Página do Designer de ProjetoProject Designer page | ConfiguraçãoSetting | DescriçãoDescription |
---|---|---|
CompilaçãoBuild | Gerar chamadas da parte finalGenerate tail calls | Se ela estiver selecionada, habilitará o uso da instrução MSIL (Microsoft Intermediate Language) da parte final.If selected, enables the use of the tail Microsoft Intermediate Language (MSIL) instruction. Isso faz com que o registro de ativação seja reutilizado para funções recursivas da parte final.This causes the stack frame to be reused for tail recursive functions. Equivalente à opção do compilador --tailcalls .Equivalent to the --tailcalls compiler option. |
CompilaçãoBuild | Outros sinalizadoresOther flags | Permite que você especifique opções adicionais de linha de comando do compilador.Allows you to specify additional compiler command-line options. |
Recursos do editor de código e textoCode and text editor features
Há suporte para os seguintes recursos dos editores de código e de texto do Visual Studio no F#:The following features of the Visual Studio code and text editors are supported in F#:
RecursoFeature | DescriçãoDescription | Compatível com o F#?Supported in F#? |
---|---|---|
Comentar automaticamenteAutomatically comment | Permite que você comente ou remova a marca de comentário das seções de código.Enables you to comment or uncomment sections of code. | SimYes |
Formatar automaticamenteAutomatically format | Reformata o código com recuo e estilo padrão.Reformats code with standard indentation and style. | NãoNo |
IndicadoresBookmarks | Permite que você salve locais no editor.Enables you to save places in the editor. | SimYes |
Alterar recuoChange indentation | Recua ou desfaz o recuo das linhas selecionadas.Indents or unindents selected lines. | SimYes |
Recuo inteligenteSmart indentation | Recua e desfaz o recuo do cursor automaticamente, de acordo com as regras de escopo do F#.Automatically indents and de-indents the cursor according to F# scoping rules. | SimYes |
Localizar e substituir textoFind and replace text | Permite que você faça pesquisas em um arquivo, um projeto ou uma solução e, potencialmente, altere o texto.Enables you to search in a file, project, or solution, and potentially change text. | SimYes |
Ir para definição da API .NETGo to definition for the .NET API | Quando o cursor estiver posicionado em uma API .NET, essa configuração mostrará o código gerado com base nos metadados .NET.When the cursor is positioned on a .NET API, shows code generated from .NET metadata. | NãoNo |
Ir para definição de API definida pelo usuárioGo to definition for user-defined API | Quando o cursor estiver em uma entidade de programa definida, essa configuração moverá o cursor para o local no código em que a entidade foi definida.When the cursor is on a program entity that you defined, moves the cursor to the location in your code where the entity is defined. | SimYes |
Ir para a linhaGo To Line | Permite que você vá para uma linha específica em um arquivo, por número de linha.Enables you to go to a specific line in a file, by line number. | SimYes |
Barras de navegação na parte superior do arquivoNavigation bars at top of file | Permite que você vá para locais no código, por exemplo, por nome da função.Enables you to jump to locations in code, by, For example, function name. | SimYes |
Diretrizes de estrutura de blocoBlock Structure Guidelines | Mostra as diretrizes que indicam os escopos do F#, que podem ser focalizados para obter uma versão prévia.Shows guidelines that indicate F# scopes, which can be hovered over for a preview. | SimYes |
Estrutura de tópicosOutlining | Permite que você recolha as seções do código para criar uma exibição mais compacta.Enables you to collapse sections of your code to create a more compact view. | SimYes |
TabularTabify | Converte espaços em tabulações.Converts spaces to tabs. | SimYes |
Colorização de tipoType colorization | Mostra os nomes de tipo definidos em uma cor especial.Shows defined type names in a special color. | SimYes |
Localização Rápida.Quick Find. Confira Localização Rápida, Janela Localizar e Substituir.See Quick Find, Find and Replace Window. | Permite que você faça pesquisas em um arquivo ou um projeto.Enables you to search in a file or project. | SimYes |
Ctrl + clique para ir para a definiçãoCtrl+click to Go to Definition | Permite que você mantenha a tecla Ctrl pressionada e clique em um símbolo do F# para invocar a opção Ir para Definição.Allows you to hold Ctrl and click on an F# symbol to invoke Go to Definition. | SimYes |
Ir para definição de QuickInfoGo to Definition from QuickInfo | Símbolos clicáveis dentro das dicas de ferramenta que invocam a opção Ir para Definição.Clickable symbols inside tooltips that invoke Go to Definition. | SimYes |
Ir para TodosGo to All | Permite a navegação global e de correspondência difusa para todas as construções de F # por meio de Ctrl + T.Enables global, fuzzy-matching navigation for all F# constructs via Ctrl+T. | SimYes |
Renomeação embutidaInline Rename | Renomeia todas as ocorrências de um símbolo embutido.Renames all occurrences of a symbol inline. | SimYes |
Localizar todas as ReferênciasFind all References | Localiza todas as ocorrências de um símbolo em uma base de código.Finds all occurrences of a symbol in a codebase. | SimYes |
Simplificar a correção de código do nomeSimplify Name code fix | Remove os qualificadores desnecessários para símbolos do F#.Removes unnecessary qualifiers for F# symbols. | SimYes |
Remover correção de código de instrução open não utilizadaRemove unused open statement code fix |
Remove todas as instruções open desnecessárias de um documento.Removes all unnecessary open statements in a document. |
SimYes |
Correção de código do valor não utilizadaUnused value code fix | Sugere a renomeação de um identificador não utilizado para sublinhado.Suggests renaming an unused identifier to underscore. | SimYes |
Para obter informações gerais sobre como editar o código no Visual Studio, bem como os recursos do editor de texto, confira Escrever o código no editor.For general information about editing code in Visual Studio, and features of the text editor, see Write code in the editor.
Recursos do IntelliSenseIntelliSense features
A seguinte tabela resume os recursos do IntelliSense compatíveis e não compatíveis com o F#:The following table summarizes IntelliSense features supported and not supported in F#:
RecursoFeature | DescriçãoDescription | Compatível com o F#?Supported in F#? |
---|---|---|
Implementar interfaces automaticamenteAutomatically implement interfaces | Gera os stubs de código para os métodos de interface.Generates code stubs for interface methods. | SimYes |
Snippets de códigoCode snippets | Injeta o código de uma biblioteca de constructos de codificação comuns em tópicos.Injects code from a library of common coding constructs into topics. | NãoNo |
Completar PalavraComplete Word | Economiza tempo de digitação preenchendo palavras e nomes conforme você digita.Saves typing by completing words and names as you type. | SimYes |
Conclusão automáticaAutomatic completion | Quando habilitado, faz com que a palavra seja selecionada para selecionar a primeira correspondência conforme você digita, em vez de esperar que você selecione um ou pressione Ctrl + espaço.When enabled, causes the word completion to select the first match as you type, instead of waiting for you to select one or press Ctrl+Space. | SimYes |
Oferecer preenchimento para símbolos em namespaces não abertosOffer completion for symbols in unopened namespaces | Com o preenchimento automático, um símbolo correspondente que reside em um namespace não aberto é sugerido, oferecendo o preenchimento com a instrução open correspondente, quando selecionado.With automatic completion, a matching symbol that resides in an unopened namespace is suggested, offering to complete with the corresponding open statement when selected. |
SimYes |
Gerar elementos de códigoGenerate code elements | Permite que você gere o código de stub para uma variedade de constructos.Enables you to generate stub code for a variety of constructs. | NãoNo |
Listar MembrosList Members | Quando você digita o operador de acesso de membro (.), essa opção mostra os membros de um tipo.When you type the member access operator (.), shows members for a type. | SimYes |
Organizar usings/openOrganize Usings/Open | Organiza os namespaces referenciados por instruções using no C# ou diretivas open no F#.Organizes namespaces referenced by using statements in C# or open directives in F#. | NãoNo |
Informações de ParâmetroParameter Info | Mostra informações úteis sobre os parâmetros conforme você digita uma chamada de função.Shows helpful information about parameters as you type a function call. | SimYes |
Informação RápidaQuick Info | Exibe a declaração completa de um identificador no código.Displays the complete declaration for any identifier in your code. | SimYes |
Preenchimento automático de chavesAutomatic brace completion | Preenche automaticamente constructos de sintaxe semelhantes à chave do F# de maneira transacional.Automatically completes F# brace-like syntax constructs in a transactional manner. | SimYes |
Para obter informações gerais sobre o IntelliSense, confira Usar o IntelliSense.For general information about IntelliSense, see Use IntelliSense.
Recursos de depuraçãoDebugging features
A seguinte tabela resume os recursos disponíveis ao depurar o código F#:The following table summarizes features that are available when you debug F# code:
RecursoFeature | DescriçãoDescription | Compatível com o F#?Supported in F#? |
---|---|---|
Janela AutosAutos window | Mostra variáveis automáticas ou temporárias.Shows automatic or temporary variables. | NãoNo |
Pontos de interrupçãoBreakpoints | Permite que você pause a execução de código em pontos específicos durante a depuração.Enables you to pause code execution at specific points during debugging. | SimYes |
Pontos de interrupção condicionaisConditional breakpoints | Permite pontos de interrupção que testam uma condição que determina se a execução deve ser colocada em pausa.Enables breakpoints that test a condition that determines whether execution should pause. | SimYes |
Editar e continuarEdit and Continue | Permite que o código seja modificado e compilado durante a depuração de um programa em execução sem interromper e reiniciar o depurador.Enables code to be modified and compiled as you debug a running program without stopping and restarting the debugger. | NãoNo |
Avaliador de expressãoExpression evaluator | Avalia e executa o código em tempo de execução.Evaluates and executes code at run time. | Não, mas o avaliador de expressão C# pode ser usado, embora seja necessário usar a sintaxe C#.No, but the C# expression evaluator can be used, although you must use C# syntax. |
Depuração de históricoHistorical debugging | Permite que você intervenha no código executado anteriormente.Enables you to step into previously executed code. | SimYes |
Janela LocaisLocals window | Mostra as variáveis e os valores definidos localmente.Shows locally defined values and variables. | SimYes |
Executar até o cursorRun To Cursor | Permite que você execute o código até que a linha que contém o cursor seja atingida.Enables you to execute code until the line that contains the cursor is reached. | SimYes |
Depuração CompletaStep Into | Permite que você avance a execução e passe para qualquer chamada de função.Enables you to advance execution and move into any function call. | SimYes |
Depuração ParcialStep Over | Permite que você avance a execução no registro de ativação atual e passe por qualquer chamada de função.Enables you to advance execution in the current stack frame and move past any function call. | SimYes |
Para obter informações gerais sobre o depurador do Visual Studio, confira Depuração no Visual Studio.For general information about the Visual Studio debugger, see Debugging in Visual Studio.
Ferramentas adicionaisAdditional tools
A tabela a seguir resume o suporte para o F# nas ferramentas do Visual Studio.The following table summarizes the support for F# in Visual Studio tools.
FerramentaTool | DescriçãoDescription | Compatível com o F#?Supported in F#? |
---|---|---|
Hierarquia de chamadasCall Hierarchy | Exibe a estrutura aninhada das chamadas de função no código.Displays the nested structure of function calls in your code. | NãoNo |
Métricas de códigoCode Metrics | Coleta informações sobre o código, como contagens de linha.Gathers information about your code, such as line counts. | NãoNo |
Exibição de ClasseClass View | Fornece uma exibição baseada em tipo do código em um projeto.Provides a type-based view of the code in a project. | NãoNo |
Janela Lista de ErrosError List window | Mostra uma lista de erros no código.Shows a list of errors in code. | SimYes |
F# InterativoF# Interactive | Permite que você digite (ou copie e cole) o código F# e execute-o imediatamente, seja qual for o build do projeto.Enables you to type (or copy and paste) F# code and run it immediately, independently of the building of your project. A janela do F# Interativo é um REPL (Loop Ler, Avaliar, Imprimir).The F# Interactive window is a Read, Evaluate, Print Loop (REPL). | SimYes |
Pesquisador de ObjetosObject Browser | Permite que você veja os tipos em um assembly.Enables you to view the types in an assembly. | Os tipos F# exibidos em assemblies compilados não são exibidos exatamente como são criados.F# types as they appear in compiled assemblies do not appear exactly as you author them. Você pode percorrer a representação compilada de tipos F#, mas não pode exibir os tipos como são exibidos no F#.You can browse through the compiled representation of F# types, but you cannot view the types as they appear from F#. |
janela SaídaOutput window | Exibe a saída de build.Displays build output. | SimYes |
Análise de desempenhoPerformance analysis | Fornece ferramentas para avaliar o desempenho do código.Provides tools for measuring the performance of your code. | SimYes |
Janela de PropriedadesProperties window | Exibe e permite a edição das propriedades do objeto no ambiente de desenvolvimento que tem o foco.Displays and enables editing of properties of the object in the development environment that has focus. | SimYes |
Gerenciador de ServidoresServer Explorer | Fornece maneiras de interagir com uma variedade de recursos do servidor.Provides ways to interact with a variety of server resources. | SimYes |
Gerenciador de SoluçõesSolution Explorer | Permite que você veja e gerencie projetos e arquivos.Enables you to view and manage projects and files. | SimYes |
Lista de TarefasTask List | Permite que você gerencie itens de trabalho pertencentes ao código.Enables you to manage work items pertaining to your code. | NãoNo |
Projetos de testeTest projects | Fornece recursos que ajudam você a testar o código.Provides features that help you test your code. | NãoNo |
Caixa de FerramentasToolbox | Exibe as guias que contêm objetos arrastáveis como controles e seções de texto ou de código.Displays tabs that contain draggable objects such as controls and sections of text or code. | SimYes |