From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Tim Landscheidt Newsgroups: gmane.emacs.help Subject: Re: RFE: Editing string literals like org-mode? Date: Sat, 27 Mar 2021 16:32:35 +0000 Organization: http://www.tim-landscheidt.de/ Message-ID: <875z1co8v0.fsf@passepartout.tim-landscheidt.de> References: <87ft0gofon.fsf@passepartout.tim-landscheidt.de> 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="36096"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.1 (gnu/linux) To: help-gnu-emacs@gnu.org Cancel-Lock: sha1:hsdJXLpURd4D3Uu0lWq6MWB7DLI= Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane-mx.org@gnu.org Sat Mar 27 17:33:46 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 1lQBsf-0009IU-RB for geh-help-gnu-emacs@m.gmane-mx.org; Sat, 27 Mar 2021 17:33:45 +0100 Original-Received: from localhost ([::1]:54410 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lQBse-0007LP-RD for geh-help-gnu-emacs@m.gmane-mx.org; Sat, 27 Mar 2021 12:33:44 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:53308) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lQBrg-0007L5-9A for help-gnu-emacs@gnu.org; Sat, 27 Mar 2021 12:32:47 -0400 Original-Received: from ciao.gmane.io ([116.202.254.214]:58998) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lQBre-0008Ec-5Q for help-gnu-emacs@gnu.org; Sat, 27 Mar 2021 12:32:43 -0400 Original-Received: from list by ciao.gmane.io with local (Exim 4.92) (envelope-from ) id 1lQBrc-00085v-En for help-gnu-emacs@gnu.org; Sat, 27 Mar 2021 17:32:40 +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:128723 Archived-At: Jean Louis wrote: >> - an (optional) function foo-quote for each major mode so >> that (insert (foo-quote (read-string "String: "))) >> inserts the input properly quoted in the current buffer, > (insert (prin1-to-string (read-string "String: "))) → "Some \"New\" string" > Is that? That is the existing solution for Emacs Lisp. I'm looking for a universal one. >> - an (optional) function foo-read-string-literal-at-point >> that returns the dequoted string literal at point, and > Do you mean that it works on quote strings like: "Some \"New\" string"? For example. >> - a function bound to C-c ' that edits the string literal at >> point just like org-mode does (if the major mode provides >> the necessary foo-quote and >> foo-read-string-literal-at-point functions). > I have tried searching in the manual, so can you help me, is it > in source block? Or in table? For example in source blocks (#+BEGIN_SRC). > If I got it right, it would be useful to be able to edit strings > without observing quotations. That would be the point; assuming a shell-script-mode buffer with the text: | ls 'string"literal""' or a python-mode buffer with the text: | print("string\"literal\"\"") or a sql-mode buffer with the text: | SELECT 'string"literal""'; or a perl-mode buffer with the text: | print "string\"literal\"\""; hitting C-c ' on any of those string literals would open a new buffer with the text: | string"literal"" where one could edit that string literal and hit C-c ' again to replace the string literal in the original buffer. (There are lots of edge cases where it is harder to DWIM, but I'm fine with something that approximates the success rate of Emacs's fontification.) Tim