Skip to content

Commit

Permalink
docs: Update installation instructions, README links
Browse files Browse the repository at this point in the history
  • Loading branch information
tomlin7 authored Nov 3, 2024
1 parent cef7755 commit 8bf062e
Showing 1 changed file with 99 additions and 73 deletions.
172 changes: 99 additions & 73 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,110 +1,136 @@
<h1 align="center">
<img src="https://github.com/tomlin7/Biscuit/assets/70792552/0ea8e958-92de-4659-b1c9-ab5a72f05d7d" width=500><br>
<a href=https://github.com/tomlin7/Biscuit/actions/workflows/nightly.yml>
<img src="https://img.shields.io/github/actions/workflow/status/tomlin7/biscuit/nightly.yml?style=for-the-badge">
</a>
<img alt="Project License" src="https://img.shields.io/github/license/tomlin7/Biscuit?style=for-the-badge">
<a href=https://github.com/tomlin7/Biscuit/releases>
<img alt="Download Latest" src="https://img.shields.io/github/v/release/tomlin7/biscuit?style=for-the-badge">
</a>
<img alt="GitHub closed pull requests" src="https://img.shields.io/github/issues-pr-closed-raw/tomlin7/Biscuit?style=for-the-badge">
</h1>
![image](https://github.com/user-attachments/assets/a578d600-a4a8-4ce4-904d-4aa0e73fc124)

A lightweight, fast code editor with extensions, semantic code completions, refactoring features, symbol references tracker, and more. Features include breakpoint-based code debugging, AI-assisted workflow, fast workspace search, and built-in Git support. Scroll down to see [biscuit in action](https://github.com/tomlin7/Biscuit/tree/main?tab=readme-ov-file#features).
Aesthetic, lightweight code editor with extension support. Draws inspiration from mainstream editors like VSC, Zed, and Vim. Hobby project.
> - - - - Check all extensions and their authors [`~extension repository`](https://tomlin7.github.io/biscuit-extensions/)
> - - - - Contributing/User guides, API reference [`~documentation`](https://tomlin7.github.io/biscuit)
> - - - - Scroll down to see list of all supported [`~features`](https://github.com/tomlin7/biscuit?tab=readme-ov-file#features)
![image](https://github.com/user-attachments/assets/d20a0ded-04a9-4f27-9729-3b41f1a70e92)
![image](https://github.com/user-attachments/assets/3ff11be7-754b-4159-87bd-0cf48406821d)
> Theme inspired by [`morhetz/gruvbox`](https://github.com/morhetz/gruvbox)
## `Installing`

- 🎀 **Explore all community-made extensions and their authors at the [Biscuit Extension Center](https://tomlin7.github.io/biscuit-extensions/)**
- 🪛 For contributing/user guides or API reference, check the [documentation here](https://tomlin7.github.io/biscuit)
- 🌟 Scroll down to the [features section](https://github.com/tomlin7/biscuit?tab=readme-ov-file#features) for a list of all features

## Installing

You can install the latest release from PyPI by running:

Install the latest release from PyPI by running:
```bash
$ pip install biscuit-editor
> pip install biscuit-editor
```
Quickly open up a project using **`biscuit path/to/src`** and start editing. See other [installation methods](https://tomlin7.github.io/biscuit/getting-started/installation/).

## `Contributing`

Try running `biscuit --version` in your terminal to check if the installation was successful.
> [!IMPORTANT]
> Linux distribtions require some system packages to be installed prior to the poetry installation.
>
> For Debian based distributions,
> ```bash
> $ sudo apt install python3-dev tcl-dev tk-dev \
> fontconfig libfontconfig1 libfontconfig1-dev \
> cmake cmake-data extra-cmake-modules build-essential
> $ python -m pip install scikit-build
> ```
>
> For Arch Linux based distributions,
> ```bash
> $ sudo pacman -Sy
> $ sudo pacman -S base-devel cmake extra-cmake-modules \
> fontconfig tcl tk
> $ python -m pip install scikit-build
> > $ python -m pip install tkextrafont
### Standalone Builds
- Grab the latest stable build from [**releases page**](https://github.com/tomlin7/Biscuit/releases)
- Unstable nightly builds from [GitHub actions](https://github.com/tomlin7/Biscuit/actions)
For compiling from source code, please check the [installation guide](https://github.com/tomlin7/Biscuit/tree/main/scripts).
## Contributing ❤️
Your contributions are very much appreciated!
Have a peek at the [contributing guide](https://github.com/tomlin7/Biscuit/blob/main/CONTRIBUTING.md) for a quick tour on project structure and to setup the environment. To contribute a new extension, check the [extension docs](https://github.com/tomlin7/biscuit-extensions).
- - - Please check the [docs](https://tomlin7.github.io/biscuit/getting-started/quick-start/) and [contributing guide](https://github.com/tomlin7/Biscuit/blob/main/CONTRIBUTING.md) for a quick tour of the project structure and to set up the environment.
- - - To make a new extension, read the [extension docs](https://github.com/tomlin7/biscuit-extensions)

<a href="https://github.com/tomlin7/biscuit/graphs/contributors">
<img src="https://opencollective.com/biscuit/contributors.svg" />
</a><br>

- For opening feature requests and bug reports, use the [issue tracker](https://github.com/tomlin7/Biscuit/issues)
- Community made extensions are published at the [extensions repository](https://github.com/tomlin7/biscuit-extensions)
## `Features`

## Features
### Language Server Support

- **Language Server Support** for code completions, refactoring, symbol references, and more
- code completions
- hover
- symbol outline (palette `Ctrl + J`)
- symbol references
- goto-definition/declaration

![peek](https://github.com/tomlin7/biscuit/assets/70792552/be132f5b-776c-4045-8a62-c9d29d463762)
More language servers are registered through extensions, see the [Rust](https://github.com/tomlin7/biscuit-extensions/blob/main/extensions/rust.py), [Typescript](https://github.com/tomlin7/biscuit-extensions/blob/main/extensions/javascript_typescript.py) extensions
for reference. Feel free to open issues/discussions for help!

![peek](https://github.com/user-attachments/assets/16350a91-8d87-422d-b779-1db21033e979)

<table>
<tr>
<img src=https://github.com/tomlin7/biscuit/assets/70792552/36589a2d-8f5f-4196-bc88-5b1800492076 height=270>
</tr>
<tr>
<img src=https://github.com/tomlin7/biscuit/assets/70792552/68a26ccb-b309-4c21-b75e-3e5cf5fa6500 height=270>
</tr>
</tr><br>
<figcaption>
<a href=https://github.com/tomlin7/biscuit/blob/main/src/biscuit/settings/theme/vscdark.py><code>Biscuit VS dark theme</code></a>
</figcaption>
</table>

<hr>
### Breakpoint-based Code Debugging

- breakpoints in multiple files
- variable inspection
- modify variables at runtime
- call stack

Built-in Python debugger is available right now, more debuggers can be registered through extensions.
- TODO: Debugger Adapter Protocol support, [DAP client](https://github.com/tomlin7/debug-adapter-client) integration

![breakpoint](https://github.com/user-attachments/assets/a34d6e59-4743-43ee-a1a1-b7a5eac589bf)

### Git Support
- Diff viewer
- Git operations GUI-fied (push, pull, commit, stage, unstage, switch branches)
- Clone repositories within editor, and open them up
- View GitHub issues/pr within editor (NOTE: will be converted to an extension)

![image](https://github.com/user-attachments/assets/c23c0338-7c19-4636-831e-3d97b539df46)
![image](https://github.com/user-attachments/assets/41cdbe73-4b24-4502-95f6-fcc17a2002be)

### Assistant

- Attach files for context in chat
- Generate terminal commands within integrated terminal (use `# prompt` in terminal, then accept/decline response)
- Run local LLMs with Ollama extension
- Google Gemini built-in support (key)

More providers can be added with extensions, see [ollama extension](https://github.com/tomlin7/biscuit-extensions/blob/main/extensions/ollama.py) for reference.

- **Breakpoint-based Code Debugging** with variable inspection, call stack, and more
![Assistant](https://github.com/user-attachments/assets/898d5223-87c2-4368-acd2-8ae060daab70)

![peek](https://github.com/tomlin7/biscuit/assets/70792552/29541b9e-e084-42bc-85b2-4d7c54cd8d34)
### Workspace Search
- regex support
- file preview, occurrence count, etc
- search within editors with find-replace widget

<hr>
![image](https://github.com/user-attachments/assets/6dd1baa2-c89c-437d-9613-00e72fa9e009)

- **AI Assisted Workflow** for refactoring, code generation, and more
### More features
- **Integrated Terminals**
- Set up and store run command for each editor for ease
- Use `# prompt here...` commands to generate commands with assistant (key)
- Multiple terminals can be opened (Built in support for powershell, bash, cmd, python REPL, etc.)

![image](https://github.com/user-attachments/assets/733fbd70-8377-4907-92fa-83e0dcad9368)

![peek](https://github.com/tomlin7/biscuit/assets/70792552/97913c12-5493-4783-b1f0-ee904f67ff2d)
- **Extension center**
- Install and manage all available extensions
- Filter all installed extensions
- Search for extensions

![image](https://github.com/user-attachments/assets/9f6d67f2-b00f-43e6-804a-8f66e03b8183)

<hr>
- Split-pane **Markdown** editor, HTML renderer
- Split-pane editing
- Syntax highlighting support
- TODO: CSS support for HTML editor

![image](https://github.com/user-attachments/assets/ac086e4d-023e-4dd1-ae26-96271d900656)

- **Fast Workspace Search** with regex support and file preview
- Rich Command palette (commands added to [commands.py](https://github.com/tomlin7/biscuit/blob/main/src/biscuit/commands.py) are automatically made available)
- **Drag and drop** to open files or folders in Biscuit
- Built-in [editorconfig](https://editorconfig.org/) support
- Toggle relative line numbering
- Formatter extensions support
- See [black](https://github.com/tomlin7/biscuit-extensions/blob/main/extensions/black.py), [Ruff](https://github.com/tomlin7/biscuit-extensions/blob/main/extensions/ruff.py), [YAPF](https://github.com/tomlin7/biscuit-extensions/blob/main/extensions/yapf.py), [autopep8](https://github.com/tomlin7/biscuit-extensions/blob/main/extensions/autopep8.py) for reference.

![image](https://github.com/user-attachments/assets/73a86fb6-89f8-4cd9-8552-5c1fb9c2e3b0)

![peek](https://github.com/tomlin7/biscuit/assets/70792552/de0540b2-2b34-4be6-aa86-97e17a20d47d)

<hr>
## `License`

- **Built-in Git Support** for version control and diff viewer
Biscuit uses the MIT License. For more information, see [LICENSE.md](https://github.com/tomlin7/Biscuit/blob/main/LICENSE.md).

![image](https://github.com/tomlin7/biscuit/assets/70792552/ad650048-7e74-420b-bd3a-d0c059ff69cd)
<a href=https://github.com/tomlin7/Biscuit/actions/workflows/nightly.yml><img src="https://img.shields.io/github/actions/workflow/status/tomlin7/biscuit/nightly.yml"></a>
<img alt="Project License" src="https://img.shields.io/github/license/tomlin7/Biscuit">
<a href=https://github.com/tomlin7/Biscuit/releases> <img alt="Download Latest" src="https://img.shields.io/github/v/release/tomlin7/biscuit"></a>
<img alt="GitHub closed pull requests" src="https://img.shields.io/github/issues-pr-closed-raw/tomlin7/Biscuit">

## License

Biscuit is released under the MIT License; for more information, see [LICENSE](https://github.com/tomlin7/Biscuit/blob/main/LICENSE.md).
![image](https://github.com/user-attachments/assets/0df70dbd-b4e2-46ae-9715-045bdf85ed13)

0 comments on commit 8bf062e

Please sign in to comment.