From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Konstantin Kharlamov Newsgroups: gmane.emacs.devel Subject: Re: Emacs development... Date: Sat, 21 Aug 2021 15:05:23 +0300 Message-ID: <2281ccca2d439b935535197d931c1ccf41b0f86f.camel@yandex.ru> References: <56B1C272-CB13-4793-930C-9F6B96F9856B@traduction-libre.org> <83r1enz453.fsf@gnu.org> <87h7fjuuva.fsf@gnu.org> <351DF59E-BFE0-4CC2-8A40-B4E7CB73D81E@traduction-libre.org> Mime-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 8bit Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="5128"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Evolution 3.40.3 Cc: Eli Zaretskii , emacs-devel@gnu.org To: Jean-Christophe Helary , Tassilo Horn Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Sat Aug 21 14:06:32 2021 Return-path: Envelope-to: ged-emacs-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1mHPlg-00015G-F9 for ged-emacs-devel@m.gmane-mx.org; Sat, 21 Aug 2021 14:06:32 +0200 Original-Received: from localhost ([::1]:43310 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mHPlf-0001qU-78 for ged-emacs-devel@m.gmane-mx.org; Sat, 21 Aug 2021 08:06:31 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:50718) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mHPko-0001BE-1D for emacs-devel@gnu.org; Sat, 21 Aug 2021 08:05:38 -0400 Original-Received: from forward102p.mail.yandex.net ([2a02:6b8:0:1472:2741:0:8b7:102]:49688) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mHPkk-0001v2-6X; Sat, 21 Aug 2021 08:05:37 -0400 Original-Received: from iva6-d2c82ec8bc26.qloud-c.yandex.net (iva6-d2c82ec8bc26.qloud-c.yandex.net [IPv6:2a02:6b8:c0c:610c:0:640:d2c8:2ec8]) by forward102p.mail.yandex.net (Yandex) with ESMTP id 2248A54C3723; Sat, 21 Aug 2021 15:05:24 +0300 (MSK) Original-Received: from iva5-057a0d1fbbd8.qloud-c.yandex.net (iva5-057a0d1fbbd8.qloud-c.yandex.net [2a02:6b8:c0c:7f1c:0:640:57a:d1f]) by iva6-d2c82ec8bc26.qloud-c.yandex.net (mxback/Yandex) with ESMTP id SWNDfpjEN3-5NIC16H1; Sat, 21 Aug 2021 15:05:24 +0300 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex.ru; s=mail; t=1629547524; bh=lyv9TTXH+WH2D/FRwLWIMqtjTOPTgW2pPoCRmVwhx+0=; h=In-Reply-To:References:Date:To:From:Subject:Message-ID:Cc; b=Vx1TOF8iLa6OYt4nigje2xFW9/dkAVYbLGuQbjWdQc1VzFHszy+imEoe1V6RCPC5C M6/X73KgYE/dycPTYJE4WwJ+Omi7acdBXNiTuQsSTkcec5UY6PDn4rvrAlaF2yEYdq DvOFGqqtoE/uJ5at1/acQcvPwhPchjpTKvgIxzqU= Authentication-Results: iva6-d2c82ec8bc26.qloud-c.yandex.net; dkim=pass header.i=@yandex.ru Original-Received: by iva5-057a0d1fbbd8.qloud-c.yandex.net (smtp/Yandex) with ESMTPSA id PAfy8Fxles-5NF0CINZ; Sat, 21 Aug 2021 15:05:23 +0300 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) (Client certificate not present) In-Reply-To: <351DF59E-BFE0-4CC2-8A40-B4E7CB73D81E@traduction-libre.org> Received-SPF: pass client-ip=2a02:6b8:0:1472:2741:0:8b7:102; envelope-from=hi-angel@yandex.ru; helo=forward102p.mail.yandex.net X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.io gmane.emacs.devel:272781 Archived-At: On Sat, 2021-08-21 at 16:50 +0900, Jean-Christophe Helary wrote: > > > > On Aug 21, 2021, at 16:16, Tassilo Horn wrote: > > > > Jean-Christophe Helary writes: > > > > Hi Jean-Christophe, > > > > > Right now, I use C-h f to find the function definitions and move > > > around the code. > > > > That, and also M-. on a function call or variable will bring you to its > > definition. > > Thank you. > > Sorry for this very basic question, what's the best way to navigate back to > where I was ? Seems to me, you don't have a workflow yet for development in general through Emacs. Because questions like "how to go to definition" and "how to go back" aren't really specific to ELisp, it's something you'd use while working with pretty much any language, be it C, Python, Haskell, C++, Rust… The only question you asked specific to ELisp is about debugging ELisp code. This is okay ofc, I'm just pointing it out because it might give you some ideas on what to look for. There's a popular opinion that default Emacs keybindings aren't the best, and people usually reconfigure some of them as they find appropriate. And there're many different workflows for code/text navigation in Emacs. For example, I personally prefer using Evil plugin (a vim-mode inside Emacs, but it actually had more features than the actual vim), and using C-o, C-i in "normal mode" of Evil to go back and forth between locations in text. By default it may switch buffers which I don't like, so I disabled that. "going to definition" I personally bound to "gd" in normal mode of Evil. And then, inside a single file there are usually multiple specific places that are of interest to me, so I set marks to them with (again, keybinding specific to Evil) "m1", "m2", "m3"… i.e. just enumerating them in an order I find interesting. There's also "avy" package for faster navigation within the visible text portions. There are also Emacs "starter-kits" with lots of preconfigured stuff, e.g. Doom Emacs I heard is very good (I never personally used it, because by the time it became popular I already had a personalized configuration, however people seem to like it). So, yeah, for things non-specific to ELisp development (which is so far was everything you mentioned except ELisp debugging), you just need to start trying to do the development, and along the way to try to reflect "what I really wish I was able to do right now". Stuff like autocompletion, seeing function help in a minibuffer or elsewhere, going to definition… Whatever you think of, it is probably implemented in Emacs (with or without plugins), so you just try to search for it using your favorite search engine.