Angelo Fallaria
f272fcfc64
feat: add more modifiers
...
Modifiers added: Escape, BackSpace, Return, Tab, Minus, Equal, Grave
2 years ago
Angelo Fallaria
b06323540e
test: add tests for more keysyms
2 years ago
Angelo Fallaria
252e09a5d2
refactor: use 'map' instead of iteration for modifiers
2 years ago
Angelo Fallaria
5e2b74d923
feat: add detection of modifier keys
2 years ago
Angelo Fallaria
981d4c0387
refactor: reduce one line of indent in parsing
...
Checking if the current line is a command can be refactored
into a guard clause.
2 years ago
Angelo Fallaria
ff635cc3d9
refactor: remove unused 'keysyms' var in parse_contents
2 years ago
Angelo Fallaria
5aa87b60cc
test: add tests for invalid configs
2 years ago
Angelo Fallaria
b5ba778072
feat: add modifiers field to Hotkey
2 years ago
Angelo Fallaria
7a34a1e664
test: add #[test] to #[ignore] tests
2 years ago
Angelo Fallaria
1953fe269e
test: refactor valid config tests into a wrapper
2 years ago
Angelo Fallaria
920458cdf7
style: put the error checks next to each other
2 years ago
Angelo Fallaria
067cbe2843
feat: add handling for multiline commands
2 years ago
Angelo Fallaria
4fd18d753e
style: remove one whitespace in config.rs for clarity
2 years ago
Angelo Fallaria
60b3c7ff24
style: format w/ rustfmt
2 years ago
Angelo Fallaria
d886ff18eb
fix: return missing command line nr. w/ blank line
2 years ago
Angelo Fallaria
e2027b2a04
style: improve style w/ rustfmt
2 years ago
Angelo Fallaria
7117317001
style: slightly improve style of parse_contents
2 years ago
Angelo Fallaria
681d553654
test: add test wrapper function to check err types
2 years ago
Angelo Fallaria
66c3792927
test: remove test for commented-out commands
...
Reason: Commented commands can be handled by the shell itself.
There's nothing really wrong with a commented-out command.
2 years ago
Angelo Fallaria
4bce5f71d1
style: split the whitespace error return statement
2 years ago
EdenQwQ
b794b89c80
return the command line instead
2 years ago
EdenQwQ
84fd84cc65
error if command doesn't start with whitespace
2 years ago
EdenQwQ
a7529c49f2
small improvement
2 years ago
Angelo Fallaria
cffd1694d1
style: format config.rs using rust-analyzer
2 years ago
Angelo Fallaria
b47904b3f3
test: add test for command with blank space
2 years ago
Angelo Fallaria
c61e92a3a2
style: add comment in ParseError to explain u32 field
2 years ago
Angelo Fallaria
60c2539413
feat: add public load config function
2 years ago
Angelo Fallaria
d26c4666ee
test: edit tests to accomodate the edited functions
2 years ago
Angelo Fallaria
9b6d67f45e
refactor: make parse_contents accept string, not PathBuf
2 years ago
Angelo Fallaria
0a76516178
test: rewrite basic hotkey tests
2 years ago
Angelo Fallaria
d5a95a26ef
refactor: refactor file loading into own function
2 years ago
Angelo Fallaria
0266ab2718
refactor: rename key_presses field in Hotkey to keysyms
2 years ago
Angelo Fallaria
abe8987d79
refactor: rename Keybind to Hotkey
2 years ago
Angelo Fallaria
17d0f02baa
test: add blank tests to fill in later
2 years ago
Angelo Fallaria
d153526037
test: improve test for nonexistent file
2 years ago
Angelo Fallaria
fd9524eaf5
style: remove some newlines in start of parse_config
2 years ago
Angelo Fallaria
ebd9db0689
fix: remove unneeded PartialEq derive in enum
2 years ago
Angelo Fallaria
7103537e31
fix: return actual line number in error
...
Because arrays, vectors, and list-style structures in Rust are
zero-index, we need to increment the line number returned by errors
by one so that it represents their actual line numbers.
2 years ago
Angelo Fallaria
8918b03f6e
feat: add handling of empty command
2 years ago
Angelo Fallaria
5763be0a7b
style: improve styling and comments of config parse func
2 years ago
Angelo Fallaria
503f174672
feat: add more error situations in the config parser
2 years ago
Angelo Fallaria
c2c1a0285d
feat(config): return error if keybind at last line
2 years ago
Angelo Fallaria
3f5c46cc48
style: remove unecessary TODO: comments
2 years ago
Angelo Fallaria
a444e3eff1
style: compress the evdev keys vector
2 years ago
Angelo Fallaria
2d97b2dea3
feat(config): add all alphanumeric numbers
2 years ago
Angelo Fallaria
1a1ba9ffbd
test(config): add 9 more unit tests
2 years ago
Angelo Fallaria
252ce9f2e4
feat: add basic config parser
...
A basic config parser has been implemented in `config.rs`. It is still
incomplete, but one letter key press bindings in QWERTYUIOP should work
now, along with a command on the next line.
Example `swhkdrc` file that should work:
```
r
alacritty
w
kitty
t
/bin/firefox
```
**TODO:**
- Add more supported key presses (alphabetical, numerical, insert,
home, delete, end, etc)
- Add chained keybindings (`super + g`, `super + 3`)
- Add error handling for parsing the contents of the file
Note: `server.rs` has been modified to add `mod config` at the start of
the file, but it was necessary to do testing for the config parser.
2 years ago