|
From: | Andreas Röhler |
Subject: | Re: Is intellisense features integration in Emacs technically possible? |
Date: | Thu, 23 Jan 2014 10:00:53 +0100 |
User-agent: | Mozilla/5.0 (X11; Linux i686; rv:24.0) Gecko/20100101 Thunderbird/24.2.0 |
Am 22.01.2014 19:49, schrieb Jorgen Schaefer:
On Wed, 22 Jan 2014 17:29:15 +0000 address@hidden (Phillip Lord) wrote:Eli Zaretskii <address@hidden> writes:A better way is to build on the hard work of other and interface emacs with an external tool.Personally, I think implementing such features via external programs is a terrible design. It will never be smooth and responsive enough, and on top of that you'd need to track development of those other tools. And what if they become abandoned some day?I think that it depends on the language. Introspecting over, for example, Java would require an awful of elisp, which would be difficult to write. Getting Java to do this work is quite a lot less effort. Hence, the JDEEs use of Java for this (via bsh). Likewise, Clojure and Scala both of which use their own language to do much of the work. Or for that matter, common lisp with slime/swank. Or even, for that matter, English with aspell. I didn't have a problem with responsiveness with any of these.
[ ... ]
The biggest problems are outside of Emacs. Good libraries that provide intelligent completion and code introspection are rare. I know of three for Python, one of which is not maintained anymore, one was mostly-dead for a few years, and all of which have different deficiencies. They also have trouble keeping up with the development of the language. I expect similar problems for other languages. Reimplementing these libraries in Emacs Lisp will just cause more problems keeping them up-to-date.
Good point(s). An aspect not seeing mentioned so far: Python for example will cancel all service when encountering a syntax-error. A case where a decent support from Emacs Lips side will be helpful. Seems wise to implement some basic stuff in Emacs Lisp, while accessing the languages resources if available.
[Prev in Thread] | Current Thread | [Next in Thread] |