Fix an issue whereby the installer installed cheatsheets into the wrong
directory on Windows. This occurred because previously `path.Join` was
used where `path/filepath.Join` should have been used.
This matters, because the former always uses `/` as the path separator,
whereas the latter will use `/` or `\` as is appropriate for the
runtime environment.
This should resolve bullet point 4 in #665.
- Update the default config file to use `more` instead of `less` as the
default pager, in order to support Windows out-of-the-box. (#655, #665).
- Use `terminal` Chroma formatter (rather than `terminal16m`) in order
to accommodate less capable terminal emulators like `cmd.exe` by
default. Similarly, default to `colorize: false` in configs (changed
from `true`) (#665).
- Comment out default `style` in order to avoid printing ANSI color
codes into terminals without color support (#665)
- Attempt to intelligently choose a default editor, rather than rely on
a hard-coded `vim` in the configs. This should make it easier to use
`cheat` immediately without needing to specify configs. It should also
improve `cheat`'s Windows compatibility. (#665)
Fix the paginator when used in combination with the `-s` (search)
subcommand. Previously, it would not behave as intended, because `cheat`
was writing to `stdout` at inappropriate times.
Squashed commit of the following:
commit 5c322e79b7
Author: Chris Lane <chris@chris-allen-lane.com>
Date: Fri Mar 6 19:56:56 2020 -0500
docs(README): update the `README`
Update the `README` to document the improved config-generation
mechanism.
commit 803e1f014c
Author: Chris Lane <chris@chris-allen-lane.com>
Date: Fri Mar 6 19:19:49 2020 -0500
feat(config-init): platform-specific pathing
Update `--init` subcommand to rely upon the same platform-detection
intelligence that was previously implemented by the "installer".
The installer and `--init` should now produce identical config files.
commit 99c48097e2
Author: Chris Lane <chris@chris-allen-lane.com>
Date: Fri Mar 6 18:26:33 2020 -0500
feat(installer): platform-correct config templating
Modify the "installer" to populate cheatpaths with sensible defaults
based on the detection of the user's operating system and environment.
commit 8e1580ff5a
Author: Chris Lane <chris@chris-allen-lane.com>
Date: Thu Mar 5 20:19:58 2020 -0500
fix(tests): fix `config.Paths` tests
Refactor `config.Paths` (by externalizing a call to `homedir.Dir`) to
decouple it from filesystem paths, thus facilitating cleaner unit-tests.
commit a08dca70d9
Author: Chris Lane <chris@chris-allen-lane.com>
Date: Thu Mar 5 18:14:27 2020 -0500
feat(installer): default path selection
Modify the installer to improve default config and cheatsheet path
selection.
commit e15bc6c966
Author: Chris Lane <chris@chris-allen-lane.com>
Date: Thu Mar 5 17:49:50 2020 -0500
fix(typo): correct comment typo in `main.go`
commit efd09575df
Author: Chris Lane <chris@chris-allen-lane.com>
Date: Thu Mar 5 17:46:49 2020 -0500
feat(config): refactor config path detection
Previously, failing other checks, on Unix and BSD systems,
`config.Paths` would attempt to compute the user's home directory by
reading the `HOME` environment variable.
This change deprecates that approach with a call to `homedir.Dir`, which
is used elsewhere throughout the application.
commit ec10244ebe
Author: Chris Lane <chris@chris-allen-lane.com>
Date: Thu Mar 5 17:15:28 2020 -0500
chore(installer): delete unused file
Delete `installer/installer.go`, which (in hindsight) was unnecessary.
commit ebd9ec6287
Author: Chris Lane <chris@chris-allen-lane.com>
Date: Wed Mar 4 19:31:13 2020 -0500
wip(installer): stub experimental "installer"
Stubs out an experimental "installer" that will help new users to
quickly configure `cheat`.
commit ecac5a0971
Author: Chris Lane <chris@chris-allen-lane.com>
Date: Wed Mar 4 19:30:12 2020 -0500
chore(dependencies): updates vendored dependencies
- Deprecates the `Match` struct
- Applies syntax highlighting to search results output in a manner
consistent with the 'View' output
- Refactors search to move colorization functionality outside of its
concern
Squashed commit of the following:
commit 8b74d50f1f
Author: Chris Lane <chris@chris-allen-lane.com>
Date: Sun Feb 2 14:40:23 2020 -0500
chore: updates README
Edits the `README` to provid updated information regarding the shell
autocompletion scripts and `fzf` integration.
commit 9868ba2d68
Author: Chris Lane <chris@chris-allen-lane.com>
Date: Sun Feb 2 14:39:04 2020 -0500
chore: modifies envvar check
Modifies the `CHEAT_USE_FZF` envvar check within the bash autocompletion
script for clarity.
commit ac1012f743
Author: Chris Lane <chris@chris-allen-lane.com>
Date: Sun Feb 2 14:25:34 2020 -0500
chore: renames autocompletion scripts
Renames autocompletion scripts to conform with the conventions
established in `scop/bash-completion`.
commit c8747bd91d
Author: Chris Lane <chris@chris-allen-lane.com>
Date: Sun Feb 2 14:23:03 2020 -0500
feat: improved bash autocompletions
- Dramatically improves quality of bash autocompletions
- Provides optional integration with `fzf`
commit 825bd0139d
Author: Chris Lane <chris@chris-allen-lane.com>
Date: Sun Feb 2 09:19:46 2020 -0500
chore: deletes `fzf.bash`
Deletes `fzf.bash`, which was always intended to be a temporary
placeholder anticipating future improvements.
- Generally reduces the complexity demonstrated in the example configs.
The prior complexity appears to have confused some new users.
- Removes the `dotfiles` references in the example configs. This idiom
likewise appears to have confused some new users.
- Adds some instruction regarding how to download and configure the
"community" cheatsheets (`cheat/cheatsheets`).
* chore: trivial Makefile changes
Trivial `Makefile` changes regarding file pathing.
* chore: build flags
- Passes `-trimpath` flag to build tasks
- Creates `make ci` task and modifies `travis.yml` to use it
- Bumps version to `3.3.2`
* makefile wip
* feat: adds Makefile
Adds a `Makefile` for managing build-related tasks.
* chore: updates dependencies
* chore: updates dependencies
* chore: updates bin scripts
- Removes `build_release.sh`
- Places deprecation notice in `build_devel.sh`, as its purpose has been
superceded by the `Makefile`.
* chore: updates bin scripts
- Removes `build_release.sh`
- Places deprecation notice in `build_devel.sh`, as its purpose has been
superceded by the `Makefile`.
* fix: Makefile
Makes several corrections and improvements to the `Makefile`:
- Previously, the `ifeq` rules were not behaving as intended, due to
false assumptions regarding how `make` fundamentally behaves.
Malfunctioning imperative-style programming has been replaced with
declarative rules to repair this issue.
- Previously, all release executables were zipped after compilation. In
order to spare non-Windows users from (possibly) needing to install a
package to unzip the executables, all non-Windows binaries are now
compressed with `gzip`. (Windows executables are still compressed with
`zip`.)
- Removes a bit of needlessly verbosity in several rules and paths.
* chore: updates dependencies
* chore: bumps version to 3.3.1