> The number one thing I miss when trying to do java coding in TM is
> code autocompletion, and code hinting. I guess codesense is the more
> common term. I think this would probably require some kind of plugin.
I'm soooooooooooooooooooo with you on this one. This would be a killer
app for any oo language (including Actionscript, which takes up the
better part of my days) with the option for strong typing. I agree that
the plugin architecture would be needed for this.
> Second on my list would be some of the common refactoring things like
> wrap in try/catch, smart rename/delete etc.
See above.
> I'd be willing to help with some of the work.
As would I.
Allan, do you have any ideas/suggestions/resources/examples/whatever
for us to start thinking about this?
I look forward to sending screenshots of this to all of my smug,
Eclipse-using colleagues ("you develop for Flash on a MAC??!!?!?!)
:D
___________________
Ben Jackson
Diretor de Desenvolvimento
ben(a)incomumdesign.com
http://www.incomumdesign.com
Allan,
Im not sure if this has been mentioned before but have you considered adding
some sort of support for project templates? Im thinking of something that
can be accessed from the File menu with no files open, that pops open a
dialog like the ³new file from template² one, a bit like the way Xcode does
it. We are in the process of making something that can be run as a command
that can sort of do this, ie: ask for user input for the project name, a
location to save the project etc and this is working quite nicely, but it
requires a document to be open to run it, which obviously isnt ideal. Do you
have any thoughts on this?
Regards
Chris Jenkins
______________________________________________________________________
This email has been scanned by the MessageLabs Email Security System.
For more information please visit http://www.messagelabs.com/email
______________________________________________________________________
Because it came up yesterday and I already have the bad reputation to
like Java, here it goes:
A somewhat better Java Syntax than the included one:
Features:
- Better colouring (due to the old syntax being outdated)
- Goto Symbol popup working
Bugs:
- Keep the closing parentheses and the opening brace ) { of a method
declaration on the same line, otherwise the end pattern won't match
- More to come soon ;)
Soryu
{ scopeName = 'source.java';
comment = '
Credits to Brian Lalor, who wrote the Java syntax included in TM.
I might have adapted some of his syntax.
Soryu
Comments:
• I excluded overridden anonymous Constructors from
"declaration.function.method.java", so they won''t show up in the
Goto Symbol popup to reduce clutter a little.
';
fileTypes = ( 'java' );
foldingStartMarker = '/\*\*|\{\s*$';
foldingStopMarker = '\*\*/|^\s*\}';
patterns = (
{ name = 'comment.line.double-slash.java';
begin = '//';
end = '$';
swallow = '\\\s*\n';
},
{ name = 'comment.documentation.java';
begin = '/\*\*';
end = '\*/';
patterns = (
{ match = '\*\s*(@)(param)\s*([a-z][a-zA-Z0-9_]+)\s*';
captures =
{ 1 = { name = 'keyword.other.documentation.control'; };
2 = { name = 'keyword.other.documentation.params.java'; };
3 = { name = 'keyword.other.documentation.value.java'; };
};
},
{ match = '\*\s*(@)([a-zA-Z0-9_-]+)\s*';
captures =
{ 1 = { name = 'keyword.embedded-docs.control.java'; };
2 = { name = 'keyword.embedded-docs.params.java'; };
};
},
);
},
{ name = 'comment.block.java';
begin = '/\*';
end = '\*/';
},
{ name = 'meta.package.java';
match = '(package)\s+([^ ;]+?)\s*;';
captures =
{ 1 = { name = 'keyword.other.java'; };
2 = { name = 'entity.name.package.java'; };
};
},
{ name = 'meta.import.java';
match = '(import)\s+([^ ;]+?);';
captures =
{ 1 = { name = 'keyword.other.java'; };
2 = { name = 'entity.name.class.java'; };
};
},
{ name = 'declaration.class.java';
match = '\b(?<=class|interface|enum)\s+(\w+)';
captures = { 1 = { name = 'entity.name.class.java'; }; };
},
{ name = 'other.inheritance.class.java';
comment = 'TODO: implements has multiple Parameters, Extends does
not';
match = '\b(?<=extends|implements)\s+(\w+)';
captures = { 1 = { name = 'entity.name.class.java'; }; };
},
{ name = 'declaration.function.method.java';
begin = '\b(?<!new)\s+(\w+)\s*\(';
end = '\)\s*{';
captures = { 1 = { name = 'entity.name.function.java'; }; };
patterns = ( { include = '#keywords'; } );
},
{ name = 'constant.numeric.java';
comment = 'stolen from c syntax without looking very much at it';
match = '\b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\.?[0-9]*)|(\.[0-9]+))((e|
E)(\+|-)?[0-9]+)?)(L|l|UL|ul|u|U|F|f|ll|LL|ull|ULL)?\b';
},
{ name = 'keyword.flow.java';
match = '\b(if|else|while|for|return|continue|break|switch|do|goto|
case|try|catch|finally|throw)\b';
},
{ name = 'keyword.other.simple-types.java';
match = '\b(int|char|float|long|double|boolean|byte|short)\b';
},
{ name = 'keyword.operator.comparison.java';
match = '(==|!=|<=|>=|<>|<|>)';
},
{ name = 'keyword.operator.increment-decrement.java';
match = '(\-\-|\+\+)';
},
{ name = 'keyword.operator.arithmetic.java';
match = '(\-|\+|\*|\/|%)';
},
{ name = 'keyword.operator.logical.java';
match = '(!|&&|\|\|)';
},
{ name = 'storage.modifier.java';
match = '\b(private|public|protected|static|transient|final|
abstract|native|threadsafe|synchronized|volatile|strictfp)\b';
},
{ name = 'storage.type.java';
match = '\b(class|interface|enum)\b';
},
{ include = '#string-double-quoted'; },
{ include = '#keywords'; },
);
repository =
{ keywords =
{ name = 'keyword.other.java';
match = '\b(new|abstract|assert|default|synchronized|private|
protected|public|throws|enum|instanceof|transient|final|interface|
static|void|null|class|finally|strictfp|volatile|const|native|import|
package|extends|implements|this|super|true|false|if|else|while|for|
return|continue|break|switch|do|goto|case|try|catch|finally|throw|int|
char|float|long|double|boolean|byte|short)\b';
};
string-double-quoted =
{ name = 'string.quoted.double.java';
begin = '"';
end = '"';
patterns = (
{ name = 'constant.character.escaped.java';
match = '\\.';
}
);
};
};
}
Could it be that since the snap 715 the defaultkey defininition for all
application has changed. There are some definitions inside that I can't
use newline, backspace in any applications on os x.
regards
Karl-Heinz
Looking at the Ruby and Python bundles, they don't seem to have this
value set. Is indenting based on the folding markers, or what's the
deal?
___________________
Ben Jackson
Diretor de Desenvolvimento
ben(a)incomumdesign.com
http://www.incomumdesign.com
Hi Folks,
TmCodeBrowser is now available as tmplugin, with a number of
enhancements:
- Keyboard navigation and search, similar to the 'Go to File...' panel
- Compatible with OS X 10.3.9 and later
- Support for Objective-C
If you currently have the old TmCodeBrowser2 installed, please de-
install it first:
- Quit TextMate
- Drag the ~/Library/InputManagersManager folder into the trash
- Drag the ~/Library/InputManagers/InputManagersManager folder into
the trash
Note: You will not be able to empty the trash until you logout or
restart!
Then install the new TmCodeBrowser.tmplugin available here:
http://www.cocoabits.com/TmCodeBrowser/
Note: Once unpacked, TmCodeBrowser.tmplugin will look like a Folder
(Allan has not added tmplugin to the CFBundleDocumentTypes in the
Info.plist file). Simply drag the TmCodeBrowser.tmplugin onto
TextMate, and TextMate will install the plugin. CodeBrowser will then
be available in the menu under 'Windows/Show CodeBrowser' (you may
need to restart TextMate for that entry to appear).
Gerd
hello.
How do I keep a command output from sending in an extra newline?
I've got a command like this:
echo $\{1:`expr $TM_SELECTED_TEXT + 1`\}
Input: Selected Text
Output: insert as snippet
Activation: ctrl-up
Scope constant.numeric
But it's no good unless I can figure out how to keep that pesky
newline from jumping in my face.
Thanks