- python 3.9 and above - High-level general-purpose programming language
- pip - package installer for Python
pip install oxeye
And then you can start an LSP instance with the following command:
oxeye
Or 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
,gitignore
andlockfiles
- 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 --version
If 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.