Skip to content

Commit

Permalink
Merge pull request #807 from vashirov/i806
Browse files Browse the repository at this point in the history
Handle multiline snippets better
  • Loading branch information
denisidoro committed Dec 21, 2022
2 parents 13fe757 + 4b07ddf commit ecaeacf
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 2 deletions.
2 changes: 1 addition & 1 deletion src/filesystem.rs
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ pub fn all_cheat_files(path: &Path) -> Vec<String> {
.into_iter()
.filter_map(|e| e.ok())
.map(|e| e.path().to_str().unwrap_or("").to_string())
.filter(|e| e.ends_with(".cheat"))
.filter(|e| e.ends_with(".cheat") || e.ends_with(".cheat.md"))
.collect::<Vec<String>>()
}

Expand Down
10 changes: 9 additions & 1 deletion src/parser.rs
Original file line number Diff line number Diff line change
Expand Up @@ -243,6 +243,8 @@ impl<'a> Parser<'a> {

let mut variable_cmd = String::from("");

let mut inside_snippet: bool = false;

for (line_nr, line_result) in lines.enumerate() {
let line = line_result
.with_context(|| format!("Failed to read line number {} in cheatsheet `{}`", line_nr, id))?;
Expand Down Expand Up @@ -284,7 +286,9 @@ impl<'a> Parser<'a> {
item.comment = without_prefix(&line);
}
// variable
else if !variable_cmd.is_empty() || (line.starts_with('$') && line.contains(':')) {
else if !variable_cmd.is_empty()
|| (line.starts_with('$') && line.contains(':')) && !inside_snippet
{
should_break = self.write_cmd(&item).is_err();

item.snippet = String::from("");
Expand All @@ -306,6 +310,10 @@ impl<'a> Parser<'a> {
.insert_suggestion(&item.tags, variable, (String::from(command), opts));
}
}
// markdown snippet
else if line.starts_with("```") {
inside_snippet = !inside_snippet;
}
// snippet
else {
if !(&item.snippet).is_empty() {
Expand Down

0 comments on commit ecaeacf

Please sign in to comment.