help-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [External] : Tab completion and electric-indent-mode


From: carlmarcos
Subject: Re: [External] : Tab completion and electric-indent-mode
Date: Sat, 18 Jun 2022 10:05:54 +0200 (CEST)

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.
>



reply via email to

[Prev in Thread] Current Thread [Next in Thread]