require("luasnip.session.snippet_collection").clear_snippets("php") require("luasnip.session.snippet_collection").clear_snippets("yaml") local ls = require("luasnip") local s = ls.snippet local t = ls.text_node local fmt = require("luasnip.extras.fmt").fmt local fmta = require("luasnip.extras.fmt").fmta ls.add_snippets("php", { s( "createnodes", fmt( [[ $this->createNode(['type' => 'talk']); $this->createNode(['type' => 'talk']); ]], {} ) ), s( "pagecontroller", fmta( [[ <entityTypeManager->getStorage('node')->loadByProperties(); return count($talks); }} ]], {} ) ), s( "repotestclass", fmta( [[ <container->get(TalkNodeRepository::class); self::assertSame(2, $talkRepository->getCount()); }} ]], {} ) ), s( "showconstructor", fmta( [[ public function __construct(private TalkNodeRepository $talkRepository) { } ]], {} ) ), s( "showcount", fmt( [[ $talkCount = 2; return ['#markup' => $this->t(':count talks', [':count' => $talkCount])]; ]], {} ) ), s("showrepository", t("$talkCount = $this->talkRepository->getCount();")), s( "test200response", fmt( [[ public function test_it_returns_a_200_response_code(): void {{ $this->drupalGet('/talks'); $session = $this->assertSession(); $session->statusCodeEquals(Response::HTTP_OK); }} ]], {} ) ), s( "testclass", fmt( [[ drupalGet('/talks'); $session = $this->assertSession(); $session->responseContains('2 talks'); }} ]], {} ) ), s("testmodules", t("protected static $modules = ['opdavies_talks'];")), }) ls.add_snippets("yaml", { s( "talkpage", fmt( [[ opdavies_talks.page: path: /talks defaults: _controller: Drupal\opdavies_talks\Controller\TalksPageController _title: Talks requirements: _permission: access content ]], {} ) ), s( "talkservices", fmt( [[ services: Drupal\opdavies_talks\Controller\TalksPageController: autowire: true Drupal\opdavies_talks\Repository\TalkNodeRepository: [] ]], {} ) ), })