#text #editor #terminal #competitive #modal

bin+lib accepted

A text editor to be ACCEPTED

24 releases

✓ Uses Rust 2018 edition

0.2.2 Jun 28, 2019
0.2.1 May 2, 2019
0.2.0 Feb 25, 2019
0.1.20 Jan 17, 2019
0.1.11 Sep 30, 2018

#5 in Text editors

Download history 241/week @ 2019-07-06 1/week @ 2019-07-13 26/week @ 2019-07-20 28/week @ 2019-07-27 55/week @ 2019-08-03 40/week @ 2019-08-10 2/week @ 2019-08-17 74/week @ 2019-08-24 101/week @ 2019-08-31 29/week @ 2019-09-07 186/week @ 2019-09-14 350/week @ 2019-09-21 5/week @ 2019-09-28 34/week @ 2019-10-05 25/week @ 2019-10-12

205 downloads per month

MIT license

195KB
5.5K SLoC

Accepted

crates.io Build Status Join the chat at https://gitter.im/Accepted-text-editor/community tokei

A terminal text editor to be ACCEPTED.

Accepted screenshot

Description

A modal text editor for competitive programmer written with Rust.

Currently Accepted supports Rust and C++.

Features

  • Preconfigured for Rust and C++
  • Autoformat with Rustfmt / ClangFormat / or specify with configuration
  • Completion with RLS / Clangd / or Other LSP servers
  • Auto compile and show compiler messages (Supports rustc / gcc / clang)
  • Easy to test a single a code
  • VScode style snippet support
  • Mouse support
  • rmate protocol

Install

You need nightly Rust.

$ cargo install accepted

If you want to install HEAD version, you can install from git to

$ cargo install -f --git=https://github.com/hatoo/Accepted

For Rust users

Install rust components.

$ rustup component add rls-preview
$ rustup component add rust-src
$ rustup component add rustfmt-preview

For C++ users

Install clang, clang-format and clangd.

Usage

$ acc [file]

TODO: More precisely.

Basic

Many commands of acc is same as Vim.

i, I, a, A, o, O to insert mode and Esc to return.

hjkl, w, e, b to move cursor.

y, d, c, v, V works like vim

Space Prefix

Some of commands can run with space as a prefix.

SPACE -> q to Quit.

SPACE -> s to Save.

SPACE -> a to Save As.

SPACE -> y to Copy all to clipboard

SPACE -> SPACE to Rustfmt.

SPACE -> t to compile and run with clipboard input.

SPACE -> T to compile (optimized) and run with clipboard input.

SPACE -> q to Quit.

SPACE -> r to Start rmate server

Configuration

You can configure this by toml file placed in [config_dir]/acc/config.toml

config_dir is defined in here.

Below is default configure. You can override with your own configure.

# Configure to defaults
[file_default]
indent_width = 4
# Set true if you are running in legacy terminal which has no true color
ansi_color = false

# Configure for *.rs files
[file.rs]
# Setting compiler and its type.
compiler = { command=["rustc", "$FilePath$", "-Z", "unstable-options", "--error-format=json"], type="rustc", optimize_option=["-O"] }
# Setting LSP server command
lsp = ["rls"]
# Setting formatter command
formatter = ["rustfmt"]

[file.cpp]
# Configure for *.cpp files
# Respect clang-format
indent_width = 2
compiler = { command=["clang", "$FilePath$", "-o", "$FileStem$"], type="gcc", optimize_option=["-O2"] }
lsp = ["clangd"]
formatter = ["clang-format"]

Snippet Support

This supports vscode style snippet.

You can specify snippet files in configure

# On *.rs files
[file.rs]
# Use a snippet in this path
snippets=["~/.config/acc/snippet.json"]

Contribution

Any kind of contribution including feature request is welcome!!

Dependencies

~10MB
~216K SLoC