Hey all,
I've been doing some php code lately and got a bit tired of writing getters/setters. I didn't find a command to generate them for me, so I whipped one up.
I'm putting it here in case someone finds it useful.
The idea is to highlight the lines in your class file where you define the class's instance vars. You then just have to fire this command and it'll create generic getters/setters for the vars found in the selection (can do multiple per line). If no lines are select, it will try to create getters/setters for the vars in the current line.
It might be handier if it dumped the code into the clipboard, or something, but it will just drop the code right below the current selection.
If that sounds handy, you can create a command like so:
================== Save: NOTHING Input: SELECTED TEXT or LINE Output: INSERT AS TEXT Scope Selector: source.php
Command(s): ----------------- #!/usr/bin/env python import os,re,sys
template = """ public function get:CALL:() { \treturn $this->:VAR:; }
public function set:CALL:($:VAR:) { \t$this->:VAR: = $:VAR:; } """
regex = re.compile(r'$(\w+)')
try: text = os.environ['TM_SELECTED_TEXT'] except KeyError: text = os.environ['TM_CURRENT_LINE']
for line in text.split('\n'): for var in regex.findall(line): code = template.replace(':VAR:', var) code = code.replace(':CALL:', var[0].upper() + var[1:]) sys.stdout.write(code) =====================
Bind to your favorite key combo and voila.
-steve