Loading ...
Sorry, an error occurred while loading the content.

Re: completeopt: menu|menuone + longest = bug?

Expand Messages
  • Bram Moolenaar
    ... It s too complicated already, adding another option will mainly cause more users to get confused. Also, I wouldn t know what to set it to for C. --
    Message 1 of 7 , May 1 3:13 PM
    • 0 Attachment
      Eric Van Dewoestine wrote:

      > > I know about this: When you type the "." and there no complete
      > > match was inserted (showing the longest common text in this example),
      > > Vim assumes you are extending the text to reduce the list of matches.
      > > Thus the completion still starts at "BlahBlah".
      > >
      > > You need to stop completion somehow, e.g., with a space and backspace.
      > >
      > > This is not a nice way to work. I thought of having all punctuation
      > > characters stop completion, but that breaks completion of items where
      > > punctuation can be part of the match (e.g., () for functions).
      > >
      >
      > Ah, that makes sense. What about an option for specifying what
      > characters end the completion?
      >
      > setlocal completedelim+=.
      >
      > or something similar?

      It's too complicated already, adding another option will mainly cause
      more users to get confused. Also, I wouldn't know what to set it to for
      C.

      --
      ARTHUR: I've said I'm sorry about the old woman, but from the behind you
      looked ...
      DENNIS: What I object to is that you automatically treat me like an inferior...
      ARTHUR: Well ... I AM king.
      "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD

      /// Bram Moolenaar -- Bram@... -- http://www.Moolenaar.net \\\
      /// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
      \\\ download, build and distribute -- http://www.A-A-P.org ///
      \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
    • mzyzik@gmail.com
      ... It s not that confusing. This is not a good reason for not implementing something like completedelim . A better reason would be that nobody feels like
      Message 2 of 7 , May 1 5:18 PM
      • 0 Attachment
        On Tue, May 02, 2006 at 12:13:37AM +0200, Bram Moolenaar wrote:
        >
        > Eric Van Dewoestine wrote:
        >
        > > > I know about this: When you type the "." and there no complete
        > > > match was inserted (showing the longest common text in this example),
        > > > Vim assumes you are extending the text to reduce the list of matches.
        > > > Thus the completion still starts at "BlahBlah".
        > > >
        > > > You need to stop completion somehow, e.g., with a space and backspace.
        > > >
        > > > This is not a nice way to work. I thought of having all punctuation
        > > > characters stop completion, but that breaks completion of items where
        > > > punctuation can be part of the match (e.g., () for functions).
        > > >
        > >
        > > Ah, that makes sense. What about an option for specifying what
        > > characters end the completion?
        > >
        > > setlocal completedelim+=.
        > >
        > > or something similar?
        >
        > It's too complicated already, adding another option will mainly cause
        > more users to get confused. Also, I wouldn't know what to set it to for
        > C.

        It's not that confusing. This is not a good reason for not implementing
        something like 'completedelim'. A better reason would be that nobody
        feels like implementing it and documenting it. So far there are three
        options starting with "complete". This is complicated? I thought
        Vim/Emacs are ultra configurable... and the menu/completion system is a
        big feature.

        If it were up to me, I would have an option for what characters end the
        completion, and also what characters select the current completion and
        then end the completion... or something like that. Maybe not. At least
        something like completedelim.

        --Matt

        >
        > --
        > ARTHUR: I've said I'm sorry about the old woman, but from the behind you
        > looked ...
        > DENNIS: What I object to is that you automatically treat me like an inferior...
        > ARTHUR: Well ... I AM king.
        > "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD
        >
        > /// Bram Moolenaar -- Bram@... -- http://www.Moolenaar.net \\\
        > /// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
        > \\\ download, build and distribute -- http://www.A-A-P.org ///
        > \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
      • Eric Van Dewoestine
        ... I thought about this a bit more today, and I agree that adding a new option is not the proper solution. Not because it would confuse users, but because
        Message 3 of 7 , May 1 8:34 PM
        • 0 Attachment
          > >
          > > It's too complicated already, adding another option will mainly cause
          > > more users to get confused. Also, I wouldn't know what to set it to for
          > > C.
          >
          > It's not that confusing. This is not a good reason for not implementing
          > something like 'completedelim'. A better reason would be that nobody
          > feels like implementing it and documenting it. So far there are three
          > options starting with "complete". This is complicated? I thought
          > Vim/Emacs are ultra configurable... and the menu/completion system is a
          > big feature.
          >
          > If it were up to me, I would have an option for what characters end the
          > completion, and also what characters select the current completion and
          > then end the completion... or something like that. Maybe not. At least
          > something like completedelim.

          I thought about this a bit more today, and I agree that adding a new
          option is
          not the proper solution. Not because it would confuse users, but because
          the set of characters that end a completion could depend on the completion
          method, so setting them at the filetype level wouldn't work.

          For example, the standard keyword completion (<c-n> and <c-p>) only spans word
          characters. Any non-word character should end the completion. Conversely, a
          user defined, or omni completion function may span back over non-word
          characters.

          Without knowing anything about how you've implemented the code completion
          internally, I'd guess that perhaps you could let the completion function
          decide when to start a new completion by invoking the completion function
          again and comparing the original starting column position with the new one.
          If they differ, then the function has deemed that it no longer considers the
          non-word character part of the original completion.

          You've mentioned a few times how the code completion logic is getting
          complicated, but is that a good reason for leaving in known issues? Perhaps
          after you have released vim70, vim71 should get a bit of an overhaul in this
          area now that you've encountered a broader range of use cases. While I find
          the current behavior I described in my original email very annoying, I still
          wouldn't consider it a show stopper for the final release of vim70. However,
          it would be a shame to never fix it just because it's "complicated".

          --
          eric
        • Bram Moolenaar
          ... It s not that it should not be fixed, it s that adding more options/features/commands/whatever is not a good fix. -- Eye have a spelling checker, it came
          Message 4 of 7 , May 2 5:17 AM
          • 0 Attachment
            Eric Van Dewoestine wrote:

            > You've mentioned a few times how the code completion logic is getting
            > complicated, but is that a good reason for leaving in known issues?
            > Perhaps after you have released vim70, vim71 should get a bit of an
            > overhaul in this area now that you've encountered a broader range of
            > use cases. While I find the current behavior I described in my
            > original email very annoying, I still wouldn't consider it a show
            > stopper for the final release of vim70. However, it would be a shame
            > to never fix it just because it's "complicated".

            It's not that it should not be fixed, it's that adding more
            options/features/commands/whatever is not a good fix.

            --
            Eye have a spelling checker, it came with my PC;
            It plainly marks four my revue mistakes I cannot sea.
            I've run this poem threw it, I'm sure your please to no,
            It's letter perfect in it's weigh, my checker tolled me sew!

            /// Bram Moolenaar -- Bram@... -- http://www.Moolenaar.net \\\
            /// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
            \\\ download, build and distribute -- http://www.A-A-P.org ///
            \\\ help me help AIDS victims -- http://ICCF-Holland.org ///
          Your message has been successfully submitted and would be delivered to recipients shortly.