From 38f8e79bd110b18c62010d431845fad5a8069300 Mon Sep 17 00:00:00 2001 From: Martin Stubenschrott Date: Sat, 1 Mar 2008 20:44:56 +0000 Subject: [PATCH] first commit, hurray! :) --- AUTHORS | 7 +++ Donators | 8 +++ Makefile | 6 ++ Makefile.common | 155 ++++++++++++++++++++++++++++++++++++++++++++++++ NEWS | 6 ++ TODO | 54 +++++++++++++++++ chrome.manifest | 5 ++ install.rdf | 29 +++++++++ 8 files changed, 270 insertions(+) create mode 100644 AUTHORS create mode 100644 Donators create mode 100644 Makefile create mode 100644 Makefile.common create mode 100644 NEWS create mode 100644 TODO create mode 100644 chrome.manifest create mode 100644 install.rdf 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.* + + + + +