Skip to content

Roteiro

Girelli edited this page Dec 2, 2025 · 2 revisions

O roteiro do código do Notepad Sharp 2024/25

Nosso roteiro normalmente dura de 12 a 18 meses e estabelecemos os tópicos nos quais queremos trabalhar. Não começamos com nosso roteiro em uma folha em branco. Nós o desenvolvemos com base em nosso último roteiro, nas descobertas que fizemos ao longo do ano passado e, claro, no que ouvimos de vocês em questões, em discussões presenciais, stack overflow e Twitter.

Quando executamos nosso roteiro, continuamos aprendendo e nossa avaliação de alguns dos tópicos listados muda. Como resultado, podemos adicionar ou eliminar tópicos à medida que avançamos. Após cerca de 12 meses, nos reunimos para desenvolver o próximo roteiro.

Descrevemos algumas iniciativas como “investigações” ou “explorações”, o que significa que nosso objetivo nos próximos meses é entender melhor o problema e as possíveis soluções antes de agendar o trabalho real dos recursos. Assim que a investigação for concluída, atualizaremos nossos planos, adiando a iniciativa ou nos comprometendo com ela.

Como sempre, ouvimos seus comentários e adaptamos nossos planos, se necessário.

Legenda das anotações:

Marca Descrição
bala trabalho não iniciado
marca de seleção obra concluída
:corredor: trabalho em andamento
:músculo: meta estendida
:círculo_vermelho: elo perdido

Valores

Antes de entrarmos em detalhes, vamos começar com nossos valores que norteiam o desenvolvimento do NP Sharp. Eles permaneceram praticamente os mesmos desde os primeiros dias e não temos nenhuma intenção de alterá-los:

  • Pronto para uso, o NP Sharp é um editor de texto: leve e rápido. Os usuários podem instalar extensões que afetem a aparência e a natureza do NP Sharp.
  • O desempenho supera a funcionalidade.
  • UI simples e uniforme e interações de UI.
  • Permitir a coexistência e interação CLI/UI sempre que possível.
  • Embora limitemos as escolhas de extensão de UI que os autores podem fazer, os autores podem escrever extensões poderosas, como aquela que transforma o NP Sharp em um IDE com recursos e recursos.

Temas para 2023/24

Ao longo dos últimos anos, fizemos progressos significativos no nosso roteiro original. Portanto, não é de surpreender que um dos principais tópicos deste ano seja a evolução deste roteiro para nos guiar nos próximos 2 a 3 anos. Continuaremos nosso esforço para nos tornarmos líderes em acessibilidade e trazer para você os recursos que você está solicitando. O elefante na sala é claramente o suporte da IA. Continuaremos a nos concentrar em explorar e compreender como a IA muda a forma como todos nós nos desenvolvemos. Assim como no Remote, partes deste trabalho serão abertas e outras serão de código fechado. Continuaremos a desenvolver, melhorar e enviar a extensão GitHub Copilot Chat.

Acessibilidade e Internacionalização

  • [] 🏃 Torne o NP Sharp uma ferramenta de desenvolvedor extremamente acessível. Iremos nos envolver e trabalhar com nossa comunidade para obter sugestões e orientação, e precisamos que você nos mantenha honestos.
  • [] Deixe nossa história IME personalizada e use ContentEditable para melhorar a segmentação de texto para RTL e CJK.

Desempenho

  • [] Reduza o tamanho dos nossos downloads
    • Investigue mais espaços reservados com downloads lentos, como os stubs da WSL (estender aos conceitos principais)
  • 🏃 Mantenha os tempos de inicialização dentro de um intervalo previsível e adequado para usuários em todas as plataformas.
  • [] Melhorar o desempenho do NP Sharp em grandes espaços de trabalho
    • Investigue 'conjuntos de trabalho' de arquivos e pastas no explorador de arquivos
    • [] Melhorar o desempenho do arquivo aberto / seleção rápida
  • Garanta que o NP Sharp carregue instantaneamente na web.

Segurança

  • Espaços de trabalho confiáveis: garanta que seja seguro clonar um repositório e ler o código-fonte sem qualquer execução não autorizada de código.
  • Torne o NP Sharp mais seguro executando processos de renderização sem acesso às APIs node. Isso também é crucial para a longevidade de nossa plataforma, pois aproxima nosso modelo de aplicação do modelo web puro.
    • Mude de webviews para iFrames (continuaremos a nos referir às visualizações e editores personalizados como sendo baseados em webviews)
  • [] Adicionar suporte para permitir que os usuários imponham que apenas extensões assinadas selecionadas sejam ativadas/ou possam ser instaladas.
  • []:runner: Certifique-se de que todo o código de extensão possa ser assinado (precisa de extensões específicas da plataforma)
  • [] Explore o sandbox de extensões em cenários locais e remotos

Codespace e remoto

  • 🏃 Simplifique a movimentação de uma pasta local para um contêiner, para um codespace ou vice-versa
  • SSH remoto
    • Fornece acesso web ao Remote-SSH bo xes através de um serviço de túnel
    • [] Impedir a instalação do servidor em microinstâncias
    • Suporte 'Reopen in Container' aproveitando o suporte Remote-Container
  • Contêiner Remoto
    • Simplifique a criação de uma configuração de contêiner de desenvolvimento personalizada, por exemplo, 'consumo à la carte dos recursos na imagem universal'
    • Auxiliar os usuários na instalação do Docker quando ainda não instalado
    • Suporte para contêineres remotos não confiáveis
  • Disponibilizar o NP Sharp Server para download; UI da web incluída para oferecer suporte a versões mais antigas do sistema operacional que o cliente de desktop não suporta mais
  • Veja também Suporte à navegação e modificação de repositórios GH na seção SCM.

Integração de IA

  • [] Finalizar a história de extensibilidade do Copilot Chat por meio de agentes
  • [] Melhorar nossos agentes integrados @workspace e @vscode
  • [] Refinar o modelo de uso do Inline Chat

Núcleo do código VS

Geral

  • 🏃 revise os valores padrão de todas as configurações que enviamos prontas para uso

###experiência do usuário

  • 🏃 investigue como os usuários podem expressar para que desejam usar o NP Sharp depois de instalá-lo e forneça ajuda na configuração de seu ambiente: tempo de execução, extensões, configurações.
  • Facilitar a descoberta da paleta de comandos por novos usuários; explorar o posicionamento de folga/equipe
  • Repensar: "Novo arquivo sem título" é uma relíquia de uma época em que só tínhamos suporte para arquivos de texto - quanto podemos fazer pela detecção automática, quanta entrada do usuário precisamos
  • Atualize os temas que enviamos imediatamente
  • Continuar a melhorar gradativamente a apresentação e o comportamento em todos os níveis. Os exemplos incluem:
    • Página de boas-vindas
    • 🏃 Repensar calhas (interações, número de calhas, suporte a codicon)
    • Retoques na paleta de comandos
  • [] 🏃 Revisite/revise a primeira experiência de execução do NP Sharp, bem como extensões recém-instaladas. Por exemplo, queremos reduzir o número de notificações e permitir que as extensões integrem suas telas de boas-vindas na página de boas-vindas do ambiente de trabalho que são mostradas.
  • []:runner: Toque aprimorado e suporte móvel.

Bancada de trabalho

  • [] Layout da bancada
    • O suporte para peças de bancada removíveis é nossa solicitação de recurso mais votada e, devido a [problemas de arquitetura](https://github.com/Notepad-Sharp/NPSharp/issues/10121#issuecomment -345497635), é difícil de implementar. Exploraremos como podemos contornar essa limitação. Esta investigação se concentrará na separação de terminais (segunda solicitação de recurso mais votada) e editores.
    • Suporta um layout de ambiente de trabalho mais flexível, como permitir barras laterais à esquerda e à direita. Por exemplo, você poderia ter seu esboço à direita e o explorador de arquivos à esquerda.
  • [] Suporte para configurar o ambiente de trabalho (veja também https://github.com/Notepad-Sharp/NPSharp/issues/115641)
    • [] Fonte do Workbench e tamanho da fonte
    • [] Densidade de exibição do Workbench (botões pequenos versus botões grandes, barra de atividades compacta)
    • Amplie o suporte para personalizar a IU, por exemplo. configurar ações disponíveis na barra de menus, menus de contexto, barras de ferramentas. Investigue o Bartender como suporte.
    • Introduzir perfis descrevendo a aparência (e comportamento) ou a bancada (e extensões); relacionado a Conjuntos de configurações, talvez seja a mesma coisa, ainda não sabemos; Exemplos: perfil de editor de texto, perfil IDE, perfil de aluno
  • Explore para permitir que os usuários (ou o ambiente de trabalho em nome do usuário) gerenciem notificações
  • Melhorar o manuseio de abertura de um arquivo quando houver vários editores disponíveis, por exemplo, deixar o usuário escolher na primeira abertura

API

  • [] Limpar ou finalizar APIs que estão no modo proposto há algum tempo, como Pesquisa
  • [] Melhorar editores e visualizações personalizadas
    • Melhorar a transferência de dados entre webviews e o host da extensão
    • Apoiar web-workers em webviews
    • Suporta um conjunto predefinido de webcomponents em webviews
  • Nossa API fornece acesso a editor de texto aberto, mas não a notebooks ou editores personalizados. Os autores de extensão dependem de soluções alternativas abaixo do ideal.
  • Enriquecer visualizações em árvore para reduzir a necessidade de implementar uma visualização personalizada baseada em webview (pesquisa/filtragem baseada em modelo, edição inline, texto de ajuda, botões grandes, arrastar e soltar, caixas de seleção)
  • [] 🏃 Investigue uma escolha rápida melhorada. Exemplos: entrada multilinha, combinação de itens marcados/não verificáveis, itens desabilitados, ações inline

Configurações

  • []:runner: fornece suporte de alta fidelidade para tipos de configurações adicionais, como cores.
  • Fornecer suporte simplificado à personalização de temas ("definir 6 cores básicas")
  • Suporta substituições de idioma no editor de configurações de alta fidelidade
  • Fornece às extensões mais controle sobre a sequência e o agrupamento de suas configurações no editor de configurações, por exemplo, suporte para agrupar configurações comumente usadas.
  • Suporte à sincronização de diferentes 'perfis de configurações' (máquinas no trabalho, minhas máquinas domésticas)
  • Suporta configurações de espaço de trabalho privado
  • Suporte a conjuntos de configurações/extensões que os usuários podem alternar (por exemplo, anotações, java dev, aplicativo react); relacionado a Perfis de espaço de trabalho (talvez seja a mesma coisa, ainda não sabemos)

Pesquisa

  • Opção para mostrar os resultados da pesquisa de forma hierárquica

Editor

  • [] Expandir experiências 'inline' do editor
    • Valores embutidos (ativados por padrão, consulte depuração)
    • Dicas de tipo inline (consulte a seção de idiomas)
  • A verificação ortográfica como um driver para melhorar a forma como o usuário interage com os diagnósticos. Erros ortográficos são frequentes e frequentemente na mesma linha. Passar pela solução rápida não é suficientemente fluente. O Outlook, por exemplo, usa um único clique.

Cadernos

  • []:runner: Obtenha paridade de recursos com editores de texto regulares: minimapa, marcadores de barra de rolagem, localização entre entradas e saídas
  • 🏃 API de notebook público e permite extensões de notebook dedicadas no mercado NP Sharp; recomendações de extensão
  • Estender servidores de idiomas para oferecer suporte nativo a notebooks
  • Explore a depuração aprimorada da execução de células do notebook
  • 🏃 Consulte a seção "Markdown" para saber o que pode ser aplicado às células de markdown

SCM/solicitações pull

  • Investigar sinergias entre o Core git, GHPRI e GitLens (compartilhamento de implementação, extensibilidade do plugin)
  • []:runner: Aproxime o GitHub do loop interno do NP Sharp Core e das extensões GHPRI e GitLens
    • Suporte à navegação e modificação de repositórios GH sem a necessidade de clonar o repositório ou abrir um codespace
    • Atribuir do editor de visão geral
    • Suporte na resolução de conversas
    • Filtrar comentários na visualização de comentários por status resolvido
    • @ e # conclusões em todos os lugares, incluindo comentários
  • [] Melhorar a experiência de comparação
    • Ações para copiar alterações para frente e para trás na medianiz do editor de diferenças
    • Suporte completo para comparação e mesclagem de três vias
    • Explore mostrando as alterações em todos os arquivos alterados em um único editor de diferenças
    • Recolher linhas inalteradas
  • Investigue o suporte para mostrar um histórico local de um arquivo e pasta e combine isso com o histórico do git
  • [] Investigue a combinação do histórico local com outros eventos, como execuções de testes ou refatorações bem-sucedidas

Depurar

  • Aproveite os serviços de linguagem para melhorar a experiência de depuração. Por exemplo, melhore os valores flutuantes e inline aproveitando o conhecimento sobre a linguagem de programação para que o recurso Valores inline possa ser habilitado por padrão
  • Expor mais UI para recursos DAP que atualmente não aparecem na UI de depuração do NP Sharp. Isso inclui suporte às visualizações de memória e desmontagem.

Depuração JS

  • Explore a integração de um inspetor html/css. Essa lacuna limita nosso apelo à depuração do navegador. Alinhe com extensões existentes, como a extensão de borda.
  • Torne o perfil JS mais detectável e acessível (forneça ajuda na leitura de perfis de desempenho)
  • Investigue expressões de suporte no JS Debug Console
  • [] Permitir execução/depuração de um único arquivo TS sem qualquer configuração
  • Melhorar a inspeção de variáveis ao executar código minificado

Protocolo do adaptador de depuração (DAP)

Teste

  • []:runner: Garantir escalas de suporte de teste para repositórios mono
  • Explore o suporte à cobertura de código
  • 🏃 Suporte para navegar de uma função até seus testes e vice-versa

###Terminal

  • Investigue como persistir sessões de terminal locais durante recarregamentos de janelas e reinicializações de aplicativos.
  • Investigue o seletor de shell/perfil aprimorado (consulte o Terminal do Windows para obter inspiração)
  • Use guias em vez do menu suspenso do terminal
  • Investigue para "retomar" um terminal desserializando seu estado em vez de reproduzir eventos de dados brutos
  • Investigue para permitir terminais na área do editor
  • 🏃 Fornece melhorias contínuas para xterm.js para desempenho, estabilidade e capacidade de manutenção
  • [] Explore o suporte de ajuda CLI inspirado no intellisense no terminal

Extensões

  • Aquisição de extensão

    • []: corredor: Ma Torna mais fácil para os usuários escolher quais funcionalidades desejam das extensões.
  • Gerenciamento de extensão

    • []:runner: mostra informações de tempo de execução para uma extensão (estado de ativação, desempenho, logs de erros)
  • Autoria de extensão

    • 🏃 Fornece orientação clara aos autores de extensões sobre como estruturar sua funcionalidade para que seus usuários possam obter o mínimo ou o máximo de funcionalidade que desejarem. Por exemplo, certifique-se de que os amantes de editores de texto possam obter suporte à linguagem Python sem muita sobrecarga.
    • Fornecer uma experiência integrada de 'Boas-vindas' para extensões.
    • 🏃 investigue como informar efetivamente os usuários sobre os novos recursos fornecidos por uma atualização de extensão.
    • [] Estender nossas ferramentas de desenvolvimento:
      • Suporte para extensões de trabalho da web
      • Melhorar os testes (testes unitários e Playwright)
      • 🏃 Integração de código não JavaScript via WASM; investigue se faria sentido ter uma API de código VS totalmente espelhada, por exemplo, em Rust, para que uma extensão possa ser totalmente construída em Rust
      • []:runner: facilita a execução de extensões de linguagem em um web-worker
    • [] Estender nossas diretrizes de extensão para cobrir não apenas UX, mas também desempenho
    • Permitir que os autores da extensão integrem as informações do patrocinador do GH
    • Revisite o formato da nossa chamada da comunidade de autores de extensão
  • Publicação de extensão (consulte Segurança)

    • Suporte para tipos de extensões específicos da plataforma.
    • []:runner: Suporta publicação de extensões assinadas.
    • Adicionar suporte para editores verificados.
    • Adicionar suporte para extensões internas/pré-lançamento

Facilidade de manutenção

  • []:runner: Melhore o repórter de problemas integrado
    • [] Suporte para colar/anexar imagens
    • []:runner: Permitir que extensões contribuam com dados para os problemas relatados (modelos, logs de extensão)

Serviços de código VS

  • Investigar serviço de transferência/continuidade: Ao abrir a mesma pasta em diferentes instalações do NP Sharp, entregamos todos os arquivos sem título, alterações não confirmadas ou não rastreadas e alguns estados da UI.

Idiomas

Datilografado

Continuaremos a colaborar profundamente com o TypeScript. Consulte também o roteiro TypeScript.

  • 🏃 Explorar com refatorações adicionais fornece alto valor para os desenvolvedores, por exemplo, 'alterar assinatura'
  • dicas de tipo in-line
  • Explore o suporte a vários arquivos/bibliotecas no serviço de linguagem baseado no Web Worker

###Píton Temos um [roteiro Python] dedicado(https://github.com/Notepad-Sharp/NPSharp-python/wiki/Roadmap).

###HTML/CSS

  • Fornece uma visualização ao vivo integrada.

Remarcação

  • Fornece um servidor de linguagem markdown
  • []: runner: Melhore o suporte para imagens (colar imagens, visualizar imagens ao passar o mouse, etc.)
  • [] Investigar a integração de um serviço de verificação ortográfica (como o MS Editor)
  • [] Barra de ferramentas no local para formatação de markdown ("ações de código em esteróides")

WASM

  • []:runner: Investigue o suporte WASM de primeira classe (autoria, depuração, ...)

Protocolo de servidor de linguagem e LSIF

Contribuições para extensões de código VS

Instalar/Atualizar

  • Disponibilizar o NP Sharp na Windows Store.

Engenharia

  • Melhorar nossos testes de fumaça e revisitar a abordagem atual sobre como os implementamos.
  • Invista em uma visualização de arquivos unificada, aprimorada e rápida
  • []:runner: Melhore nossos bots de problemas no GitHub, exemplos:
    • rejeita automaticamente problemas recebidos inválidos
    • []:runner: automatiza o treinamento do nosso bot de classificação
    • detectar problemas de uso limitado que 'precisam de mais informações' automaticamente
  • Adote uma cadeia de abastecimento segura
  • Explore a melhoria do tempo de compilação usando esbuild (requer suporte AMD)
  • garantir que não perderemos nossa capacidade de usar o TS RC mais recente

Site

  • Atualize todos os nossos vídeos de visão geral desatualizados.
  • 🏃 Modernize a aparência do nosso site

Apoio Comunitário e Projeto OSS

  • 🏃 Continuaremos nosso trabalho em nossos bots GitHub que permitem que os membros de nossa comunidade nos ajudem na triagem e resolução de problemas.
  • Garantir que tenhamos sempre uma boa coleção de problemas rotulados como 'procura-se ajuda' e 'bom primeiro problema'

Resumo

Estes são exemplos de alguns dos trabalhos em que nos concentraremos nos próximos 12 a 18 meses. Ajustamos continuamente o plano com base no feedback e forneceremos mais detalhes em cada um dos nossos planos de iteração mensais. Desenvolveremos nosso próximo roteiro daqui a cerca de 12 meses. Por favor, acompanhe e deixe-nos saber o que você pensa!

Clone this wiki locally