Обработать строку, похожую на омнибокс Chrome - PullRequest
1 голос
/ 07 января 2012

В расширении Google Chrome я хочу обработать пользовательскую строку таким же или аналогичным образом, как работает омнибокс.

Я думаю, что это проще всего продемонстрировать на нескольких примерах:

http://example.org  => We should open the website
example.org         => We should also open the website
example.co.uk/test  => We should also open the website
example             => We should open the default search engine for that term
wp Test             => Given that 'wp' is a shortcut for Wikipedia, we should  
                       open the wiki page for 'Test'

По сути, я хочу достичь этого, чтобы никогда больше не использовать омнибокс и вместо этого использовать вдохновленный VIMНавигация только с клавиатуры, предоставляемая vimium с дополнительным преимуществом, позволяющим мне переходить к пользовательским страницам.

Теперь на самом деле есть два вопроса:

  • В какой степени API-интерфейс Chrome или неприятные обходные пути позволяют мне избежать и воспроизвести логику, необходимую для анализа входных данных? Могу ли я воспользоваться, например, существующим списком доменов верхнего уровня илидоступные схемы URL?Есть ли способ позволить Chrome делать всю работу?В конце концов, этот материал должен быть уже где-то внутри Chrome, поскольку омнибокс использует тот же алгоритм.

  • Если мне не повезло, и я должен сам реализовать логику, как я могу получить необходимую информацию, например, настроенную поисковую систему по умолчанию или доступные ярлыки и связанные с ними строки формата URL-адреса?

Чтобы уточнить: я не заинтересованы в реализации самого алгоритма синтаксического анализа.Если необходимая информация доступна, реализация алгоритма не должна быть слишком сложной, в конце концов.

1 Ответ

4 голосов
/ 20 февраля 2012

Я полностью написал это с нуля: https://github.com/niklasb/vimium/blob/fuzzy/lib/completion.js

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...