meow-edit / meow

Yet another modal editing on Emacs / 猫态编辑
GNU General Public License v3.0
1.07k stars 128 forks source link

Some commands run, but error #528

Closed witek closed 5 months ago

witek commented 5 months ago

I have weird behavior on some meow commands. They run, but they give me this error:

Wrong type argument: integerp, nil

His happens when I execute meow-line , meow-block, meow-find, ... But it does not happen when I execute meow-inner-of-thing, meow-mark-symbol, ...

Any suggestions how I can fix or debug this problem?

DogLooksGood commented 5 months ago

You can open debug with command toggle-debug-on-error, then a error stack will be showed when it happens.

witek commented 5 months ago

This is the stack:

Debugger entered--Lisp error: (wrong-type-argument integerp nil)
  take(nil (meow-position-highlight-number-1 meow-position-highlight-number-1 meow-position-highlight-number-1 meow-position-highlight-number-1 meow-position-highlight-number-1 meow-position-highlight-number-1 meow-position-highlight-number-1 meow-position-highlight-number-1 meow-position-highlight-number-1 meow-position-highlight-number-1 meow-position-highlight-number-2 meow-position-highlight-number-2 meow-position-highlight-number-2 meow-position-highlight-number-2 meow-position-highlight-number-2 meow-position-highlight-number-2 meow-position-highlight-number-2 meow-position-highlight-number-2 meow-position-highlight-number-2 meow-position-highlight-number-2 meow-position-highlight-number-3 meow-position-highlight-number-3 meow-position-highlight-number-3 meow-position-highlight-number-3 meow-position-highlight-number-3 meow-position-highlight-number-3 meow-position-highlight-number-3 meow-position-highlight-number-3 meow-position-highlight-number-3 meow-position-highlight-number-3))
  #f(compiled-function (list n) "Optimized implementation of `seq-take' for lists." #<bytecode -0x1e8bdd413c3582d2>)((meow-position-highlight-number-1 meow-position-highlight-number-1 meow-position-highlight-number-1 meow-position-highlight-number-1 meow-position-highlight-number-1 meow-position-highlight-number-1 meow-position-highlight-number-1 meow-position-highlight-number-1 meow-position-highlight-number-1 meow-position-highlight-number-1 meow-position-highlight-number-2 meow-position-highlight-number-2 meow-position-highlight-number-2 meow-position-highlight-number-2 meow-position-highlight-number-2 meow-position-highlight-number-2 meow-position-highlight-number-2 meow-position-highlight-number-2 meow-position-highlight-number-2 meow-position-highlight-number-2 meow-position-highlight-number-3 meow-position-highlight-number-3 meow-position-highlight-number-3 meow-position-highlight-number-3 meow-position-highlight-number-3 meow-position-highlight-number-3 meow-position-highlight-number-3 meow-position-highlight-number-3 meow-position-highlight-number-3 meow-position-highlight-number-3) nil)
  apply(#f(compiled-function (list n) "Optimized implementation of `seq-take' for lists." #<bytecode -0x1e8bdd413c3582d2>) (meow-position-highlight-number-1 meow-position-highlight-number-1 meow-position-highlight-number-1 meow-position-highlight-number-1 meow-position-highlight-number-1 meow-position-highlight-number-1 meow-position-highlight-number-1 meow-position-highlight-number-1 meow-position-highlight-number-1 meow-position-highlight-number-1 meow-position-highlight-number-2 meow-position-highlight-number-2 meow-position-highlight-number-2 meow-position-highlight-number-2 meow-position-highlight-number-2 meow-position-highlight-number-2 meow-position-highlight-number-2 meow-position-highlight-number-2 meow-position-highlight-number-2 meow-position-highlight-number-2 meow-position-highlight-number-3 meow-position-highlight-number-3 meow-position-highlight-number-3 meow-position-highlight-number-3 meow-position-highlight-number-3 meow-position-highlight-number-3 meow-position-highlight-number-3 meow-position-highlight-number-3 meow-position-highlight-number-3 meow-position-highlight-number-3) nil)
  seq-take((meow-position-highlight-number-1 meow-position-highlight-number-1 meow-position-highlight-number-1 meow-position-highlight-number-1 meow-position-highlight-number-1 meow-position-highlight-number-1 meow-position-highlight-number-1 meow-position-highlight-number-1 meow-position-highlight-number-1 meow-position-highlight-number-1 meow-position-highlight-number-2 meow-position-highlight-number-2 meow-position-highlight-number-2 meow-position-highlight-number-2 meow-position-highlight-number-2 meow-position-highlight-number-2 meow-position-highlight-number-2 meow-position-highlight-number-2 meow-position-highlight-number-2 meow-position-highlight-number-2 meow-position-highlight-number-3 meow-position-highlight-number-3 meow-position-highlight-number-3 meow-position-highlight-number-3 meow-position-highlight-number-3 meow-position-highlight-number-3 meow-position-highlight-number-3 meow-position-highlight-number-3 meow-position-highlight-number-3 meow-position-highlight-number-3) nil)
  meow--highlight-num-positions(nil)
  meow--maybe-highlight-num-positions((meow--backward-line-1 . meow--forward-line-1))
  meow-line(1)
  funcall-interactively(meow-line 1)
  call-interactively(meow-line nil nil)
  command-execute(meow-line)
DogLooksGood commented 5 months ago

Unfortunately, it looks weird to me. Are you using some packages that would cancel the REGION(selection) in some cases?

There's a way to debug further. Find the function meow-maybe-highlight-num-positions in Emacs, and execute it with C-M-x (the debug evaluation). Then when it get called, you will enter edebug automatically, then you can step forward/over jump in/out to see each values in this function. I'm curious about the return value from (meow--selection-type) and the value of meow-expand-hint-counts.

witek commented 5 months ago

I have already tried to strip down my config to almost nothing but MEOW and it still has this error.

Instead of debugger, I have inserted some prints right above the let block.

The value of (meow--selection-type) depends on the command: (expand . line) or (expand . block).

But the value of meow-expand-hint-counts is always nil.

Insite the let block num is also nil.

witek commented 5 months ago

Now I see! I have set meow-expand-hint-counts to () to get rid of the hints.

Thank you for your help!

DogLooksGood commented 5 months ago

You can set them to 0 to get rid of hints