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.
  • 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
    #1

    "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.

    Link Preview Image
    VOMPECCC: A Modular Completion Framework for Emacs

    Completion is not a feature or UI, but instead it is a system composed of at least half a dozen orthogonal concerns that most users never think about separately...

    favicon

    Charlie Holland's Blog (www.chiply.dev)

    @oantolin @minad

    #emacs

    tchauhan@mastodon.mit.eduT Z chfkch@ruhr.socialC minad@mastodon.worldM oantolin@mathstodon.xyzO 6 Replies Last reply
    1
    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.

      Link Preview Image
      VOMPECCC: A Modular Completion Framework for Emacs

      Completion is not a feature or UI, but instead it is a system composed of at least half a dozen orthogonal concerns that most users never think about separately...

      favicon

      Charlie Holland's Blog (www.chiply.dev)

      @oantolin @minad

      #emacs

      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
      #2

      @jameshowell @oantolin @minad

      A fantastic read, thanks for sharing !

      Have to find the time to look at prescient and embark. Cape is too complex for me. I do use corfu and it works great except for the python-shell.

      minad@mastodon.worldM 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.

        Link Preview Image
        VOMPECCC: A Modular Completion Framework for Emacs

        Completion is not a feature or UI, but instead it is a system composed of at least half a dozen orthogonal concerns that most users never think about separately...

        favicon

        Charlie Holland's Blog (www.chiply.dev)

        @oantolin @minad

        #emacs

        Z This user is from outside of this forum
        Z This user is from outside of this forum
        zygmyd@toot.cat
        wrote last edited by
        #3

        @jameshowell

        I already feel like I should start a binder of cheat sheets.

        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.

          Link Preview Image
          VOMPECCC: A Modular Completion Framework for Emacs

          Completion is not a feature or UI, but instead it is a system composed of at least half a dozen orthogonal concerns that most users never think about separately...

          favicon

          Charlie Holland's Blog (www.chiply.dev)

          @oantolin @minad

          #emacs

          chfkch@ruhr.socialC This user is from outside of this forum
          chfkch@ruhr.socialC This user is from outside of this forum
          chfkch@ruhr.social
          wrote last edited by
          #4

          @jameshowell
          Very nice article. I have used some of the parts before, but the big picture is now alot more clear.
          @oantolin @minad

          #Emacs #Vertico #Orderless #Marginalia #Consult #emacs

          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.

            Link Preview Image
            VOMPECCC: A Modular Completion Framework for Emacs

            Completion is not a feature or UI, but instead it is a system composed of at least half a dozen orthogonal concerns that most users never think about separately...

            favicon

            Charlie Holland's Blog (www.chiply.dev)

            @oantolin @minad

            #emacs

            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
            #5

            @jameshowell I definitely recommend to add Embark to the mix. Embark is like a left click or right click menu for objects at point (or in the completion minibuffer), but keyboard driven. @oantolin

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

              @jameshowell I definitely recommend to add Embark to the mix. Embark is like a left click or right click menu for objects at point (or in the completion minibuffer), but keyboard driven. @oantolin

              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
              #6

              @minad @oantolin I've had Embark installed all this time and once a year or so I think to try it. It always startles me. I feel like an australopithecine who found a blowtorch.

              Seems a small effort would pay off disproportionately though. Sometimes I'm just an old man stuck in my habits.

              minad@mastodon.worldM aksharvarma@mathstodon.xyzA 2 Replies Last reply
              0
              • tchauhan@mastodon.mit.eduT tchauhan@mastodon.mit.edu

                @jameshowell @oantolin @minad

                A fantastic read, thanks for sharing !

                Have to find the time to look at prescient and embark. Cape is too complex for me. I do use corfu and it works great except for the python-shell.

                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
                #7

                @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

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

                  @minad @oantolin I've had Embark installed all this time and once a year or so I think to try it. It always startles me. I feel like an australopithecine who found a blowtorch.

                  Seems a small effort would pay off disproportionately though. Sometimes I'm just an old man stuck in my habits.

                  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
                  #8

                  @jameshowell Embark is easy to get started with. For example move point to a symbol and run `M-x embark-act`. It should display the available actions. If you want to invoke the standard action, e.g., jump to symbol, invoke `M-x embark-dwim` on a symbol to point. Of course Embark recognizes many more object types at point than symbols. This means we get lots of context dependent commands.
                  @oantolin

                  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

                    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
                    #9

                    @tchauhan Another example is `cape-history` vs `consult-history`, which you can use in Comint, Shell or Eshell buffers. `cape-history` displays the candidates via in-buffer completion (e.g. Corfu) while `consult-history` displays the candidates via `completing-read` (e.g. Vertico).
                    @jameshowell @oantolin

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

                      @minad @oantolin I've had Embark installed all this time and once a year or so I think to try it. It always startles me. I feel like an australopithecine who found a blowtorch.

                      Seems a small effort would pay off disproportionately though. Sometimes I'm just an old man stuck in my habits.

                      aksharvarma@mathstodon.xyzA This user is from outside of this forum
                      aksharvarma@mathstodon.xyzA This user is from outside of this forum
                      aksharvarma@mathstodon.xyz
                      wrote last edited by
                      #10

                      @jameshowell @minad @oantolin Karthinks has a nice article on embark that I've been meaning to figure out for a while. You might want to take a look at it:

                      https://karthinks.com/software/fifteen-ways-to-use-embark/

                      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.

                        Link Preview Image
                        VOMPECCC: A Modular Completion Framework for Emacs

                        Completion is not a feature or UI, but instead it is a system composed of at least half a dozen orthogonal concerns that most users never think about separately...

                        favicon

                        Charlie Holland's Blog (www.chiply.dev)

                        @oantolin @minad

                        #emacs

                        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
                        #11

                        @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 1 Reply Last reply
                        0
                        • minad@mastodon.worldM minad@mastodon.world

                          @tchauhan Another example is `cape-history` vs `consult-history`, which you can use in Comint, Shell or Eshell buffers. `cape-history` displays the candidates via in-buffer completion (e.g. Corfu) while `consult-history` displays the candidates via `completing-read` (e.g. Vertico).
                          @jameshowell @oantolin

                          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
                          #12

                          @minad Now that I've gotten used to corfu instead of consult-completion-in-region, I should probably switch to cape-history in REPLs and shells. For minibuffer history, I might stick with consult-history. Which do you use for minibuffer history, Daniel? @tchauhan @jameshowell

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

                            @minad Now that I've gotten used to corfu instead of consult-completion-in-region, I should probably switch to cape-history in REPLs and shells. For minibuffer history, I might stick with consult-history. Which do you use for minibuffer history, Daniel? @tchauhan @jameshowell

                            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
                            #13

                            @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 1 Reply Last reply
                            0
                            • 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.

                                    Access Denied

                                    favicon

                                    (mitpress.mit.edu)

                                    @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.

                                          Link Preview Image
                                          GitHub - astoff/drepl: REPL protocol for the dumb terminal

                                          REPL protocol for the dumb terminal. Contribute to astoff/drepl development by creating an account on GitHub.

                                          favicon

                                          GitHub (github.com)

                                          1 Reply Last reply
                                          0
                                          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