Unify more error handling.
This commit is contained in:
		
							parent
							
								
									6139ea328d
								
							
						
					
					
						commit
						17db05c2c7
					
				| @ -18,12 +18,13 @@ use nom::sequence::tuple; | ||||
| 
 | ||||
| use super::org_source::OrgSource; | ||||
| use super::section::section; | ||||
| use super::util::exit_matcher_parser; | ||||
| use super::util::get_consumed; | ||||
| use super::util::org_line_ending; | ||||
| use super::util::org_space; | ||||
| use super::util::org_space_or_line_ending; | ||||
| use super::util::start_of_line; | ||||
| use crate::context::parser_with_context; | ||||
| use crate::context::bind_context; | ||||
| use crate::context::ContextElement; | ||||
| use crate::context::ExitClass; | ||||
| use crate::context::ExitMatcherNode; | ||||
| @ -61,10 +62,10 @@ fn _heading<'b, 'g, 'r, 's>( | ||||
|     let mut scheduled = None; | ||||
|     let mut deadline = None; | ||||
|     let mut closed = None; | ||||
|     not(|i| context.check_exit_matcher(i))(input)?; | ||||
|     not(bind_context!(exit_matcher_parser, context))(input)?; | ||||
|     let (remaining, pre_headline) = headline(context, input, parent_star_count)?; | ||||
|     let section_matcher = parser_with_context!(section)(context); | ||||
|     let heading_matcher = parser_with_context!(heading(pre_headline.star_count))(context); | ||||
|     let section_matcher = bind_context!(section, context); | ||||
|     let heading_matcher = bind_context!(heading(pre_headline.star_count), context); | ||||
|     let (remaining, maybe_section) = | ||||
|         opt(map(section_matcher, DocumentElement::Section))(remaining)?; | ||||
|     let (remaining, _ws) = opt(tuple((start_of_line, many0(blank_line))))(remaining)?; | ||||
| @ -154,7 +155,7 @@ fn headline<'b, 'g, 'r, 's>( | ||||
|     let (remaining, (_, (headline_level, star_count, _), _)) = tuple(( | ||||
|         start_of_line, | ||||
|         verify( | ||||
|             parser_with_context!(headline_level)(&parser_context), | ||||
|             bind_context!(headline_level, &parser_context), | ||||
|             |(_, count, _)| *count > parent_star_count, | ||||
|         ), | ||||
|         peek(org_space), | ||||
| @ -162,7 +163,7 @@ fn headline<'b, 'g, 'r, 's>( | ||||
| 
 | ||||
|     let (remaining, maybe_todo_keyword) = opt(tuple(( | ||||
|         space1, | ||||
|         parser_with_context!(heading_keyword)(&parser_context), | ||||
|         bind_context!(heading_keyword, &parser_context), | ||||
|         peek(org_space_or_line_ending), | ||||
|     )))(remaining)?; | ||||
| 
 | ||||
| @ -176,9 +177,7 @@ fn headline<'b, 'g, 'r, 's>( | ||||
| 
 | ||||
|     let (remaining, maybe_title) = opt(tuple(( | ||||
|         space1, | ||||
|         consumed(many1(parser_with_context!(standard_set_object)( | ||||
|             &parser_context, | ||||
|         ))), | ||||
|         consumed(many1(bind_context!(standard_set_object, &parser_context))), | ||||
|     )))(remaining)?; | ||||
| 
 | ||||
|     let (remaining, maybe_tags) = opt(tuple((space0, tags)))(remaining)?; | ||||
|  | ||||
| @ -137,7 +137,11 @@ pub(crate) fn apply_in_buffer_settings<'g, 's, 'sf>( | ||||
|         .iter() | ||||
|         .filter(|kw| kw.key.eq_ignore_ascii_case("link")) | ||||
|     { | ||||
|         let (_, (link_key, link_value)) = link_template(kw.value).map_err(|e| e.to_string())?; | ||||
|         let (_, (link_key, link_value)) = link_template(kw.value).map_err(|err| match err { | ||||
|             nom::Err::Incomplete(_) => CustomError::Text(err.to_string()), | ||||
|             nom::Err::Error(e) => e, | ||||
|             nom::Err::Failure(e) => e, | ||||
|         })?; | ||||
|         new_settings | ||||
|             .link_templates | ||||
|             .insert(link_key.to_owned(), link_value.to_owned()); | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Tom Alexander
						Tom Alexander