Skip to content

feat(v2): refactor namespace core with caching, WorkspaceIndex, and general improvements#58

Merged
rejmann merged 19 commits into
mainfrom
feat/v2
Apr 6, 2026
Merged

feat(v2): refactor namespace core with caching, WorkspaceIndex, and general improvements#58
rejmann merged 19 commits into
mainfrom
feat/v2

Conversation

@rejmann
Copy link
Copy Markdown
Owner

@rejmann rejmann commented Apr 3, 2026

No description provided.

rejmann added 16 commits April 2, 2026 12:00
- Atualização das versões de "@types/node", "brace-expansion" e "minimatch".
- Ajuste de propriedades de dependências para refletir atualizações.
- Removida a constante COMPOSER_FILE de constants.ts
- Definida a constante dentro de ComposerAutoloadManager
- Atualizado package.json para ativar extensão com composer.json
- Renomear WorkspaceFileFinder para WorkspaceIndex
- Atualizar referências em MultiFileReferenceUpdater.ts para usar WorkspaceIndex
Substitui a string literal '.php' pela constante FILE_EXTENSION
em vários arquivos para melhorar a manutenção do código:
- RenameHandler.ts
- FileRenameFeature.ts
- MissingClassImporter.ts
- WorkspacePathResolver.ts
- constants.ts
Adiciona documentação detalhada para as operações de renomeação de classe, movimentação de arquivo e renomeação de namespace. Inclui fluxos de execução, responsabilidades e dependências.

chore(deps): adicionar @types/jest e pacotes jest

Atualiza package-lock.json para incluir @types/jest e pacotes relacionados ao Jest como dependências de desenvolvimento.
- Adiciona lógica para identificar e injetar a primeira declaração de uso
- Atualiza `UseStatementLocator` para retornar informações sobre a primeira declaração
- Modifica `UseStatementInjector` para lidar com injeções de primeira declaração
- Simplifica a lógica de injeção de múltiplos arquivos em `MultiFileReferenceUpdater` e `MissingClassImporter`
Simplifica a lógica de inserção do uso de namespace ao unificar as
operações de substituição de texto para os casos de primeira e não
primeira utilização.
Adicionado cache `namespace-index.json` para otimizar buscas de namespace, evitando escaneamento completo do workspace em cada operação de refatoração. O cache é atualizado por eventos do sistema de arquivos.
- Adicionada fila de promessas para evitar condições de corrida ao renomear arquivos.
- Atualização de referências em múltiplos arquivos agora também ajusta o nome da classe, se necessário.
- Atualizado eslint.config.mjs para incluir o eslint-plugin-perfectionist
- Atualizado package-lock.json e package.json para incluir dependência do eslint-plugin-perfectionist
- Reorganizado métodos em RenameValidator.ts e UseStatementInjector.ts para seguir regras de ordenação
- Atualizar caminhos de importação para refletir nova estrutura de pastas
- Mover `UnusedImportDetector.ts` para `src/domain/namespace/`
- Mover `ExtractNameFromCursor.ts` para `src/domain/rename/`
- Extrair `PHP_CLASS_DECLARATION_REGEX` para `src/domain/namespace/PhpPatterns.ts`
- Implementa verificação de regex para substituir nomes de classe nos arquivos.
- Atualiza apenas se o nome da classe estiver presente no conteúdo do arquivo.
- Adiciona novos testes unitários para a classe NamespaceIndex
- Verifica a funcionalidade de extração e atualização de namespaces e importações
- Testes cobrem cenários de uso, remoção e movimentação de arquivos
- Certifica que namespaces e importações são geridos corretamente durante modificações
@rejmann rejmann self-assigned this Apr 3, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant