Dyalog / ride

Cross-platform IDE for Dyalog APL
https://dyalog.github.io/ride
MIT License
204 stars 31 forks source link

When deleting a block from the session log, only text content is removed, while the lines themselves remain #798

Open abrudz opened 2 years ago

abrudz commented 2 years ago

Describe the issue you are having

The IDE allows removal of parts of the session log using and RIDE advertises a too, but it only removes the content of each line, leaving behind an equal amount of empty lines. It also seems to activate the first line after the "removed" lines.

Did you connect to an already running interpreter or start the interpreter from RIDE?

Start an interpreter

How do you reproduce the issue?

Paste the contents of Help → About (Shift+F1)

IDE:
  Version: 4.4.3653
  Platform: Win32
  Date: 2021-11-03 07:08:06 +0100
  Git commit: 882ba6e8017c8ebddb775c9d7d0bff59918851a9
  Preferences:{
    "autoCloseBrackets":"0",
    "autoPW":"1",
    "colourScheme":"Dracula",
    "confirmations":"{\"SaveFileOptionsExtension:.apln\":100,\"SaveFileOptionsExtension:.dyalog\":100,\"\":100}",
    "indentOnOpen":"0",
    "kbdLocale":"en_GB",
    "keys":"{\"BK\":[\"Alt-Up\",\"Ctrl-Shift-Backspace\"],\"DK\":[\"Ctrl-Shift-D\"],\"FD\":[\"Alt-Down\",\"Ctrl-Shift-Enter\"],\"FX\":[\"Ctrl-S\"],\"QCP\":[\"Ctrl-Shift-P\"],\"ZM\":[\"Ctrl-Shift-Up\"],\"PF11\":[\"F11\"]}",
    "lbarOrder":"← +-×÷*⍟⌹!? |⌊⊥⊤⊣⊢ =≠≤<>≥≡≢ ∨∧⍲⍱ ↓⊂⊃⊆⌷⍋⍒ ⍳⍸∊⍷∪∩~ /\\⌿⍀ ,⍪⍴⌽⊖⍉ ¨⍨⍣.∘⍤⍥@ ⍞⎕⍠⌸⌺⌶⍎⍕ ⋄⍝→⍵⍺∇& ¯⍬ ↑○⌈ ",
    "menu":"# see below for syntax\n\nDyalog                          {mac}\n  About Dyalog             =ABT\n  -\n  Preferences...           =PRF\n  -                            \n  &Quit                    =QIT\n&File                           {!browser}\n  &Open...                 =OWS {local}\n  &New Session             =NEW\n  &Connect...              =CNC\n  -                             {!mac}\n  &Quit                    =QIT {!mac}\n&Edit\n  Undo                     =UND {!browser}\n  Redo                     =RDO {!browser}\n  -                             {!browser}\n  Cut                      =CT  {!browser}\n  Copy                     =CP  {!browser}\n  Paste                    =PT  {!browser}\n  Select All               =SA  {mac}\n  -                             {!mac&&!browser}\n  Find\n    &Find                    =SC\n    &Replace                 =RP\n  Preferences...           =PRF {!mac}\n&View\n  Show Language Bar        =LBR\n  Show Status Bar          =SBR\n  Show Workspace Explorer  =WSE\n  Show Debug               =DBG\n  Line Wrapping in Session =WRP\n  -                             {!browser}\n  Stops                    =TVB\n  Line Numbers             =LN\n  Outline                  =TVO\n  -                             {!browser}\n  Increase Font Size       =ZMI {!browser}\n  Decrease Font Size       =ZMO {!browser}\n  Reset Font Size          =ZMR {!browser}\n  -                             {!browser}\n  Toggle Full Screen            {!browser}\n&Window\n  Close All Windows        =CAW\n&Action\n  Edit                     =ED\n  Trace                    =TC\n  -\n  Clear all trace/stop/monitor =CAM\n  Weak Interrupt           =WI\n  Strong Interrupt         =SI\n&Threads                        {rp21}\n  Pause on Error           =POE\n  Pause all Threads        =PAT\n  Resume all Threads       =RSU\n  Restart all Threads      =MA\n&Help\n  Getting &Started         =https://dyalog.com/introduction.htm\n  -\n  Dyalog &Help             =DHI\n  &Language Elements       =LEL\n  &Documentation Centre    =DOX\n  -\n  Dyalog &Website          =https://dyalog.com/\n  &Email Dyalog            =EMD\n  -\n  Latest &Enhancements     =ENH\n  Read &Me                 =RME\n  &Third Party Licences    =TPL\n  &About                   =ABT {!mac}\n\n# Syntax:\n#   &x   access key, alt+x\n#   =CMD command code; some are special:\n#          LBR WRP WSE render as checkboxes\n#   =http://example.com/  open a URL\n#   {}   conditional display, a boolean expression\n#          operators: && || ! ( )\n#          variables: local browser mac win\n#   -    separator (when alone)\n#   #    comment\n\n# The =PRF (\"Preferences...\") menu item must be present.",
    "pfkeys":"[\"\",\"\",\"\",\"\",\"<LL>(<RL>)\",\"<DB>\",\"\",\"\",\"\",\"\",\"\",\"<LL>(<RL>)\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\"]",
    "selectedExe":"C:\\Program Files\\Dyalog\\Dyalog APL-64 18.2 Unicode\\dyalog.exe",
    "zoom":"5"
  }

Interpreter:
  Version: 18.2.44766
  Platform: Windows-64
  Edition: Unicode/64
  Date: Nov 12 2021 at 11:46:07
KarlTD commented 2 years ago

Hi. It not possible to permanently delete lines from the session log in RIDE since the log comes from the interpreter. In order to do that there have to be changes to the protocol.

What we can do is implement a proper way to delete lines, but they will reappear in RIDE's session log when RIDE is restarted.

dyaandys commented 2 years ago

I am inclined to say that magically reappearing lines is going to be very confusing.

I think that arranging for an enhancement to the protocol is the best way forward.

KarlTD commented 2 years ago

I agree.

I'll put this issue on hold.

e9gille commented 2 years ago

Fixed issue with deleted lines disappearing from session in 5210388aaf4f41d208810c3812dbbda2772032ff To permanently delete lines from session one should use the DK command (delete block) which isn't implemented properly in RIDE yet as it requires an extension to the RIDE protocol (logged with Dyalog as RFE20011).

e9gille commented 2 years ago

Duplicate of #33, I will close that one.