Skip to content
| Marketplace
Sign in
Visual Studio Code>Programming Languages>MF07 Programming LanguageNew to Visual Studio Code? Get it now.
MF07 Programming Language

MF07 Programming Language

SorPuti

|
1 install
| (0) | Free
Complete IntelliSense and language features for MF07 - a modern AI-powered programming language
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

MF07 Language Extension (CorpLang)

Extensão completa do VS Code para a linguagem CorpLang (MF07), com suporte total a IntelliSense, autocomplete contextual, documentação hover, signature help e formatação de código.

✨ Recursos

🎯 Autocomplete Inteligente e Contextual

Sugestões Gerais

  • Keywords: class, interface, intent, async intent, var, if, for, while, try, catch, finally, return, import, throw, await
  • Tipos Primitivos: int, float, string, string, bool, dict, list, void
  • Tipos Genéricos: List<T>, Map<K, V>, HashMap<K, V>, Set<T>, Matrix<T>, EmbedList<T>, Optional<T>, Union[T1, T2]
  • Funções Built-in: print(), sout(), log(), type(), len(), parseInt(), waitSeconds(), exceptionStackTrace()
  • Modificadores OOP: private, public, protected, static, extends, implements, super, this, new
  • Operadores Lógicos: and, or, not
  • Literais: true, false, null

Sugestões Contextuais

Após new (instanciação de classes):

var list = new L|  // Sugere: List<T>, Logger, Map<K,V>, Set<T>, File, Directory, DateTime, Exception, etc.

Todas as classes core estão disponíveis: Logger, List, Map, Set, Matrix, EmbedList, File, Directory, Requests, Exception, DateTime, e muitas outras!

Após . (métodos e campos de classe):

// Métodos estáticos
Math.|        // Sugere: random(), floor(), pi(), factorial(), sqrt(), gcd(), lcm(), isPrime()
Path.|        // Sugere: join(), basename(), dirname(), stem(), extension(), cwd(), home()
FileSystem.|  // Sugere: readText(), writeText(), exists(), listDir(), readJSON(), writeJSON()
JSON.|        // Sugere: parse(), stringify()
Object.|      // Sugere: keys(), values(), entries(), clone()
LogLevel.|    // Sugere: DEBUG, INFO, WARNING, ERROR, CRITICAL

// Métodos de instância
list.|     // Sugere: append(), get(), size(), length(), isEmpty(), clear(), toString()
map.|      // Sugere: put(), get(), has(), remove(), keys(), values(), entries(), forEach()
set.|      // Sugere: add(), has(), remove(), size(), union(), intersection(), difference()
logger.|   // Sugere: debug(), info(), warning(), error(), critical()
file.|     // Sugere: readText(), writeText(), exists(), remove(), copyTo(), moveTo()
dir.|      // Sugere: ensure(), list(), file(), directory(), remove()

Após import (módulos disponíveis e arquivos locais):

import core.|  // Sugere: core.logger, core.math, core.fs, core.path, core.requests, core.json, etc.
import ./|     // Sugere: arquivos .mp no mesmo diretório
import ../|    // Sugere: arquivos .mp no diretório pai

Após : (anotações de tipo):

var count: |  // Sugere: int, string, List<T>, Map<K,V>, Optional<T>, etc.

Dentro de class (membros de classe):

class Dog {
    |  // Sugere: private var, intent constructor, intent method, static intent
}

📚 Módulos Core Disponíveis (19 módulos)

  • core.logger - Sistema de logging (Logger, LogLevel, console global)

    • Classes: Logger, LogLevel
    • Métodos: debug(), info(), warning(), error(), critical()
    • Campos: DEBUG, INFO, WARNING, ERROR, CRITICAL
  • core.math - Funções matemáticas

    • Classe: Math
    • Métodos: random(), floor(), pi(), factorial(), sqrt(), fibonacci(), gcd(), lcm(), isPrime(), clamp(), lerp()
    • Campos: PI_VALUE
  • core.list - Lista tipada genérica

    • Classe: List<T>
    • Métodos: append(), get(), size(), length(), isEmpty(), clear(), toString()
  • core.map - Mapa tipado genérico

    • Classe: Map<K, V>
    • Métodos: put(), get(), has(), remove(), clear(), size(), keys(), values(), entries(), forEach()
  • core.set - Conjunto tipado genérico

    • Classe: Set<T>
    • Métodos: add(), has(), remove(), size(), union(), intersection(), difference()
  • core.matrix - Matriz 2D tipada

    • Classe: Matrix<T>
    • Métodos: set(), get(), getRows(), getCols(), add(), multiply(), transpose()
  • core.embedlist - Lista com busca semântica AI

    • Classe: EmbedList<T>
    • Métodos: append(), get(), length(), findSimilar(), enableAI()
  • core.fs - Sistema de arquivos

    • Classes: FileSystem, File, Directory
    • Métodos: readText(), writeText(), readJSON(), writeJSON(), exists(), listDir(), glob(), copy(), move()
  • core.path - Manipulação de caminhos

    • Classe: Path
    • Métodos: join(), basename(), dirname(), stem(), extension(), cwd(), home(), normalize(), resolve()
  • core.requests - Cliente HTTP

    • Classes: Requests, RequestOptions, RequestResponse
    • Métodos: get(), post(), put(), delete(), execute(), setJson(), setText(), setHeaders()
  • core.socket - Conexões TCP

    • Classes: TcpConnection, SocketStatus
    • Métodos: connect(), send(), receive(), close()
  • core.exceptions - Exceções

    • Classes: Exception, RuntimeException
    • Métodos: getMessage(), getCause(), printStackTrace(), stackTraceList()
  • core.datetime - Data e hora

    • Classe: DateTime
    • Métodos: now(), from_timestamp(), format(), to_timestamp(), today()
  • core.optional - Utilitários Optional

    • Classe: Optional
    • Métodos: isSome(), isNone(), unwrap(), unwrapOr(), map()
  • core.string - Helpers de string

    • Classe: StringHelpers
    • Métodos: toUpper(), toLower(), trim(), isEmpty(), isBlank(), equalsIgnoreCase()
  • core.json - JSON parsing

    • Classe: JSON
    • Métodos: parse(), stringify()
  • core.objects - Manipulação de objetos

    • Classe: Object
    • Métodos: keys(), values(), entries(), clone()
  • core.utils - Utilitários gerais

    • Classe: Utils
    • Métodos: isNull(), isInstanceOf(), typeOf()
  • core.collections - Interfaces de coleções

    • Interfaces: ICollection, BaseCollection

📖 Hover Documentation

Passe o mouse sobre qualquer keyword, tipo, função ou classe para ver:

  • Título e descrição
  • Assinatura da função/construtor
  • Exemplo de código completo
  • Notas de uso e dicas

Exemplo ao passar o mouse sobre List<T>:

### List<T> - Typed List Collection

Generic list collection with runtime type safety.

Signature: new List<T>()

Example:
var numbers: List<int> = new List()
numbers.append(10)
var first = numbers.get(0)

Methods:
- append(item: T): bool
- get(index: int): T
- length(): int
...

🔧 Signature Help (Parameter Info)

Ao digitar ( após uma função, veja os parâmetros esperados:

print(|)  // Mostra: print(...values) - Any number of values to print
type(|)   // Mostra: type(value: any) -> string
new List(|)  // Mostra: new List<T>() - Creates a typed list

Navegue entre parâmetros com vírgulas.

🎨 Syntax Highlighting

  • Keywords destacados: class, intent, async, if, for, try, catch
  • Tipos com cor específica: int, List<T>, Optional<int>
  • Strings com interpolação: "Hello {name}"
  • Comentários: # linha e /* bloco */
  • Números e literais booleanos
  • Built-ins destacados: print, Math, FileSystem

📄 Suporte a Docstrings em Runtime

A extensão captura automaticamente docstrings do seu código e exibe no autocomplete e hover!

Formatos Suportados:

1. Três aspas duplas (multilinha)

class User {
    """
    Representa um usuário do sistema.
    Armazena nome, email e idade.
    """
    
    intent constructor(name: string) {
        """
        Cria um novo usuário.
        Valida os dados antes de criar.
        """
        this.name = name
    }
}

2. Três apóstrofos (multilinha)

intent calculateDiscount(price: float): float {
    '''
    Calcula desconto no preço.
    Retorna o valor com desconto aplicado.
    '''
    return price * 0.9
}

3. Hashtag simples (linha única ou múltipla)

intent getName(): string {
    # Retorna o nome do usuário
    return this.name
}

intent validateEmail(email: string): bool {
    # Valida formato de email
    # Verifica presença de @ e domínio
    # Retorna true se válido
    return email.contains("@")
}

4. Comentário de bloco (estilo C/Java)

intent fetchData(url: string): any {
    /*
     * Busca dados de uma URL externa
     * Retorna objeto JSON ou null se erro
     */
    return null
}

Como Funciona:

Quando você digita o autocomplete, a extensão:

  1. Analisa o documento atual em busca de classes, métodos e funções
  2. Extrai docstrings logo após declarações
  3. Exibe no IntelliSense com a documentação completa

Exemplo prático:

class Product {
    """Gerencia informações de produtos"""
    
    private var name: string
    # Nome do produto
    
    intent setPrice(value: float) {
        # Define o preço do produto (deve ser > 0)
        this.price = value
    }
}

var product = new Product()
product.|  # ← Autocomplete mostra "setPrice" com docstring "Define o preço..."

Cache Inteligente:

  • Docstrings são parseadas automaticamente quando você edita
  • Cache é invalidado quando o documento muda
  • Performance otimizada - parsing só ocorre quando necessário

Veja exemplos completos em examples/docstring-demo.mp!

📝 Snippets Templates

Classes

  • class - Classe básica
  • class with constructor - Classe com campo privado, construtor e getter
  • class extends - Classe com herança e super()
  • class implements - Classe implementando interface

Funções

  • intent - Função básica (tipos opcionais)
  • intent typed - Função com tipos completos
  • async intent - Função assíncrona com await
  • intent defaults - Função com parâmetros padrão

Controle de Fluxo

  • if - Condicional
  • for / fori - Loop tradicional
  • for in / foreach - Loop sobre coleção
  • while - Loop while
  • try / trycatch typed - Try-catch-finally com exceção tipada

Coleções

  • new List - Criar e inicializar lista tipada
  • new Map - Criar e inicializar mapa tipado
  • new Matrix - Criar e inicializar matriz

⚙️ Formatação de Código

Use Ctrl + Shift + P → Format Document para:

  • Indentar blocos {} corretamente
  • Adicionar espaços ao redor de operadores (=, :, ,)
  • Adicionar espaços após keywords (if, for, while)
  • Organizar espaçamento entre declarações

🚀 Como Usar

1. Instalar a Extensão

Pressione F5 no VS Code com o projeto aberto para iniciar a extensão em modo de desenvolvimento.

2. Criar arquivo .mp

Crie um arquivo com extensão .mp (exemplo: test.mp)

3. Experimentar Recursos

Autocomplete: Digite e veja sugestões aparecerem automaticamente

var numbers: L|  # Digite 'L' e veja sugestões de List<T>, Logger, etc.

Hover: Passe o mouse sobre qualquer palavra-chave ou tipo

var count: int  # Passe o mouse sobre 'int' para ver documentação

Signature Help: Digite ( após uma função

print(|)  # Parâmetros aparecem automaticamente

Formatação: Ctrl+Shift+P → Format Document

class Dog{var name:string}  # Antes
class Dog {              # Depois (formatado)
    var name: string
}

📝 Exemplos de Código

Veja example.mp para exemplos completos de:

  • Classes com herança e interfaces
  • Funções assíncronas com await
  • Tipos genéricos (List, Map, Set, Matrix)
  • Tipos opcionais e union types
  • Loops (for, for-in, for-of, while)
  • Try-catch-finally com stack traces
  • Operações matemáticas e de arquivo
  • Logging com níveis
  • AI-powered lists com busca semântica

🔍 Características da Linguagem

Tipos Opcionais

# Tipo pode ser omitido (inferido)
var count = 42
var name = "Alice"

# Ou explicitamente declarado
var age: int = 25
var message: string = "Hello"

Funções Assíncronas

async intent fetchData(): dict {
    var response = await client.get("/api/data")
    return response
}

Tipos Genéricos

var numbers: List<int> = new List()
var users: Map<string, int> = new Map()
var matrix: Matrix<float> = new Matrix(3, 3)

Tratamento de Exceções

try {
    throw new Exception("Error", null)
} catch (Exception err) {
    print(err.getMessage())
    err.printStackTrace()
} finally {
    print("Cleanup")
}

Herança e Polimorfismo

class Animal {
    intent speak(): string { return "Sound" }
}

class Dog extends Animal {
    intent speak(): string { return "Woof!" }
}

🛠️ Estrutura do Projeto

MF07/
├── src/
│   ├── extension.ts        # Ativação e registro de providers
│   ├── completion.ts       # Autocomplete contextual
│   ├── hover.ts            # Documentação hover
│   ├── signatureHelp.ts    # Signature help
│   └── formatter.ts        # Formatação de código
├── syntaxes/
│   └── .tmLanguage.json    # Gramática TextMate (syntax highlighting)
├── language-features.json  # Configuração centralizada (keywords, types, functions, modules)
├── language-configuration.json
├── package.json
└── example.mp              # Exemplos de código

📦 Dependências

  • VS Code API: ^1.106.0
  • TypeScript: 5.3.0
  • Node.js: ^20.x

🔄 Build & Test

# Instalar dependências
npm install

# Compilar TypeScript
npm run compile

# Watch mode (desenvolvimento)
npm run watch

# Testar extensão
Pressione F5 no VS Code

📄 Licença

MIT License

👨‍💻 Desenvolvimento

Esta extensão suporta completamente a linguagem CorpLang (MF07) com:

  • ✅ 30+ keywords
  • ✅ 15+ tipos (primitivos e genéricos)
  • ✅ 8+ funções built-in
  • ✅ 8+ módulos core
  • ✅ 12+ snippets
  • ✅ Autocomplete contextual
  • ✅ Hover documentation completa
  • ✅ Signature help para funções
  • ✅ Syntax highlighting avançado
  • ✅ Formatação de código

Configuração centralizada em language-features.json permite adicionar novos recursos sem modificar código TypeScript!


Desenvolvido para CorpLang - A Modern Programming Language

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2025 Microsoft