mirror of https://github.com/helix-editor/helix
refactor: use function pointer `fn` instead of a generic `Fn`
Co-authored-by: Michael Davis <mcarsondavis@gmail.com>pull/12759/head
parent
a2841103a1
commit
6e52d9439f
|
@ -5174,6 +5174,16 @@ pub fn completion(cx: &mut Context) {
|
||||||
|
|
||||||
// comments
|
// comments
|
||||||
|
|
||||||
|
/// Perform a `Transaction` to toggle comments
|
||||||
|
type CommentTransaction = fn(
|
||||||
|
text: &Rope,
|
||||||
|
selection: &Selection,
|
||||||
|
doc_line_token: Option<&str>,
|
||||||
|
doc_block_tokens: Option<&[BlockCommentToken]>,
|
||||||
|
syntax: Option<&Syntax>,
|
||||||
|
loader: &syntax::Loader,
|
||||||
|
) -> Transaction;
|
||||||
|
|
||||||
/// Commenting behavior, for each range in selection:
|
/// Commenting behavior, for each range in selection:
|
||||||
///
|
///
|
||||||
/// 1. Only line comment tokens -> line comment
|
/// 1. Only line comment tokens -> line comment
|
||||||
|
@ -5181,17 +5191,7 @@ pub fn completion(cx: &mut Context) {
|
||||||
/// 3. Whole selection block commented -> uncomment selection
|
/// 3. Whole selection block commented -> uncomment selection
|
||||||
/// 4. All lines not commented and block tokens -> comment uncommented lines
|
/// 4. All lines not commented and block tokens -> comment uncommented lines
|
||||||
/// 5. No comment tokens and not block commented -> line comment
|
/// 5. No comment tokens and not block commented -> line comment
|
||||||
fn toggle_comments_impl<F>(cx: &mut Context, comments_transaction: F)
|
fn toggle_comments_impl(cx: &mut Context, comments_transaction: CommentTransaction) {
|
||||||
where
|
|
||||||
F: Fn(
|
|
||||||
&Rope,
|
|
||||||
&Selection,
|
|
||||||
Option<&str>,
|
|
||||||
Option<&[BlockCommentToken]>,
|
|
||||||
Option<&Syntax>,
|
|
||||||
&syntax::Loader,
|
|
||||||
) -> Transaction,
|
|
||||||
{
|
|
||||||
let (view, doc) = current!(cx.editor);
|
let (view, doc) = current!(cx.editor);
|
||||||
let syntax = doc.syntax();
|
let syntax = doc.syntax();
|
||||||
let rope = doc.text();
|
let rope = doc.text();
|
||||||
|
|
Loading…
Reference in New Issue