A prototype future Keyman Developer.
Based on a generated template for Eclipse Theia, this application consists of a set of Theia and VSCode plugins.
extensions/keyman-kpj
is a VSCode plugin which provides the Keyman Project and Keyman LDML editing capabilitieskeyman-vancouver/
is a Theia plugin which provides the basic personality
browser-app
andelectron-app
are the web and desktop apps, respectively. The are largely auto generated, but have resources and package.json contents to be kept in sync.plugins
is a directory of symlinks that is used when the app starts up. In the future we could just useextensions
directly, but this is reserved in case we choose to use some downloaded plugins that aren't also hosted here.
- yes, lerna and even yarn are used in some places. A to-do item is to remove them.
- Node 20 (see .node-version)
- python and tools for building native modules
- see this article on the Theia prerequisites
- (Note, you don't need to install yarn directly for keyman-vancouver)
- Mac tip:
brew install python-setuptools
npm i
# workaround for an odd issue, see #2
( mkdir -pv node_modules/@theia/application-manager/node_modules/.bin/ && ln -sfv ../../../../.bin/webpack ./node_modules/@theia/application-manager/node_modules/.bin/webpack)
npm run prepare
npm run build:browser
( cd extensions/keyman-kpj ; npm i ; npm run build )
npm run start:browser
Open http://localhost:3000 in the browser.
or: launch Start Browser Backend
configuration from VS code.
npm i
npm run build:electron
npm run start:electron
or: launch Start Electron Backend
configuration from VS code.
npm run package:electron
Start watching (continuous rebuild of) all packages, including browser-app
, of your application with
npm run watch:browser
Now run the as described above
Start watching all packages, including electron-app
, of your application with
npm run watch:electron
Now run the as described above
Copyright (c) SIL Global.
Keyman is an open source project distributed under the MIT license.