From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Jean Louis Newsgroups: gmane.emacs.devel Subject: Re: Special Event: Davin reveals his own personal additions to Emacs. Date: Sun, 10 Jul 2022 14:45:26 +0300 Message-ID: References: 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="5220"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Mutt/+ () (2022-06-11) Cc: emacs-devel To: Davin Pearson Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Sun Jul 10 13:48:29 2022 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 1oAVQL-0001B8-Ch for ged-emacs-devel@m.gmane-mx.org; Sun, 10 Jul 2022 13:48:29 +0200 Original-Received: from localhost ([::1]:46978 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1oAVQJ-0004pM-RA for ged-emacs-devel@m.gmane-mx.org; Sun, 10 Jul 2022 07:48:27 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:36776) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oAVOr-0003VI-CK for emacs-devel@gnu.org; Sun, 10 Jul 2022 07:46:57 -0400 Original-Received: from stw1.rcdrun.com ([217.170.207.13]:40217) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oAVOo-0003lc-4P for emacs-devel@gnu.org; Sun, 10 Jul 2022 07:46:55 -0400 Original-Received: from localhost ([::ffff:102.87.129.133]) (AUTH: PLAIN admin, TLS: TLS1.3,256bits,ECDHE_RSA_AES_256_GCM_SHA384) by stw1.rcdrun.com with ESMTPSA id 00000000000A3AE6.0000000062CABC2A.00007A22; Sun, 10 Jul 2022 04:46:50 -0700 Mail-Followup-To: Davin Pearson , emacs-devel Content-Disposition: inline In-Reply-To: Received-SPF: pass client-ip=217.170.207.13; envelope-from=bugs@gnu.support; helo=stw1.rcdrun.com X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.29 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:292010 Archived-At: * Davin Pearson [2022-07-10 06:39]: > Click on the following link to take you to a gallery of Emacs > screenshots showing the hows and whys I have added my own personal > additions to Emacs. > > http://davinpearson.nz/screenshots Thanks David, those may be useful features for Emacs. I suggest that you read Emacs Lisp Manual and try understanding how to make an Emacs package. This is because you have got many features and other languages combined in package software package. It is better separating it. You may evaluate this below: (info "(elisp) Packaging") When you start writing Emacs file you better set it up as proper package that may be installed with M-x package-install-file or M-x package-install-from-buffer I may recommend my package to help with it: Emacs: `package-header.el` your hjälpsam Package Header Assistant: https://hyperscope.link/3/7/7/3/0/Your-hjälpsam-Package-Header-Assistant-37730.html I do understand that you maybe use m4 to insert those package header snippets. In general you do follow the guidelines. Let us say "yes.el", it misses `provide' on the end, and M-x package-install-from-buffer fails due to missing headers. Do you really want global scoping there? File: xyzdmp-reddy.el contains just "sdfsdsdf", is that wanted? Instead of trying to update all files, I think you should have them separated by their functionality and make separate packages. Once packages are ready feel free to send them to this mailing list for possible inclusion in ELPA. What do you think about it? Naming issues: ============== Please note that while it is possible, you should rather name your modes like `css-mode` to be something else than those already well common functions in main Emacs. For example, as you said, you could name it `dmp-css-mode` as your function would overwrite the already existing `css-mode'in Emacs. Coding or style issues: ======================= I do not recommend `progn` standing alone in packages, seetting load-path and requiring `dotmacs. It is better you prepare package header properly, that will make your dependencies clear. `defun` shall placed always after one empty line. You should not execute programs in packages or files, rather let user invoke its functions by their will. Do not hard code paths, like: "c:/sound-samples/emacs/appt-pause-break.wav" but you should include such files in the package.tar.gz, read instructions how to do that. Parenthesis shall end together, not like this: (defun manifest--log-message (msg) (save-excursion (set-buffer manifest--buffer) (goto-char (point-max)) (setq latest-file (manifest--get-latest-file)) (insert msg "\n") ) ) rather like: (defun manifest--log-message (msg) (save-excursion (set-buffer manifest--buffer) (goto-char (point-max)) (setq latest-file (manifest--get-latest-file)) (insert msg "\n"))) `defun' shall rather have its docstring or descriptions. And other issues. I am sure you may find useful functions for other users to be published in your new packages. Installation issues: ==================== You have made Makefile that will probably work on your system only. I have not tried it, as I am afraid of my file system being changed capriciously. Licensing issues: ================== Emacs is licensed under GPL version 3 and later, thus all Emacs packages that modify Emacs as whole program shall be published shall be published under compatible license. In the package bundle I found only "Copyright (C) 2014-2015 Davin Pearson" as in the file dmp-css.el. And I know you are generating compatible licenses, however, one cannot just easily draw such conclusion without knowing that you could maybe do that with m4, it means, at first sight, some users would or could give up in getting packages. -- Jean Take action in Free Software Foundation campaigns: https://www.fsf.org/campaigns In support of Richard M. Stallman https://stallmansupport.org/