GithubHelp home page GithubHelp logo

jmacdonald / amp Goto Github PK

View Code? Open in Web Editor NEW
3.6K 3.6K 102.0 2.11 MB

A complete text editor for your terminal.

Home Page: https://amp.rs

License: Other

Rust 99.68% Nix 0.32%
rust terminal text-editor vim

amp's People

Contributors

betelgeuse1 avatar bjorn-ove avatar blackyoup avatar ccapitalk avatar cecton avatar christoph-heiss avatar dependabot[bot] avatar euhmeuh avatar florianjacob avatar gitsquared avatar jmacdonald avatar johnmw avatar king6cong avatar kyeah avatar lberrymage avatar logankaser avatar lord-re avatar neelchotai avatar oldaccountdeadname avatar timotk avatar vladimyr avatar zegnat avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

amp's Issues

Syntax highlighting broken

Hey.

Awesome project!

Just noticed the syntax highlighting appears to be broken. I don't think it's capturing the end of scopes properly?

amp-highlighting-rust.

Runtime theme loading

Looks like syntaxes are dynamically loaded, I started down a rabbit hole to have themes dynamically loadable via a themes directory but then got distracted.

Anyway, it would be cool if we could runtime scan for tmThemes. And even just an outline of how to do it would be helpful.

Add documentation

Hi there, I just found this project, very promising. ๐Ÿ˜„

I figured out I need to use nightly rust to compile it, but wen I try to run ./amp --help, I get the following:

$ cargo run -- --help
     Running `target/debug/amp --help`
thread '<main>' panicked at 'Ran into an error trying to open --help.', src/models/application/mod.rs:60
note: Run with `RUST_BACKTRACE=1` for a backtrace

Also, (maybe related, maybe something different?), when I run amp without arguments, I get a blank terminal which doesn't respond to any keys (CTRL^C etc.), and I need to SIGKILL amp to stop it again.

I'm using rustc 1.8.0-nightly (4b615854f 2016-01-26) on Linux.

error: Could not compile `amp`.

System details

macOS version: 10.13.2
brew --version: 1.5.2

Relevant console output

brew tap jmacdonald/amp && brew install amp

==> cargo build --release
Last 15 lines from /Users/mjswensen/Library/Logs/Homebrew/amp/01.cargo:
error: linking with `cc` failed: exit code: 1
  |
  = note: "cc" "-m64" "-L" "/usr/local/Cellar/rust/1.23.0/lib/rustlib/x86_64-apple-darwin/lib" "/private/tmp/amp-20180126-92710-153fq2v/amp-0.3.2/target/release/deps/amp-5684d04b7fc51d18.amp0.rcgu.o" "-o" "/private/tmp/amp-20180126-92710-153fq2v/amp-0.3.2/target/release/deps/amp-5684d04b7fc51d18" "/private/tmp/amp-20180126-92710-153fq2v/amp-0.3.2/target/release/deps/amp-5684d04b7fc51d18.crate.allocator.rcgu.o" "-Wl,-dead_strip" "-nodefaultlibs" "-L" "/private/tmp/amp-20180126-92710-153fq2v/amp-0.3.2/target/release/deps" "-L" "/private/tmp/amp-20180126-92710-153fq2v/amp-0.3.2/target/release/build/libgit2-sys-098b69243984559f/out/lib" "-L" "/private/tmp/amp-20180126-92710-153fq2v/amp-0.3.2/target/release/build/libssh2-sys-98303c5bba578b78/out/lib" "-L" "/usr/local/opt/[email protected]/lib" "-L" "/private/tmp/amp-20180126-92710-153fq2v/amp-0.3.2/target/release/build/termbox-sys-5ebfe27f44b739b6/out/lib" "-L" "/private/tmp/amp-20180126-92710-153fq2v/amp-0.3.2/target/release/build/miniz-sys-5f639cdb47593da9/out" "-L" "/private/tmp/amp-20180126-92710-153fq2v/amp-0.3.2/target/release/build/onig_sys-592e34a394c11b60/out/build" "-L" "/usr/local/Cellar/rust/1.23.0/lib/rustlib/x86_64-apple-darwin/lib" "/private/tmp/amp-20180126-92710-153fq2v/amp-0.3.2/target/release/deps/libamp-7432a0e02b68ac48.rlib" "/private/tmp/amp-20180126-92710-153fq2v/amp-0.3.2/target/release/deps/libtermion-e66342982eee5946.rlib" "/private/tmp/amp-20180126-92710-153fq2v/amp-0.3.2/target/release/deps/libscribe-b44ea9dbe935b3a9.rlib" "/private/tmp/amp-20180126-92710-153fq2v/amp-0.3.2/target/release/deps/liberror_chain-225ec74a61477073.rlib" "/private/tmp/amp-20180126-92710-153fq2v/amp-0.3.2/target/release/deps/libgit2-e806379ea48de4e1.rlib" "/private/tmp/amp-20180126-92710-153fq2v/amp-0.3.2/target/release/deps/libapp_dirs-b4875c00acf3bf7f.rlib" "/private/tmp/amp-20180126-92710-153fq2v/amp-0.3.2/target/release/deps/libunicode_segmentation-7fb605f832b80451.rlib" "/private/tmp/amp-20180126-92710-153fq2v/amp-0.3.2/target/release/deps/liberror_chain-065b0874ae3caa9b.rlib" "/private/tmp/amp-20180126-92710-153fq2v/amp-0.3.2/target/release/deps/libregex-86df2a7120745290.rlib" "/private/tmp/amp-20180126-92710-153fq2v/amp-0.3.2/target/release/deps/libaho_corasick-7d7441f3cb157eac.rlib" "/private/tmp/amp-20180126-92710-153fq2v/amp-0.3.2/target/release/deps/libutf8_ranges-042776cb20b1a62f.rlib" "/private/tmp/amp-20180126-92710-153fq2v/amp-0.3.2/target/release/deps/libclipboard-132e5874f63c62e5.rlib" "/private/tmp/amp-20180126-92710-153fq2v/amp-0.3.2/target/release/deps/libsmallvec-88250473b26dac28.rlib" "/private/tmp/amp-20180126-92710-153fq2v/amp-0.3.2/target/release/deps/libregex_syntax-f8ef34fc8d2d89e1.rlib" "/private/tmp/amp-20180126-92710-153fq2v/amp-0.3.2/target/release/deps/libpad-af40836f5eaf8ddb.rlib" "/private/tmp/amp-20180126-92710-153fq2v/amp-0.3.2/target/release/deps/libunicode_width-7b0c84f52388a24c.rlib" "/private/tmp/amp-20180126-92710-153fq2v/amp-0.3.2/target/release/deps/liburl-2a3990a068032482.rlib" "/private/tmp/amp-20180126-92710-153fq2v/amp-0.3.2/target/release/deps/libidna-59724bb287671349.rlib" "/private/tmp/amp-20180126-92710-153fq2v/amp-0.3.2/target/release/deps/libunicode_normalization-01398635c2560b4f.rlib" "/private/tmp/amp-20180126-92710-153fq2v/amp-0.3.2/target/release/deps/libunicode_bidi-af83364affc0aad8.rlib" "/private/tmp/amp-20180126-92710-153fq2v/amp-0.3.2/target/release/deps/libmatches-b6e54ecbffce67f9.rlib" "/private/tmp/amp-20180126-92710-153fq2v/amp-0.3.2/target/release/deps/libobjc_foundation-a22831537a649bcc.rlib" "/private/tmp/amp-20180126-92710-153fq2v/amp-0.3.2/target/release/deps/libblock-19e62031ef3f1e48.rlib" "/private/tmp/amp-20180126-92710-153fq2v/amp-0.3.2/target/release/deps/liblibgit2_sys-044b05748c92d252.rlib" "/private/tmp/amp-20180126-92710-153fq2v/amp-0.3.2/target/release/deps/libcurl_sys-87c3162b3db93a2a.rlib" "/private/tmp/amp-20180126-92710-153fq2v/amp-0.3.2/target/release/deps/liblibssh2_sys-c9c25b68c0e31c1d.rlib" "/private/tmp/amp-20180126-92710-153fq2v/amp-0.3.2/target/release/deps/libopenssl_sys-eb3619330759a60e.rlib" "/private/tmp/amp-20180126-92710-153fq2v/amp-0.3.2/target/release/deps/liblibz_sys-48ec0f882056f2ce.rlib" "/private/tmp/amp-20180126-92710-153fq2v/amp-0.3.2/target/release/deps/libluthor-d6675f0d534f4cc8.rlib" "/private/tmp/amp-20180126-92710-153fq2v/amp-0.3.2/target/release/deps/libthread_local-648620192c2d125b.rlib" "/private/tmp/amp-20180126-92710-153fq2v/amp-0.3.2/target/release/deps/libthread_id-19797651374cf87b.rlib" "/private/tmp/amp-20180126-92710-153fq2v/amp-0.3.2/target/release/deps/libbloodhound-f5941a1ad09c0c4e.rlib" "/private/tmp/amp-20180126-92710-153fq2v/amp-0.3.2/target/release/deps/libwalkdir-ff2555de033c09b7.rlib" "/private/tmp/amp-20180126-92710-153fq2v/amp-0.3.2/target/release/deps/libsame_file-8e6b939923e1fb95.rlib" "/private/tmp/amp-20180126-92710-153fq2v/amp-0.3.2/target/release/deps/libglob-6fb1885ffa3defb5.rlib" "/private/tmp/amp-20180126-92710-153fq2v/amp-0.3.2/target/release/deps/libfragment-1d65161d5f462746.rlib" "/private/tmp/amp-20180126-92710-153fq2v/amp-0.3.2/target/release/deps/libbacktrace-3570945de16fa196.rlib" "/private/tmp/amp-20180126-92710-153fq2v/amp-0.3.2/target/release/deps/librustc_demangle-0ed373e48e5e3deb.rlib" "/private/tmp/amp-20180126-92710-153fq2v/amp-0.3.2/target/release/deps/libcfg_if-d8eba8e635f4be3d.rlib" "/private/tmp/amp-20180126-92710-153fq2v/amp-0.3.2/target/release/deps/libobjc_id-2415fcab6f5e9cab.rlib" "/private/tmp/amp-20180126-92710-153fq2v/amp-0.3.2/target/release/deps/libobjc-21f00305b3ffb90d.rlib" "/private/tmp/amp-20180126-92710-153fq2v/amp-0.3.2/target/release/deps/libmalloc_buf-9246794bd36eb191.rlib" "/private/tmp/amp-20180126-92710-153fq2v/amp-0.3.2/target/release/deps/libpercent_encoding-932723c0adffc35b.rlib" "/private/tmp/amp-20180126-92710-153fq2v/amp-0.3.2/target/release/deps/librustbox-ee6c2b81ef82355f.rlib" "/private/tmp/amp-20180126-92710-153fq2v/amp-0.3.2/target/release/deps/libbitflags-9a937c48e125844f.rlib" "/private/tmp/amp-20180126-92710-153fq2v/amp-0.3.2/target/release/deps/libtermbox_sys-f7025138e5b01205.rlib" "/private/tmp/amp-20180126-92710-153fq2v/amp-0.3.2/target/release/deps/libgag-dbebac7fac1a4dea.rlib" "/private/tmp/amp-20180126-92710-153fq2v/amp-0.3.2/target/release/deps/libtempfile-fc9cced3a12b7f56.rlib" "/private/tmp/amp-20180126-92710-153fq2v/amp-0.3.2/target/release/deps/libbitflags-4310ca2a84378df5.rlib" "/private/tmp/amp-20180126-92710-153fq2v/amp-0.3.2/target/release/deps/libmemchr-a2856ec26b17be6f.rlib" "/private/tmp/amp-20180126-92710-153fq2v/amp-0.3.2/target/release/deps/libsyntect-74223406047b74d1.rlib" "/private/tmp/amp-20180126-92710-153fq2v/amp-0.3.2/target/release/deps/libserde_json-e6077b509e6c59e2.rlib" "/private/tmp/amp-20180126-92710-153fq2v/amp-0.3.2/target/release/deps/libdtoa-6c1094f9d3d4440c.rlib" "/private/tmp/amp-20180126-92710-153fq2v/amp-0.3.2/target/release/deps/libitoa-4c01e9ea70b8a7c6.rlib" "/private/tmp/amp-20180126-92710-153fq2v/amp-0.3.2/target/release/deps/libfnv-286308532cdbca70.rlib" "/private/tmp/amp-20180126-92710-153fq2v/amp-0.3.2/target/release/deps/libflate2-1e11f7b74e22a1fd.rlib" "/private/tmp/amp-20180126-92710-153fq2v/amp-0.3.2/target/release/deps/libminiz_sys-6d16296bbf0b06d8.rlib" "/private/tmp/amp-20180126-92710-153fq2v/amp-0.3.2/target/release/deps/libbitflags-1e9d572282c5a94a.rlib" "/private/tmp/amp-20180126-92710-153fq2v/amp-0.3.2/target/release/deps/libbincode-c9566417e132eaf5.rlib" "/private/tmp/amp-20180126-92710-153fq2v/amp-0.3.2/target/release/deps/libplist-89cf05399e9527fb.rlib" "/private/tmp/amp-20180126-92710-153fq2v/amp-0.3.2/target/release/deps/libserde-8d1ba06d8375e362.rlib" "/private/tmp/amp-20180126-92710-153fq2v/amp-0.3.2/target/release/deps/libxml-eda2410d6ae7dc74.rlib" "/private/tmp/amp-20180126-92710-153fq2v/amp-0.3.2/target/release/deps/libbitflags-ef1b1baab8156dde.rlib" "/private/tmp/amp-20180126-92710-153fq2v/amp-0.3.2/target/release/deps/libchrono-57822d6f738fdba9.rlib" "/private/tmp/amp-20180126-92710-153fq2v/amp-0.3.2/target/release/deps/libnum-d891251d7fa3f919.rlib" "/private/tmp/amp-20180126-92710-153fq2v/amp-0.3.2/target/release/deps/libnum_rational-4304f8d6ff6439bf.rlib" "/private/tmp/amp-20180126-92710-153fq2v/amp-0.3.2/target/release/deps/libnum_bigint-e8529184897aec18.rlib" "/private/tmp/amp-20180126-92710-153fq2v/amp-0.3.2/target/release/deps/librand-ee817cc143ee39ae.rlib" "/private/tmp/amp-20180126-92710-153fq2v/amp-0.3.2/target/release/deps/libnum_complex-64b83890e93f9c67.rlib" "/private/tmp/amp-20180126-92710-153fq2v/amp-0.3.2/target/release/deps/librustc_serialize-940c200299c36a78.rlib" "/private/tmp/amp-20180126-92710-153fq2v/amp-0.3.2/target/release/deps/libtime-1958e4cbfc30c043.rlib" "/private/tmp/amp-20180126-92710-153fq2v/amp-0.3.2/target/release/deps/libbase64-d482b5d783df9630.rlib" "/private/tmp/amp-20180126-92710-153fq2v/amp-0.3.2/target/release/deps/libbyteorder-c446b2ff9b4b168a.rlib" "/private/tmp/amp-20180126-92710-153fq2v/amp-0.3.2/target/release/deps/libregex_syntax-46a9ba67f277fd26.rlib" "/private/tmp/amp-20180126-92710-153fq2v/amp-0.3.2/target/release/deps/libonig-ab40b979b6814a22.rlib" "/private/tmp/amp-20180126-92710-153fq2v/amp-0.3.2/target/release/deps/libonig_sys-4fb6d4e47266fa62.rlib" "/private/tmp/amp-20180126-92710-153fq2v/amp-0.3.2/target/release/deps/liblibc-f71a304c9897aecb.rlib" "/private/tmp/amp-20180126-92710-153fq2v/amp-0.3.2/target/release/deps/liblazy_static-8e83c3903dca9b04.rlib" "/private/tmp/amp-20180126-92710-153fq2v/amp-0.3.2/target/release/deps/libbitflags-2ebb9d5cc71e63bc.rlib" "/private/tmp/amp-20180126-92710-153fq2v/amp-0.3.2/target/release/deps/libyaml_rust-faebe390f78fceba.rlib" "/private/tmp/amp-20180126-92710-153fq2v/amp-0.3.2/target/release/deps/libwalkdir-97a598e206931474.rlib" "/private/tmp/amp-20180126-92710-153fq2v/amp-0.3.2/target/release/deps/libsame_file-88db3cc98d177498.rlib" "/private/tmp/amp-20180126-92710-153fq2v/amp-0.3.2/target/release/deps/libsafemem-5c35b304236da68d.rlib" "/private/tmp/amp-20180126-92710-153fq2v/amp-0.3.2/target/release/deps/libnum_iter-fcd5accb61e45f82.rlib" "/private/tmp/amp-20180126-92710-153fq2v/amp-0.3.2/target/release/deps/libnum_integer-3ff2825516f38b16.rlib" "/private/tmp/amp-20180126-92710-153fq2v/amp-0.3.2/target/release/deps/libnum_traits-7f37b0f3da3c490c.rlib" "/usr/local/Cellar/rust/1.23.0/lib/rustlib/x86_64-apple-darwin/lib/libstd-1066840d7e6956ae.rlib" "/usr/local/Cellar/rust/1.23.0/lib/rustlib/x86_64-apple-darwin/lib/libpanic_unwind-21f981c647b7bf0e.rlib" "/usr/local/Cellar/rust/1.23.0/lib/rustlib/x86_64-apple-darwin/lib/liballoc_jemalloc-bf83ac3154b02140.rlib" "/usr/local/Cellar/rust/1.23.0/lib/rustlib/x86_64-apple-darwin/lib/libunwind-48dcdd790a8dd163.rlib" "/usr/local/Cellar/rust/1.23.0/lib/rustlib/x86_64-apple-darwin/lib/liballoc_system-1071ae993f37c69b.rlib" "/usr/local/Cellar/rust/1.23.0/lib/rustlib/x86_64-apple-darwin/lib/liblibc-ecd13f184f8fe531.rlib" "/usr/local/Cellar/rust/1.23.0/lib/rustlib/x86_64-apple-darwin/lib/liballoc-52ac869ede6a8471.rlib" "/usr/local/Cellar/rust/1.23.0/lib/rustlib/x86_64-apple-darwin/lib/libstd_unicode-295411b4a3449f1c.rlib" "/usr/local/Cellar/rust/1.23.0/lib/rustlib/x86_64-apple-darwin/lib/libcore-f9d635782e34e49d.rlib" "/usr/local/Cellar/rust/1.23.0/lib/rustlib/x86_64-apple-darwin/lib/libcompiler_builtins-17b814a5b2f07f8f.rlib" "-framework" "AppKit" "-framework" "Foundation" "-l" "System" "-l" "iconv" "-framework" "Security" "-framework" "CoreFoundation" "-l" "curl" "-l" "ssl" "-l" "crypto" "-l" "z" "-l" "objc" "-l" "objc" "-l" "objc" "-l" "System" "-l" "resolv" "-l" "pthread" "-l" "c" "-l" "m"
  = note: Undefined symbols for architecture x86_64:
            "_OPENSSL_add_all_algorithms_noconf", referenced from:
                _libssh2_init in liblibssh2_sys-c9c25b68c0e31c1d.rlib(global.c.o)
          ld: symbol(s) not found for architecture x86_64
          clang: error: linker command failed with exit code 1 (use -v to see invocation)


error: aborting due to previous error

error: Could not compile `amp`.

Let me know if you need any additional information!

File search slow to open in directories with many files

Upon opening amp in the home directory and pressing Space to search, the program blocks for 30-40 seconds before being greeted by the search screen.

screen shot 2018-01-31 at 8 55 41 am

Environment:

OS: macOS 10.13.2
Processor: 2.8 GHz Intel Core i7
Memory: 16 GB 2133 MHz
Graphics: Radeon Pro 555

Installed via cargo: cargo install --git https://github.com/jmacdonald/amp/

Multi-cursor editing

The Kakoune editor is one of those that implements multi-cursor editing.
And it is very efficient, fast, and comfortable.
I think selection based editing is very cool, and combining it with multi-cursor editing makes a very good experience.
Implementing these in amp needs a redesign, but I think it would worth the work.

Can't seem to use the splash screen?

When starting amp, I get

         Amp v0.3.2
ยฉ 2015-2018 Jordan MacDonald

in the middle of the screen.
Nothing else.
Is surely isn't supposed to happen... is it?

Failure to compile because of SSL issues

I'm guessing this is just something I don't have installed, yet, but this is what I get when I try to install it via homebrew:

==> cargo build --release
Last 15 lines from /Users/jonathanturner/Library/Logs/Homebrew/amp/01.cargo:
            "_SSL_library_init", referenced from:
                _git_openssl_stream_global_init in liblibgit2_sys-044b05748c92d252.rlib(openssl_stream.c.o)
            "_SSL_load_error_strings", referenced from:
                _git_openssl_stream_global_init in liblibgit2_sys-044b05748c92d252.rlib(openssl_stream.c.o)
            "_SSLv23_method", referenced from:
                _git_openssl_stream_global_init in liblibgit2_sys-044b05748c92d252.rlib(openssl_stream.c.o)
          ld: symbol(s) not found for architecture x86_64
          clang: error: linker command failed with exit code 1 (use -v to see invocation)
          

error: aborting due to previous error

error: Could not compile `amp`.

To learn more, run the command again with --verbose.

If reporting this issue please do so at (not Homebrew/brew or Homebrew/core):
https://github.com/jmacdonald/homebrew-amp/issues

Anyone know which dependency is missing? If it's a missing dependency, guessing that should go in the docs also.

Error when loading sublime/Latex package

Steps

Observed

  • error: Failed to load user syntaxes: ParseSyntax(TypeMismatch)

Expected

  • No error.

Questions

  • What's the usual workflow when debugging user config?
  • Is there a command line flag to allow amp to generate verbose debug output?

ps. Thanks for the excellent work. A fast editor with well thought out, modern defaults, and without a bloated runtime or baroque, slow gc'd extension language is very much appreciated.

Investigate statically linked binary releases

Have just downloaded MacOS version from releases and getting the following error when trying to start it:

dyld: Library not loaded: /usr/local/opt/libssh2/lib/libssh2.1.dylib
  Referenced from: /Users/inikolaev/downloads/amp
  Reason: image not found
Abort trap: 6

Am I expected to install libssh2 or should it be working out-of-the-box? Wouldn't like to install anything though.

Documentation of keybinds is incomplete

Commands not mention in the docs (besides the ones fixed in #53):

  • Undo (u) and redo (?).
  • Delete and change to end of line (D, C).

There are probably others I'm missing.

Racer support

Is racer support planned in the future? I could look into it

Can't comile amp on NixOS

[nix-shell:~/dev/amp]$ cargo build --release
   Compiling miniz-sys v0.1.10
   Compiling backtrace-sys v0.1.15
   Compiling cmake v0.1.26
   Compiling termbox-sys v0.2.10
   Compiling base64 v0.6.0
   Compiling xcb v0.7.7
   Compiling termion v1.1.1 (https://github.com/jmacdonald/termion?branch=esc#09f4c021)
   Compiling time v0.1.38
error: failed to run custom build command for `termbox-sys v0.2.10`
process didn't exit successfully: `/home/mk/dev/amp/target/release/build/termbox-sys-93246560dcc0a181/build-script-build` (exit code: 101)
--- stdout
running: "git" "clone" "https://github.com/nsf/termbox" ".termbox"

--- stderr
fatal: Zielpfad '.termbox' existiert bereits und ist kein leeres Verzeichnis.
thread 'main' panicked at 'assertion failed: cmd.stdout(Stdio::inherit()).stderr(Stdio::inherit()).status().unwrap().success()', /home/mk/.cargo/registry/src/github.com-1ecc6299db9ec823/termbox-sys-0.2.10/build.rs:87:5
note: Run with `RUST_BACKTRACE=1` for a backtrace.

Support the Language Server Protocol

Have you considered supporting the language server protocol (LSP)?

Supporting this directly in the editor might be a good idea since it would already cover a lot of the use cases that would otherwise be relegated to a plugin API. Pretty much all of the other major editors (atom, emacs, code, (neo)vim, etc.) have decent support for the LSP at this point and most major languages have good server implementations too.

Implement view scrolling

Currently, when the cursor leaves the visible text area, the text area is not scrolled to follow the cursor.

There should be a struct to represent the visible text area, with dimensions and methods to scroll up/down/left/right by x lines. A more functional method could automatically shift the area to display a given Position, which would make it easier for to update the area following a cursor update.

Plugin support?

I know this is a fairly new project, so I wouldn't expect plugin support to be available immediately, but I figured I'd open a dialog about it since no one else has yet. Are you planning support for plugins in the future?

I'm not 100% sure yet how you'd implement this, but plugins are definitely a necessity if you want to support the many languages and frameworks that are popping up every day.

Tabbing within line content doesn't work

Tabbing at the start of a line or inside of leading whitespace correctly indents the current line. However, tabbing within a line (after non-whitespace content) also indents the current line, which is incorrect.

We should update the tab key handler (in insert mode) to insert the indentation content at the cursor instead of at the start of the line, which should address this issue and maintain the current correct behaviour.

Fully implement cursor type

Since cursors will need to consult data to do bounds-checking, we'll need to wrap the data in a reference counter:

struct Cursor {
    data: Rc<GapBuffer>,
    position: Position,
}

We'll want to implement the following methods, to start:

  1. move_(up | down | left | right)
  2. to_(next | previous)_word
  3. to_(start | end)_of_line

Files always have an empty line at the end: no implicit terminating newline?

When editing existing source files created by other editors such as vim, I see that files in amp always have an empty line at the end. This is likely because amp doesn't terminate the last line of a file with a newline.

Though there are some editors out there that follow the same behaviour as amp, it's not the convention used by most editors for UNIX-like systems. The newline is there to make printing them to a terminal work correctly (without messing up the next shell prompt), concatenation of multiple files using cat, etc.

How to do basic refactoring tasks.

How do you do some basic repetitive refactoring tasks like renaming all occurrences of a variable name in a file without a replace command? I know that you are planning to add it, but I was curious if there were another way to do something like that. Or do you use other tools for it?

I like the simplicity of amp, efficient without too many commands, and intuitive ones (like the jumping approach for moving around). I hope you can keep it in this direction.

Scrolling beyond file contents

If you press the scroll down key repeatedly, you can scroll over the edge of the file as far as you want. It only works with the scroll key, not the cursor, though, which stops correctly at the end of the file.

The cursor is not moved when scrolling, though, in case this is not intentional this might be a related issue.

Unable to save new buffer

Steps to reproduce:

  • Create a new buffer with B.
  • Save the new buffer with s.

Expected

  • Save the buffer, perhaps requesting a name beforehand.

Actual

  • Error: "Unable to save buffer"

Compilation failure in macOS

=> git clone https://github.com/jmacdonald/amp.git
=> cd amp
=> cargo build --release

Compiling same-file v1.0.0
Compiling percent-encoding v1.0.0
Compiling itoa v0.3.4
Compiling yaml-rust v0.3.5
Compiling log v0.3.8
Compiling utf8-ranges v0.1.3
Compiling cc v1.0.1
Compiling rustc-serialize v0.3.24
Compiling app_dirs v1.1.1
Compiling regex-syntax v0.4.1
Compiling libc v0.2.32
Compiling unicode-xid v0.0.4
Compiling block v0.1.6
error[E0619]: the type of this value must be known in this context
--> /Users/venkat/.cargo/registry/src/github.com-1ecc6299db9ec823/app_dirs-1.1.1/src/imp/platform/macos.rs:10:40
|
10 | Ok(Component::RootDir.as_ref().into())
| ^^^^

error: aborting due to previous error

error: Could not compile app_dirs.
warning: build failed, waiting for other jobs to finish...
error: build failed

Pls let me know if you want me to try anything and provide more info.

More Info:

macOs High Sierra
version 10.13.2

Tab character display

Amp doesn't support tab character display. We should update the view to treat tabs as spaces (with a fixed/constant width, potentially replacing with a configurable value in the future).

Tab character input requires configuration support (ideally per-format) to decide between spaces and tabs; we can tackle that as a separate feature.

Scroll slow and can not stop on mac.

Hi, this text-editor are so nice. Just only one question on mac, if I scroll it down using touch board or using scroll on mouse, the view will continue scroll down and hard to stop it. Seems this is very slow when scroll, any fix for this?

Can't scroll to the end of a buffer, nor save it.

I was trying to write a blogpost in a toml file with markdown.
When i reached the bottom of the window and kept on writing amp didn't scrolled horizontally nor vertically to display where i was writing.

Increasing the window size worked but decreasing it to its previous size still didn't show the bottom of the buffer.

I can't even save the buffer.

After deleting the last line I could save. I rewrote it and it kept on working (except the display bug).

Add support for empty workspaces

Currently, amp needs to be started with an initial buffer. We should be able to start it without any arguments, and have it display a "blank slate", with copy relating to amp's open mode.

Files with DOS lines ending are not correctly rendered

How to reproduce:

  • create a file with a few lines and set the line ending to DOS style (using vim: :set ff=dos)
  • open that file with amp

Lines should be rendered in a weird way, or not rendered at all. On a 7 lines file with DOS line endings, here is how it is displayed with current master:
ampdos

I also can't move through the buffer using cursor::move_up or cursor::move_down

I'd be happy to help fixing that but I'm not sure where to look at right now :)

Implement visual mode

Entered exclusively from normal mode, visual mode should handle all of the navigational commands from normal mode, as well as supporting jump mode navigation.

macOS build error

Just for report a bug:

brew install error.

==> cargo build --release
Last 15 lines from /Users/jintian/Library/Logs/Homebrew/amp/01.cargo:
            "_SSL_library_init", referenced from:
                _git_openssl_stream_global_init in liblibgit2_sys-044b05748c92d252.rlib(openssl_stream.c.o)
            "_SSL_load_error_strings", referenced from:
                _git_openssl_stream_global_init in liblibgit2_sys-044b05748c92d252.rlib(openssl_stream.c.o)
            "_SSLv23_method", referenced from:
                _git_openssl_stream_global_init in liblibgit2_sys-044b05748c92d252.rlib(openssl_stream.c.o)
          ld: symbol(s) not found for architecture x86_64
          clang: error: linker command failed with exit code 1 (use -v to see invocation)
          

error: aborting due to previous error

error: Could not compile `amp`.

Handle directory arguments

error: Is a directory (os error 21)
backtrace: stack backtrace:
   0:     0x5579027ffbac - <unknown>
   1:     0x5579027ffbe2 - <unknown>
   2:     0x5579026e76b9 - <unknown>
   3:     0x5579026e7744 - <unknown>
   4:     0x5579026db5b4 - <unknown>
   5:     0x55790269c1f4 - <unknown>
   6:     0x55790286da5e - <unknown>
   7:     0x5579028659fb - <unknown>
   8:     0x7fc5a91b9f49 - __libc_start_main
   9:     0x5579026973d9 - <unknown>
  10:                0x0 - <unknown>

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.