Commit Graph

173 Commits

Author SHA1 Message Date
Přemysl Eric Janouch 24401825b4
Add a missing case break 2022-01-08 11:23:36 +01:00
Přemysl Eric Janouch 2bfb490798
Add and bind an action to center the cursor
"z" stands for VIM's "zz".
2022-01-08 11:17:24 +01:00
Přemysl Eric Janouch 338d00d605
Do not crash on opendir() failures
Show an error message, and a way out.
2021-11-09 07:52:48 +01:00
Přemysl Eric Janouch 015652e379
Fix build with recent ncurses
Easily gained, easily lost.  No more ^S binding.
2021-11-09 07:45:20 +01:00
Přemysl Eric Janouch c298b6fc97
bash integration: add helpers to command history 2021-11-05 22:11:30 +01:00
Přemysl Eric Janouch 7c2ab8ab59
zsh integration: add helpers to command history 2021-11-05 21:54:56 +01:00
Přemysl Eric Janouch e423a3a1b1
Add clang-format configuration, clean up 2021-11-05 21:34:05 +01:00
Přemysl Eric Janouch 916f354c9b
Move the cursor to just created directories 2021-10-30 12:32:40 +02:00
Přemysl Eric Janouch 050f875c47
Clean up 2021-10-30 12:13:45 +02:00
Přemysl Eric Janouch aeffe40efc
Bind ^S to search, as in Emacs, with a trick
We heavily depend on ncurses anyway, so no worries about portability.
2021-10-18 11:23:17 +02:00
Přemysl Eric Janouch 536aa57761
Slightly optimize very large directories
Cumulatively 10% of user time, give or take.

These are mainly pointless multibyte to wide string conversions.

The hit to source code readibility is minimal.
2021-10-05 21:01:32 +02:00
Přemysl Eric Janouch 0d10ae06e6
Measured stat performance, io_uring not worth it
Large directories are slow for different reasons.
2021-10-05 19:18:15 +02:00
Přemysl Eric Janouch e1b0831854
Don't reload on sort changes
It is unexpected behaviour, and likes to take too long.
2021-09-26 09:38:16 +02:00
Přemysl Eric Janouch 4e93dfbb8d
Add a comment about libacl
So that I don't repeat my actions in the future.
2021-09-26 09:19:54 +02:00
Přemysl Eric Janouch 8a6bb54eb5
Ignore empty XDG_CONFIG_DIRS
As the specification says we should.  GLib does this as well.

It is still possible to achieve an empty set by using ":",
which are two non-absolute paths that should be ignored.
GLib doesn't implement this.  Thus, we're now better than GLib.
2021-09-26 08:59:57 +02:00
Přemysl Eric Janouch 4ef7c9edf7
Makefile: make the static build a non-phony target 2021-07-19 09:28:50 +02:00
Přemysl Eric Janouch 3eea106c3c
Explicitly disable GCC's -Wmisleading-indentation 2021-07-19 09:23:28 +02:00
Přemysl Eric Janouch 7de8c84e8f
Fix a signedness compiler warning 2021-07-19 09:12:17 +02:00
Přemysl Eric Janouch e17c5e2083
Bind F6 to a rename prompt
Mostly just so that the F7 binding isn't completely alone.

Since Shift-F6 isn't something we can just bind to, use a prefill.
2021-07-17 14:47:50 +02:00
Přemysl Eric Janouch 9bd3739122
Bind F7 to an mkdir prompt
This might have needed more thought, but we'll see.
2021-07-17 14:41:57 +02:00
Přemysl Eric Janouch ec1f1031cc
Implement search iteration
The interactive search now has its own keymap, overriding "input".

Closes #5
2021-07-17 14:19:37 +02:00
Přemysl Eric Janouch bc99b3dd48
Add a right-side prompt to the search 2021-07-17 13:04:42 +02:00
Přemysl Eric Janouch e948741864
Enable pushing the search in a certain direction
We want to make it possible to iterate all current matches.
2021-07-17 08:49:54 +02:00
Přemysl Eric Janouch 0adbac2066
Make search() return the number of matches 2021-07-17 07:54:03 +02:00
Přemysl Eric Janouch 2238db5a4e
Make removing characters invoke g.editor_on_change 2021-07-17 07:24:16 +02:00
Přemysl Eric Janouch 98612f5492
Improve C-char parsing
I was hoping that a superoptimiser would help me find a miraculous
branchless equation to cover it, but in the end the branching
doesn't hurt at all in our case.

It's more readable than `(((char >> 2) - 0x38) & 0x60) ^ char`
or `(char ^ 0x40) & (((char >> 1) ^ 0x20) | 0x5f)`.
2021-07-09 05:16:37 +02:00
Přemysl Eric Janouch 1034321f81
sdn-install: explain why -dot is experimental
Add an explanatory link, so that I don't need to look it up again.
2021-07-07 22:13:46 +02:00
Přemysl Eric Janouch e7da32160c
Makefile: fix version extraction
Regression introduced by cc59fcf.
2021-07-07 21:21:52 +02:00
Přemysl Eric Janouch fdb338fe12
Allow binding to custom key sequences
And document this feature in the manual page.
2021-07-07 21:21:32 +02:00
Přemysl Eric Janouch 9056ef4194
README.adoc: make use of the "plus" attribute 2020-11-07 03:22:51 +01:00
Přemysl Eric Janouch b8a4742fb9
sdn.1: refer to a better manual page 2020-11-05 01:24:05 +01:00
Přemysl Eric Janouch c999e5a8e4
sdn.1: take care about sentence spacing
For more info, see e.g.
https://github.com/asciidoc/asciidoc-py3/issues/137

I'll probably commit to mandoc here but scdoc is appealing.

Somewhat sadly, it explicitly suppresses sentence spacing
but I'm wondering whether it couldn't be reimplemented better,
in a more AsciiDoc-like fashion.
2020-10-29 19:22:20 +01:00
Přemysl Eric Janouch 07ef834a1e
Include a header required for kill()
Yet, this program remains fairly unportable.
2020-10-29 03:24:37 +01:00
Přemysl Eric Janouch 997f5c25a2
sdn.1: improve wording about envvars 2020-10-27 14:58:23 +01:00
Přemysl Eric Janouch 39e68a977c
sdn.1: fix default key binding references 2020-10-27 14:46:04 +01:00
Přemysl Eric Janouch c20d3780b2
Make the manpages mostly acceptable
Closes #1
2020-10-27 04:17:52 +01:00
Přemysl Eric Janouch 22725ba3b7
Update README.adoc
I've put the project in AUR, it seems to deserve it.
2020-10-27 01:16:07 +01:00
Přemysl Eric Janouch df046bb071
Add some mediocre manpages
I'm not particularly happy to write in mdoc but here goes.
2020-10-26 20:46:09 +01:00
Přemysl Eric Janouch 0c1a8d9902
Implement the --version option
Since we have a version number at all, even if it's meaningless.
2020-10-26 19:07:47 +01:00
Přemysl Eric Janouch cc59fcfb41
CMakeLists.txt: cleanup 2020-10-26 18:56:14 +01:00
Přemysl Eric Janouch c88566e7bb
Bind F1 to show the help 2020-10-25 08:19:49 +01:00
Přemysl Eric Janouch 39c840cd74
Mark a minor issue for later resolution 2020-10-24 19:28:11 +02:00
Přemysl Eric Janouch f231828e8d
sdn-install: bash: fix UTF-8 collisions 2020-10-24 19:27:07 +02:00
Přemysl Eric Janouch 1318c4983f
Makefile: make portable, support static linking
We can happily stick to POSIX and the usual variable names,
with the following exceptions:
 - pkg-config(1) is used to find libraries and compile flags
 - the new "static" target uses non-standard compiler
   and linker flags, though it's not the default target

sdn is predestined for wild distribution,
even the dynamically linked libc is rather suboptimal.
2020-10-23 08:22:59 +02:00
Přemysl Eric Janouch c503954f44
Cleanup
The wchar_t variant of compute_width() is no longer needed.

So all in all the better help has saved code.
2020-10-23 07:53:37 +02:00
Přemysl Eric Janouch 77973fc026
Group help message by action
Considerably more useful and concise.
2020-10-23 03:51:26 +02:00
Přemysl Eric Janouch 61be9528e4
Bind M-Up to the "parent" action
Taken from Windows Explorer, which previously used Backspace.

We might want to use h/l for parent/choose by default.
2020-10-23 03:38:47 +02:00
Přemysl Eric Janouch 2313485970
Bind C-d in the editor
We do get these as a key, after all.

Closes #4
2020-10-23 01:37:14 +02:00
Přemysl Eric Janouch 20c883fb8a
Implement C-v in the editor
Not completely happy with the explicit `halfdelay (1)`.

Updates #4
2020-10-23 01:37:07 +02:00
Přemysl Eric Janouch bbf97f6d3d
Implement C-u C-k in the editor
Updates #4
2020-10-23 01:21:25 +02:00