-
Notifications
You must be signed in to change notification settings - Fork 2
Roteiro
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 |
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.
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.
- [] 🏃 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
ContentEditablepara melhorar a segmentação de texto para RTL e CJK.
- [] 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.
- 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
webviewsparaiFrames(continuaremos a nos referir às visualizações e editores personalizados como sendo baseados em webviews)
- Mude de
- [] 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
- 🏃 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
Dockerquando 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.
- [] Finalizar a história de extensibilidade do Copilot Chat por meio de agentes
- [] Melhorar nossos agentes integrados
@workspacee@vscode - [] Refinar o modelo de uso do Inline Chat
- 🏃 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.
- [] 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
- [] 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
- []: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)
- Opção para mostrar os resultados da pesquisa de forma hierárquica
- [] 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.
- []: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
- 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
- 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 inlinepossa 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.
- 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
- 🏃 Continue a refinar e melhorar o Protocolo do adaptador de depuração com o suporte da comunidade.
- []: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.jspara desempenho, estabilidade e capacidade de manutenção - [] Explore o suporte de ajuda CLI inspirado no intellisense no terminal
-
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
- []: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)
- 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.
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.
- 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")
- []:runner: Investigue o suporte WASM de primeira classe (autoria, depuração, ...)
- 🏃 Continue a refinar e melhorar o Protocolo do Servidor de Idiomas com o suporte da comunidade.
- 🏃 Continue a refinar e melhorar o Formato de índice do servidor de idiomas com o suporte da comunidade.
- Hierarquias de tipo de suporte no LSP
- Disponibilizar o NP Sharp na Windows Store.
- 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
- Atualize todos os nossos vídeos de visão geral desatualizados.
- 🏃 Modernize a aparência do nosso site
- 🏃 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'
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!
Gerenciamento de Projetos
- Roteiro
- Planos de Iteração
- Processo de Desenvolvimento
- Rastreamento de problemas
- Campeão de Construção
- Processo de lançamento
- Executando o Fim do Jogo
- Projetos Relacionados
Contribuindo
- Como contribuir
- Enviando Bugs e Sugestões
- Canais de feedback
- Organização do código-fonte
- Diretrizes de codificação
- Teste
- Lidando com a instabilidade do teste
- Contrato de Licença do Colaborador
- Diretrizes da API de extensão
- Diretrizes de acessibilidade
Documentação