atualize os arquivos 
@/README.md 
@/homepage/help.html 
@/docs/chrome_store/v5.0/description.txt 
sobre as novas funções e sobre as mudanças quer houveram, se tiver em duvida de qual conteudo escrever se baseio no @/CHANGELOG.md 



vamos refatorar todo o projeto, comece por separando as funcoes em arquivos diferentes, mantenha os arquivos @/background.js e @/content.js como bases do projeto, mas faça deles apenas pontos de ligação, por exemplo mova ou copie tudo necessario para realizar a função Text Watcher para um arquivo chamado TextWatcher.js
faça o mesmo para a função auto refresh e todas as outras cada uma deve ter um arquivo proprio, mantenha tudo funcionando assim como está funcionando agora. codigo seções de codigos compartilhados podem ser mantidos nos arquivos backgrouund.js ou content.js se nao for possivel infividualizar o conteúdo, a ideia é tornar a extensao em um projeto modular mas mantendo todo o funcionamento, caso tenha alguma duvida me pergunta, ao final, atualize o arquivo @/kilo.info e crie testes unitários dentro da pasta @unitest






duas tarefas

garanta que todas as funcoes e variaveis existem nos respectivos arquivos e ou no escopo global, erros de nao definicao sao inaceitaveis



erro 1
a marcação com seleção do mouse ou com hover não dura mais que 1 segundo, ela some em um instante, deveria ficar fixa ate outra ser selecionada vamos resolver alguns erros, primeiro a marcação com seleção do mouse ou com hover não dura mais que 1 segundo, ela some em um instante, deveria ficar fixa ate outra ser selecionada

erro 2
a fuzzy search ou tambem conhecida como busca por variação não considera espaços vazios ou caracteres especiais como _ - / e todos os outros diferenres de alfanumericos, esses caracteres devem ser considerados coringas e devem ser ignorados ao avaliar uma palavra, ou seja caso a palavra seja casa, ao encontrar "ca sa" "ca-sa" "ca+sa" etc todas estas devem ser considaredas variações da palavra

erro 3
o textwatcher nao emite som, não sei se o problema é a busca ou a emissão do som

erro 4
atalhos

logs
faça melhor se já nao existir crie uma funcao chamada loguser(str txt) que será responsável por todos os logs do projeto, ela deve ter escopo global e ser acessivel por todos os arquivos, substitua todos os logs por esta funcao, a ideia é poder controlar a saida do fluxo de logs ativando ou desativando atraves do checkbox que indica debug que tem no popup.html, desta forma ao ativar o debug todo o log será emitido ao console do usuario, e ao desativar todo o log sera omitido, nao apague esta funcao apos os testes de debug ela será fixa e para sempre do projeto



agora os logs estao corretos, vamos voltar a resolver a solucao para o problema da selecao da busca por selecao e da busca hover estar sumindo imediatamente, pelos logs parece que a busca por classe sempre é reativada apos a selecao de uma nova palavra prlo mouse e apaga as marcacoes, o certo seria a busca por classe nao apagar itens selecionados por outros tipo de busca, desta forma cada busca so poderia apagar itens marcaddos pelo seu tipo e as marcacoes seriam sempre sobrepostas seguindo a ordem de prioridade

onde palavras ignoradas devem sempre ser ignoradas independente do modo de busca 
e palavras que se enquandrem em varios tipo de busca devem receber varias marcacoes ao mesmo tempo com sobreposicao

a marcacao que deve prevalecer é a da busca pela palavra exata, depois a substring, depois a variacao, depois qualquer outra que houver








como a busca por classe é autonoma ela precisa de arquivo core somente seu com suas funções assim como todas as funções tem, se assegure que o arquivo @/src/content/modules/classBasedSearch.js seja de uso exclusivo da busca por classe, com isso crie um novo arquivo que sera residencia da função busca pora variação e se assegure que nete terá tudo que a função precis para continaur funcionando , desta forma vamos separar os conteudos mas quero que tudo siga funcionando, mova também todo o conteúdo genérico para outro arquivo compartilhado. não altere os demais arquivos a menos que seja de extrema necessidade, a ideia é deixar a função modular como deveria ser sendo cada arquivo responsavel por tratar uma funcao e faciltiar a manutençao