commit 38f8e79bd110b18c62010d431845fad5a8069300 Author: Martin Stubenschrott Date: Sat Mar 1 20:44:56 2008 +0000 first commit, hurray! :) diff --git a/AUTHORS b/AUTHORS new file mode 100644 index 00000000..33981349 --- /dev/null +++ b/AUTHORS @@ -0,0 +1,7 @@ +
+Main developer/Project founder:
+  * Martin Stubenschrott (stubenschrott@gmx.net)
+
+A lot of people contributed to Vimperator, which is the basis of Muttator, so please refer
+to that AUTHOR file for more contributors.
+
diff --git a/Donators b/Donators new file mode 100644 index 00000000..a4ca7399 --- /dev/null +++ b/Donators @@ -0,0 +1,8 @@ +
+Note: If you don't wish to appear on this list when making a donation, please tell me.
+
+2008:
+* YOU
+
+I want to say a big THANK YOU to all people which supported this project in this way.
+
diff --git a/Makefile b/Makefile new file mode 100644 index 00000000..664597b7 --- /dev/null +++ b/Makefile @@ -0,0 +1,6 @@ +#### configuration + +VERSION = 0.1pre +NAME = muttator + +include Makefile.common diff --git a/Makefile.common b/Makefile.common new file mode 100644 index 00000000..717e7a7e --- /dev/null +++ b/Makefile.common @@ -0,0 +1,155 @@ +#### configuration + +TOP = $(shell pwd) +OS = $(shell uname -s) +BUILD_DATE = $(shell date "+%Y/%m/%d %H:%M:%S") + +DOC_SRC_FILES = $(wildcard locale/*/*.txt) +DOC_FILES = ${DOC_SRC_FILES:%.txt=%.html} + +# TODO: specify source files manually? +JAR_TXT_FILES = ${shell find content skin locale \ + -type f \ + -a ! -path '*CVS*' \ + -a \( \ + -path '*.js' \ + -o -path '*.css' \ + -o -path '*.xul' \ + -o -path '*.html' \ + \) \ + } +JAR_DIRS = $(foreach f,${JAR_FILES},$(dir $f)) +JAR_BIN_FILES = ${shell find content skin \ + -type f \ + -a ! -path '*CVS*' \ + -a -path '*.png' \ + } +JAR_FILES = ${JAR_BIN_FILES} ${JAR_TXT_FILES} ${DOC_FILES} +JAR = chrome/${NAME}.jar + +XPI_TXT_FILES = install.rdf chrome.manifest TODO AUTHORS Donators NEWS +XPI_DIRS = $(foreach f,${XPI_FILES},$(dir $f)) +XPI_BIN_FILES = ${JAR} Makefile.common Makefile +XPI_FILES = ${XPI_BIN_FILES} ${XPI_TXT_FILES} +XPI_NAME = ${NAME}_${VERSION}.xpi +XPI = ../downloads/${XPI_NAME} + +RDF = ../downloads/update.rdf +RDF_IN = ${RDF}.in + +BUILD_DIR = build.${VERSION}.${OS} +BUILD_JAR_DIR = ${BUILD_DIR}/jar +BUILD_XPI_DIR = ${BUILD_DIR}/xpi + +BUILD_JAR_SUBDIRS = $(sort ${JAR_DIRS:%=${BUILD_JAR_DIR}/%}) +BUILD_XPI_SUBDIRS = $(sort ${XPI_DIRS:%=${BUILD_XPI_DIR}/%}) + +ASCIIDOC = asciidoc +ZIP = zip +SED = sed + +# specify V=1 on make line to see more verbose output +Q=$(if ${V},,@) +CP_V=$(if ${V},-v) + +#### rules + +.PHONY: all help info doc jar xpi install clean distclean +all: help + +help: + @echo "${NAME} ${VERSION} build" + @echo + @echo " make help - display this help" + @echo " make info - show some info about the system" + @echo " make doc - build doc files" + @echo " make jar - build a JAR (${JAR})" + @echo " make xpi - build an XPI (${XPI_NAME})" + @echo " make release - updates update.rdf (this is not for you)" + @echo " make clean - clean up" + @echo " make distclean - clean up more" + @echo + @echo "running some commands with V=1 will show more build details" + +info: + @echo "version ${VERSION}" + @echo "release file ${XPI}" + @echo "doc files ${DOC_SRC_FILES}" + @echo -e "jar files $(shell echo ${JAR_FILES} | sed 's/ /\\n /g' )" + +doc: ${DOC_FILES} +xpi: ${XPI} +jar: ${JAR} + +release: ${XPI} ${RDF} + +${RDF}: ${RDF_IN} Makefile + @echo "Preparing release..." + ${Q}${SED} -e "s,###VERSION###,${VERSION},g" \ + -e "s,###DATE###,${BUILD_DATE},g" \ + < $< > $@ + @echo "SUCCESS: $@" + +clean: + @echo "Cleanup..." + ${Q}rm -f ${JAR} ${XPI} + ${Q}find . -name '*~' -exec rm -f {} \; + +distclean: clean + @echo "More cleanup..." + ${Q}rm -f ${DOC_FILES} + ${Q}rm -rf ${BUILD_DIR} + +#### xpi + +${BUILD_XPI_SUBDIRS}: + ${Q}mkdir -p $@ + +${XPI}: ${BUILD_XPI_SUBDIRS} ${XPI_FILES} + @echo "Building XPI..." + ${Q}mkdir -p $(dir ${XPI}) + ${Q}for f in ${XPI_BIN_FILES} ; do \ + cp $$f ${BUILD_XPI_DIR}/$$f ; \ + done + ${Q}for f in ${XPI_TXT_FILES} ; do \ + ${SED} -e "s,###VERSION###,${VERSION},g" \ + -e "s,###DATE###,${BUILD_DATE},g" \ + < $$f > ${BUILD_XPI_DIR}/$$f ; \ + ( diff -q $$f ${BUILD_XPI_DIR}/$$f 1>/dev/null ) || \ + ( echo "modified: $$f" ; \ + diff -u $$f ${BUILD_XPI_DIR}/$$f | grep '^[-+][^-+]' ) ; \ + done + # FIXME: VERSION and DATE tokens not replaced + ${Q}${SED} -e 's,\(skin\|content\|locale/.*\)/$$,jar:chrome/${NAME}.jar!/\1/,' \ + < chrome.manifest > ${BUILD_XPI_DIR}/chrome.manifest + ${Q}( cd ${BUILD_XPI_DIR} && ${ZIP} -r ${TOP}/${XPI} ${XPI_FILES} ) + @echo "SUCCESS: $@" + +#### jar + +${BUILD_JAR_SUBDIRS}: + ${Q}mkdir -p $@ + +${JAR}: ${BUILD_JAR_SUBDIRS} ${JAR_FILES} + @echo "Building JAR..." + ${Q}mkdir -p $(dir ${JAR}) + ${Q}for f in ${JAR_BIN_FILES} ; do \ + cp $$f ${BUILD_JAR_DIR}/$$f ; \ + done + ${Q}for f in ${JAR_TXT_FILES} ; do \ + ${SED} -e "s,###VERSION###,${VERSION},g" \ + -e "s,###DATE###,${BUILD_DATE},g" \ + < $$f > ${BUILD_JAR_DIR}/$$f ; \ + ( diff -q $$f ${BUILD_JAR_DIR}/$$f 1>/dev/null ) || \ + ( echo "modified: $$f" ; \ + diff -u $$f ${BUILD_JAR_DIR}/$$f | grep '^[-+][^-+]' ) ; \ + done + ${Q}( cd ${BUILD_JAR_DIR} && ${ZIP} -r ${TOP}/${JAR} ${JAR_FILES} ) + @echo "SUCCESS: $@" + +#### doc + +${DOC_FILES}: %.html: %.txt Makefile.common locale/en-US/asciidoc.conf + @echo "DOC $@" + ${Q}${ASCIIDOC} --unsafe -a linkcss -o $@ $< + diff --git a/NEWS b/NEWS new file mode 100644 index 00000000..ee575ef7 --- /dev/null +++ b/NEWS @@ -0,0 +1,6 @@ +
+2008-xx-xx:
+    * version 0.1
+    * first public release, straight port from vimperator
+
+ diff --git a/TODO b/TODO new file mode 100644 index 00000000..309dcc36 --- /dev/null +++ b/TODO @@ -0,0 +1,54 @@ +
+Priority list:
+1-9 as in vim (9=required for next release, 5=would be nice, 1=probably not)
+
+BUGS:
+- add window resize support to hints
+- can't reverse tab through the vimperator toolbar
+- gu and gU doesn't work on Windows.
+- pvh option not working
+- searching backwards incrementally does not work i.e. with 'incsearch' set
+- http://msdn2.microsoft.com/en-us/library/ms535258.aspx does not scroll with j/k/etc.
+  same for http://forum.mootools.net/topic.php?id=3458
+- insert abbreviations broken on 
+
+FEATURES:
+8 middleclick in content == p, and if command line is open, paste there the clipboard buffer
+8 add more autocommands (BrowserStart, BrowserQuit, TabClose, TabOpen, TabChanged, LocationChanged, any more?)
+8 ;? will show information about  like id, class, image filename, etc.
+8 there should be a listbox/combobox mode
+8 y and Y should be changed to: yy and yl=yank location, ys=yank selection,
+  yd=yank domain name, yt=yank title, yw=yank current word,
+  yS=yank selection, if no selection then yank current word (other things to yank?)
+8 all search commands should start searching from the top of the visible viewport 
+7 use ctrl-n/p in insert mode for word completion
+7 implement LocationList window, and get rid off/change PreviewWindow to be a real preview window being able to display html pages
+7 [ctrl-o/i] to Go back to a Previous Position (done partly, however currenty does not use a per tab jumplist)
+7 whereever possible: get rid of dialogs and ask console-like dialog questions or write error prompts directly on the webpage or with :echo()
+7 [d could go to the last domain in the history stack. so if i browse from
+  google to another page and click 10 links there, [d would take me back to the google page
+  opera's fast forward does something like this
+6 :sidebar improvements (:sidebar! Downloads while downloads is open should refocus the sidebar)
+6 jump to the next heading with ]h, next image ]i, previous textbox [t and so on
+6 :grep support (needs location list)
+6 use '' to jump between marks like vim
+6 pipe selected text/link/website to an external command
+6 :set wildoptions=auto mode, which would list completions on each keystroke (maybe performance problems)
+6 Use ctrl-w+j/k/w to switch between sidebar, content, preview window
+5 Favicons in completion windows and some other places?
+5 make a command to search within google search results
+  (http://gadelkareem.com/2007/01/28/using-google-ajax-api-as-an-array/)
+  maybe impossible, needs a per-site key from google
+4 Add -nargs, -complete, etc. to :command
+4 } { should jump to the next paragraph of the page (maybe impossible)
+3 Splitting Windows with [:sp :vsp ctrl-w,s ctrl-w,v] and closing with [ctrl-w,q], moving with [ctrl-w,w or tab]
+  have a look into the split browser extension
+- many other ideas are listed in the wiki
+
+RANDOM IDEAS:
+* numbered tabs
+* Would it be possible to add a setting "maxcompletionsshown" and 
+  "maxpreviewwindowheight" or something like this?
+* hide scrollbars: (window.content.document.body.style.overflow = "hidden" has problems with the mouse wheel)
+
+
diff --git a/chrome.manifest b/chrome.manifest new file mode 100644 index 00000000..8027292e --- /dev/null +++ b/chrome.manifest @@ -0,0 +1,5 @@ +# Thunderbird +content muttator content/ +locale muttator en-US locale/en-US/ +skin muttator classic/1.0 skin/ +overlay chrome://messenger/content/messenger.xul chrome://muttator/content/muttator.xul diff --git a/install.rdf b/install.rdf new file mode 100644 index 00000000..7eb84b35 --- /dev/null +++ b/install.rdf @@ -0,0 +1,29 @@ + + + + + + muttator@mozdev.org + Muttator + ###VERSION### + Make Thunderbird behave like Vim + Martin Stubenschrott + http://muttator.mozdev.org + chrome://muttator/skin/icon.png + + + + content/muttator/ + + + + + + {3550f703-e582-4d05-9a08-453d09bdfdc6} + 2.0 + 3.0.0.* + + + + +