home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 5 Edit / 05-Edit.zip / os2vile.zip / BUGLIST next >
Text File  |  1993-02-03  |  14KB  |  340 lines

  1.     (E means enhancement, L,M,H are low, medium, high priority)
  2. ----------------------
  3.  
  4. H    The mvrightwind and mvleftwind functions are broken -- visiting lines
  5.     that are too short to be visible when the screen is shifted will
  6.     cause junk on the screen.
  7.  
  8. E    should add a "show-vars" command
  9.  
  10. E    everybody and their sibling wants "map", "map!", and "abb".
  11.     the first step to supporting this is making macro/dotcmd replay be
  12.     properly fully nested, and generalized.  I think, for instance that
  13.     if an @a macro invoked a @b macro, or a ^X-& macro, there'd be
  14.     reentrancy problems.
  15.  
  16. E    add "set autowrite", ":n file" (what does that do?), "set nu", "set
  17.     noredraw"
  18.  
  19. E    now that paragraphs, sections, and sentences are all selectable
  20.     with regexps, they (and the tabstop value) are prime candidates for
  21.     moving into a "mode-values" set of values.  A buffer would inherit
  22.     either the global normal-mode values, or the global c-mode values.
  23.  
  24. E    should the "value'd" modes be variables?  vice-versa?  Probably the
  25.     notion of variables should be unified with the values somehow, possibly
  26.     via a new valueset containing just the variables.  they would not
  27.     be inherited by buffers, but would always be global.  the CSUFFIXES
  28.     value would be a good thing to move there, since it doesn't make sense
  29.     as a per-buffer value.  Or else the variables should be checked for
  30.     matches after the rest of the value sets.
  31.  
  32. E    :k, to set a mark, won't work as ":ka" or ":kb".  Must use ":k a"
  33.  
  34. E    patterns as addresses do not work, e.g. ":/str1/,/str2/d".  They're
  35.     hard to parse the way things are set up right now.  We could accumulate
  36.     the whole commandline, and then parse it, the way real vi does, but we'd
  37.     lose the "prompt and display last response" behavior.
  38.  
  39. E    In vi, the join command is supposed to act either on a region (from
  40.     the command line, as in ":13,15j"), or it should take a simple
  41.     count, from vi mode, as in "3j".  Right now vile _only_ does the
  42.     simple count form of the command.
  43.  
  44. E    should add an option to support file locking, rather than the current
  45.     ifdef stuff.  (this is only useful if we match the GNU locking
  46.     protocol.) And it's not clear that in an NFS'ed environment that
  47.     it's all that easy to get that style of locking right anyway.
  48.  
  49. E    the scrsearch functions could become region based -- as in "search for
  50.     the next occurrence of the region", which would usually be a word.  And
  51.     the ^A/ version could become "a/ (search for teh contents of buffer a),
  52.     if you know what I mean.
  53.  
  54. E    need a "file newer than buffer" warning.  Should stat the file, and
  55.     store it's mod time, compare to current when going back to that window,
  56.     after performing some shell command, or just before modifying it. 
  57.     e.g., if you're editing a file that is created by a script you're
  58.     testing, then you want to be warned that the file is out of date
  59.     after doing a test run of the script.
  60.  
  61. E    should implement tagpath, and/or multiple tags files as well.
  62.  
  63. E    it would be nice if ^X!! reran the last command into [Output]
  64.  
  65. E    g should become a region command.  Then it could take ranges, as
  66.     it should, and could also become an operator command.
  67.  
  68. E    adjust window size of popups based on length of buffer.  currently
  69.     popups get half the window they're splitting, no matter what
  70.  
  71. E    collapse command execution code to as few places as possible.
  72.     Its currently spread through execute(), operator(),
  73.     docmd(), and usekreg().
  74.     
  75. E    mlreply line should ideally be a one line buffer, so editing
  76.     and history can be done on it.
  77.  
  78. E    BSD interrupt processing is botched during a read() of the keyboard.
  79.     The read doesn't return -1 as it does under sysV (USG).
  80.     So you can bang on ^C all day and nothing will happen.  It does work
  81.     if you're not in a read(), of course.
  82.     
  83. E    I haven't even come close to testing vile for
  84.     memory-full conditions.  Some malloc() packages give 95%
  85.     warnings -- perhaps something like that should be done for
  86.     safety.
  87.  
  88. E    marks should perhaps be linked onto lines.  this would make a lot
  89.         of things a lot easier, since a mark would travel with the
  90.         line, instead of having to be moved when the line is
  91.         reallocated etc.  the U line could be treated as a special
  92.         mark.  The "copied" flag needed by undo could be a special
  93.         sort of mark as well.  Implementation of the "tag stack"
  94.     would be aided by this as well.
  95.  
  96. E    :e and :n should be able to deal with multiple filenames resulting
  97.     from filename globbing.  vi has this problem too.  At least
  98.     vile lets you choose to choose the first such name.  if should show
  99.     you the first name, so you know whether to accept it or not.
  100.  
  101. E    vi lets you say: "set ai nows ic".  These must be separate commands
  102.     in vile.
  103.  
  104. E    When a line is too long to fit on the screen, you have to move
  105.     over it to see the rest, and when you get to the edge of the screen,
  106.     it jumps. I would prefer a smooth(er) scroll.
  107.  
  108. E    File completion would be nice for commands asking for filenames.
  109.     This saves a lot of typing.
  110.  
  111. L    "I found a problem when using vile with encrypted files.  During a file
  112.     edit if I set the mode to crypt and save the file, I am prompted
  113.     for a encryption key.  When I try to read in this encrypted file in
  114.     another session using "vile -kcryptkey file".  I am prompted for
  115.     the encrypt key and when I type it in, I get the message
  116.     "Encryption String: IOT trap".  "  [ Anyone wanting to work on this,
  117.     I can send you more info -- pgf ]
  118.  
  119. E    The vi '_' command isn't supported -- it's similar to stuttering
  120.     when used as an operator controller, and similar to '^' when used
  121.     as a simple motion.
  122.  
  123.  
  124. E    Do autoindent after labels and case statements (lines ending in ':')
  125.     Alternately, _back_up_ if you type either of `case ' or `default:'.
  126.     and shift back all the way to the left for `label:'
  127.     In either case) then return the `normal' indent for the next line.
  128.  
  129. E    in autoindent mode: 0^D and ^^D don't work
  130.  
  131. E    can't search for a NUL in a buffer.
  132.  
  133. ===================================================
  134.  
  135.     Is it possible to get vile to prompt you if you try to exit without
  136.     viewing all the files that were given on the command line?
  137.  
  138.     It would be nice if the cmode-style autoindenting would do the
  139.     same thing with () and [] as it does with {}.  This would be
  140.     useful for writing function calls with lots of arguments.
  141. [ hard ]
  142.  
  143.     In cmode, is it possible to get vile to return to the previous
  144.     indentation on the line after a # directive?
  145.  
  146.  
  147. ===================================================
  148.  
  149.     There is a bug in the regular expression code.  The expression
  150.     's/./=/g' should change all the characters on the lines to an equal
  151.     sign.  Yet, here is what happens:
  152.  
  153.     This line should turn into all equals:
  154.  
  155.     but, :s/./=/g yields:
  156.         =h=s=l=n= =h=u=d=t=r= =n=o=a=l=e=u=l=:
  157.  
  158.     Every other character is skipped.  (A pointer incrementing problem?)
  159.  
  160.     The ed 'transfer' and 'move' commands don't work. 
  161.     (to copy and move text around.  e.g., :'a,'bt$.)
  162.  
  163. ===================================================
  164.  
  165.     vile running in an xterm terminal has the
  166. annoying habit of moving the status bar line when scrolling up with
  167. ^U or ^E.  This leads to the impression of 'flicker' that is very
  168. hard to get used to.  Is there any easy fix for this, or is this a
  169. consequence of the way the termcap entry is set up?
  170.  
  171. (add "use scroll regions" setting to force there use, termcap notwithstanding)
  172.  
  173. ===================================================
  174.  
  175. PCVILE
  176.  
  177.     - globbing (e.g. ":e *.c") does nothing under DOS -- the code in
  178.     expand_wild_args() can probably be used to accomplish this.
  179.  
  180.     - filter-region -- this would be easier if I had used named pipes
  181.     as the conduit between child and parent, instead of regular pipes,
  182.     'cause then I could just replace the named pipe with a tmp file
  183.     under DOS.    
  184.  
  185.     - some function keys return 8 bit characters on the PC.  This means
  186.     the input path, through tgetc, has to be 8-bit clean, we need to
  187.     allow 256 bindings instead of the current 128, and we can't use
  188.     0x80 as the definition of the SPEC bit.  All this is easy -- it
  189.     just needs to be done.
  190.  
  191.     - there used to be a "set screen {25|43|50} command -- what happened
  192.     to it?  should 'set-variable $sres "CGA"' do the same thing?  if not,
  193.     what's it for?
  194.  
  195. ===================================================
  196.  
  197. PCVILE
  198.  
  199. Firstly - UNISYS 80286, EGA screen, 4DOS command shell & NNANSI.SYS
  200.  
  201. 1) Attempting to shell out to 4dos results in running COMMAND.COM.  Is
  202.    this because COMSPEC is not checked ?
  203.  
  204. 2) Attempting to redirect the output of a 4DOS internal command into a 
  205.    buffer works erratically.
  206.  
  207.     a) :e !dir        - never works
  208.     b) ^X-!dir        - works BUT when followed by;
  209.        ^X-!set        - I get the dir listing again.
  210.  
  211.  
  212. 3) During testing I noticed another odd result when running the command;
  213.  
  214.     :!set
  215.  
  216.    I notice that the output starts on the status line and will overwrite
  217.    it before continuing onto other lines.  However running
  218.  
  219.     :!dir
  220.  
  221.    appears to print out just fine.
  222.  
  223. 4) Points 1) & 3) I have previuosly raised with Peter Ruczynski on his
  224.    version. 
  225.  
  226.  
  227. ===================================================
  228.  
  229. PCVILE
  230.  
  231. Sigh, well, I removed vile from my DOS box today.  Reason:  earlier
  232. today I had cut over to it as my editor of choice and I noticed that
  233. after using vile for a long period of time and then typing:
  234.  
  235.     :w        (save file)
  236.  
  237. I would get an error message from vile saying that it was unable to
  238. access [PRN] (the DOS printer port).  Vile then gave me an opportunity
  239. to Retry or Abort?, but ignored all responses from the keyboard,
  240. including ^C.  I had no choice but to reboot.  Oh well, I figured, just
  241. a fluke.  But then the same problem occurred an hour later.  At that
  242. point I saw no alternative but to remove the program from disk.  I sure
  243. can't debug this problem because I know for a fact that the PC version
  244. of Vile is not using your released base of source code (it can't be
  245. because it handles command line file globbing, which your source does
  246. not support for DOS).
  247.  
  248.  
  249. ===================================
  250.  
  251.  
  252. PCVILE
  253.  
  254.  
  255. 1) PC-vile wants all of its filenames to be specified with back 
  256.    slashes.  Blech.  Everybody's DOS products (except Microsoft) accept
  257.    both backward and forward slashes in filenames.
  258.  
  259. 2) PC-vile quickly exhausts DOS memory when it opens a large file
  260.    or a large tags file.  This can easily be fixed with a compiler
  261.    that supplies a DOS extender (ala Intel's CodeBuilder).  The
  262.    problems I was experiencing with attempts to "write to PRN" may
  263.    also be related to out-of-memory conditions that aren't being
  264.    trapped by DOS or the editor.
  265.  
  266. 3) If your screen starts out in 50-line mode when you enter PC-vile,
  267.    and then exit, PC-vile puts the screen in 25-line mode.  Not
  268.    nice.
  269.  
  270. 4) If you start editing PC-vile with a full block cursor, PC-vile
  271.    switches you back to a small underscore cursor.  Veeeeerrrrrrry
  272.    unfriendly.
  273.  
  274. 5) PC-vile scrolls the screen a page at a time when you browse code
  275.    with the 'j' or 'k' key.  This is totally contrary to the way
  276.    Vi scrolls code and it annoys me tremendously.
  277.  
  278. 6) PC-vile does not internally glob file names (e.g., :r t*.c) does
  279.    not work.
  280.  
  281. 7) The supplied makefile does not work under DOS due to command
  282.    line overflow (but you knew that).
  283.  
  284. ===================================================
  285. 486 PC under Dell Unix (svr4) - make:    unixpc
  286. HP9000/700 under HPUX 8.07    - changes: do not include <Xos.h> in x11.c when
  287.                                          hpux is defined
  288.                                 incs:    add -I/usr/include/X11R4
  289.                                 libs:    add -L/usr/lib/X11R4
  290.                                 make:    hpux
  291. Tektronix XD88/10 under UTekV - changes: removed LIBS definition from svr3 rule
  292.                                          in makefile to make xvile
  293.                                 cflags:  add -DSYSV -X28
  294.                                 make:    svr3
  295. ----------------------------------------------------------------------
  296.  
  297. Though I use it, I'm still not quite satisfied with the qident stuff.  It
  298. needs to be more flexible.  That is, I'd like to make it user defined. 
  299. For example
  300.     find-tag $qidentifier
  301. should be expressable as a character class like
  302.     find-tag &anyof "a-zA-Z_0-9:"
  303. in a macro.  Or even more generally, as a regular expression:
  304.     find-tag &scan "[a-zA-Z_][a-zA-Z_0-9:]\\*"
  305. A leading ^ would root the search at the current cursor position.
  306. Absence of a leading ^ would start at the current cursor position but would
  307. scan ahead until it found a match.  That way I can redefine ^] to pick
  308. up the next word even if the cursor is before the start of the word (thus
  309. better mimicking vi's behavior).
  310.  
  311. [ This can almost be done with the $match variable, e.g.
  312.     7 store-macro
  313.         search-forward "[a-zA-Z_][a-zA-Z_0-9:]*"
  314.         find-tag $match
  315.     ~endm
  316.  
  317.     bind-key execute-macro-7 ^A-g
  318.  - pgf ]
  319. ----------------------------------------------------------------------
  320. What about the possibility of adding vi's (and perl's) \u \U \l \L \E.
  321.  
  322. ----------------------------------------------------------------------
  323.  
  324. Xvile works nicely with the middle mouse button to paste text.  It mangles
  325. text a bit when doing the selection, however.  Multiline selections
  326. include all that (visual) whitespace at the end of the line (yes, after
  327. the newline), so when I paste them I get n lines each 80 bytes long!
  328. Plus long lines (that have a > indicator at the right column) get
  329. truncated at 80 columns.
  330. ----------------------------------------------------------------------
  331.  
  332. Xvile has problems with mouse selections if the line has been sideways
  333. scrolled.  It moves to an earlier part of the line.  This is obviously a
  334. problem of convert mouse coordinates to a column position but neglecting
  335. to offset by the horizontally scrolling.
  336. ----------------------------------------------------------------------
  337.  
  338. Enhancement:  xvile would be nicer with scroll bars.
  339.  
  340.