Skip to content

hatoo/Accepted

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Apr 14, 2020
ca0ee10 · Apr 14, 2020
Feb 23, 2020
Feb 3, 2020
Apr 12, 2020
Mar 2, 2020
Mar 1, 2020
Jan 30, 2020
Apr 14, 2020
Apr 14, 2020
Sep 17, 2018
Feb 24, 2020
Feb 23, 2020

Repository files navigation

Accepted

crates.io Build Status Join the chat at https://gitter.im/Accepted-text-editor/community dependency status 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 TabNine / 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

You can open config file via $ acc --config easily.

config_dir is defined in here.

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

# Configure to defaults
[file_default]
# Put spaces instead of '\t' when tab key is pressed
hard_tab = false
indent_width = 4
# Set true if you are running in legacy terminal which has no true color
ansi_color = false
# Command for TabNine
tabnine = ["TabNine"]
# Set theme
# You can set either theme name which is bundled by `syntect` and file path for .tmTheme
theme = "Solarized (dark)"

# Configure for *.rs files
[file.rs]
# Setting compiler and its type.
compiler = { command=["rustc", "$FILE_PATH", "--error-format=json"], type="rustc", optimize_option=["-O"] }
# Setting LSP server command
lsp = ["rls"]
# Setting formatter command
formatter = ["rustfmt"]
# Command for testing
test_command = ["./$FILE_STEM"]

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

[file.c]
# Same as cpp
indent_width = 2
compiler = { command=["clang", "$FILE_PATH", "-o", "$FILE_STEM"], type="gcc", optimize_option=["-O2"] }
lsp = ["clangd"]
formatter = ["clang-format"]
test_command = ["./$FILE_STEM"]

[file.rb]
indent_width = 2

[file.go]
formatter = ["gofmt"]
hard_tab = true

Contribution

Any kind of contribution including feature request is welcome!!