From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: =?utf-8?Q?Jostein_Kj=C3=B8nigsen?= Newsgroups: gmane.emacs.devel Subject: Re: [PATCH] New major-mode: bicep-ts-mode Date: Fri, 5 Jan 2024 20:10:18 +0100 Message-ID: References: <7121354D-5D04-4B22-A0D3-54C469BF5B85@secure.kjonigsen.net> <1a91aa2b-961c-4089-9d5b-73a7f1356ec7@app.fastmail.com> Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3774.200.91.1.1\)) Content-Type: multipart/alternative; boundary="Apple-Mail=_8A98DD0B-BC6C-4DA7-ABD0-4FFAC9C16A62" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="7434"; mail-complaints-to="usenet@ciao.gmane.io" Cc: Yuan Fu , =?utf-8?Q?Jostein_Kj=C3=B8nigsen?= , "Ergus via Emacs development discussions." , Theodor Thornhill To: Stefan Kangas Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Fri Jan 05 20:11:32 2024 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 1rLpbP-0001f5-0s for ged-emacs-devel@m.gmane-mx.org; Fri, 05 Jan 2024 20:11:32 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1rLpai-0002We-TW; Fri, 05 Jan 2024 14:10:49 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rLpag-0002W6-R3 for emacs-devel@gnu.org; Fri, 05 Jan 2024 14:10:46 -0500 Original-Received: from out3-smtp.messagingengine.com ([66.111.4.27]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rLpaa-0003fT-KG for emacs-devel@gnu.org; Fri, 05 Jan 2024 14:10:45 -0500 Original-Received: from compute3.internal (compute3.nyi.internal [10.202.2.43]) by mailout.nyi.internal (Postfix) with ESMTP id C4A945C034B; Fri, 5 Jan 2024 14:10:32 -0500 (EST) Original-Received: from mailfrontend1 ([10.202.2.162]) by compute3.internal (MEProxy); Fri, 05 Jan 2024 14:10:32 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= secure.kjonigsen.net; h=cc:cc:content-type:content-type:date :date:from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:subject:subject:to:to; s=fm1; t=1704481832; x=1704568232; bh=E0JjSFIBMWAs1w3uKHbuSpOSqU5Z5hAq4nY7q879+c0=; b= OmaHPuFzP4PZya+U9v0nb5pyjzUj4I4YaRMr6E7dSEDmzrrHShsAmRGupdm6zXQ6 FkxCc4TC4gXRt4YWwgR02fWn7rW+UQNgtRsgKxNl/tMydUc4HcepoZ8KWVVydmYj r/HTjaok9JmugPBNx45Q5mzz9Xll2gcz0prNtI/hdvGIyL0jMnCY1jjNkJQ8TOf7 ADCRdXGAyMJBzbDVoxmEm2vKGFW5bYleZKvy/RMsyNIVYpUdLyEoQkmJDkUJvQEZ NM2qH9JOQ1ohWT2QKEdRvvlSryO9/P/KV8Am/BedEl3NFRD2sYjmki5DnzajSS2c QzwocfvRHaSpWrXYxK4cnA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-type:content-type:date:date :feedback-id:feedback-id:from:from:in-reply-to:in-reply-to :message-id:mime-version:references:reply-to:subject:subject:to :to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm2; t=1704481832; x=1704568232; bh=E0JjSFIBMWAs1w3uKHbuSpOSqU5Z 5hAq4nY7q879+c0=; b=C1cX4DBF2bqMBa9zIdHxDQzaRCB83YIwi7TqoxX6cV4m 5O9mdT9Y7uneEXwA0GHb7gpO32tRkANmPRjz52GSio1Z5yvrv4ARNBmWXxBXJWe7 mUY6ucq7iiU5zuAJmXslcZ8zhU2yLP6vRkc51pESDOXCTh2tc0NUc3A4PNWZRY+E 4c755TXsvcr6F0/YJy8x5+0seemzWHCN0kdprux0EdKcpB5nDz2aREiKCS0ScZgW GVWK8jfqHYWBy4DJ9TkfhdxR8JS9smYhQXhml/Hl3I0BiJwJg5doQHAbIpRvFSrZ nQuIWtGaaOQODPQcXsZml2tTY+htAHJtaooqjOe2pw== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvkedrvdegledguddukecutefuodetggdotefrod ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfgh necuuegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmd enucfjughrpefhkfgtggfuffgjvefvfhfosegrtdhmrehhtdejnecuhfhrohhmpeflohhs thgvihhnucfmjhppnhhighhsvghnuceojhhoshhtvghinhesshgvtghurhgvrdhkjhhonh highhsvghnrdhnvghtqeenucggtffrrghtthgvrhhnpedviedtueehleeffeetjefggedv veeludevkefffefhgfejkeetjeehteffgeeugeenucevlhhushhtvghrufhiiigvpedtne curfgrrhgrmhepmhgrihhlfhhrohhmpehjohhsthgvihhnsehsvggtuhhrvgdrkhhjohhn ihhgshgvnhdrnhgvth X-ME-Proxy: Feedback-ID: ib2f84088:Fastmail Original-Received: by mail.messagingengine.com (Postfix) with ESMTPA; Fri, 5 Jan 2024 14:10:31 -0500 (EST) In-Reply-To: X-Mailer: Apple Mail (2.3774.200.91.1.1) Received-SPF: pass client-ip=66.111.4.27; envelope-from=jostein@secure.kjonigsen.net; helo=out3-smtp.messagingengine.com X-Spam_score_int: -26 X-Spam_score: -2.7 X-Spam_bar: -- X-Spam_report: (-2.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, 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-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.devel:314579 Archived-At: --Apple-Mail=_8A98DD0B-BC6C-4DA7-ABD0-4FFAC9C16A62 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=utf-8 > On 4 Jan 2024, at 05:52, Stefan Kangas wrote: >=20 >> Looks good. Should we merge it now? >=20 > No objections from me as long as Jostein thinks it's ready, but: I=E2=80=99m happy with it for now! > - It should be called out in NEWS. Done! > - Don't forget updating `auto-mode-alist' if that makes sense. I=E2=80=99ve added it in the major-mode itself. I assume this is the = right place to add it? Updated is a patch based on latest git master which combines all these = changes, and also adds code to obtain and build the Bicep = language-grammar alongside the other languages. =E2=80=94 Kind Regards Jostein Kj=C3=B8nigsen =EF=BF=BC= --Apple-Mail=_8A98DD0B-BC6C-4DA7-ABD0-4FFAC9C16A62 Content-Type: multipart/mixed; boundary="Apple-Mail=_C0765DF8-1D92-44D3-9192-B55B598D82D2" --Apple-Mail=_C0765DF8-1D92-44D3-9192-B55B598D82D2 Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset=utf-8
On 4 Jan = 2024, at 05:52, Stefan Kangas <stefankangas@gmail.com> = wrote:

Looks good. Should = we merge it now?

No objections from me as long as = Jostein thinks it's ready, = but:

I=E2=80=99m happy = with it for now!

- It = should be called out in = NEWS.

Done!

- Don't forget updating `auto-mode-alist' = if that makes = sense.

I=E2=80=99ve = added it in the major-mode itself. I assume this is the right place to = add it?

Updated is a patch based on latest git = master which combines all these changes, and also adds code to obtain = and build the Bicep language-grammar alongside the other = languages.

=E2=80=94
Kind Regards
Jostein = Kj=C3=B8nigsen

= --Apple-Mail=_C0765DF8-1D92-44D3-9192-B55B598D82D2 Content-Disposition: attachment; filename=0001-Add-support-for-Bicep-files-via-tree-sitter-based-ma.patch Content-Type: application/octet-stream; x-unix-mode=0644; name="0001-Add-support-for-Bicep-files-via-tree-sitter-based-ma.patch" Content-Transfer-Encoding: quoted-printable =46rom=20b7aa90ae365cb08984f2b2fc6fd2e8f45018b6fe=20Mon=20Sep=2017=20= 00:00:00=202001=0AFrom:=20=3D?UTF-8?q?Jostein=3D20Kj=3DC3=3DB8nigsen?=3D=20= =0ADate:=20Fri,=205=20Jan=202024=2019:58:19=20= +0100=0ASubject:=20[PATCH]=20Add=20support=20for=20Bicep-files=20via=20= tree-sitter=20based=20major-mode=0A=0A*=20= admin/notes/tree-sitter/build-module/batch.sh:=20Add=20bicep=20grammar=20= to=20list.=0A*=20admin/notes/tree-sitter/build-module/build.sh:=20Add=20= org=20for=20bicep=20grammar.=0A*=20etc/NEWS:=20Updated=20news.=0A*=20= lisp/progmodes/bicep-ts-mode.el:=20New=20major-mode=20bicep-ts-mode.=0A= ---=0A=20admin/notes/tree-sitter/build-module/batch.sh=20|=20=20=201=20+=0A= =20admin/notes/tree-sitter/build-module/build.sh=20|=20=20=207=20+-=0A=20= etc/NEWS=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20|=20=20=204=20+=0A=20= lisp/progmodes/bicep-ts-mode.el=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20|=20179=20++++++++++++++++++=0A=204=20files=20changed,=20189=20= insertions(+),=202=20deletions(-)=0A=20create=20mode=20100644=20= lisp/progmodes/bicep-ts-mode.el=0A=0Adiff=20--git=20= a/admin/notes/tree-sitter/build-module/batch.sh=20= b/admin/notes/tree-sitter/build-module/batch.sh=0Aindex=20= 9988d1eae4e..6ed2888d1d8=20100755=0A---=20= a/admin/notes/tree-sitter/build-module/batch.sh=0A+++=20= b/admin/notes/tree-sitter/build-module/batch.sh=0A@@=20-2,6=20+2,7=20@@=0A= =20=0A=20languages=3D(=0A=20=20=20=20=20'bash'=0A+=20=20=20=20'bicep'=0A=20= =20=20=20=20'c'=0A=20=20=20=20=20'cmake'=0A=20=20=20=20=20'cpp'=0Adiff=20= --git=20a/admin/notes/tree-sitter/build-module/build.sh=20= b/admin/notes/tree-sitter/build-module/build.sh=0Aindex=20= 969187b7f92..46fe3d2d8db=20100755=0A---=20= a/admin/notes/tree-sitter/build-module/build.sh=0A+++=20= b/admin/notes/tree-sitter/build-module/build.sh=0A@@=20-25,12=20+25,15=20= @@=20sourcedir=3D=0A=20grammardir=3D"tree-sitter-${lang}"=0A=20=0A=20= case=20"${lang}"=20in=0A-=20=20=20=20"dockerfile")=0A-=20=20=20=20=20=20=20= =20org=3D"camdencheek"=0A+=20=20=20=20"bicep")=0A+=20=20=20=20=20=20=20=20= org=3D"amaanq"=0A=20=20=20=20=20=20=20=20=20;;=0A=20=20=20=20=20"cmake")=0A= =20=20=20=20=20=20=20=20=20org=3D"uyha"=0A=20=20=20=20=20=20=20=20=20;;=0A= +=20=20=20=20"dockerfile")=0A+=20=20=20=20=20=20=20=20org=3D"camdencheek"=0A= +=20=20=20=20=20=20=20=20;;=0A=20=20=20=20=20"elixir")=0A=20=20=20=20=20=20= =20=20=20org=3D"elixir-lang"=0A=20=20=20=20=20=20=20=20=20;;=0Adiff=20= --git=20a/etc/NEWS=20b/etc/NEWS=0Aindex=207bbfbf9512d..7790d887a93=20= 100644=0A---=20a/etc/NEWS=0A+++=20b/etc/NEWS=0A@@=20-1244,6=20+1244,10=20= @@=20A=20major=20mode=20based=20on=20the=20tree-sitter=20library=20for=20= editing=20Elixir=20files.=0A=20***=20New=20major=20mode=20'lua-ts-mode'.=0A= =20A=20major=20mode=20based=20on=20the=20tree-sitter=20library=20for=20= editing=20Lua=20files.=0A=20=0A+---=0A+***=20New=20major=20mode=20= 'bicep-ts-mode'.=0A+A=20major=20mode=20based=20on=20the=20tree-sitter=20= library=20for=20editing=20Bicep=20files.=0A+=0A=20**=20Minibuffer=20and=20= Completions=0A=20=0A=20+++=0Adiff=20--git=20= a/lisp/progmodes/bicep-ts-mode.el=20b/lisp/progmodes/bicep-ts-mode.el=0A= new=20file=20mode=20100644=0Aindex=2000000000000..fa42da5e270=0A---=20= /dev/null=0A+++=20b/lisp/progmodes/bicep-ts-mode.el=0A@@=20-0,0=20+1,179=20= @@=0A+;;;=20bicep-ts-mode.el=20---=20tree-sitter=20support=20for=20Bicep=20= =20-*-=20lexical-binding:=20t;=20-*-=0A+=0A+;;=20Copyright=20(C)=20= 2023-2023=20Free=20Software=20Foundation,=20Inc.=0A+=0A+;;=20Author=20=20= =20=20=20:=20Jostein=20Kj=C3=B8nigsen=20=0A+;;=20= Maintainer=20:=20Jostein=20Kj=C3=B8nigsen=20=0A= +;;=20Created=20=20=20=20:=20December=202023=0A+;;=20Keywords=20=20=20:=20= bicep=20languages=20tree-sitter=0A+=0A+;;=20This=20file=20is=20part=20of=20= GNU=20Emacs.=0A+=0A+;;=20GNU=20Emacs=20is=20free=20software:=20you=20can=20= redistribute=20it=20and/or=20modify=0A+;;=20it=20under=20the=20terms=20= of=20the=20GNU=20General=20Public=20License=20as=20published=20by=0A+;;=20= the=20Free=20Software=20Foundation,=20either=20version=203=20of=20the=20= License,=20or=0A+;;=20(at=20your=20option)=20any=20later=20version.=0A+=0A= +;;=20GNU=20Emacs=20is=20distributed=20in=20the=20hope=20that=20it=20= will=20be=20useful,=0A+;;=20but=20WITHOUT=20ANY=20WARRANTY;=20without=20= even=20the=20implied=20warranty=20of=0A+;;=20MERCHANTABILITY=20or=20= FITNESS=20FOR=20A=20PARTICULAR=20PURPOSE.=20=20See=20the=0A+;;=20GNU=20= General=20Public=20License=20for=20more=20details.=0A+=0A+;;=20You=20= should=20have=20received=20a=20copy=20of=20the=20GNU=20General=20Public=20= License=0A+;;=20along=20with=20GNU=20Emacs.=20=20If=20not,=20see=20= .=0A+=0A+;;;=20Commentary:=0A+;;=0A+=0A= +;;;=20Code:=0A+=0A+(require=20'treesit)=0A+=0A+(declare-function=20= treesit-parser-create=20"treesit.c")=0A+(declare-function=20= treesit-induce-sparse-tree=20"treesit.c")=0A+(declare-function=20= treesit-node-start=20"treesit.c")=0A+(declare-function=20= treesit-node-type=20"treesit.c")=0A+(declare-function=20= treesit-node-child=20"treesit.c")=0A+(declare-function=20= treesit-node-child-by-field-name=20"treesit.c")=0A+=0A+(defcustom=20= bicep-ts-mode-indent-offset=202=0A+=20=20"Number=20of=20spaces=20for=20= each=20indentation=20step=20in=20`bicep-ts-mode'."=0A+=20=20:version=20= "29.1"=0A+=20=20:type=20'natnum=0A+=20=20:safe=20'natnump=0A+=20=20= :group=20'bicep)=0A+=0A+(defvar=20bicep-ts-mode--syntax-table=0A+=20=20= (let=20((table=20(make-syntax-table)))=0A+=20=20=20=20= (modify-syntax-entry=20?=3D=20=20"."=20=20=20table)=0A+=20=20=20=20= (modify-syntax-entry=20?\'=20"\""=20=20table)=0A+=20=20=20=20= (modify-syntax-entry=20?\n=20">=20b"=20table)=0A+=20=20=20=20table)=0A+=20= =20"Syntax=20table=20for=20`bicep-ts-mode'.")=0A+=0A+(defvar=20= bicep-ts-mode--indent-rules=0A+=20=20`((bicep=0A+=20=20=20=20=20= ((node-is=20"}")=20parent-bol=200)=0A+=20=20=20=20=20((node-is=20"]")=20= parent-bol=200)=0A+=20=20=20=20=20((parent-is=20"array")=20parent-bol=20= bicep-ts-mode-indent-offset)=0A+=20=20=20=20=20((parent-is=20"object")=20= parent-bol=20bicep-ts-mode-indent-offset)=0A+=20=20=20=20=20((parent-is=20= "for_statement")=20parent-bol=20bicep-ts-mode-indent-offset))))=0A+=0A= +(defvar=20bicep-ts-mode--keywords=0A+=20=20'("var"=20"param"=20= "resource"=0A+=20=20=20=20"module"=20"type"=20"metadata"=0A+=20=20=20=20= "targetScope"=20"output"=0A+=20=20=20=20"for"=20"in")=0A+=20=20"Bicep=20= keywords=20for=20tree-sitter=20font-locking.")=0A+=0A+(defvar=20= bicep-ts-mode--font-lock-settings=0A+=20=20(treesit-font-lock-rules=0A+=20= =20=20:language=20'bicep=0A+=20=20=20:feature=20'comment=0A+=20=20=20= '((comment)=20@font-lock-comment-face)=0A+=0A+=20=20=20:language=20= 'bicep=0A+=20=20=20:feature=20'delimiter=0A+=20=20=20'(("=3D")=20= @font-lock-delimiter-face)=0A+=0A+=20=20=20:language=20'bicep=0A+=20=20=20= :feature=20'keyword=0A+=20=20=20`([,@bicep-ts-mode--keywords]=20= @font-lock-keyword-face)=0A+=0A+=20=20=20:language=20'bicep=0A+=20=20=20= :feature=20'definition=0A+=20=20=20'((parameter_declaration=0A+=20=20=20=20= =20=20(identifier)=20@font-lock-variable-name-face=0A+=20=20=20=20=20=20= (type)=20@font-lock-type-face)=0A+=20=20=20=20=20(variable_declaration=0A= +=20=20=20=20=20=20(identifier)=20@font-lock-variable-name-face)=0A+=20=20= =20=20=20(resource_declaration=0A+=20=20=20=20=20=20(identifier)=20= @font-lock-variable-name-face)=0A+=20=20=20=20=20(module_declaration=0A+=20= =20=20=20=20=20(identifier)=20@font-lock-variable-name-face)=0A+=20=20=20= =20=20(type_declaration=0A+=20=20=20=20=20=20(identifier)=20= @font-lock-type-face)=0A+=20=20=20=20=20((builtin_type)=20= @font-lock-type-face)=0A+=20=20=20=20=20(output_declaration=0A+=20=20=20=20= =20=20(identifier)=20@font-lock-variable-name-face)=0A+=20=20=20=20=20= (output_declaration=0A+=20=20=20=20=20=20(type)=20@font-lock-type-face))=0A= +=0A+=20=20=20:language=20'bicep=0A+=20=20=20:feature=20'number=0A+=20=20= =20'((number)=0A+=20=20=20=20=20@font-lock-number-face)=0A+=0A+=20=20=20= :language=20'bicep=0A+=20=20=20:feature=20'string=0A+=20=20=20= '((string_content)=20@font-lock-string-face)=0A+=0A+=20=20=20:language=20= 'bicep=0A+=20=20=20:feature=20'boolean=0A+=20=20=20'((boolean)=20= @font-lock-constant-face)=0A+=0A+=20=20=20:language=20'bicep=0A+=20=20=20= :feature=20'functions=0A+=20=20=20'((call_expression=0A+=20=20=20=20=20=20= function:=20(identifier)=20@font-lock-function-name-face))=0A+=0A+=20=20=20= :language=20'bicep=0A+=20=20=20:feature=20'error=0A+=20=20=20:override=20= t=0A+=20=20=20'((ERROR)=20@font-lock-warning-face))=0A+=20=20"Font-lock=20= settings=20for=20BICEP.")=0A+=0A+(defun=20bicep-ts-mode--defun-name=20= (node)=0A+=20=20"Return=20the=20defun=20name=20of=20NODE.=0A+Return=20= nil=20if=20there=20is=20no=20name=20or=20if=20NODE=20is=20not=20a=20= defun=20node."=0A+=20=20(treesit-node-text=0A+=20=20=20= (treesit-node-child=20node=201)=0A+=20=20=20t))=0A+=0A+;;;###autoload=0A= +(define-derived-mode=20bicep-ts-mode=20prog-mode=20"Bicep"=0A+=20=20= "Major=20mode=20for=20editing=20BICEP,=20powered=20by=20tree-sitter."=0A= +=20=20:group=20'bicep-mode=0A+=20=20:syntax-table=20= bicep-ts-mode--syntax-table=0A+=0A+=20=20(when=20(treesit-ready-p=20= 'bicep)=0A+=20=20=20=20(treesit-parser-create=20'bicep)=0A+=0A+=20=20=20=20= ;;=20Comments=0A+=20=20=20=20(setq-local=20comment-start=20"#=20")=0A+=20= =20=20=20(setq-local=20comment-end=20"")=0A+=0A+=20=20=20=20;;=20Indent.=0A= +=20=20=20=20(setq-local=20treesit-simple-indent-rules=20= bicep-ts-mode--indent-rules)=0A+=0A+=20=20=20=20;;=20Navigation.=0A+=20=20= =20=20(setq-local=20treesit-defun-type-regexp=0A+=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20(rx=20(or=20"module_declaration"=20= "type_declaration"=20"variable_declaration"=0A+=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20"parameter_declaration"=20= "resource_declaration"=20"output_declaration")))=0A+=20=20=20=20= (setq-local=20treesit-defun-name-function=20#'bicep-ts-mode--defun-name)=0A= +=0A+=20=20=20=20;;=20Font-lock.=0A+=20=20=20=20(setq-local=20= treesit-font-lock-settings=20bicep-ts-mode--font-lock-settings)=0A+=20=20= =20=20(setq-local=20treesit-font-lock-feature-list=0A+=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20=20'((comment=20delimiter=20keyword)=0A+=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20(definition=20number=20= string=20boolean)=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= (functions)=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= (error)))=0A+=0A+=20=20=20=20;;=20Imenu.=0A+=20=20=20=20(setq-local=20= treesit-simple-imenu-settings=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20'(("Modules"=20"\\`module_declaration\\'"=20nil=20nil)=0A+=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20=20("Types"=20= "\\`type_declaration\\'"=20nil=20nil)=0A+=20=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20("Variables"=20"\\`variable_declaration\\'"=20nil=20= nil)=0A+=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= ("Parameters"=20"\\`parameter_declaration\\'"=20nil=20nil)=0A+=20=20=20=20= =20=20=20=20=20=20=20=20=20=20=20=20=20=20("Resources"=20= "\\`resource_declaration\\'"=20nil=20nil)=0A+=20=20=20=20=20=20=20=20=20=20= =20=20=20=20=20=20=20=20("Outputs"=20"\\`output_declaration\\'"=20nil=20= nil)))=0A+=0A+=20=20=20=20(treesit-major-mode-setup)))=0A+=0A+(if=20= (treesit-ready-p=20'bicep)=0A+=20=20=20=20(add-to-list=20= 'auto-mode-alist=20'("\\.bicep\\'"=20.=20bicep-ts-mode)))=0A+=0A= +(provide=20'bicep-ts-mode)=0A+=0A+;;;=20bicep-ts-mode.el=20ends=20here=0A= --=20=0A2.43.0=0A=0A= --Apple-Mail=_C0765DF8-1D92-44D3-9192-B55B598D82D2 Content-Transfer-Encoding: 7bit Content-Type: text/html; charset=us-ascii
--Apple-Mail=_C0765DF8-1D92-44D3-9192-B55B598D82D2-- --Apple-Mail=_8A98DD0B-BC6C-4DA7-ABD0-4FFAC9C16A62--