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.devel Subject: Re: How to use Generic String Delimiter ("|") Date: Sun, 07 Nov 2021 15:57:14 -0500 Message-ID: References: Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="12523"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) Cc: emacs-devel@gnu.org To: Reza Nikoopour Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Sun Nov 07 21:58:57 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 1mjpFg-00032p-HG for ged-emacs-devel@m.gmane-mx.org; Sun, 07 Nov 2021 21:58:56 +0100 Original-Received: from [::1] (port=46444 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mjpFf-00016Q-IL for ged-emacs-devel@m.gmane-mx.org; Sun, 07 Nov 2021 15:58:55 -0500 Original-Received: from eggs.gnu.org ([209.51.188.92]:41840) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mjpEE-0000Nu-V1 for emacs-devel@gnu.org; Sun, 07 Nov 2021 15:57:27 -0500 Original-Received: from mailscanner.iro.umontreal.ca ([132.204.25.50]:20498) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mjpEC-0008FB-C8 for emacs-devel@gnu.org; Sun, 07 Nov 2021 15:57:26 -0500 Original-Received: from pmg1.iro.umontreal.ca (localhost.localdomain [127.0.0.1]) by pmg1.iro.umontreal.ca (Proxmox) with ESMTP id 4037610016A; Sun, 7 Nov 2021 15:57:22 -0500 (EST) Original-Received: from mail01.iro.umontreal.ca (unknown [172.31.2.1]) by pmg1.iro.umontreal.ca (Proxmox) with ESMTP id 648A7100083; Sun, 7 Nov 2021 15:57:20 -0500 (EST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=iro.umontreal.ca; s=mail; t=1636318640; bh=6Y7DqHTQ1wKB6ByEJ8ZAeZ9ice1oT3s4GFzFcThpAp0=; h=From:To:Cc:Subject:References:Date:In-Reply-To:From; b=prqti2so35Kxm/iJUGiBGtlXRqEub6t8GCHUvqdIJhC7bqodjmyuJ2UoX7st9blwb l+3jCvmmn29sSRUfmp4BFqlBjLZadHDIW0sc1lmunD1JrGQU2OymoQhwix3mlygZqq NQeq1C1m53qDdrbXXe1ddpg6l5iHyZT2mIU3Ci76SLgUMMlDG5GXg0rU9e5GXuoSwq 59HLmG8PmqALz9kAm+POxiNZBvlOwTne3bnXWHnUxwAYHanbPxJfSTpkzYk6ndbMFw duzMp85QOYBpS9WSZFLJdS7v/euFnnIVsV8HbUGmcfH8y7g245McBh4RxfVmGIgBcM FaQ6j6KN/yRlQ== Original-Received: from pastel (unknown [45.72.241.23]) by mail01.iro.umontreal.ca (Postfix) with ESMTPSA id 2633B120920; Sun, 7 Nov 2021 15:57:20 -0500 (EST) In-Reply-To: (Reza Nikoopour's message of "Sun, 7 Nov 2021 11:51:09 -0800") Received-SPF: pass client-ip=132.204.25.50; envelope-from=monnier@iro.umontreal.ca; helo=mailscanner.iro.umontreal.ca X-Spam_score_int: -42 X-Spam_score: -4.3 X-Spam_bar: ---- X-Spam_report: (-4.3 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_MED=-2.3, 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.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:278987 Archived-At: > Hello All, > > I'm trying to highlight a multiline construct. It uses the here doc syntax > > < whatever > text > SYMBOL > > > Do I need two delimiters as follows: > > > < whatever > text(2) > SYMBOL Yes > Or do I use one delimiter that spans the entire string body? > > < whatever > text(delimiter end) > SYMBOL A string delimiter only occupies a single character. When you apply a text property to a range of text, it applies that property to every char in the text. So with your "delimiter that spans the entire string body", Emacs interprets it as N consecutive string delimiters. So depending on whether N is odd or even the rest of the text will be highlighted with `font-lock-string-face` ;-) > I'm trying to avoid how sh-mode and the current implementation > of terraform-mode highlight the entirety of the closing SYMBOL. > [image: image.png] I recommend you consider the highlighting itself separately from the placement of the string delimiters (the placement of the delimiters does impact the default highlighting, obviously, but you can override that in the `font-lock-keywords` rules). The placement of the delimiters should be chosen based on the needs of things like navigation (e.g. `C-M-f`) and indentation, or maybe to take care of corner cases like empty here docs: <