* Tab completion and electric-indent-mode @ 2022-06-17 11:59 carlmarcos--- via Users list for the GNU Emacs text editor 2022-06-17 14:10 ` [External] : " Drew Adams 0 siblings, 1 reply; 17+ messages in thread From: carlmarcos--- via Users list for the GNU Emacs text editor @ 2022-06-17 11:59 UTC (permalink / raw) To: Help Gnu Emacs Have been delving into tab completion and encountered the variable `tab-always-indent` where I can use the tab key for completion at point. Does there exist any relationship between the variable `tab-always-indent` and `electric-indent-mode`? Would `(setq tab-always-indent 'complete)` interfere with any functionality that one would usually want to have? `electric-indent-mode` says that in does "On-the-fly Reindentation". What does that mean, and how is it different to normal indentation? ^ permalink raw reply [flat|nested] 17+ messages in thread
* RE: [External] : Tab completion and electric-indent-mode 2022-06-17 11:59 Tab completion and electric-indent-mode carlmarcos--- via Users list for the GNU Emacs text editor @ 2022-06-17 14:10 ` Drew Adams 2022-06-17 14:14 ` carlmarcos--- via Users list for the GNU Emacs text editor ` (2 more replies) 0 siblings, 3 replies; 17+ messages in thread From: Drew Adams @ 2022-06-17 14:10 UTC (permalink / raw) To: carlmarcos@tutanota.com; +Cc: 'Help-Gnu-Emacs (help-gnu-emacs@gnu.org)' [-- Attachment #1: Type: text/plain, Size: 792 bytes --] > `electric-indent-mode` says that in does "On-the-fly > Reindentation". What does that mean, and how is it > different to normal indentation? (What's "normal indentation"?) The doc string says that the mode does this, which is presumably what it means by hand-waving with "on-the-fly reindentation": this reindents whenever the hook `electric-indent-functions' returns non-nil, or if you insert a character from `electric-indent-chars'. The Emacs manual, node `Indent Convenience' says: Electric Indent mode is a global minor mode that automatically indents the line after every <RET> you type. If you feel that these explanations aren't clear enough then please consider filing an enhancement request to clarify further: `M-x report-emacs-bug'. [-- Attachment #2: winmail.dat --] [-- Type: application/ms-tnef, Size: 13801 bytes --] ^ permalink raw reply [flat|nested] 17+ messages in thread
* RE: [External] : Tab completion and electric-indent-mode 2022-06-17 14:10 ` [External] : " Drew Adams @ 2022-06-17 14:14 ` carlmarcos--- via Users list for the GNU Emacs text editor 2022-06-17 15:33 ` Eli Zaretskii 2022-06-17 17:41 ` Emanuel Berg 2 siblings, 0 replies; 17+ messages in thread From: carlmarcos--- via Users list for the GNU Emacs text editor @ 2022-06-17 14:14 UTC (permalink / raw) To: Drew Adams; +Cc: 'Help-Gnu-Emacs (help-gnu-emacs@gnu.org)' Jun 17, 2022, 14:10 by drew.adams@oracle.com: >> `electric-indent-mode` says that in does "On-the-fly >> Reindentation". What does that mean, and how is it >> different to normal indentation? >> > > (What's "normal indentation"?) > Indentation that is not on-the-fly. I would think that all indentation is on-the-fly, but I am not sure. Reading indicates that it is some indentation enhancement. > The doc string says that the mode does this, which > is presumably what it means by hand-waving with > "on-the-fly reindentation": > > this reindents whenever the hook `electric-indent-functions' > returns non-nil, or if you insert a character from > `electric-indent-chars'. > > The Emacs manual, node `Indent Convenience' says: > > Electric Indent mode is a global minor mode that > automatically indents the line after every <RET> > you type. > > If you feel that these explanations aren't clear > enough then please consider filing an enhancement > request to clarify further: `M-x report-emacs-bug'. > ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [External] : Tab completion and electric-indent-mode 2022-06-17 14:10 ` [External] : " Drew Adams 2022-06-17 14:14 ` carlmarcos--- via Users list for the GNU Emacs text editor @ 2022-06-17 15:33 ` Eli Zaretskii 2022-06-18 3:45 ` carlmarcos--- via Users list for the GNU Emacs text editor 2022-06-17 17:41 ` Emanuel Berg 2 siblings, 1 reply; 17+ messages in thread From: Eli Zaretskii @ 2022-06-17 15:33 UTC (permalink / raw) To: help-gnu-emacs > From: Drew Adams <drew.adams@oracle.com> > CC: "'Help-Gnu-Emacs (help-gnu-emacs@gnu.org)'" <help-gnu-emacs@gnu.org> > Date: Fri, 17 Jun 2022 14:10:00 +0000 > > > `electric-indent-mode` says that in does "On-the-fly > > Reindentation". What does that mean, and how is it > > different to normal indentation? > > (What's "normal indentation"?) > > The doc string says that the mode does this, which > is presumably what it means by hand-waving with > "on-the-fly reindentation": > > this reindents whenever the hook `electric-indent-functions' > returns non-nil, or if you insert a character from > `electric-indent-chars'. > > The Emacs manual, node `Indent Convenience' says: > > Electric Indent mode is a global minor mode that > automatically indents the line after every <RET> > you type. > > If you feel that these explanations aren't clear > enough then please consider filing an enhancement > request to clarify further: `M-x report-emacs-bug'. But before you do, I suggest to check the latest code, because the above quotations are obsolete. ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [External] : Tab completion and electric-indent-mode 2022-06-17 15:33 ` Eli Zaretskii @ 2022-06-18 3:45 ` carlmarcos--- via Users list for the GNU Emacs text editor 2022-06-18 6:44 ` Eli Zaretskii ` (2 more replies) 0 siblings, 3 replies; 17+ messages in thread From: carlmarcos--- via Users list for the GNU Emacs text editor @ 2022-06-18 3:45 UTC (permalink / raw) To: Eli Zaretskii; +Cc: help-gnu-emacs Jun 17, 2022, 15:33 by eliz@gnu.org: >> From: Drew Adams <drew.adams@oracle.com> >> CC: "'Help-Gnu-Emacs (help-gnu-emacs@gnu.org)'" <help-gnu-emacs@gnu.org> >> Date: Fri, 17 Jun 2022 14:10:00 +0000 >> >> > `electric-indent-mode` says that in does "On-the-fly >> > Reindentation". What does that mean, and how is it >> > different to normal indentation? >> >> (What's "normal indentation"?) >> >> The doc string says that the mode does this, which >> is presumably what it means by hand-waving with >> "on-the-fly reindentation": >> >> this reindents whenever the hook `electric-indent-functions' >> returns non-nil, or if you insert a character from >> `electric-indent-chars'. >> >> The Emacs manual, node `Indent Convenience' says: >> >> Electric Indent mode is a global minor mode that >> automatically indents the line after every <RET> >> you type. >> >> If you feel that these explanations aren't clear >> enough then please consider filing an enhancement >> request to clarify further: `M-x report-emacs-bug'. >> > > But before you do, I suggest to check the latest code, because the > above quotations are obsolete. > Have looked /emacs/lisp/electric.el which now describes command loop for `electric' modes. Still think there should be clear explanations on the level of indentations emacs does. This is because reindentation typically refers to an indentation enhancement compared to some basic indentation method. "On-the-Fly Reindentation" also has difficulty of interpretation. Does there exist indentation that is "Not On-the-Fly"? What would that do? Have viewed the main repository define-minor-mode electric-indent-mode says When enabled, this reindents whenever the hook `electric-indent-functions' returns non-nil, I do not find the comment informative regarding the types of reindents. electric-indent-functions states that it is a special hook run to decide whether to auto-indent. Additionally, reindent means that an indentation scheme would have been applied already, supposedly composed of a simpler indent scheme. Can information be introduced on how indentation and re-indentation works and the conditions by which indentation is applied? There needs to be clear explanations of what indentation and reindentation do and under what conditions as the current information is developer targeted but not user targeted. ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [External] : Tab completion and electric-indent-mode 2022-06-18 3:45 ` carlmarcos--- via Users list for the GNU Emacs text editor @ 2022-06-18 6:44 ` Eli Zaretskii 2022-06-18 8:05 ` carlmarcos--- via Users list for the GNU Emacs text editor 2022-06-18 9:15 ` Eric S Fraga 2022-06-18 23:10 ` Drew Adams 2 siblings, 1 reply; 17+ messages in thread From: Eli Zaretskii @ 2022-06-18 6:44 UTC (permalink / raw) To: help-gnu-emacs > Date: Sat, 18 Jun 2022 05:45:06 +0200 (CEST) > From: carlmarcos@tutanota.com > Cc: help-gnu-emacs@gnu.org > > But before you do, I suggest to check the latest code, because the > above quotations are obsolete. > > Have looked /emacs/lisp/electric.el which now describes command loop for `electric' modes. > > Still think there should be clear explanations on the level of indentations emacs does. > This is because reindentation typically refers to an indentation enhancement compared to > some basic indentation method. "On-the-Fly Reindentation" also has difficulty of interpretation. > Does there exist indentation that is "Not On-the-Fly"? What would that do? > > Have viewed the main repository > > define-minor-mode electric-indent-mode > > says > > When enabled, this reindents whenever the hook `electric-indent-functions' > returns non-nil, I do not find the comment informative regarding the types of > reindents. I don't know in which place you looked, but the above is just a small part of what the doc string says. You omitted the parts that are supposed to answer your questions. In particular, the doc string does attempt to explain what "reindent" means. > electric-indent-functions states that it is a special hook run to decide whether to auto-indent. Why are you focusing on electric-indent-functions? In most cases, the cause of electric reindentation is not that function, but what the rest of the sentence says: ...or if you insert one of the "electric characters". > Additionally, reindent means that an indentation scheme would have been applied > already, supposedly composed of a simpler indent scheme. > > Can information be introduced on how indentation and re-indentation works and the conditions > by which indentation is applied? What exactly indentation and reindentation do depends on the current major mode. electric-indent-mode just makes the mode-specific indentation to happen automatically in certain situations, where Emacs thinks the user expects reindentation. If you want to know how a specific major mode indents text, you need to look for answers in that mode, not in electric-indent-mode, because the latter simply cannot give you the answer. > There needs to be clear explanations of what indentation and reindentation do and under what > conditions as the current information is developer targeted but not user targeted. Here's the full doc string of electric-indent-mode in the current development version of Emacs: Toggle on-the-fly reindentation of text lines (Electric Indent mode). When enabled, this reindents whenever the hook `electric-indent-functions' returns non-nil, or if you insert one of the "electric characters". The electric characters normally include the newline, but can also include other characters as needed by the major mode; see `electric-indent-chars' for the actual list. By "reindent" we mean remove any existing indentation, and then indent the line according to context and rules of the major mode. This is a global minor mode. To toggle the mode in a single buffer, use `electric-indent-local-mode'. Given that electric-indent-mode doesn't know (and doesn't care) about the major-mode's specific indentation rules, the above explains what the minor mode itself does, including what is meant by "reindentation". The rest of the details are in the documentation of the major modes, and you should look there for more information. ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [External] : Tab completion and electric-indent-mode 2022-06-18 6:44 ` Eli Zaretskii @ 2022-06-18 8:05 ` carlmarcos--- via Users list for the GNU Emacs text editor 2022-06-18 8:17 ` Eli Zaretskii 0 siblings, 1 reply; 17+ messages in thread From: carlmarcos--- via Users list for the GNU Emacs text editor @ 2022-06-18 8:05 UTC (permalink / raw) To: Eli Zaretskii; +Cc: help-gnu-emacs Jun 18, 2022, 06:44 by eliz@gnu.org: >> Date: Sat, 18 Jun 2022 05:45:06 +0200 (CEST) >> From: carlmarcos@tutanota.com >> Cc: help-gnu-emacs@gnu.org >> >> But before you do, I suggest to check the latest code, because the >> above quotations are obsolete. >> >> Have looked /emacs/lisp/electric.el which now describes command loop for `electric' modes. >> >> Still think there should be clear explanations on the level of indentations emacs does. >> This is because reindentation typically refers to an indentation enhancement compared to >> some basic indentation method. "On-the-Fly Reindentation" also has difficulty of interpretation. >> Does there exist indentation that is "Not On-the-Fly"? What would that do? >> >> Have viewed the main repository >> >> define-minor-mode electric-indent-mode >> >> says >> >> When enabled, this reindents whenever the hook `electric-indent-functions' >> returns non-nil, I do not find the comment informative regarding the types of >> reindents. >> > > I don't know in which place you looked, but the above is just a small > part of what the doc string says. You omitted the parts that are > supposed to answer your questions. In particular, the doc string does > attempt to explain what "reindent" means. > >> electric-indent-functions states that it is a special hook run to decide whether to auto-indent. >> > > Why are you focusing on electric-indent-functions? In most cases, the > cause of electric reindentation is not that function, but what the > rest of the sentence says: > > ...or if you insert one of the "electric characters". > Ok >> Additionally, reindent means that an indentation scheme would have been applied >> already, supposedly composed of a simpler indent scheme. >> >> Can information be introduced on how indentation and re-indentation works and the conditions >> by which indentation is applied? >> > > What exactly indentation and reindentation do depends on the current > major mode. electric-indent-mode just makes the mode-specific > indentation to happen automatically in certain situations, where Emacs > thinks the user expects reindentation. > > If you want to know how a specific major mode indents text, you need > to look for answers in that mode, not in electric-indent-mode, because > the latter simply cannot give you the answer. > How can a user get that information, are there commands for that? >> There needs to be clear explanations of what indentation and reindentation do and under what >> conditions as the current information is developer targeted but not user targeted. >> > > Here's the full doc string of electric-indent-mode in the current > development version of Emacs: > > Toggle on-the-fly reindentation of text lines (Electric Indent mode). > > When enabled, this reindents whenever the hook `electric-indent-functions' > returns non-nil, or if you insert one of the "electric characters". > The electric characters normally include the newline, but can > also include other characters as needed by the major mode; see > `electric-indent-chars' for the actual list. > > By "reindent" we mean remove any existing indentation, and then > indent the line according to context and rules of the major mode. > Can there be a clarification that reindentation removes the existing indentation with new indentation rules applied? > This is a global minor mode. To toggle the mode in a single buffer, > use `electric-indent-local-mode'. > > Given that electric-indent-mode doesn't know (and doesn't care) about > the major-mode's specific indentation rules, the above explains what > the minor mode itself does, including what is meant by > "reindentation". The rest of the details are in the documentation of > the major modes, and you should look there for more information. > ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [External] : Tab completion and electric-indent-mode 2022-06-18 8:05 ` carlmarcos--- via Users list for the GNU Emacs text editor @ 2022-06-18 8:17 ` Eli Zaretskii 2022-06-18 15:35 ` carlmarcos--- via Users list for the GNU Emacs text editor 0 siblings, 1 reply; 17+ messages in thread From: Eli Zaretskii @ 2022-06-18 8:17 UTC (permalink / raw) To: help-gnu-emacs > Date: Sat, 18 Jun 2022 10:05:54 +0200 (CEST) > From: carlmarcos@tutanota.com > Cc: help-gnu-emacs@gnu.org > > What exactly indentation and reindentation do depends on the current > major mode. electric-indent-mode just makes the mode-specific > indentation to happen automatically in certain situations, where Emacs > thinks the user expects reindentation. > > If you want to know how a specific major mode indents text, you need > to look for answers in that mode, not in electric-indent-mode, because > the latter simply cannot give you the answer. > > How can a user get that information, are there commands for that? The commands for that are the usual Help commands, but you need to apply them to the major mode you are interested in. > Toggle on-the-fly reindentation of text lines (Electric Indent mode). > > When enabled, this reindents whenever the hook `electric-indent-functions' > returns non-nil, or if you insert one of the "electric characters". > The electric characters normally include the newline, but can > also include other characters as needed by the major mode; see > `electric-indent-chars' for the actual list. > > By "reindent" we mean remove any existing indentation, and then > indent the line according to context and rules of the major mode. > > Can there be a clarification that reindentation removes the existing indentation > with new indentation rules applied? ??? Isn't the above saying precisely that? Or maybe I don't understand what you need clarified? ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [External] : Tab completion and electric-indent-mode 2022-06-18 8:17 ` Eli Zaretskii @ 2022-06-18 15:35 ` carlmarcos--- via Users list for the GNU Emacs text editor 2022-06-18 16:20 ` Eli Zaretskii 0 siblings, 1 reply; 17+ messages in thread From: carlmarcos--- via Users list for the GNU Emacs text editor @ 2022-06-18 15:35 UTC (permalink / raw) To: Eli Zaretskii; +Cc: help-gnu-emacs Jun 18, 2022, 08:17 by eliz@gnu.org: >> Date: Sat, 18 Jun 2022 10:05:54 +0200 (CEST) >> From: carlmarcos@tutanota.com >> Cc: help-gnu-emacs@gnu.org >> >> What exactly indentation and reindentation do depends on the current >> major mode. electric-indent-mode just makes the mode-specific >> indentation to happen automatically in certain situations, where Emacs >> thinks the user expects reindentation. >> >> If you want to know how a specific major mode indents text, you need >> to look for answers in that mode, not in electric-indent-mode, because >> the latter simply cannot give you the answer. >> >> How can a user get that information, are there commands for that? >> > > The commands for that are the usual Help commands, but you need to > apply them to the major mode you are interested in. > Can you provide an example? I could not find a list of all the programming major-modes in emacs manual. Called "C-h f mhtml-mode" for instance, which never discusses any indentation rules. For embedded JS, the documentation says that code elements are indented using the rules from ‘js-mode’. But then, doing "M-h f js-mode" does not describe any indentation rules. >> Toggle on-the-fly reindentation of text lines (Electric Indent mode). >> >> When enabled, this reindents whenever the hook `electric-indent-functions' >> returns non-nil, or if you insert one of the "electric characters". >> The electric characters normally include the newline, but can >> also include other characters as needed by the major mode; see >> `electric-indent-chars' for the actual list. >> >> By "reindent" we mean remove any existing indentation, and then >> indent the line according to context and rules of the major mode. >> >> Can there be a clarification that reindentation removes the existing indentation >> with new indentation rules applied? >> > > ??? Isn't the above saying precisely that? Or maybe I don't understand > what you need clarified? > By the definition of "re-" meaning "again"? Thus re-indent corresponds to indent again. Ok ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [External] : Tab completion and electric-indent-mode 2022-06-18 15:35 ` carlmarcos--- via Users list for the GNU Emacs text editor @ 2022-06-18 16:20 ` Eli Zaretskii 0 siblings, 0 replies; 17+ messages in thread From: Eli Zaretskii @ 2022-06-18 16:20 UTC (permalink / raw) To: help-gnu-emacs > Date: Sat, 18 Jun 2022 17:35:45 +0200 (CEST) > From: carlmarcos@tutanota.com > Cc: help-gnu-emacs@gnu.org > > If you want to know how a specific major mode indents text, you need > to look for answers in that mode, not in electric-indent-mode, because > the latter simply cannot give you the answer. > > How can a user get that information, are there commands for that? > > The commands for that are the usual Help commands, but you need to > apply them to the major mode you are interested in. > > Can you provide an example? I could not find a list of all the > programming major-modes in emacs manual. > > Called "C-h f mhtml-mode" for instance, which never discusses any > indentation rules. The doc string of mhtml-mode says: Code inside a <script> element is indented using the rules from ‘js-mode’; and code inside a <style> element is indented using the rules from ‘css-mode’. > For embedded JS, the documentation says that > code elements are indented using the rules from ‘js-mode’. But > then, doing "M-h f js-mode" does not describe any indentation > rules. Maybe you should tell what exactly do you mean by "indentation rules", then. What kind of explanations do you expect to see about indentation rules in some arbitrary major mode? In general, indentation provided by any major mode is "as expected by the user", and Emacs gives you customizable options to control the various parameters of the indentation. For example, for css-mode type "M-x customize-group RET css RET" and review the options. Two options there seem to be relevant to the issue being discussed: css-electric-keys and css-indent-offset. That's about all users need to know about "indentation rules" in css-mode; if you want to know more detail, read the source. > By "reindent" we mean remove any existing indentation, and then > indent the line according to context and rules of the major mode. > > Can there be a clarification that reindentation removes the existing indentation > with new indentation rules applied? > > ??? Isn't the above saying precisely that? Or maybe I don't understand > what you need clarified? > > By the definition of "re-" meaning "again"? Thus re-indent > corresponds to indent again. Ok Yes. ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [External] : Tab completion and electric-indent-mode 2022-06-18 3:45 ` carlmarcos--- via Users list for the GNU Emacs text editor 2022-06-18 6:44 ` Eli Zaretskii @ 2022-06-18 9:15 ` Eric S Fraga 2022-06-19 2:26 ` carlmarcos--- via Users list for the GNU Emacs text editor 2022-06-18 23:10 ` Drew Adams 2 siblings, 1 reply; 17+ messages in thread From: Eric S Fraga @ 2022-06-18 9:15 UTC (permalink / raw) To: help-gnu-emacs On Saturday, 18 Jun 2022 at 05:45, carlmarcos--- via Users list for the GNU Emacs text editor wrote: > Does there exist indentation that is "Not On-the-Fly"? What would that do? Maybe, for instance, ,----[ C-h f indent-region RET ] | indent-region is an interactive native compiled Lisp function in | ‘indent.el’. | | It is bound to C-M-\. | | (indent-region START END &optional COLUMN) | | Indent each nonblank line in the region. | A numeric prefix argument specifies a column: indent each line to that column. | [...] | `---- which does this once when invoked explicitly, i.e. not on-the-fly. The other extreme, by the way, is aggresive-indent-mode which on-the-fly indents not just the line you are one but others around it as things change. I use it all the time. -- Eric S Fraga via gnus (Emacs 29.0.50 2022-06-17) on Debian 11.3 ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [External] : Tab completion and electric-indent-mode 2022-06-18 9:15 ` Eric S Fraga @ 2022-06-19 2:26 ` carlmarcos--- via Users list for the GNU Emacs text editor 2022-06-22 10:46 ` Eric S Fraga 0 siblings, 1 reply; 17+ messages in thread From: carlmarcos--- via Users list for the GNU Emacs text editor @ 2022-06-19 2:26 UTC (permalink / raw) To: Eric S Fraga; +Cc: help-gnu-emacs Jun 18, 2022, 09:15 by e.fraga@ucl.ac.uk: > On Saturday, 18 Jun 2022 at 05:45, carlmarcos--- via Users list for the GNU Emacs text editor wrote: > >> Does there exist indentation that is "Not On-the-Fly"? What would that do? >> > > Maybe, for instance, > > ,----[ C-h f indent-region RET ] > | indent-region is an interactive native compiled Lisp function in > | ‘indent.el’. > | > | It is bound to C-M-\. > | > | (indent-region START END &optional COLUMN) > | > | Indent each nonblank line in the region. > | A numeric prefix argument specifies a column: indent each line to that column. > | [...] > | > `---- > > which does this once when invoked explicitly, i.e. not on-the-fly. > > The other extreme, by the way, is aggresive-indent-mode which on-the-fly > indents not just the line you are one but others around it as things > change. I use it all the time. > Interesting. Will try it. Does `aggresive-indent-mode` conflict with `electric-indent-mode`? Would I need to turn `electric-indent-mode` off? > -- > Eric S Fraga via gnus (Emacs 29.0.50 2022-06-17) on Debian 11.3 > ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [External] : Tab completion and electric-indent-mode 2022-06-19 2:26 ` carlmarcos--- via Users list for the GNU Emacs text editor @ 2022-06-22 10:46 ` Eric S Fraga 0 siblings, 0 replies; 17+ messages in thread From: Eric S Fraga @ 2022-06-22 10:46 UTC (permalink / raw) To: help-gnu-emacs On Sunday, 19 Jun 2022 at 04:26, carlmarcos--- via Users list for the GNU Emacs text editor wrote: > Interesting. Will try it. Does `aggresive-indent-mode` conflict with > `electric-indent-mode`? > Would I need to turn `electric-indent-mode` off? No idea. Sorry. Try it! -- Eric S Fraga via gnus (Emacs 29.0.50 2022-05-19) on Debian 11.3 ^ permalink raw reply [flat|nested] 17+ messages in thread
* RE: [External] : Tab completion and electric-indent-mode 2022-06-18 3:45 ` carlmarcos--- via Users list for the GNU Emacs text editor 2022-06-18 6:44 ` Eli Zaretskii 2022-06-18 9:15 ` Eric S Fraga @ 2022-06-18 23:10 ` Drew Adams 2022-06-18 23:19 ` Drew Adams 2 siblings, 1 reply; 17+ messages in thread From: Drew Adams @ 2022-06-18 23:10 UTC (permalink / raw) To: carlmarcos@tutanota.com; +Cc: 'Help-Gnu-Emacs (help-gnu-emacs@gnu.org)' [-- Attachment #1: Type: text/plain, Size: 1613 bytes --] > "On-the-Fly Reindentation" also has difficulty of interpretation. > Does there exist indentation that is "Not On-the-Fly"? What would that > do? Yes, the behavior should be described clearly. "On-the-fly" can mean different things. What's important is just what the behavior is. A guess is that "on-the-fly" here means that indentation happens in an automatic or partly automatic way, as you edit/type normally. E.g., hit `RET' to get a new line, and you also get that new line indented. "On the fly" means any old time, in particular, while you are doing something else. It can mean that while doing something else you can hit a key to do something else, and then continue with what you were doing. Or it can mean that something happens automatically while you are doing something else. My guess is that the latter is what's meant here: hit `RET' to enter text on a new line (main action), and get also the extra action of indenting the text on that new line. Indenting that's not "on-the-fly"? You can manually, explicitly indent a block of text, using command `indent-rigidly', bound by default to `C-x TAB'. It indents lines that are at least partially in the region. See the doc string. You can incrementally increase and decrease the amount of indentation. And a prefix arg indents to exactly that number of columns. There can be any number of kinds of indenting. Some, like `indent-rigidly, can be initiated manually - just to indent. Others can be initiated automatically, in combination with some other activity or depending on the context. [-- Attachment #2: winmail.dat --] [-- Type: application/ms-tnef, Size: 14509 bytes --] ^ permalink raw reply [flat|nested] 17+ messages in thread
* RE: [External] : Tab completion and electric-indent-mode 2022-06-18 23:10 ` Drew Adams @ 2022-06-18 23:19 ` Drew Adams 0 siblings, 0 replies; 17+ messages in thread From: Drew Adams @ 2022-06-18 23:19 UTC (permalink / raw) To: carlmarcos@tutanota.com; +Cc: 'Help-Gnu-Emacs (help-gnu-emacs@gnu.org)' > It can mean that while doing something else ^ | remove "else" --+ > you can hit a key to do something else, and > then continue with what you were doing. ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [External] : Tab completion and electric-indent-mode 2022-06-17 14:10 ` [External] : " Drew Adams 2022-06-17 14:14 ` carlmarcos--- via Users list for the GNU Emacs text editor 2022-06-17 15:33 ` Eli Zaretskii @ 2022-06-17 17:41 ` Emanuel Berg 2022-06-18 4:20 ` carlmarcos--- via Users list for the GNU Emacs text editor 2 siblings, 1 reply; 17+ messages in thread From: Emanuel Berg @ 2022-06-17 17:41 UTC (permalink / raw) To: help-gnu-emacs Drew Adams wrote: >> `electric-indent-mode` says that in does "On-the-fly >> Reindentation". What does that mean, and how is it >> different to normal indentation? > > What's "normal indentation"? I was thinking the same! Capable programmers think the same ... Isn't there a PhD thesis in CS on this where they have subdivided it into categories with pros and cons? In this thread we have encountered 0. languages that demand indentation to be a certain way (e.g. Python) 0. situations where TABs are mandatory (e.g. a Makefile for GNU make), i.e. SPC doesn't work 0. indentation that is done "on the fly" (I agree with whoever just said it isn't clear what that's supposed to mean?) Note 0: Indenting the code your way, which often is just one or two cases, the rest is the same as everyone else does it - this can be a way to "get into" a bunch of code you originally didn't write, rather it was handed over to you, be it from some intelligence agency, maybe Mossad or the FSB ... Note 0: "May I indent your code?", one should be careful saying to a fellow programmer, perhaps. Note 0: With some languages (e.g. Haskell) you often get stuck doing indentation manually for ages, and after changing some thing, it "has to" be adjusted for that, all of it; I don't know if that is because of Haskell's formal approach and style that resembles math, or Haskell's inherent neuroticism, or if it is some feature of the language, be it the support for and focus on pattern matching often and a lot, the function arguments not the least ... - HEY, why aren't the digits increasing?! Because ... these are technical details, implementation-specific solutions, as well as general hacker lore & legend, what I look for is rather styles of the indentation itself. Like "this indentation style is called 'leap-and-return' and what characterizes it is its focus on [etc etc]" - Ah, there you go. Thanks for the answer! np :) -- underground experts united https://dataswamp.org/~incal ^ permalink raw reply [flat|nested] 17+ messages in thread
* Re: [External] : Tab completion and electric-indent-mode 2022-06-17 17:41 ` Emanuel Berg @ 2022-06-18 4:20 ` carlmarcos--- via Users list for the GNU Emacs text editor 0 siblings, 0 replies; 17+ messages in thread From: carlmarcos--- via Users list for the GNU Emacs text editor @ 2022-06-18 4:20 UTC (permalink / raw) To: Emanuel Berg; +Cc: help-gnu-emacs Jun 17, 2022, 17:41 by incal@dataswamp.org: > Drew Adams wrote: > >>> `electric-indent-mode` says that in does "On-the-fly >>> Reindentation". What does that mean, and how is it >>> different to normal indentation? >>> >> >> What's "normal indentation"? >> > > I was thinking the same! Capable programmers think the > same ... > There seems to be some basic initial indentation (call it normal). This could be followed be a subsequent reindent. > Isn't there a PhD thesis in CS on this where they have > subdivided it into categories with pros and cons? > > In this thread we have encountered > > 0. languages that demand indentation to be a certain way (e.g. Python) > > 0. situations where TABs are mandatory (e.g. a Makefile for > GNU make), i.e. SPC doesn't work > > 0. indentation that is done "on the fly" (I agree with whoever > just said it isn't clear what that's supposed to mean?) > Right. Confusing what it is doing. > Note 0: > Indenting the code your way, which often is just one or two > cases, the rest is the same as everyone else does it - this > can be a way to "get into" a bunch of code you originally > didn't write, rather it was handed over to you, be it from > some intelligence agency, maybe Mossad or the FSB ... > Isn't working with the code your way a basic premise of free software? When emacs is the flagship of the Gnu System, working with the code your way should actually be supported. > Note 0: > "May I indent your code?", one should be careful saying to > a fellow programmer, perhaps. > > Note 0: > With some languages (e.g. Haskell) you often get stuck doing > indentation manually for ages, and after changing some > thing, it "has to" be adjusted for that, all of it; I don't > know if that is because of Haskell's formal approach and > style that resembles math, or Haskell's inherent > neuroticism, or if it is some feature of the language, be it > the support for and focus on pattern matching often and > a lot, the function arguments not the least ... > > - HEY, why aren't the digits increasing?! > > Because ... these are technical details, > implementation-specific solutions, as well as general hacker > lore & legend, what I look for is rather styles of the > indentation itself. Like "this indentation style is called > 'leap-and-return' and what characterizes it is its focus on > [etc etc]" > > - Ah, there you go. Thanks for the answer! > > np :) > > -- > underground experts united > https://dataswamp.org/~incal > ^ permalink raw reply [flat|nested] 17+ messages in thread
end of thread, other threads:[~2022-06-22 10:46 UTC | newest] Thread overview: 17+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2022-06-17 11:59 Tab completion and electric-indent-mode carlmarcos--- via Users list for the GNU Emacs text editor 2022-06-17 14:10 ` [External] : " Drew Adams 2022-06-17 14:14 ` carlmarcos--- via Users list for the GNU Emacs text editor 2022-06-17 15:33 ` Eli Zaretskii 2022-06-18 3:45 ` carlmarcos--- via Users list for the GNU Emacs text editor 2022-06-18 6:44 ` Eli Zaretskii 2022-06-18 8:05 ` carlmarcos--- via Users list for the GNU Emacs text editor 2022-06-18 8:17 ` Eli Zaretskii 2022-06-18 15:35 ` carlmarcos--- via Users list for the GNU Emacs text editor 2022-06-18 16:20 ` Eli Zaretskii 2022-06-18 9:15 ` Eric S Fraga 2022-06-19 2:26 ` carlmarcos--- via Users list for the GNU Emacs text editor 2022-06-22 10:46 ` Eric S Fraga 2022-06-18 23:10 ` Drew Adams 2022-06-18 23:19 ` Drew Adams 2022-06-17 17:41 ` Emanuel Berg 2022-06-18 4:20 ` carlmarcos--- via Users list for the GNU Emacs text editor
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).