jrblevin / markdown-mode

Emacs Markdown Mode
http://jblevins.org/projects/markdown-mode/
GNU General Public License v3.0
877 stars 160 forks source link

cell value that starts with a hyphen (-) is misinterpreted as horizontal separator #747

Closed seabadger closed 1 year ago

seabadger commented 1 year ago

Expected Behavior

When the first cell in a table row has a value that begins with a hyphen, table realignment should not treat that value as anything special.

Actual Behavior

Table realignment misrecognizes the cell value as a row separator and replaces all cells in the row with a row separator, losing the row contents in the process.

This is clearly a bug. The documentation states:

No padding is allowed between the beginning pipe character and header separator symbol.

In my use case, the pipe character is separated by one (or more) spaces from the -, so according to the above, it should not be recognized as a row separator.

(as to why my cell values begin with a hyphen: I'm attempting to document command line options of a program using a markdown table)

Steps to Reproduce

  1. open a markdown-mode buffer
  2. enter the following table:
    |---|---|
    | A | B |
    |---|---|
    | -c  | some text  |
  3. place the cursor anywhere on the last line of the table (the one with the -c)
  4. press TAB (or perform any action that causes table to be realigned)

The result of the above action will look like this:

|---|---|
| A | B |
|---|---|
|---|---|
|   |   |

Backtrace

There is no backtrace, the mode just does the wrong thing.

Software Versions

Markdown Mode: 2.6-alpha Emacs: 28.2 (using the version from https://emacsformacosx.com/) OS: macOS Monterey 12.6.3

syohex commented 1 year ago

Thanks for reporting the issue. I have fixed this issue at #748. Please check the latest version.