diff options
Diffstat (limited to 'support/texlab/src/features/formatting.rs')
-rw-r--r-- | support/texlab/src/features/formatting.rs | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/support/texlab/src/features/formatting.rs b/support/texlab/src/features/formatting.rs new file mode 100644 index 0000000000..4492a0532d --- /dev/null +++ b/support/texlab/src/features/formatting.rs @@ -0,0 +1,24 @@ +mod bibtex_internal; +mod latexindent; + +use cancellation::CancellationToken; +use lsp_types::{DocumentFormattingParams, TextEdit}; + +use crate::BibtexFormatter; + +use self::{bibtex_internal::format_bibtex_internal, latexindent::format_with_latexindent}; + +use super::FeatureRequest; + +pub fn format_source_code( + request: FeatureRequest<DocumentFormattingParams>, + cancellation_token: &CancellationToken, +) -> Option<Vec<TextEdit>> { + let mut edits = None; + if request.context.options.read().unwrap().bibtex_formatter == BibtexFormatter::Texlab { + edits = edits.or_else(|| format_bibtex_internal(&request, cancellation_token)); + } + + edits = edits.or_else(|| format_with_latexindent(&request, cancellation_token)); + edits +} |