local ls = require "luasnip" local snippet_from_nodes = ls.sn local c = ls.choice_node local t = ls.text_node local d = ls.dynamic_node local f = ls.function_node local i = ls.insert_node local fmt = require("luasnip.extras.fmt").fmt local rep = require("luasnip.extras").rep local M = { str = fmt( [[{}: type: string {}]], { i(1, ""), i(2, ""), } ), bool = fmt( [[{}: type: boolean {}]], { i(1, ""), i(2, ""), } ), float = fmt( [[{}: type: number format: float {}]], { i(1, ""), i(2, ""), } ), int = fmt( [[{}: type: integer {}]], { i(1, ""), i(2, ""), } ), id = fmt( [[{}: type: integer format: int64 {}]], { i(1, ""), i(2, ""), } ), class = fmt( [[{}: $ref: '#/components/schemas/{}' {}]], { i(1, ""), i(2, ""), i(3, ""), } ), date = fmt( [[{}: type: string format: date-time {}]], { i(1, ""), i(2, ""), } ), arr = fmt( [[{}: type: array items: {} {}]], { i(1, ""), i(2, ""), i(3, ""), } ), ref = fmt([[$ref: '#/components/schemas/{}']], { i(1, "") }), obj = fmt( [[type: object properties: {}]], i(1, "") ), aint = fmt( [[{}: type: array items: type: int format: int64 {}]], { i(1, ""), i(2, ""), } ), astr = fmt( [[{}: type: array items: type: string {}]], { i(1, ""), i(2, ""), } ), mut = fmt( [[{}: type: "{}" resolve: '@=mutation("App\\GraphQL\\Mutation\\{}::{}", {}, info)' args: {} ]], { i(1, ""), i(2, ""), i(3, ""), rep(1), i(5, ""), i(6, ""), } ), input = fmt( [[{}: type: input-object config: fields: {} ]], { i(1, ""), i(2, ""), } ), f = fmt([[{}: {{ type: "{}" }}]], { i(1, ""), i(2, "") }), api = fmt( [[openapi: 3.0.2 info: title: {} contact: name: eva-team-be version: {} x-bundle-apis: true tags: - name: {} description: {} ]], { i(1, "my app"), i(2, "1.0.0"), i(3, "tag"), i(4, "tag description") } ), paths = fmt( [[paths: {} ]], { i(0, "") } ), param = fmt( [[parameters: - name: {} description: {} in: path required: true schema: type: integer format: int64 ]], { i(1, ""), i(2, "") } ), get = fmt( [[get: operationId: {} description: {} tags: [ {} ] responses: 200: description: Response content: application/json: schema: {} ]], { i(1, "GetOperation"), i(2, "description"), i(3, "tag"), i(4, "") } ), put = fmt( [[put: operationId: {} tags: [ {} ] description: {} requestBody: content: application/json: schema: {} required: true responses: 200: description: {} content: application/json: schema: {} ]], { i(1, "PutOperation"), i(2, "tag"), i(3, "description"), i(4, ""), i(5, "description"), i(6, "") } ), } return M