Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Loading…

Maven and GNU Screen plugins #239

Merged
merged 22 commits into from

6 participants

@fred-o

Hi, I've added plugins for Maven and GNU Screen, based mostly on code I found on the web.

Cheers,
-- Fredrik

@nicoulaj

@fred-o: I have started writing a real Maven completion script here.

@fred-o

Cool, looks way more complete than mine.

@nel
nel commented

The screen plugin is not really necessary as it's duplicating features that are already bundled with oh-my-zsh in lib/termsupport.zsh

If you want to improve window/tab/hardstatus display, IMHO it's better to do it there.

@fred-o

@nel Well, not everyone using screen may want zsh/screen integration, so doing it as a plugin would make it optional. I'll take a look at lib/termsupport.zsh, though...

@amaltson

Any chance of the Maven plugin being merged in?

@fred-o

Hi again,

I finally had some time to look into this. The code in screen.plugin.zsh does a lot more than what lib/termsupport.zsh does; providing nice formatting for the screen title and hardstatus, which can be customized with a little bit of effort. Also, it replaces the preexec() and precmd() functions with screen-specific versions. I think it would be a good thing to keep this as a plugin, allowing users to choose whether they want the more advanced screen functionality or not.

Cheers,
-- Fredrik

@nicoulaj

By the way, the Maven completion script has moved here.

@fred-o

@nicoulaj: is it OK with you if I just re-use your code for the maven plugin?

@nicoulaj

@fred-o: it's unfinished and still has pending modifications, so I would rather not duplicate the code... But it's licensed under BSD, so you are free to do what you want ;)

@fred-o

Yeah, I'm kind of ambivalent on this. On the one hand, I'd rather not duplicate code. On the other, having good maven completion would be really good.

@robbyrussell robbyrussell merged commit feb11a7 into from
@robbyrussell

@fred-o Can you update the Plugins page with info about these?

Much appreciated!

@fred-o

done!

...and thank you for oh-my-zsh! :)

@ymattw

Is the last backslash redundant?

Umm... not really sure. I wrote this two years ago and have switched to tmux since then :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Commits on Dec 1, 2010
  1. @fred-o

    maven plugin

    fred-o authored
Commits on Feb 11, 2011
  1. @fred-o
Commits on Feb 16, 2011
  1. @fred-o

    mvn plugin

    fred-o authored
  2. @fred-o
Commits on Feb 25, 2011
  1. @fred-o
  2. @fred-o
Commits on Feb 27, 2011
  1. @fred-o
Commits on Feb 28, 2011
  1. @fred-o
Commits on Mar 7, 2011
  1. @fred-o

    .gitignore

    fred-o authored
  2. @fred-o

    Added a plugin for GNU Screen.

    fred-o authored
  3. @fred-o
  4. @fred-o
  5. @fred-o
Commits on Mar 9, 2011
  1. @fred-o
  2. @fred-o
  3. @fred-o
Commits on Mar 23, 2011
  1. @fred-o
Commits on Apr 17, 2011
  1. @fred-o

    Merge branch 'master' of git://github.com/robbyrussell/oh-my-zsh

    fred-o authored
    Conflicts:
    	lib/termsupport.zsh
Commits on Dec 8, 2011
  1. @fred-o

    Merge branch 'master' of git@github.com:fred-o/oh-my-zsh

    fred-o authored
    Conflicts:
    
    	.gitignore
Commits on Jan 16, 2012
  1. @fred-o
Commits on Feb 20, 2012
  1. @fred-o
Commits on Mar 26, 2012
  1. @fred-o
This page is out of date. Refresh to see the latest.
View
3  .gitignore
@@ -4,5 +4,6 @@ projects.zsh
custom/*
!custom/example
!custom/example.zsh
-cache
*.swp
+!custom/example.zshcache
+cache/
View
6 plugins/mvn/mvn.plugin.zsh
@@ -0,0 +1,6 @@
+function listMavenCompletions {
+ reply=(
+ cli:execute cli:execute-phase archetype:generate generate-sources compile clean install test test-compile deploy package cobertura:cobertura jetty:run gwt:run gwt:debug -DskipTests -Dmaven.test.skip=true -DarchetypeCatalog=http://tapestry.formos.com/maven-snapshot-repository -Dtest= `if [ -d ./src ] ; then find ./src -type f | grep -v svn | sed 's?.*/\([^/]*\)\..*?-Dtest=\1?' ; fi`);
+}
+
+compctl -K listMavenCompletions mvn
View
54 plugins/screen/screen.plugin.zsh
@@ -0,0 +1,54 @@
+# if using GNU screen, let the zsh tell screen what the title and hardstatus
+# of the tab window should be.
+if [[ $TERM == "screen" ]]; then
+ if [[ $_GET_PATH == '' ]]; then
+ _GET_PATH='echo $PWD | sed "s/^\/Users\//~/;s/^\/home\//~/;s/^~$USER/~/"'
+ fi
+ if [[ $_GET_HOST == '' ]]; then
+ _GET_HOST='echo $HOST | sed "s/\..*//"'
+ fi
+
+ # use the current user as the prefix of the current tab title
+ TAB_TITLE_PREFIX='"`'$_GET_HOST'`:`'$_GET_PATH' | sed "s:..*/::"`$PROMPT_CHAR"'
+ # when at the shell prompt, show a truncated version of the current path (with
+ # standard ~ replacement) as the rest of the title.
+ TAB_TITLE_PROMPT='$SHELL:t'
+ # when running a command, show the title of the command as the rest of the
+ # title (truncate to drop the path to the command)
+ TAB_TITLE_EXEC='$cmd[1]:t'
+
+ # use the current path (with standard ~ replacement) in square brackets as the
+ # prefix of the tab window hardstatus.
+ TAB_HARDSTATUS_PREFIX='"[`'$_GET_PATH'`] "'
+ # when at the shell prompt, use the shell name (truncated to remove the path to
+ # the shell) as the rest of the title
+ TAB_HARDSTATUS_PROMPT='$SHELL:t'
+ # when running a command, show the command name and arguments as the rest of
+ # the title
+ TAB_HARDSTATUS_EXEC='$cmd'
+
+ # tell GNU screen what the tab window title ($1) and the hardstatus($2) should be
+ function screen_set()
+ {
+ # set the tab window title (%t) for screen
+ print -nR $'\033k'$1$'\033'\\\
+
+ # set hardstatus of tab window (%h) for screen
+ print -nR $'\033]0;'$2$'\a'
+ }
+ # called by zsh before executing a command
+ function preexec()
+ {
+ local -a cmd; cmd=(${(z)1}) # the command string
+ eval "tab_title=$TAB_TITLE_PREFIX:$TAB_TITLE_EXEC"
+ eval "tab_hardstatus=$TAB_HARDSTATUS_PREFIX:$TAB_HARDSTATUS_EXEC"
+ screen_set $tab_title $tab_hardstatus
+ }
+ # called by zsh before showing the prompt
+ function precmd()
+ {
+ eval "tab_title=$TAB_TITLE_PREFIX:$TAB_TITLE_PROMPT"
+ eval "tab_hardstatus=$TAB_HARDSTATUS_PREFIX:$TAB_HARDSTATUS_PROMPT"
+ screen_set $tab_title $tab_hardstatus
+ }
+fi
Something went wrong with that request. Please try again.