- python 3.9 and above - High-level general-purpose programming language
- pip - package installer for Python
pip install oxeyeAnd then you can start an LSP instance with the following command:
oxeyeOr use one of the following plugins on your desired Editor or Integrated Development Environment (IDE)
- Neovim: oxeye.nvim
- ฯลฯ
oxeye/
│
├── src/
│ └── lib.rs # Library definitions
│
├── static/
│ ├── docs/ # Collection of markdown LSP definitions
│ │ ├── comprehensive/ # Collection of catchall markdown reference
│ │ ├── jet_functions/ # Collection of markdown jet function definitions
│ │ ├── keywords/ # Collection of markdown keyword definitions
│ │ ├── misc/ # Collection of miscellaneous definitions
│ │ └── types/ # Collection of type definitions
│ │
│ ├── oxeye.svg # Vector asset used as crest
│ ├── oxeye-banner.svg # Vector asset for banner on display in README
│ └── oxeye-social.svg # Vector asset used as Open Graph preview
│
├── Cargo.toml # Rust library dependencies and packaging
├── LICENSE # Details of MIT License
├── README.md # Descriptions and roadmap
├── oxeye.pyi # Stub file for python method declarations
└── pyproject.toml # Python library build system and metadata
🙈 Notable exemptions:
example.simplicity,formatting rules,gitignoreandlockfiles
- git - --fast-version-control
- uv - Extremely fast Python package & project manager, written in Rust
- rustup - An installer for the systems programming language Rust
- maturin - Build and publish creates with pyo3, cffi and uniffi bindings as well as rust binaries as python packages
Environment setup guide
The following guide walks through setting up your local working environment using git
as distributed version control system, uv as Python package and version manager,
rustup toolchain installer for Rust programming language and maturin buildtools for
python packages using Rust. If you do not have git installed, run the following command.
Install using Homebrew (Darwin)
brew install git
Install via binary installer (Linux or Windows Subsystem for Linux [WSL])
-
Debian-based package management
sudo apt install git-all -
Fedora-based package management
sudo dnf install git-all
Install using Winget (Windows Powershell)
winget install --id Git.Git -e --source winget
If you do not have uv installed, run the following command.
Install using Homebrew (Darwin)
brew install uv
Install using standalone installer (Darwin, Linux, or Windows Subsystem for Linux [WSL])
curl -LsSf https://astral.sh/uv/install.sh | sh
Install using Winget (Windows Powershell)
winget install --id=astral-sh.uv -e
If you do not have rustup installed, run the following command.
Install using Homebrew (Darwin)
brew install rustup
Install using standalone installer (Darwin, Linux or Windows Subsystem for Linux [WSL])
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
Install using Winget (Windows Powershell)
winget install --id Rustlang.Rustup
After running rustup in your command line, you should be able to validate correct installations
as such:
rustc --version
cargo --versionIf you do not have maturin installed, run the following command.
Install using Homebrew (Darwin)
brew install maturin
Build from Source using cargo (Linux, Powershell and Windows Subsystem for Linux [WSL])
cargo install --locked maturin
Once you have all tools installed, you can clone the current repository and
install any version of Python above version 3.9 for this project. The following
commands help you set up and activate a Python virtual environment where uv
can download project dependencies from the PyPI open-sourced registry defined
under pyproject.toml file.
Set up environment and synchronize project dependencies
git clone git@github.com:krutt/oxeye.git
cd oxeye
uv venv --python 3.9.6
source .venv/bin/activate
uv sync --dev --seed
- Cross-check and update language references
- Implement Go to definitions
- อัญชัญ - Anchan typeface by Alisara Zilch
- BlockStreamResearch/SimplicityHL - Rust-like high-level language that compiles down to Simplicity bytecode. Work in progress.
- BlockStreamResearch/simplicity - Simplicity is a blockchain programming language designed as an alternative to Bitcoin script.
- BlockStreamResearch/rust-simplicity - Official Rust library for Simplicity language
- Simplicity: Next-Generation Smart Contracts for Bitcoin - Developers write SimplicityHL, full nodes execute Simplicity.
- Tower LSP - Language Server Protocol implementation written in Rust
This project is licensed under the terms of the MIT license.