> ## Documentation Index
> Fetch the complete documentation index at: https://docs.windsurf.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Refatorações, docstrings e mais

> Use recursos do Command, como code lenses para refatoração, geração de docstrings e Smart Paste para tradução de código entre linguagens.

Command oferece experiências otimizadas para algumas operações comuns.

<div id="function-refactors-and-docstring-generation">
  ## Refatorações de Funções e Geração de Docstrings
</div>

Acima de funções e classes, o Windsurf exibe *code lenses*,
que são pequenos rótulos de texto clicáveis que acionam os recursos de IA do Windsurf no item em questão.

<Tip>Você pode desativar os code lenses clicando no `✕` à direita do texto do code lens.</Tip>

Os code lenses `Refactor` e `Docstring`, em particular, acionam o Command.

* Ao clicar em `Refactor`, o Windsurf mostrará um menu suspenso com instruções selecionáveis e pré-preenchidas para você escolher. Você também pode escrever as suas próprias. Isso é equivalente a selecionar a função e acionar o Command.
* Ao clicar em `Docstring`, o Windsurf gerará uma docstring acima do cabeçalho da função.
  (Em Python, a docstring será gerada corretamente *abaixo* do cabeçalho da função.)

<Frame caption="Promovendo código legível e sustentável, uma docstring por vez.">
  <video autoPlay muted loop playsInline src="https://mintcdn.com/codeium/d8O4q6w3H2CjrirL/assets/jetbrains_docstrings.mp4?fit=max&auto=format&n=d8O4q6w3H2CjrirL&q=85&s=508c5797d57e88cf7b7db1c07a1e45c7" data-path="assets/jetbrains_docstrings.mp4" />
</Frame>

<div id="smart-paste">
  ## Smart Paste
</div>

Este recurso permite copiar código e colá-lo em um arquivo no seu IDE escrito em outra linguagem de programação.
Use `⌘+⌥+V` (Mac) ou `Ctrl+Alt+V` (Windows/Linux) para acionar o Smart Paste.
Nos bastidores, o Windsurf detecta a linguagem do arquivo de destino e usa o Command para traduzir o código na sua área de transferência.
A compreensão de contexto do Windsurf tenta ajustá-lo para se integrar ao seu código, por exemplo, referenciando os nomes de variáveis corretos.

<Frame>
  <video autoPlay muted loop playsInline src="https://exafunction.github.io/public/videos/demos/Smart_Paste_Demo_1080p.mp4" />
</Frame>

Alguns possíveis casos de uso:

* **Migração de código**: você está reescrevendo JavaScript em TypeScript, ou Java em Kotlin.
* **Colando do Stack Overflow**: você encontrou uma função utilitária online escrita em Go, mas está usando Rust.
* **Aprendendo uma nova linguagem**: você está curioso sobre Haskell e quer ver como seu código ficaria se fosse escrito nela.
