Lexical Model Types
Declares TypeScript types and interfaces required to define Lexical Models, Word breaking functions, and all things in between.
Install
(see below if you are working in the keymanapp/keyman repo!)
npm install --save-dev @keymanapp/lexical-model-types
Usage
Say you are creating a custom lexical model. Then import this module in your lexical model file!
// my-nifty-model.ts
import "@keymanapp/lexical-model-types";
export class MyNiftyClass implements LexicalModel {
configure(capabilities: Capabilities): Configuration {
// TODO: implement me!
throw new Error("Method not implemented.");
}
predict(transform: Transform, context: Context): ProbabilityMass<Suggestion>[] {
// TODO: implement me!
throw new Error("Method not implemented.");
}
wordbreak(context: Context): string {
// TODO: implement me!
throw new Error("Method not implemented.");
}
punctuation?: LexicalModelPunctuation;
}
If your are creating a custom word breaker, you would do the same:
import "@keymanapp/lexical-model-types";
export let myShinyWordBreaker: WordBreakingFunction;
myShinyWordBreaker = function (phrase: string): Span[] {
// TODO: implement me!
throw new Error("Function not implemented")
}
Look at index.d.ts for documentation on each and every type!
Usage within keymanapp/keyman repo
To use it in other subprojects within keymanapp/keyman, ensure that this package is linked using:
npm link .
The following subprojects already perform npm link .
as part of their build.sh
:
common/predictive-text/
developer/js/