jmacdonald / amp Goto Github PK
View Code? Open in Web Editor NEWA complete text editor for your terminal.
Home Page: https://amp.rs
License: Other
A complete text editor for your terminal.
Home Page: https://amp.rs
License: Other
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.
I'd like to use this on Android (via termux) but changes were made early 2017 to fix termion on these targets. Your fork is something like October 2016 which hasn't got the fixes
So that the N key will be mapped to J in colemak, and so on in different layouts.
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.
macOS version: 10.13.2
brew --version
: 1.5.2
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!
It would be cool to install amp with cargo install amp
:)
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.
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/
To compile amp you also need openssl
and zlib
. This might be helpful to mention ;-)
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.
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?
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.
Hi!
Looks like the editor significantly lags near the end of huge files. For example, for https://github.com/rust-lang/rust/blob/5e7fd65419384e5322fe18d3c6ea37e59860a9bc/src/libsyntax/parse/parser.rs, cursor movements and symbol navigation feels very slow near the end of the file.
Also, I really admire the focus on the right usability things! Enter
, f
, fuzzy file search from the get-go are really crucial feature from my point of view, ๐ โค๏ธ
~/.config/amp/syntaxes
amp
error: Failed to load user syntaxes: ParseSyntax(TypeMismatch)
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.
https://amp.rs/docs/installation/
Remove bash
from the last line.
Backspace leaves you in insert mode, which is inconsistent with the other delete commands and undocumented.
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.
Can you include some compiled binaries in release?
Commands not mention in the docs (besides the ones fixed in #53):
u
) and redo (?).D
, C
).There are probably others I'm missing.
Is racer support planned in the future? I could look into it
[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.
We currently split tokens by whitespace when producing jump mode tokens. We should extend this to split on the aforementioned characters to provide more suitable jump points.
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.
The documentation mentions git integration, but I am unable to find any information on how to use this feature.
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.
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 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.
It seems like the D
and C
commands can add a trailing newline to the file.
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:
move_(up | down | left | right)
to_(next | previous)_word
to_(start | end)_of_line
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 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.
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.
B
.s
."Unable to save buffer"
buffer::close
asks if we want to exit if the buffer hasn't been saved, but application::exit
doesn't. Shouldn't application::exit
ask that too ?
=> 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
Amp should support elastic tabstops.
If you want to ship binary releases (you should!), I recommend looking into https://github.com/japaric/trust/ :)
will this project support windows?
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.
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?
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).
https://github.com/gchp/iota seems to be similiar to this project, there may be things from both sides that can be used on the other projects.
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.
How to reproduce:
:set ff=dos
)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:
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 :)
Since there is a limited number of two-character tags available, we should restrict them to those tokens that are actually visible.
Entered exclusively from normal mode, visual mode should handle all of the navigational commands from normal mode, as well as supporting jump mode navigation.
Add support for .editorconfig
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`.
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>
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.