Pular para o conteúdo
Skillpedia
Código em geral40 mil · #5411

v-development

Ajuda seu agente a escrever código na linguagem V. Ele pode instalar ferramentas, organizar projetos, compilar, testar e seguir as boas práticas da linguagem.

O que ela faz

Este assistente ajuda você a programar na linguagem V. Ele explica como instalar as ferramentas, organizar seus projetos, compilar seu código, testar e escrever código no estilo V, incluindo como lidar com erros.

Quando usar

  • ✓Quando você está começando a programar em V.
  • ✓Ao organizar um projeto V com um arquivo `v.mod`.
  • ✓Quando precisar escrever código V que lida com erros ou ausência de valores.

Exemplo do que pedir para a IA

“Como eu configuro um projeto V simples?”

Quer saber mais? Abra as seções abaixo.

Como usar

O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.

Link da skill

https://github.com/github/awesome-copilot/blob/main/skills/v-development/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/github/awesome-copilot/blob/main/skills/v-development/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
Como funciona

O assistente usa as informações fornecidas sobre a linguagem V para responder às suas perguntas. Ele sabe os comandos para compilar, testar e formatar seu código, além das regras para escrever código V de forma correta e idiomática.

Instalação

Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.

No terminal (Claude Code, Codex, Cursor), na pasta do projeto:

npx skills add github/awesome-copilot --skill v-development

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/github/awesome-copilot/main/skills/v-development/SKILL.md -o SKILL.md
Conteúdo técnico (SKILL.md)

Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.

Você é um assistente especialista em V (vlang). Quando um usuário perguntar sobre V (vlang), use as informações precisas abaixo para dar respostas completas e precisas.

V é uma linguagem compilada e estaticamente tipada com sintaxe semelhante à do Go. Documentação oficial: https://docs.vlang.io. Referência da biblioteca padrão: https://modules.vlang.io. Pacotes de terceiros ficam no registro VPM: https://vpm.vlang.io.

Ferramentas

Instale de https://github.com/vlang/v (binários pré-compilados ou compile do código fonte), depois verifique com v --version.

Tarefa Comando
Executar um programa v run main.v
Executar uma pasta de projeto v run . (compila os arquivos do programa da pasta; arquivos *_test.v são compilados separadamente via v test .)
Compilar um binário v -o app .
Executar testes v test . (executa arquivos *_test.v)
Formatar código v fmt -w file.v
Verificações estáticas v vet .
Encontrar um pacote v search <term> (pesquisa no registro VPM)
Instalar um pacote v install <package> ou v install --git <url>
Atualizar pacotes v update (todos) ou v update <package>

Sempre execute v fmt -w em arquivos que você modificou e v vet . junto com v test . antes de declarar o trabalho como concluído.

Estrutura do projeto

Programas V independentes são arquivos .v únicos e não precisam de manifesto: v run hello.v funciona diretamente. Projetos estruturados e pacotes publicáveis usam um arquivo v.mod na raiz do projeto como âncora do módulo (importações são resolvidas em relação à pasta que o contém):

Module {
	name: 'myapp'
	description: 'My nice package.'
	version: '0.1.0'
	license: 'MIT'
	dependencies: []
}

Convenções:

  • Um aplicativo executável usa module main, e sua função de entrada é fn main(). O arquivo fonte é comumente nomeado main.v, mas o nome do arquivo não é o que define o ponto de entrada — o módulo main e a função main() o fazem. (Em programas de arquivo único, fn main() pode até ser omitido; instruções de nível superior são executadas implicitamente.)
  • Uma pasta de arquivos .v declarando o mesmo módulo compila junta com v run ..
  • Mantenha um módulo por diretório; o nome do módulo convencionalmente corresponde ao diretório.
  • Arquivos de teste terminam em _test.v e contêm fn test_...() { assert ... }.

Escrevendo V idiomático

module main

struct Config {
	host string
	port int
}

fn connect(cfg Config) !string {
	if cfg.port == 0 {
		return error('port is required')
	}
	return 'http://${cfg.host}:${cfg.port}'
}

fn main() {
	url := connect(host: 'localhost', port: 8080) or {
		eprintln(err)
		return
	}
	println(url)
}

Regras a seguir ao gerar ou editar código V:

  • Sem null em código comum. Em código de aplicação V seguro e comum, modele a ausência com Option (?Type, valor ou none) em vez de valores anuláveis; falhas usam Result (!Type). Lide com elas com blocos or { ... }; nunca invente verificações de null. Ponteiros de nível nil existem apenas em contextos de baixo nível de unsafe/interop com C (por exemplo, unsafe { nil }) e não devem ser tratados como opcionalidade comum em nível de aplicação.
  • Imutável por padrão. Variáveis precisam de mut para serem reatribuídas (mut x := 1); campos de struct são agrupados sob seções mut: para permitir mutação, e a alteração de um campo adicionalmente requer uma instância de struct mutável (mut cfg := ...). Argumentos de função são imutáveis por padrão; mutate via receptores mut (fn (mut s Struct)) ou parâmetros mutáveis para valores complexos (fn f(mut arr []int), chamados como f(mut arr)). Apenas tipos complexos como arrays e mapas podem ser modificados desta forma, e retornar valores é preferível a modificar argumentos.
  • Propagação explícita de erros. Funções que podem falhar declaram !ReturnType (ou ?Type para ausência). Lide com resultados com blocos or { }, propague com o sufixo ! (erros) ou ? (opções; a função envolvente também deve retornar uma), ou desempacote opções com if x := opt() { }. V não tem desempacotamento forçado. Não ignore erros.
  • Sem globais por padrão. Variáveis globais são desabilitadas por padrão e geralmente devem ser evitadas em código de aplicação normal; compartilhe estado via campos de struct, argumentos ou injeção de dependência. V pode habilitá-las explicitamente (declarações __global com o flag do compilador -enable-globals) para casos de uso especializados de baixo nível.
  • Interpolação de strings usa '${expr}' dentro de strings de aspas simples.
  • Interop com C é explícito: chamadas #include, #flag e C.func(). Sugira apenas quando o usuário pedir interop em nível de sistema.

…

Perguntas frequentes

O que é 'idiomático' em V?

Significa escrever código que segue as convenções e o estilo preferido da comunidade V, como usar `Option` e `Result` para erros em vez de nulos, e tornar variáveis imutáveis por padrão.

Como eu lido com erros em V?

Em V, você usa `Result` (indicado por `!Tipo`) para erros e `Option` (indicado por `?Tipo`) para valores ausentes. Você os trata com blocos `or { ... }`.

O que é `v.mod`?

`v.mod` é um arquivo que define seu projeto V como um módulo. Ele contém informações como o nome do projeto, descrição e dependências.

Detalhes

Descrição original do autor

Guide GitHub Copilot through V language development: installing the toolchain, project layout with v.mod, building, testing, formatting, and writing idiomatic V including Option/Result error handling. Use when the user works with V source files, v.mod projects, or asks about V syntax, tooling, and conventions.

repo: github/awesome-copilot

Popularidade

Estrelas no GitHub
40 mil
Posição no ranking
#5411
Licença
MIT
Atualizada em
15/10/2026

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas