omega-edit
v0.9.58
Published
OmegaEdit gRPC Client TypeScript Types
Downloads
169
Readme
Goal
The goal of this project is to provide an open source library for building editors that can handle massive files, and multiple viewports.
User documentation
User documentation is published to https://ctc-oss.github.io/omega-edit/.
Requirements
IDE
The Ωedit project is built primarily using CLion. If using CLion everything should build seamlessly, though Visual Studio Code also works well.
Command line tools
- C/C++ compiler (such as clang, gcc, mingw, or MSVC)
- CMake (https://cmake.org/download/)
- conan C/C++ package manager
- make or ninja for running the build scripts
- nvm or nodeenv for using specific versions of node.js
- doxygen to generate API documentation (https://www.doxygen.nl)
- sphinx to generate user documentation (https://www.sphinx-doc.org)
- sphinx RTD theme (https://github.com/readthedocs/sphinx_rtd_theme)
- breathe ReStructuredText and Sphinx bridge to Doxygen (https://github.com/michaeljones/breathe)
- scala/sbt/java
Build the core library (C/C++)
:exclamation: These commands should be executed at the root level of the repository :exclamation:
Install conan:
pip install conan
Configure a debug build:
Depending on your linking needs, Ωedit can be built as either as a static (e.g., libomega_edit.a) or shared (e.g., libomega_edit.so) library.
Static:
cmake -S . -B cmake-build-debug -DCMAKE_BUILD_TYPE=Debug
Shared:
cmake -S . -B cmake-build-debug -DCMAKE_BUILD_TYPE=Debug -DBUILD_SHARED_LIBS=YES
Build the configured build:
cmake --build cmake-build-debug
Run the test suite:
cmake -S src/tests -B cmake-build-tests -DCMAKE_BUILD_TYPE=Debug
pushd cmake-build-tests && ctest -C Debug --output-on-failure && popd
Packaging Ωedit
TypeScript Client
This package is normally uploaded to npmjs.com
:exclamation: Node needs to be installed but shouldn't matter what version you use. :exclamation:
Create local
.tgz
filecd src/rpc/client/ts yarn install # if not ran before yarn package
File will be at
src/rpc/client/ts/omega-edit-v${VERSION}.tgz
Publish
.tgz
file to npmjs -- requires authyarn publish omega-edit-v${VERSION}.tgz
Scala API and Native
This publishes for Scala version 2.13 to GitHub packages.
- Requires the
GITHUB_TOKEN
environment variable to be set
sbt publishAll
Scala Reference Server
This packages the reference Scala server to a local zip folder
cd src/rpc/server/scala
sbt universal:packageBin
Zip file will be located at
src/rpc/server/scala/target/universal/omega-edit-grpc-server-${VERSION}.zip
Development
Currently, the repo holds bindings for both Scala and node.
Release Binaries
Binary releases for macOS (ARM and x86), Windows (x86), and Linux (ARM, and x86; glibc 2.31 or greater required) are built and published via GitHub CI workflows.
Versioning
Ωedit follows Semantic Versioning.