From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Stefan Monnier Newsgroups: gmane.emacs.help Subject: Re: RFE: Editing string literals like org-mode? Date: Sat, 27 Mar 2021 13:09:53 -0400 Message-ID: References: <87ft0gofon.fsf@passepartout.tim-landscheidt.de> <875z1co8v0.fsf@passepartout.tim-landscheidt.de> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="34459"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) To: help-gnu-emacs@gnu.org Cancel-Lock: sha1:gUcHGhHLKks2lap+/MnrCA+zKcI= Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane-mx.org@gnu.org Sat Mar 27 18:10:26 2021 Return-path: Envelope-to: geh-help-gnu-emacs@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 1lQCS9-0008tA-CG for geh-help-gnu-emacs@m.gmane-mx.org; Sat, 27 Mar 2021 18:10:25 +0100 Original-Received: from localhost ([::1]:43602 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lQCS8-0008UU-DH for geh-help-gnu-emacs@m.gmane-mx.org; Sat, 27 Mar 2021 13:10:24 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:60438) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lQCRl-0008UL-Ro for help-gnu-emacs@gnu.org; Sat, 27 Mar 2021 13:10:01 -0400 Original-Received: from ciao.gmane.io ([116.202.254.214]:51158) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lQCRk-0006Oo-7X for help-gnu-emacs@gnu.org; Sat, 27 Mar 2021 13:10:01 -0400 Original-Received: from list by ciao.gmane.io with local (Exim 4.92) (envelope-from ) id 1lQCRi-0008Oy-Cp for help-gnu-emacs@gnu.org; Sat, 27 Mar 2021 18:09:58 +0100 X-Injected-Via-Gmane: http://gmane.org/ Received-SPF: pass client-ip=116.202.254.214; envelope-from=geh-help-gnu-emacs@m.gmane-mx.org; helo=ciao.gmane.io X-Spam_score_int: -15 X-Spam_score: -1.6 X-Spam_bar: - X-Spam_report: (-1.6 / 5.0 requ) BAYES_00=-1.9, HEADER_FROM_DIFFERENT_DOMAINS=0.25, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Users list for the GNU Emacs text editor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: "help-gnu-emacs" Xref: news.gmane.io gmane.emacs.help:128724 Archived-At: > That is the existing solution for Emacs Lisp. I'm looking > for a universal one. Sounds good. You basically need to add some standard way for major modes to tell how to quote/unquote strings and then to go around add change the major modes to set that properly. E.g. major modes would have to do something like: (setq-local string-quote-function #'foo-mode-string-quote) And then add some globally-defined commands that make use of this new information, such as `string-quote-edit` which gets the "string at point" and lets you edit it without the quoting, and commands `string-quote-yank` and `string-quote-kill`. To get started, you'll probably want to provide a useful default value for `string-quote-function` (presumably relying on the syntax tables, maybe with some heuristics to handle some \t and friends) so that the feature works out of the box (to some extent) in many major modes. Stefan