aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Kiryukhin <a.kiryukhin@mail.ru>2021-03-19 02:22:55 +0300
committerAlexander Kiryukhin <a.kiryukhin@mail.ru>2021-03-19 02:22:55 +0300
commit3d94211018aa28c32605e001e62b3dbe7f9305f3 (patch)
tree50c42120d7f4030700a57198340c1c36d87cea15
v0.0.1
-rw-r--r--.eslintrc.js23
-rw-r--r--.vscode/extensions.json5
-rw-r--r--.vscode/launch.json14
-rw-r--r--.vscode/settings.json3
-rw-r--r--README.md15
-rw-r--r--package.json21
-rw-r--r--snippets.json65
7 files changed, 146 insertions, 0 deletions
diff --git a/.eslintrc.js b/.eslintrc.js
new file mode 100644
index 0000000..91729d3
--- /dev/null
+++ b/.eslintrc.js
@@ -0,0 +1,23 @@
+/**@type {import('eslint').Linter.Config} */
+// eslint-disable-next-line no-undef
+module.exports = {
+ root: true,
+ parser: '@typescript-eslint/parser',
+ plugins: [
+ '@typescript-eslint',
+ ],
+ extends: [
+ 'eslint:recommended',
+ 'plugin:@typescript-eslint/recommended',
+ ],
+ rules: {
+ 'semi': [
+ 2,
+ "always"
+ ],
+ '@typescript-eslint/no-unused-vars': 0,
+ '@typescript-eslint/no-explicit-any': 0,
+ '@typescript-eslint/explicit-module-boundary-types': 0,
+ '@typescript-eslint/no-non-null-assertion': 0,
+ }
+};
diff --git a/.vscode/extensions.json b/.vscode/extensions.json
new file mode 100644
index 0000000..12ffc20
--- /dev/null
+++ b/.vscode/extensions.json
@@ -0,0 +1,5 @@
+{
+ "recommendations": [
+ "dbaeumer.vscode-eslint"
+ ]
+}
diff --git a/.vscode/launch.json b/.vscode/launch.json
new file mode 100644
index 0000000..9e6d2e6
--- /dev/null
+++ b/.vscode/launch.json
@@ -0,0 +1,14 @@
+{
+ "version": "0.2.0",
+ "configurations": [
+ {
+ "name": "Run Extension",
+ "type": "extensionHost",
+ "request": "launch",
+ "runtimeExecutable": "${execPath}",
+ "args": [
+ "--extensionDevelopmentPath=${workspaceFolder}"
+ ]
+ }
+ ]
+}
diff --git a/.vscode/settings.json b/.vscode/settings.json
new file mode 100644
index 0000000..89401d0
--- /dev/null
+++ b/.vscode/settings.json
@@ -0,0 +1,3 @@
+{
+ "editor.insertSpaces": false
+}
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..20476c9
--- /dev/null
+++ b/README.md
@@ -0,0 +1,15 @@
+# Golang snippets
+
+Extensions with frequently used snippets for productive go development.
+
+Extension in active development! Your contribution is always welcome :)
+
+| Prefix| Description | Example |
+| :---- |:-----------:| -------:|
+| `pkg` | Package header line | `package test` |
+| `tyi` | Type interface declaration | ```type test interface { }``` |
+| `tys` | Type structure declaration | ```type test struct { }``` |
+| `construct` | Constructor for structure type | see in action |
+| `var` | Variable with type and value | `var test string = "hello"` |
+| `stack` | Stack from array of types | see in action |
+
diff --git a/package.json b/package.json
new file mode 100644
index 0000000..cec58e7
--- /dev/null
+++ b/package.json
@@ -0,0 +1,21 @@
+{
+ "name": "gosnippets",
+ "displayName": "Useful Golang snippets",
+ "description": "Snippets for productive work",
+ "version": "0.0.1",
+ "publisher": "Alexander NeonXP Kiryukhin",
+ "engines": {
+ "vscode": "^1.28.0"
+ },
+ "categories": [
+ "Snippets"
+ ],
+ "contributes": {
+ "snippets": [
+ {
+ "language": "golang",
+ "path": "./snippets.json"
+ }
+ ]
+ }
+}
diff --git a/snippets.json b/snippets.json
new file mode 100644
index 0000000..294d806
--- /dev/null
+++ b/snippets.json
@@ -0,0 +1,65 @@
+{
+ "Interface declaration": {
+ "body": [
+ "type $1 interface {",
+ "\t$0",
+ "}"
+ ],
+ "description": "go interface type",
+ "prefix": "tyi"
+ },
+ "Package line": {
+ "body": [
+ "package ${TM_DIRECTORY/.+\\/(.+)$/${1:/downcase}/}",
+ "",
+ "$0"
+ ],
+ "description": "package header",
+ "prefix": "pkg"
+ },
+ "Stack from array": {
+ "body": [
+ "type ${1:name} []${2:type}",
+ "",
+ "func (s *$1) Push(item $2) {",
+ "\t*s = append(*s, item)",
+ "}",
+ "",
+ "func (s *$1) Pop() (item $2) {",
+ "\tif len(*s) == 0 {",
+ "\t\treturn",
+ "\t}",
+ "",
+ "\t*s, item = (*s)[:len(*s)-1], (*s)[len(*s)-1]",
+ "\treturn item",
+ "}"
+ ],
+ "description": "stack from array type",
+ "prefix": "stack"
+ },
+ "Structure constructor": {
+ "body": [
+ "// New instance of $1 type.",
+ "func New${1:type}(${2}) *$1 {",
+ "\t$3",
+ "\treturn &$1{$4}",
+ "}"
+ ],
+ "description": "constructor for structure type",
+ "prefix": "construct"
+ },
+ "Structure declaration": {
+ "body": [
+ "type $1 struct {",
+ "\t$0",
+ "}"
+ ],
+ "description": "strucutre type",
+ "prefix": "tys"
+ },
+ "Variable declaration": {
+ "body": "var $1 $2 = $3",
+ "description": "variable with type and value",
+ "prefix": "var"
+ }
+}