priority -50 global !p import vim # Set g:ultisnips_php_scalar_types to 1 if you'd like to enable PHP 7's scalar types for return values def isPHPScalarTypesEnabled(): isEnabled = vim.eval("get(g:, 'ultisnips_php_scalar_types', 0)") == "1" return isEnabled or re.match(r'<\?php\s+declare\(strict_types=[01]\);', '\n'.join(vim.current.window.buffer)) endglobal ## Snippets from SnipMate, taken from ## https://github.com/scrooloose/snipmate-snippets.git snippet gm "PHP Class Getter" b /** * Getter for $1 * * @return ${2:string} */ public function get${1/\w+\s*/\u$0/}()`!p snip.rv = ': '+t[2] if isPHPScalarTypesEnabled() else ''` { return $this->$1; } endsnippet snippet sm "PHP Class Setter" b /** * Setter for $1 * * @param ${2:string} $$1 * @return ${3:`!p snip.rv=snip.basename`} */ public function set${1/\w+\s*/\u$0/}(${4:${2/(void|string|int|integer|double|float|object|boolear|null|mixed|number|resource)|(.*)/(?1::$2 )/}}$$1) { $this->$1 = $$1; ${5:return $this;} } endsnippet snippet gs "PHP Class Getter Setter" b /** * Getter for $1 * * @return ${2:string} */ public function get${1/\w+\s*/\u$0/}()`!p snip.rv = ': '+t[2] if isPHPScalarTypesEnabled() else ''` { return $this->$1; } /** * Setter for $1 * * @param $2 $$1 * @return ${3:`!p snip.rv=snip.basename`} */ public function set${1/\w+\s*/\u$0/}(${4:${2/(void|string|int|integer|double|float|object|boolear|null|mixed|number|resource)|(.*)/(?1::$2 )/}}$$1) { $this->$1 = $$1; ${5:return $this;} } endsnippet snippet pub "Public function" b /** * ${3:undocumented function} * * @return ${4:void} */ public function ${1:name}(${2:$param}) { ${VISUAL}${5:return null;} } $0 endsnippet snippet pro "Protected function" b /** * ${3:undocumented function} * * @return ${4:void} */ protected function ${1:name}(${2:$param}) { ${VISUAL}${5:return null;} } $0 endsnippet snippet pri "Private function" b /** * ${3:undocumented function} * * @return ${4:void} */ private function ${1:name}(${2:$param}) { ${VISUAL}${5:return null;} } $0 endsnippet snippet pubs "Public static function" b /** * ${3:undocumented function} * * @return ${4:void} */ public static function ${1:name}(${2:$param}) { ${VISUAL}${5:return null;} } $0 endsnippet snippet pros "Protected static function" b /** * ${3:undocumented function} * * @return ${4:void} */ protected static function ${1:name}(${2:$param}) { ${VISUAL}${5:return null;} } $0 endsnippet snippet pris "Private static function" b /** * ${3:undocumented function} * * @return ${4:void} */ private static function ${1:name}(${2:$param}) { ${VISUAL}${5:return null;} } $0 endsnippet snippet fu "Function snip" b function ${1:name}(${2:$param}) { ${VISUAL}${3:return null;} } $0 endsnippet snippet new "New class instance" b $${1:variableName} = new ${2:${1/\w+\s*/\u$0/}}($3); $0 endsnippet snippet ns "namespace declaration" b namespace ${1:`!p relpath = os.path.relpath(path) m = re.search(r'[A-Z].+(?=/)', relpath) if m: snip.rv = m.group().replace('/', '\\') `}; endsnippet snippet class "Class declaration template" b $1 = $$1;/g} } $0 endsnippet # PHPUnit snippets snippet testcase "class XYZTest extends \PHPUnit_Framework_TestCase { ... }"