Skip to content

Commit 59cd460

Browse files
committed
feat: add snippets using yasnippet
1 parent 0c9affd commit 59cd460

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

88 files changed

+447
-357
lines changed

.vscode/settings.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"files.associations": {
3+
"snippets/**": "plaintext"
4+
}
5+
}

netlinx-mode.el

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
;; Author: Norgate AV
66
;; Maintainer: Norgate AV
77
;; Version: 0.1.0
8-
;; Package-Requires: ((emacs "29.1"))
8+
;; Package-Requires: ((emacs "29.1") (yasnippet "0.14.0"))
99
;; Keywords: languages, netlinx, amx, harman
1010
;; URL: https://github.com/Norgate-AV/emacs-netlinx-mode
1111
;; SPDX-License-Identifier: MIT
@@ -85,6 +85,19 @@ If set, enables quick access to NetLinx documentation via \\[netlinx-open-help].
8585
(treesit-install-language-grammar 'netlinx)
8686
(message "NetLinx: Grammar installation complete")))
8787

88+
;; Yasnippet integration
89+
(require 'yasnippet)
90+
91+
(defun netlinx-mode--setup-snippets ()
92+
"Setup yasnippet snippets for netlinx-mode."
93+
(let ((snippets-dir (expand-file-name
94+
"snippets"
95+
(file-name-directory
96+
(or load-file-name buffer-file-name)))))
97+
(when (file-directory-p snippets-dir)
98+
(add-to-list 'yas-snippet-dirs snippets-dir t)
99+
(yas-load-directory snippets-dir))))
100+
88101
;;; Commands
89102

90103
(defun netlinx-open-help ()
@@ -107,6 +120,9 @@ The file path is configured via `netlinx-mode-help-file'."
107120
;; Ensure grammar is installed
108121
(netlinx-mode--ensure-grammar)
109122

123+
;; Setup yasnippet integration if available
124+
(netlinx-mode--setup-snippets)
125+
110126
;; Keybindings
111127
(define-key netlinx-mode-map (kbd "C-c C-d") #'netlinx-open-help)
112128

snippets/netlinx-mode/#define

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
# -*- mode: snippet -*-
2+
# name: #Define Directive
3+
# key: #define
4+
# --
5+
#DEFINE ${1:name} ${2:value}$0

snippets/netlinx-mode/#else

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
# -*- mode: snippet -*-
2+
# name: #Else Directive
3+
# key: #else
4+
# --
5+
#ELSE$0

snippets/netlinx-mode/#end_if

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
# -*- mode: snippet -*-
2+
# name: #End If Directive
3+
# key: #end_if
4+
# --
5+
#END_IF$0

snippets/netlinx-mode/#if_defined

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
# -*- mode: snippet -*-
2+
# name: #If Defined Directive
3+
# key: #if_defined
4+
# --
5+
#IF_DEFINED ${1:name}$0
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
# -*- mode: snippet -*-
2+
# name: #If Not Defined Directive
3+
# key: #if_not_defined
4+
# --
5+
#IF_NOT_DEFINED ${1:name}$0

snippets/netlinx-mode/#include

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
# -*- mode: snippet -*-
2+
# name: #Include Directive
3+
# key: #include
4+
# --
5+
#include '${1:file}'$0

snippets/netlinx-mode/#warn

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
# -*- mode: snippet -*-
2+
# name: #Warn Directive
3+
# key: #warn
4+
# --
5+
#warn '${1:message}'$0

snippets/netlinx-mode/abs_value

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
# -*- mode: snippet -*-
2+
# name: abs_value
3+
# key: abs_value
4+
# --
5+
abs_value(${1:number})$0

0 commit comments

Comments
 (0)