help-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Determining existence of text following point


From: michael-franzese
Subject: Re: Determining existence of text following point
Date: Wed, 19 May 2021 12:32:26 +0200

Currently the code inserts if the region is blank.

But I have a keybinding to change from

;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

to

;; ++++++++++++++++++++++++++++++++++++



> Sent: Wednesday, May 19, 2021 at 10:23 PM
> From: "Jean Louis" <bugs@gnu.support>
> To: michael-franzese@gmx.com
> Cc: "Eric Abrahamsen" <eric@ericabrahamsen.net>, "Skip Montanaro" 
> <skip.montanaro@gmail.com>, "Help Gnu Emacs" <help-gnu-emacs@gnu.org>
> Subject: Re: Determining existence of text following point
>
> * michael-franzese@gmx.com <michael-franzese@gmx.com> [2021-05-19 10:29]:
> > Point will always be at the beginning of a comment on a separate line
> > 
> > The "^" shows the position of the cursor.
> > 
> >                    ^;; ;;;;;;;;;;;;;;;;;;;;;;;;;;
> > 
> >          ^;; +++++++++++++++++++++++++++
> > 
> > ^;; ----------------------------
> > 
> > I want to have a keybinding that if I continue to hit will change
> > a comment from
> > 
> > ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
> > 
> > to
> > 
> > ;; +++++++++++++++++++++++++++++++++++++
> > 
> > Currently I have the following code
> > 
> > 
> > (defun insert-bifurcation (s n)
> >    "todo"
> > 
> >    (let* ( (a (point))  (b (line-end-position))
> >        (line-cut (buffer-substring-no-properties a b)) )
> > 
> >       (when (or (not (string-match
> >                     "[^[:blank:]]" line-cut)) (eolp))
> >          (pcase n
> > 
> >         (0
> >             (save-excursion (insert s))
> >             (comment-region a b))
> >         
> >                 ((or 1 2 3 4 5)
> >             (delete-region a b)
> >             (save-excursion (insert s))
> >             (comment-region a b))
> > 
> >             (_
> >             (delete-region a b))) )) )
> > 
> > (defvar count 1)
> > 
> > (defun insert-bifurcating-comment ()
> >   "Insert bifurcating line at cursor position"
> >   (interactive)
> > 
> >   (let* ( (m 62) (n 69)
> >       (lena (- m (current-column)))   ; lena = m - (current-column)
> >       (lenb (- n (current-column))) )
> > 
> >     (pcase count
> >       (0
> >          ;; makes s to be line with repeating ";"
> >          (setq-local s (make-string lena ?\;))  ; repeats lena times
> >      (insert-bifurcation s count)
> >          (setq-local count 1))
> >       (1
> >          ;; makes s to be line with repeating ";"
> >          (setq-local s (make-string lenb ?\;))  ; string length lenb
> >      (insert-bifurcation s count)
> >      (setq-local count 2))
> >       (2
> >          ;; makes s to be line with repeating "+"
> >          (setq-local s (make-string lena ?+))
> >      (insert-bifurcation s count)
> >          (setq-local count 3))
> >       (_
> >          ;; deactivates the bifurcating line
> >          (insert-bifurcation s count)
> >          (setq-local count 1)) )) )
> 
> I am done and obfuscated now. ☺
> 
> 
> -- 
> Jean
> 
> Take action in Free Software Foundation campaigns:
> https://www.fsf.org/campaigns
> 
> Sign an open letter in support of Richard M. Stallman
> https://stallmansupport.org/
> https://rms-support-letter.github.io/
> 
> 
>



reply via email to

[Prev in Thread] Current Thread [Next in Thread]