diff --git a/extra/emacs/readme.md b/extra/emacs/readme.md new file mode 100644 index 0000000000000000000000000000000000000000..2636eab68b9521acf75c190e3fcf34e6e86fc60b --- /dev/null +++ b/extra/emacs/readme.md @@ -0,0 +1,12 @@ +# Emacs extras # + +This directory contains extra utils for use with Emacs. + +## Snippets ## + +if you copy the contents of the `snippets` directory to your `~/.emacs.d/snippets/`, the following +*yasnippet* snippets will become available: + +- yaml-mode: + - `RT`: Insert a new RecordType, with inheritance and properties sections. + - `prop`: Insert a new Property into a RecordType, with datatype and description. diff --git a/extra/emacs/snippets/yaml-mode/Property inside RecordType b/extra/emacs/snippets/yaml-mode/Property inside RecordType new file mode 100644 index 0000000000000000000000000000000000000000..92769b78e5496ec4cb545556b3eff3fc924c872d --- /dev/null +++ b/extra/emacs/snippets/yaml-mode/Property inside RecordType @@ -0,0 +1,34 @@ +# -*- mode: snippet -*- +# This file is a part of the CaosDB Project. +# +# Copyright (C) 2022 IndiScale GmbH <info@indiscale.com> +# Copyright (C) 2022 Daniel Hornung <d.hornung@indiscale.com> +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see <https://www.gnu.org/licenses/>. + +# name: Property inside RecordType +# key: prop +# expand-env: ((yas-indent-line 'fixed)) +# -- +${1:property_name}: + datatype: ${2:$$(yas-choose-value '("BOOLEAN" + "DATETIME" + "DOUBLE" + "FILE" + "INTEGER" + "LIST" + "REFERENCE" + "TEXT"))} + description: ${3:description text} +$0 \ No newline at end of file diff --git a/extra/emacs/snippets/yaml-mode/RecordType b/extra/emacs/snippets/yaml-mode/RecordType new file mode 100644 index 0000000000000000000000000000000000000000..6b4a9c263806b6d57442470a11a2770d3d417741 --- /dev/null +++ b/extra/emacs/snippets/yaml-mode/RecordType @@ -0,0 +1,30 @@ +# -*- mode: snippet -*- +# This file is a part of the CaosDB Project. +# +# Copyright (C) 2022 IndiScale GmbH <info@indiscale.com> +# Copyright (C) 2022 Daniel Hornung <d.hornung@indiscale.com> +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see <https://www.gnu.org/licenses/>. + +# name: RecordType +# key: RT +# expand-env: ((yas-indent-line 'fixed)) +# -- +${1:RecordTypeName}: + inherit_from_obligatory:$0 + inherit_from_recommended: + inherit_from_suggested: + obligatory_properties: + recommended_properties: + suggested_properties: