"s. keeling" <[EMAIL PROTECTED]> writes: > Incoming from Faheem Mitha: >> >> well. The bottom line is that in Python whitespace is syntatically >> meaningful, in C etc. it is not. >> >> This has the consequence that in C, emacs is able to correctly indent >> the code, using the built-in syntax rules it knows about. This is very >> useful since it shows up trivial syntax bugs right away. > > ... which is one of the reasons I truly enjoy coding in emacs. > >> On the other hand, much of the time emacs does not know what to do >> with Python code (when in python mode, that is), since part of the > > This is surely a deficiency in emacs' python mode?
Well, Emacs can't read your mind. Consider the following code: if a<b: print "foo" print "bar" I have no idea whether this is real Python code, but I'm sure you understand what I mean. Now, if you hit TAB on the bar line, should that move the line right or not? It is clear that Emacs can't know. Only the programmer can know. >> synax info is encoded in the whitespace. Blindly hitting tab, which >> works fine with C/C++ and probably most of the other languages out >> there, can really mess up Python code. > > The same is true for shell-mode and perl-mode. But for those modes, it's just a matter of parsing them correctly. (CPerl-mode does a very good job for Perl, FWIW.) For Python, it's an essential property of the language that syntax-driven indentation can't work. The reason is that syntax-driven indentation means that the indentation is driven by the syntax, but for Python, it's the other way round: the syntax is driven by the indentation. Kai -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]