github / github/codeql-cli-binaries
Add `string` predicates `startsWith`, `endsWith` and `contains`
- Linguagem predominante
- Sem dados de linguagem
- Estrelas
- 1k
- Forks
- 184
- Métricas de merge de PRs
- Nenhum PR com merge em 30d
Descrição
What do you think about adding predicates to the CodeQL type `string` for determining whether a string has a given prefix or suffix or contains a substring? For example `startsWith(string)`, `endsWith(string)` and `contains(string)`.
Currently the workarounds are using `indexOf(...) = 0` or `matches(...%)` (which seems to be faster than `indexOf`, see https://github.com/github/codeql/issues/6479#issuecomment-900081363). However, these predicates do not convey the intention as clearly, might not be that performant and for `matches` one must take care not to accidentally use `%`or `_` where the intention was to match them literally.
In the github/codeql repository (at https://github.com/github/codeql/commit/39533317ffbeb6224d049de22fc182d8eeea4b61) there are at least:
- 196 cases where `startsWith` could be used
(I searched for the regex `matches\("[^%_]*%"\)` in CodeQL source files)
- 72 cases where `endsWith` could be used
(I searched for the regex `matches\("%[^%_]*"\)` in CodeQL source files)
Guia de contribuição
Direção de pesquisa
A issue propõe adicionar os predicados startsWith, endsWith e contains ao tipo string do CodeQL, mas não nomeia arquivos-fonte, testes ou pontos de entrada da implementação. Comece localizando a implementação do tipo string e seus testes; o trabalho estará concluído quando os predicados estiverem disponíveis e cobrirem verificações de prefixo, sufixo e substring sem depender de soluções alternativas com indexOf ou matches.
Escrita pelo modelo de indexação a partir do texto da issue.
Avaliação
- Domínio
- devtools
- Tipo de issue
- Funcionalidade
- Dificuldade
- 5/5
- Tempo estimado
- Mais de uma semana
- Status de atividade
- Estagnada
- Clareza
- Razoavelmente clara
- Facilidade para iniciantes
- 35/100