Arsenic-ATG / omega-edit

Open source library for building editors that can handle massive files, and multiple viewports.

Home Page:https://ctc-oss.github.io/omega-edit/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Omega Edit Logo

Ωedit Library

Release Build Status CodeQL codecov FOSSA Status Join the chat at https://gitter.im/ctc-oss/community

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

Build the core library (C/C++)

❗ These commands should be executed at the root level of the repository ❗

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

❗ Node needs to be installed but shouldn't matter what version you use. ❗

  • Create local .tgz file

    cd 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 auth

    yarn 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 universial: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 (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.

License

FOSSA Status

About

Open source library for building editors that can handle massive files, and multiple viewports.

https://ctc-oss.github.io/omega-edit/

License:Apache License 2.0


Languages

Language:C++ 40.8%Language:TypeScript 24.5%Language:Scala 17.7%Language:CMake 7.6%Language:C 6.1%Language:Shell 2.1%Language:Python 0.5%Language:Makefile 0.3%Language:Dockerfile 0.2%Language:Batchfile 0.2%Language:HTML 0.1%