From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.ciao.gmane.io!not-for-mail From: Anand Tamariya Newsgroups: gmane.emacs.devel Subject: Multi-mode editing with semantic Date: Tue, 10 Mar 2020 13:56:32 +0700 Message-ID: Mime-Version: 1.0 Content-Type: multipart/alternative; boundary="00000000000053115005a07a9f7f" Injection-Info: ciao.gmane.io; posting-host="ciao.gmane.io:159.69.161.202"; logging-data="105503"; mail-complaints-to="usenet@ciao.gmane.io" To: emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Tue Mar 10 07:57:23 2020 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 1jBYpO-000RJk-3S for ged-emacs-devel@m.gmane-mx.org; Tue, 10 Mar 2020 07:57:22 +0100 Original-Received: from localhost ([::1]:54274 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jBYpN-0000R5-4b for ged-emacs-devel@m.gmane-mx.org; Tue, 10 Mar 2020 02:57:21 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:45807) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jBYon-0008SB-NC for emacs-devel@gnu.org; Tue, 10 Mar 2020 02:56:46 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jBYom-0004Pg-FB for emacs-devel@gnu.org; Tue, 10 Mar 2020 02:56:45 -0400 Original-Received: from mail-il1-x131.google.com ([2607:f8b0:4864:20::131]:46702) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1jBYom-0004N1-7W for emacs-devel@gnu.org; Tue, 10 Mar 2020 02:56:44 -0400 Original-Received: by mail-il1-x131.google.com with SMTP id e8so11009620ilc.13 for ; Mon, 09 Mar 2020 23:56:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=7bK4tYsJMQ0DN8+seKxvm7XlKistHRr2n512OPIk0pE=; b=KwW24xKf8y3Klcjbzui9/WFxfdsP4/tKI5xQVYIp+cIWxY0E0YWhQ6yInyKzIsd14Q LRurA0Np8nrHA9FUoPisLYMZ8UMcTC+tTZeKmYtSHmfQR7VzK+dloC4OLvXRJafyyFKY jLfJby1MW6spa53UnE47FFePoq8H2bF62E3xYgFsb7FkWWldHwL4SSicxaVWl9QaF32P T8Ekej4R0rmDXVBi98BLjG4+m1JcJQjZZ7P1mW9BaPCg+V+RYAvlFblb0pradSUiz0cw 8mupukLvwPs4uM6Yu+h9Qdu6CKP8ujDbDuT3lK4MP/bWOMQkOl5JqZRGkdJZ99yHRGnU tyPQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=7bK4tYsJMQ0DN8+seKxvm7XlKistHRr2n512OPIk0pE=; b=pqOAyWeZHPwXMXQc7ooeCi/fp2q+7B8FB/PgfF5WUN2MZXZlEjHhXr+Owj4dgqin6Z KXZ272WANyqLFLm4PreTlxdzqH+9j1VilXJeb7Ve93z6U4HapNU+EjBA4L7VioHhAAOk v+YDInhwfGFGPXikM6l8mBoaGMhjpGtofJ/vJtxyskOfLQG67w31qmH9NMPdbe6twdZV fNaoDpvot9pPSoM4ft126/BdTmyn2xdBPJJOL57LQgUQ7d/TZL4GrSJqcMpTLTBkNtsi wm3cE0dClDg9vuMDxaywjoow2HdheNDdGxAC2kQyHWAGc+a3mQ4BRgW4f39HOmX9i1wj 9qkA== X-Gm-Message-State: ANhLgQ1pA0b/Kht2YVt0UC4QjcZyydjDTWCr4EQvQztoeJCNmITe/5Nq 42wGZEUW599n/uwV8fUI1MyUBgVq+SWMUnrSRBcgkJub X-Google-Smtp-Source: ADFU+vt6EJmhPi+FS3xGZdRgwf8dhCEb7VSy94H2+cEBP32ElfpZtQItZ9YwzUJVVJwldB7ybtF4MfynAj5BTcEKlX8= X-Received: by 2002:a92:d708:: with SMTP id m8mr18327190iln.244.1583823403027; Mon, 09 Mar 2020 23:56:43 -0700 (PDT) X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2607:f8b0:4864:20::131 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.23 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:245425 Archived-At: --00000000000053115005a07a9f7f Content-Type: text/plain; charset="UTF-8" Hi, Glad to announce my enhancements to semantic which allows multi-mode editing in a single buffer. Demo video demonstrates the same for HTML with CSS and JS sections and includes. Jump to definition shortcut works for includes and definitions. JS and HTML uses company-semantic backend for auto-suggest whereas CSS uses company-capf. JS uses wisent based parsing, HTML uses libxml based parsing and CSS uses regex based parsing. https://youtu.be/FkOYUPjdID8 *Usage * - Define a pre-command hook in major-mode (add-hook 'pre-command-hook #'(lambda() (setq mode-local-active-mode (semantic-get-cache-data 'mode (point))) (activate-mode-local-bindings)) -1 t) - Mark sections using (semantic-cache-data-to-buffer) while parsing major mode. - Collect tags using (semantic-parse-region start end) - Override (semantic-ctxt-current-class-list) to return tag class allowed at a point Regards, Anand --00000000000053115005a07a9f7f Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi,
Glad to announce my enhancements to sem= antic which allows multi-mode editing in a single buffer. Demo video demons= trates the same for HTML with CSS and JS sections and includes. Jump to def= inition shortcut works for includes and definitions. JS and HTML uses compa= ny-semantic backend for auto-suggest whereas CSS uses company-capf. JS uses= wisent based parsing, HTML uses libxml based parsing and CSS uses regex ba= sed parsing.


Usa= ge
- Define a pre-command hook in major-mode
(add-hook 'pre-command-hook #'(lambda()
=C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 (setq mode-local-active-mode
=C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (semantic-get-cache-da= ta 'mode (point)))
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 (acti= vate-mode-local-bindings))
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 -1 = t)

- Mark sections using (semantic-cache-data-to-b= uffer) while parsing major mode.
- Collect tags using (semantic-p= arse-region start end)
- Override (semantic-ctxt-current-class-li= st) to return tag class allowed at a point

Regards= ,
Anand
--00000000000053115005a07a9f7f--