Treat Makefile text as atoms

Improves another case identified in #476
pull/492/head
Wilfred Hughes 2023-03-02 23:50:43 +07:00
parent f8a7ccee85
commit 03985066f5
5 changed files with 20 additions and 1 deletions

@ -1,5 +1,9 @@
## 0.45 (unreleased)
### Parsing
Improved parsing for Makefiles.
## 0.44 (released 2nd March 2023)
### Parsing

@ -0,0 +1 @@
CCFLAGS+=-std=c99 -D_DEFAULT_SOURCE -DVERSION=\"$(VERS)\" -O2 -D_FORTIFY_SOURCE=2 -fstack-protector-all $(CFLAGS) -g

@ -0,0 +1 @@
CCFLAGS+=-std=c99 -D_DEFAULT_SOURCE -DVERSION=\"$(VERS)\" -O2 -Wall -Werror -D_FORTIFY_SOURCE=2 -fstack-protector-all $(CFLAGS) -g

@ -608,7 +608,7 @@ pub fn from_language(language: guess::Language) -> TreeSitterConfig {
let language = unsafe { tree_sitter_make() };
TreeSitterConfig {
language,
atom_nodes: vec!["shell_text"].into_iter().collect(),
atom_nodes: vec!["shell_text", "text"].into_iter().collect(),
delimiter_tokens: vec![("(", ")")].into_iter().collect(),
highlight_query: ts::Query::new(
language,

@ -55,3 +55,16 @@ fn check_only_text_file() {
let predicate_fn = predicate::str::contains("Has changes");
cmd.assert().stdout(predicate_fn);
}
#[test]
fn makefile_text_as_atom() {
use predicates::prelude::*;
let mut cmd = Command::cargo_bin("difft").unwrap();
cmd.arg("sample_files/cli_tests/makefile_before.mk")
.arg("sample_files/cli_tests/makefile_after.mk");
let predicate_fn = predicate::str::contains("CCFLAGS");
cmd.assert().stdout(predicate_fn);
}