Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (Cyborg)
  • No Skin
Collapse
Brand Logo

CIRCLE WITH A DOT

  1. Home
  2. Uncategorized
  3. "The history of #Emacs completion frameworks is a progression from monolithic solutions toward composable ones."

"The history of #Emacs completion frameworks is a progression from monolithic solutions toward composable ones."

Scheduled Pinned Locked Moved Uncategorized
emacsverticoorderlessmarginaliaconsult
23 Posts 10 Posters 58 Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • minad@mastodon.worldM minad@mastodon.world

    @oantolin I use consult-history for both (repl and minibuffer), but mainly because I've bound it to the more convenient key (M-r).
    @tchauhan @jameshowell

    oantolin@mathstodon.xyzO This user is from outside of this forum
    oantolin@mathstodon.xyzO This user is from outside of this forum
    oantolin@mathstodon.xyz
    wrote last edited by
    #14

    @minad Same here, except I use M-h (not a lot paragraphs to mark in that type of buffer). @tchauhan @jameshowell

    1 Reply Last reply
    0
    • oantolin@mathstodon.xyzO oantolin@mathstodon.xyz

      @jameshowell I'm currently listening to the previous post in the series¹ and agreeing with pretty much everything.

      ¹ https://www.chiply.dev/post-icr-primer

      @minad

      kickingvegas@sfba.socialK This user is from outside of this forum
      kickingvegas@sfba.socialK This user is from outside of this forum
      kickingvegas@sfba.social
      wrote last edited by
      #15

      @oantolin @jameshowell @minad While I largely agree with the points made in the completion post, I wonder if there’s a need to introduce more jargon. Isn’t a completion framework just another name for an IME (input method editor)? https://en.wikipedia.org/wiki/Input_method

      oantolin@mathstodon.xyzO 1 Reply Last reply
      0
      • kickingvegas@sfba.socialK kickingvegas@sfba.social

        @oantolin @jameshowell @minad While I largely agree with the points made in the completion post, I wonder if there’s a need to introduce more jargon. Isn’t a completion framework just another name for an IME (input method editor)? https://en.wikipedia.org/wiki/Input_method

        oantolin@mathstodon.xyzO This user is from outside of this forum
        oantolin@mathstodon.xyzO This user is from outside of this forum
        oantolin@mathstodon.xyz
        wrote last edited by
        #16

        @kickingvegas I thought IMEs were mechanisms to type single characters and that most of them do not involve incremental completion and filtering!

        EDIT: Your Wikipedia link agrees with my recollection. @jameshowell @minad

        kickingvegas@sfba.socialK pjacock@fediscience.orgP 2 Replies Last reply
        0
        • oantolin@mathstodon.xyzO oantolin@mathstodon.xyz

          @kickingvegas I thought IMEs were mechanisms to type single characters and that most of them do not involve incremental completion and filtering!

          EDIT: Your Wikipedia link agrees with my recollection. @jameshowell @minad

          kickingvegas@sfba.socialK This user is from outside of this forum
          kickingvegas@sfba.socialK This user is from outside of this forum
          kickingvegas@sfba.social
          wrote last edited by
          #17

          @oantolin
          This text on Chinese IMEs and seeing what contemporary implementations of it can do has shown me how much incremental completion and filtering has changed the game for computer input.

          https://mitpress.mit.edu/9780262047517/the-chinese-computer/

          @jameshowell @minad

          1 Reply Last reply
          0
          • minad@mastodon.worldM minad@mastodon.world

            @tchauhan What do you find difficult about Cape?

            Cape basically provides a bunch of completion backends, so called Capfs. You can either add the Capfs to the `completion-at-point-functions` list, or invoke them directly, for instance `M-x cape-emoji` or `M-x cape-file`.

            Another way to think of it - Cape is to Corfu what Consult is to Vertico.

            @jameshowell @oantolin

            tchauhan@mastodon.mit.eduT This user is from outside of this forum
            tchauhan@mastodon.mit.eduT This user is from outside of this forum
            tchauhan@mastodon.mit.edu
            wrote last edited by
            #18

            @minad @jameshowell @oantolin Wow, hello Daniel and Omar, so wonderful to run into you on here. Much respect for your contributions to making emacs usable for forever-noobs like me!

            I think last time I used cape I couldn't understand how cape-dabbrev is different from dabbrev (I understand now...). I will give it a go too!

            I am especially struggling with my python vterm REPL though. I see a wall-of-text dump of all the candidates from the code as well as the REPL buffer! Any pointers?

            minad@mastodon.worldM jameshowell@fediscience.orgJ 2 Replies Last reply
            0
            • tchauhan@mastodon.mit.eduT tchauhan@mastodon.mit.edu

              @minad @jameshowell @oantolin Wow, hello Daniel and Omar, so wonderful to run into you on here. Much respect for your contributions to making emacs usable for forever-noobs like me!

              I think last time I used cape I couldn't understand how cape-dabbrev is different from dabbrev (I understand now...). I will give it a go too!

              I am especially struggling with my python vterm REPL though. I see a wall-of-text dump of all the candidates from the code as well as the REPL buffer! Any pointers?

              minad@mastodon.worldM This user is from outside of this forum
              minad@mastodon.worldM This user is from outside of this forum
              minad@mastodon.world
              wrote last edited by
              #19

              @tchauhan cape-dabbrev is similar to dabbrev-capf, but a little more polished. dabbrev-capf had bugs in the past, but I think they are fixed at least in Emacs 31. Regarding Python REPL completion I cannot help. All I know is that the Capf is broken. @jameshowell @oantolin

              minad@mastodon.worldM 1 Reply Last reply
              0
              • minad@mastodon.worldM minad@mastodon.world

                @tchauhan cape-dabbrev is similar to dabbrev-capf, but a little more polished. dabbrev-capf had bugs in the past, but I think they are fixed at least in Emacs 31. Regarding Python REPL completion I cannot help. All I know is that the Capf is broken. @jameshowell @oantolin

                minad@mastodon.worldM This user is from outside of this forum
                minad@mastodon.worldM This user is from outside of this forum
                minad@mastodon.world
                wrote last edited by
                #20

                @tchauhan @jameshowell @oantolin You could try Drepl for a Python REPL with better completion. I have not used it so far, so I don't know how well it works in practice.

                https://github.com/astoff/drepl

                1 Reply Last reply
                0
                • tchauhan@mastodon.mit.eduT tchauhan@mastodon.mit.edu

                  @minad @jameshowell @oantolin Wow, hello Daniel and Omar, so wonderful to run into you on here. Much respect for your contributions to making emacs usable for forever-noobs like me!

                  I think last time I used cape I couldn't understand how cape-dabbrev is different from dabbrev (I understand now...). I will give it a go too!

                  I am especially struggling with my python vterm REPL though. I see a wall-of-text dump of all the candidates from the code as well as the REPL buffer! Any pointers?

                  jameshowell@fediscience.orgJ This user is from outside of this forum
                  jameshowell@fediscience.orgJ This user is from outside of this forum
                  jameshowell@fediscience.org
                  wrote last edited by
                  #21

                  @tchauhan Yes. #Emacs-sphere, these two are your guys and they deserve your thanks!

                  @minad @oantolin

                  1 Reply Last reply
                  0
                  • oantolin@mathstodon.xyzO oantolin@mathstodon.xyz

                    @kickingvegas I thought IMEs were mechanisms to type single characters and that most of them do not involve incremental completion and filtering!

                    EDIT: Your Wikipedia link agrees with my recollection. @jameshowell @minad

                    pjacock@fediscience.orgP This user is from outside of this forum
                    pjacock@fediscience.orgP This user is from outside of this forum
                    pjacock@fediscience.org
                    wrote last edited by
                    #22

                    @oantolin @kickingvegas @jameshowell @minad Nah, not just character by character. Japanese IME for example you typically type in a whole sentence phonetically (and see the kana and first choice kanji appear as you go - sometimes that charges as you type in more giving it more context), then manually fix up any wrong inferences (eg left/right cursors to jump to position in sentence, then up/down or space/shift-space to cycle suggestions for that fragment). Then enter to finalise that sentence.

                    1 Reply Last reply
                    0
                    • jameshowell@fediscience.orgJ jameshowell@fediscience.org

                      "The history of #Emacs completion frameworks is a progression from monolithic solutions toward composable ones."

                      This is a comprehensive summary, with a thorough and fair history. A long read, but worth it.

                      I plateaued at #Vertico #Orderless #Marginalia #Consult years ago. Maybe time to learn the others, one at a time.

                      https://www.chiply.dev/post-vompeccc

                      @oantolin @minad

                      #emacs

                      wirthy@functional.cafeW This user is from outside of this forum
                      wirthy@functional.cafeW This user is from outside of this forum
                      wirthy@functional.cafe
                      wrote last edited by
                      #23

                      @jameshowell Composability, where each module does one thing well and has a clean interface to the others, is a worthy goal. But from the user perspective, completion _is_ one thing, so why should we need to coordinate and configure seven or eight packages to get it working?

                      Yes, as the article says, there are many _potentially_ orthogonal concerns in completion, but when you separate them into different user packages, you've pushed too much of the complexity of their interaction onto the user.

                      The solution, apparently, is to add another layer of abstraction: emacs configuration kits. It all seems a bit much.

                      1 Reply Last reply
                      0
                      • R relay@relay.infosec.exchange shared this topic
                      Reply
                      • Reply as topic
                      Log in to reply
                      • Oldest to Newest
                      • Newest to Oldest
                      • Most Votes


                      • Login

                      • Login or register to search.
                      • First post
                        Last post
                      0
                      • Categories
                      • Recent
                      • Tags
                      • Popular
                      • World
                      • Users
                      • Groups