This is a very helpful discussion -- I'm going to think about tabs on the hammock.
On Jul 18, 8:06 pm, Ken Wesson <kwess...@gmail.com> wrote: > On Mon, Jul 18, 2011 at 5:14 PM, abp <abp...@googlemail.com> wrote: > > Why is it necessary to press TAB at all? Couldn't auto-indent be the > > default for a line and only manually reindented lines opt-out until > > one opts in again using TAB or something? > > This is an interesting thought. On the other hand, when lines are > merged or split, where does this status go? I'm thinking when a line > is split the second of the two resulting lines should start out > indented correctly relative to the first, and inherit the first's > status; when two lines are merged, the status of the first of the two > becomes the status of the merged line. This is consistent with the > status being an invisible metacharacter at the start of the line that > is deleted with the immediately preceding newline and cloned if enter > is hit in the middle of that line. > > What about multi-line pastes? If the paste is of material cut or > copied from inside clooj, the status of each line that was cut or > copied would be stored OOB somewhere and used for the paste. (Actually > using funny extra characters inline in the copied material has > problems if material is copied from clooj and pasted into something > else, such as a post to this list.) From outside clooj? Some sensible > default, such as autoindent off (keep paste's formatting) or on > (auto-fix to context). Maybe let the user choose either in an options > screen. > > Saving the state across sessions also seems to need to be OOB. Putting > it in the .clj file at the start of each line would gum up other > tools, and adding clooj-internal comments to source files isn't much > better. A clooj.dat file in the project root? > > Alternatively, avoid the mess and just always maintain > structure-determined indent of all lines at all times. Does anyone > really want fully user-controlled indenting outside of comments > anyway? Spaces and tabs in the indent can just jump you to the start > of the forms on the line, and self-insert normally in string literals > and in ; comments, and single spaces normally anywhere (maybe turn > tabs into spaces and tab or space next to a space just moves you to > the right of the space). > > Or, the traditional thing: full control, but tab or something will > reindent the current line, or all lines intersecting the selection if > any, to structurally-correct positions based on all of the code above, > if tab is hit outside a string literal or ; comment. > > -- > Protege: What is this seething mass of parentheses?! > Master: Your father's Lisp REPL. This is the language of a true > hacker. Not as clumsy or random as C++; a language for a more > civilized age. -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en