micromys
v1.0.0
Published
Helper for IDE-like search widgets implementations
Downloads
21
Readme
Micromys
A tiny tool that helps to find strings in pre-defined dictionary by user input.
It uses algorithm similar to one that IDEs use when user looks for a file by some parts of the file's name.
For example, it finds string aTinyTool
when input is att
.
Installation
yarn add micromys
or npm install micromys
Usage
Basic
import { createSearchFunction } from 'micromys';
const search = createSearchFunction(['myFavoriteFile', 'i_love_underscores']);
const searchResults = search('ilo');
console.log(searchResults);
// [{
// sentence: 'i_love_underscores',
// highlights: [
// { start: 0, end: 0 },
// { start: 2, end: 3 },
// ],
// }]
Advanced
You can think of this module as of a constructor.
Feel free to import any parts of micromys
and to build something new from them.
You can start from createSearchFunction.js
- the place that wires all the sub parts.
For example, you can provide your own custom isLetter
function in order to add support for languages with non-latin alphabets.
Highlighting
In order to simplify highlighting implementation there is highlightSentence
function.
import { highlightSentence } from 'micromys/src/highlightSentence';
const highlighted = highlightSentence({
sentence: 'some words',
highlights: [{ start: 0, end: 3 }],
highlight: (text) => `<b>${text}</b>`,
}).join('');
console.log(highlighted); // '<b>some</b> words'
CommonJS support
If you need to require
instead of import
, use require('micromys/cjs');
Limitations
By default micromys
supports only latin alphabet. If you need more, see Advanced
section above.