]> git.gir.st - VimFx.git/log
VimFx.git
8 years agoFix VimFx being broken in new windows
Simon Lydell [Sat, 17 Oct 2015 13:35:36 +0000 (15:35 +0200)]
Fix VimFx being broken in new windows

Apparently, the VimFx button only needs to be added once, not once per window.
Trying to add it more than once caused an exception that prevented the rest of
VimFx from being set up.

8 years agoFix lint error
Simon Lydell [Sat, 17 Oct 2015 13:13:16 +0000 (15:13 +0200)]
Fix lint error

8 years agoFix uncaught error on Firefox startup
Simon Lydell [Sat, 17 Oct 2015 12:24:33 +0000 (14:24 +0200)]
Fix uncaught error on Firefox startup

8 years agoFix uncaught exception on focus/blur
Simon Lydell [Sat, 17 Oct 2015 11:51:22 +0000 (13:51 +0200)]
Fix uncaught exception on focus/blur

`window` does not have `.ownerDocument`

8 years agoAdd github usernames to PEOPLE.md
Simon Lydell [Sat, 17 Oct 2015 11:32:37 +0000 (13:32 +0200)]
Add github usernames to PEOPLE.md

Makes it easier to ping contributors in issues.

8 years agoMerge pull request #542 from akhodakivskiy/improved-autofocus
Simon Lydell [Sat, 17 Oct 2015 11:02:28 +0000 (13:02 +0200)]
Merge pull request #542 from akhodakivskiy/improved-autofocus

Improved autofocus

8 years agoPrevent autofocus after re-selecting a tab
Simon Lydell [Sun, 11 Oct 2015 18:45:05 +0000 (20:45 +0200)]
Prevent autofocus after re-selecting a tab

See #541.

8 years agoRe-work autofocus prevention
Simon Lydell [Sun, 11 Oct 2015 18:10:03 +0000 (20:10 +0200)]
Re-work autofocus prevention

Blur any and all focus events that occur before the user has interacted with the
page. That’s it. No more, no less.

The old way was too aggressive, and interfered too much.

The new way is very similar to how Vimium and cVim does it.

See #497.

8 years agoSet prevent_autofocus to false by default
Simon Lydell [Sun, 11 Oct 2015 17:19:25 +0000 (19:19 +0200)]
Set prevent_autofocus to false by default

"VimFx will be nice to your browser and to your habits. Promise."

Turning it on by default have proven to be too much of a change. When people
become annoyed by autofocus they can enable it.

As far is I can tell, this is also how Vimium and Vimperator behaves.

8 years agoImprove keyboard shortcut overriding behavior
Simon Lydell [Sun, 11 Oct 2015 16:41:08 +0000 (18:41 +0200)]
Improve keyboard shortcut overriding behavior

- When the feature was initially implemented, it was modeled after putting a
  series of `map` commands after each other in .vimrc, which is written in a
  procedural programming language. Then it makes sense that latter `map` calls
  override earlier ones. That's why VimFx used to let commands further down the
  list in VimFx's settings page in the Add-ons Manager override earlier
  commands. The more I used it, though, that didn't feel entirely natural. After
  a while I realized that in such an interface it makes sense having _earlier_
  commands win. With this commit, latter commands _don't_ override earlier ones
  anymore, and are ignored, showing an error message.

- The above point also means that editing a shortcut can never result in error
  messages appearing _above_ that command. If you add `g` to a shortcut near the
  end of the list, there used to appear an error message for every shortcut
  starting with `g` above it (which is quite a few), causing dis-orientation
  when the focused text box was moved down because of all those error messages.

- With this commit, the order of the modes, categories and commands is taken
  into account. That used to work only when the user hadn't customized the
  orders or hadn't added new modes, categories and/or commands.

- A small fix for `<force>` is also included. If a shortcut contains invalid
  usage of `<force>` it is now properly ignored (still showing an error
  message).

8 years agoRe-organize utils.coffee
Simon Lydell [Sun, 11 Oct 2015 15:50:51 +0000 (17:50 +0200)]
Re-organize utils.coffee

8 years agoUpdate dependencies
Simon Lydell [Sun, 11 Oct 2015 15:12:15 +0000 (17:12 +0200)]
Update dependencies

8 years agoClean up gulpfile.coffee slightly
Simon Lydell [Sun, 11 Oct 2015 15:07:39 +0000 (17:07 +0200)]
Clean up gulpfile.coffee slightly

8 years agoMerge pull request #512 from akhodakivskiy/multi-process
Simon Lydell [Sun, 11 Oct 2015 14:58:36 +0000 (16:58 +0200)]
Merge pull request #512 from akhodakivskiy/multi-process

Support multi-process Firefox

8 years agoUpdate documentation
Simon Lydell [Sun, 11 Oct 2015 09:50:44 +0000 (11:50 +0200)]
Update documentation

8 years agoSupport multi-process Firefox
Simon Lydell [Sun, 28 Jun 2015 22:27:28 +0000 (00:27 +0200)]
Support multi-process Firefox

See #378.

8 years agoAdd links to the documentation and the wiki in the readme
Simon Lydell [Sun, 11 Oct 2015 10:42:06 +0000 (12:42 +0200)]
Add links to the documentation and the wiki in the readme

8 years agoAdd link to the wiki in the documentation
Simon Lydell [Sun, 11 Oct 2015 10:38:16 +0000 (12:38 +0200)]
Add link to the wiki in the documentation

8 years agoLay the foundation for using multi-process Firefox
Simon Lydell [Sun, 28 Jun 2015 09:57:56 +0000 (11:57 +0200)]
Lay the foundation for using multi-process Firefox

This also fixes leaking of variables in bootstrap.coffee (which masked a missing
`require` call in parse-prefs.coffee). Apparently all modules share its scope,
which I had never realized before.

This also exposes `Cc`, `Ci` and `Cu` globally to all modules (which actually
was done before, too, but only accidentally.)

8 years agoAdd notifications for the n and N commands
Simon Lydell [Mon, 21 Sep 2015 14:47:43 +0000 (16:47 +0200)]
Add notifications for the n and N commands

See #398.

8 years agoAdd simple notifications system
Simon Lydell [Mon, 21 Sep 2015 14:47:08 +0000 (16:47 +0200)]
Add simple notifications system

8 years agoRemove link to io.js now that it has merged with Node.js
Simon Lydell [Sun, 20 Sep 2015 15:25:44 +0000 (17:25 +0200)]
Remove link to io.js now that it has merged with Node.js

8 years agoFix blurring of some browser UI elements
Simon Lydell [Wed, 9 Sep 2015 16:17:25 +0000 (18:17 +0200)]
Fix blurring of some browser UI elements

8 years agoUse destructuring defaults from CoffeeScript 1.10.0
Simon Lydell [Thu, 3 Sep 2015 20:54:50 +0000 (22:54 +0200)]
Use destructuring defaults from CoffeeScript 1.10.0

8 years agoUpdate api.md regarding getting the public API
Simon Lydell [Mon, 31 Aug 2015 06:22:26 +0000 (08:22 +0200)]
Update api.md regarding getting the public API

8 years agoFix typo in config file boilerplate
Simon Lydell [Sun, 30 Aug 2015 08:52:02 +0000 (10:52 +0200)]
Fix typo in config file boilerplate

8 years agoStop URI encoding the API URL pref
Simon Lydell [Sat, 29 Aug 2015 21:08:58 +0000 (23:08 +0200)]
Stop URI encoding the API URL pref

The reason we used to was to make it easier to consume the public API (because
it is easier to read an ASCII string pref than a unicode one). However, some
systems return spaces already URI encoded, which breaks when encoding it once
more. In the end, this tiny simplification of the API consumption is not worth
it. Better to simply store the API URL as-is in a complex string pref.

Fixes #516.

8 years agoUpdate dependencies
Simon Lydell [Sat, 29 Aug 2015 20:56:49 +0000 (22:56 +0200)]
Update dependencies

8 years agoUpdate coffeelint
Simon Lydell [Sat, 29 Aug 2015 20:55:38 +0000 (22:55 +0200)]
Update coffeelint

8 years agoBump version to 0.5.18
Simon Lydell [Sat, 29 Aug 2015 20:36:34 +0000 (22:36 +0200)]
Bump version to 0.5.18

0.5.17.1-signed has been automatically published on addons.mozilla.org, causing
the automatic updates to replace the installed development version.

8 years agoDon't include the en-US description twice
Simon Lydell [Sat, 29 Aug 2015 20:35:37 +0000 (22:35 +0200)]
Don't include the en-US description twice

That has started to crash Firefox for me. Strange.

8 years agoAdd zh-TW translator to PEOPLE.md
Simon Lydell [Sun, 9 Aug 2015 14:58:16 +0000 (16:58 +0200)]
Add zh-TW translator to PEOPLE.md

8 years agoMerge pull request #522 from mozillazg/zh-CN
Simon Lydell [Sun, 2 Aug 2015 06:02:26 +0000 (08:02 +0200)]
Merge pull request #522 from mozillazg/zh-CN

Updated zh-CN localization

8 years agoUpdated zh-CN localization
mozillazg [Sun, 2 Aug 2015 03:42:06 +0000 (11:42 +0800)]
Updated zh-CN localization

8 years agoMerge pull request #521 from leVirve/zh-TW
Simon Lydell [Sat, 1 Aug 2015 06:09:24 +0000 (08:09 +0200)]
Merge pull request #521 from leVirve/zh-TW

update zh-TW strings

8 years agoupdate zh-TW strings
Salas [Fri, 31 Jul 2015 16:06:23 +0000 (16:06 +0000)]
update zh-TW strings

8 years agoRemove ability to select text in help dialog
Simon Lydell [Mon, 29 Jun 2015 19:25:39 +0000 (21:25 +0200)]
Remove ability to select text in help dialog

It was added so that you could select text and copy it, but unfortunately
nothing seems to happen when trying to copy. Then its better to leave the text
selection out entirely.

8 years agoMake `paste_and_go` work exactly like Firefox
Simon Lydell [Sun, 28 Jun 2015 08:33:46 +0000 (10:33 +0200)]
Make `paste_and_go` work exactly like Firefox

See #353.

8 years agoSimplify command `esc`
Simon Lydell [Sun, 28 Jun 2015 07:54:18 +0000 (09:54 +0200)]
Simplify command `esc`

8 years agoMake `stop_all` content independent
Simon Lydell [Sun, 28 Jun 2015 07:47:27 +0000 (09:47 +0200)]
Make `stop_all` content independent

8 years agoMake `stop` content independent
Simon Lydell [Sun, 28 Jun 2015 07:47:06 +0000 (09:47 +0200)]
Make `stop` content independent

8 years agoMake `reload_all_force` content independent
Simon Lydell [Sun, 28 Jun 2015 07:46:15 +0000 (09:46 +0200)]
Make `reload_all_force` content independent

8 years agoMake `history_back` and `history_forward` content independent
Simon Lydell [Sun, 28 Jun 2015 07:45:40 +0000 (09:45 +0200)]
Make `history_back` and `history_forward` content independent

8 years agoMake `copy_current_url` content independent
Simon Lydell [Sun, 28 Jun 2015 07:44:50 +0000 (09:44 +0200)]
Make `copy_current_url` content independent

8 years agoUpdate dev-dependencies
Simon Lydell [Sat, 27 Jun 2015 20:23:57 +0000 (22:23 +0200)]
Update dev-dependencies

8 years agoFix error on click
Simon Lydell [Sat, 27 Jun 2015 19:37:18 +0000 (21:37 +0200)]
Fix error on click

8 years agoClear held modifiers when pressing a non-modifier
Simon Lydell [Sat, 27 Jun 2015 19:29:08 +0000 (21:29 +0200)]
Clear held modifiers when pressing a non-modifier

Otherwise the markers would start out transparent when using the `F` command.

8 years agoMake `<c-q>` in the options able to insert `<escape>`
Simon Lydell [Sat, 27 Jun 2015 19:26:17 +0000 (21:26 +0200)]
Make `<c-q>` in the options able to insert `<escape>`

8 years agoReplace `vimfx.categories` with `vimfx.get('categories')`
Simon Lydell [Sat, 27 Jun 2015 19:15:33 +0000 (21:15 +0200)]
Replace `vimfx.categories` with `vimfx.get('categories')`

8 years agoChange `vf` into `zf` to free up `v`
Simon Lydell [Sat, 27 Jun 2015 19:02:22 +0000 (21:02 +0200)]
Change `vf` into `zf` to free up `v`

Using the default shortcuts, `a`, `g`, `y` and `v` are prefix keys. `v` is only
used in `vf`. While `v` in `vf` kind of makes sense if you come from vim, it
would make a lot more sense to use `v` for a possible future text selection mode
(#480). `zf` is better since `z` is a prefix key in vim as well. The `z`
"namespace" will be useful as we add more commands.

8 years agoLet ctrl and alt in Hints mode control where to open links
Simon Lydell [Sat, 27 Jun 2015 18:49:16 +0000 (20:49 +0200)]
Let ctrl and alt in Hints mode control where to open links

See #421.

8 years agoAdd the `<s-f1>` Ignore mode "unquote" command
Simon Lydell [Sat, 27 Jun 2015 15:24:12 +0000 (17:24 +0200)]
Add the `<s-f1>` Ignore mode "unquote" command

8 years agoMake hint markers transparent when shift is held
Simon Lydell [Sat, 27 Jun 2015 14:02:09 +0000 (16:02 +0200)]
Make hint markers transparent when shift is held

The `vimfx-held-modifiers` attribute is now added on `#main-window`. It is a
space-separated list of the currently held modifiers (alt, ctrl, meta and
shift). This can be used in CSS: `#main-window[vimfx-held-modifiers~="alt"]`.

See #484.

8 years agoFix failing API tests
Simon Lydell [Sat, 27 Jun 2015 13:10:16 +0000 (15:10 +0200)]
Fix failing API tests

8 years agoUpdate sv-SE locale
Simon Lydell [Fri, 26 Jun 2015 23:33:50 +0000 (01:33 +0200)]
Update sv-SE locale

8 years agoShow translation level after `gulp sync-locales`
Simon Lydell [Fri, 26 Jun 2015 23:30:54 +0000 (01:30 +0200)]
Show translation level after `gulp sync-locales`

8 years agoUse consistent casing for mode names
Simon Lydell [Fri, 26 Jun 2015 22:43:34 +0000 (00:43 +0200)]
Use consistent casing for mode names

8 years agoRename Insert mode into Ignore mode
Simon Lydell [Fri, 26 Jun 2015 22:32:52 +0000 (00:32 +0200)]
Rename Insert mode into Ignore mode

... because that's what it is. Insert mode was a bit confusing since you could
easily think that Insert mode was entered any time you focused a text input. See
also #506.

8 years agoDocument `match.toplevel`
Simon Lydell [Fri, 26 Jun 2015 22:11:32 +0000 (00:11 +0200)]
Document `match.toplevel`

8 years agoMove Text Input mode into Normal mode
Simon Lydell [Fri, 26 Jun 2015 22:07:06 +0000 (00:07 +0200)]
Move Text Input mode into Normal mode

This is simpler and easier to understand. It also make all Normal mode `<force>`
commands work while in "text input mode", which is what you expect.

8 years agoMake autofocus prevention a bit more robust
Simon Lydell [Fri, 26 Jun 2015 20:39:54 +0000 (22:39 +0200)]
Make autofocus prevention a bit more robust

... by only blurring programmatically invoked focus events.

8 years agoImprove line-wrapping of the help dialog title
Simon Lydell [Fri, 26 Jun 2015 19:50:48 +0000 (21:50 +0200)]
Improve line-wrapping of the help dialog title

8 years agoImprove help dialog logo spacing between V and imFx
Simon Lydell [Fri, 26 Jun 2015 19:43:41 +0000 (21:43 +0200)]
Improve help dialog logo spacing between V and imFx

Using the `ch` unit seems to work better across different fonts than the `em`
unit.

8 years agoAllow any mode to enter the "autoInsertMode" of Normal mode
Simon Lydell [Mon, 22 Jun 2015 21:50:08 +0000 (23:50 +0200)]
Allow any mode to enter the "autoInsertMode" of Normal mode

8 years agoAdd prevent_autofocus_modes pref
Simon Lydell [Mon, 22 Jun 2015 21:08:59 +0000 (23:08 +0200)]
Add prevent_autofocus_modes pref

It allows to configure which modes prevent_autofocus should be used in. It
defaults to normal mode only.

8 years agoStyle the "VimFx" part in the help dialog more nicely
Simon Lydell [Mon, 22 Jun 2015 20:41:35 +0000 (22:41 +0200)]
Style the "VimFx" part in the help dialog more nicely

8 years agoAdd pt-BR translator to PEOPLE.md
Simon Lydell [Mon, 22 Jun 2015 19:50:20 +0000 (21:50 +0200)]
Add pt-BR translator to PEOPLE.md

8 years agoMerge pull request #509 from atilacamurca/i18n-pt-BR
Simon Lydell [Mon, 22 Jun 2015 19:47:44 +0000 (21:47 +0200)]
Merge pull request #509 from atilacamurca/i18n-pt-BR

Translation to pt-BR.

8 years agoImprove the font size in the help dialog
Simon Lydell [Mon, 22 Jun 2015 19:36:04 +0000 (21:36 +0200)]
Improve the font size in the help dialog

When testing on a different computer I noticed the help dialog text being way
too large. I tried adjusting the CSS, but there was no sweet spot where the font
size was pleasant on both my regular computer and the other one I tried on.

This commits changes the default font size is the same as for menus, which is
usually quite small. It is then increased programmatically until just before a
scrollbar is caused.

8 years agoAdd pt-BR translation.
Átila Camurça [Fri, 19 Jun 2015 19:20:54 +0000 (16:20 -0300)]
Add pt-BR translation.

8 years agoMake `gulp help.html` output a full-height page
Simon Lydell [Mon, 22 Jun 2015 17:42:20 +0000 (19:42 +0200)]
Make `gulp help.html` output a full-height page

8 years agoImprove markers and help dialog fonts
Simon Lydell [Mon, 22 Jun 2015 17:40:53 +0000 (19:40 +0200)]
Improve markers and help dialog fonts

8 years agoFix bad CSS path in `gulp help.html`
Simon Lydell [Mon, 22 Jun 2015 16:54:13 +0000 (18:54 +0200)]
Fix bad CSS path in `gulp help.html`

8 years agoFix lint error
Simon Lydell [Mon, 22 Jun 2015 06:46:37 +0000 (08:46 +0200)]
Fix lint error

8 years agoUpdate sv-SE locale
Simon Lydell [Sun, 21 Jun 2015 17:05:45 +0000 (19:05 +0200)]
Update sv-SE locale

8 years agoAdd Questions & Answers to docs
Simon Lydell [Sun, 21 Jun 2015 11:00:25 +0000 (13:00 +0200)]
Add Questions & Answers to docs

8 years agoDocument ex commands
Simon Lydell [Sun, 21 Jun 2015 10:43:09 +0000 (12:43 +0200)]
Document ex commands

8 years agoDocument handy standard Firefox features.
Simon Lydell [Sun, 21 Jun 2015 10:36:45 +0000 (12:36 +0200)]
Document handy standard Firefox features.

8 years agoMove the CONTRIBUTING.md link to the feedback section
Simon Lydell [Sun, 21 Jun 2015 10:12:05 +0000 (12:12 +0200)]
Move the CONTRIBUTING.md link to the feedback section

8 years agoConsistently mark up object props in the API docs
Simon Lydell [Sun, 21 Jun 2015 10:04:12 +0000 (12:04 +0200)]
Consistently mark up object props in the API docs

8 years agoAdd a TOC to the documentation index
Simon Lydell [Sun, 21 Jun 2015 09:59:44 +0000 (11:59 +0200)]
Add a TOC to the documentation index

8 years agoSlightly reformat LICENSE
Simon Lydell [Sun, 21 Jun 2015 09:54:52 +0000 (11:54 +0200)]
Slightly reformat LICENSE

8 years agoAdd a link to the documentation in the Add-ons Manager
Simon Lydell [Sun, 21 Jun 2015 09:50:53 +0000 (11:50 +0200)]
Add a link to the documentation in the Add-ons Manager

Note that the link is currently a 404, because it points to the master branch,
which hasn't got any documentation yet.

8 years agoInclude LICENSE in the build
Simon Lydell [Sun, 21 Jun 2015 09:25:52 +0000 (11:25 +0200)]
Include LICENSE in the build

8 years agoDocument options
Simon Lydell [Sun, 21 Jun 2015 03:25:48 +0000 (05:25 +0200)]
Document options

8 years agoDocument public API
Simon Lydell [Sun, 21 Jun 2015 01:18:18 +0000 (03:18 +0200)]
Document public API

8 years agoDocument options
Simon Lydell [Sat, 20 Jun 2015 21:57:45 +0000 (23:57 +0200)]
Document options

8 years agoDocument how to style VimFx elements
Simon Lydell [Sat, 20 Jun 2015 20:22:00 +0000 (22:22 +0200)]
Document how to style VimFx elements

See #233, #424, #465.

8 years agoClarify licenses
Simon Lydell [Sat, 20 Jun 2015 19:31:40 +0000 (21:31 +0200)]
Clarify licenses

8 years agoInit documentation
Simon Lydell [Sat, 20 Jun 2015 19:31:14 +0000 (21:31 +0200)]
Init documentation

8 years agoName all translation IDs consistently
Simon Lydell [Sat, 20 Jun 2015 17:25:54 +0000 (19:25 +0200)]
Name all translation IDs consistently

8 years agoMajor refactor: Rework all UI and related improvements
Simon Lydell [Thu, 4 Jun 2015 20:22:17 +0000 (22:22 +0200)]
Major refactor: Rework all UI and related improvements

This commit is unfortunately very large. I do not like that, but most of the
things in this commit are very closely related, which made it easier to do it
this way.

Help dialog
===========

- It is no longer used to customize shortcuts. That's done in VimFx's settings
  in the Add-ons Manager instead.

- Moved "enjoying/found bug" from the Help dialog and into the readme. The
  readme will be used as the extension description on AMO. That description is
  also shown in the Add-ons Manager, so users will see it when customizing
  VimFx.

- It is no longer injected inside web pages, but in the Firefox chrome. This
  allows to get rid of the nasty resets in the CSS and makes it impossible for
  page elements to cover it. #477

- It now fills the entire page and adjusts based on your screen size. It is
  designed to work with lots of shortcut customization and the additon of new
  modes by other extensions.

- Added `gulp help.html` to make it easier to style the help dialog.

Settings UI
===========

- Shortcuts customization is now done in VimFx's settings page in the Add-ons
  Manager. This keeps all settings together and makes it obvious that you can
  customize the shortcuts. The new UI is also more accessible.

- The new UI also lets you:

  - Insert the default value of a pref. This is useful for the "prev/next
    patterns" by letting you merge in new defaults into your own customizations.
  - Reset to the default value. #262
  - Insert the next keypress as text. The default shortcut for this is `<c-q>`.
    (q as in quote. vim also has this shortcut, which works like its `<c-v>`.)
    For example, if the user is unsure how to express `<c-enter>` (s)he could
    simply press `<c-q><c-enter>` and `<c-enter>` would be inserted as text.

Button
======

- Now has high-resolution images. #383

- Is now implemented using CustomizableUI. #303 #349

- Greatly simplified:

  - If in normal mode, clicking it opens the help dialog.
  - Otherwise it exits the current mode returning to normal mode. This is
    useful if the user accidentally removes the keyboard shortcuts to exit
    modes, or don't know how to exit insert mode, for example.

  The above means that the "disable" feature has been removed. The UI to
  "blacklist" sites has been removed as well. See the "Removed/Changed/Addesd
  features" section for more info.

- It is now easily stylable with user CSS.

- State is no longer lost when moving a tab into a new window. #57

Removed/Changed/Added features
==============================

- The "disable" feature has been completely removed. It is rather useless
  compared to insert mode, and sometimes trips new users up. #327

- The "blacklist" feature has been changed into an "auto-insert-mode" feature.
  It is basically the same, except that you can actually choose to leave the
  blacklisted state for a while if you feel like it. The default shortcut to
  leave insert (`<s-escape>`) is not likely to conflict with page shortcuts.
  It is possible to disable the exit shortcut on certain pages using the public
  API.

- The "blacklist" feature has been de-emphasized. The button no longer offers
  any UI to blacklist and un-blacklist sites (see above). VimFx is supposed to
  be keyboard driven, so having a mouse-oriented UI makes no sense. Blacklisting
  is also a bit of an anti-feature, so we shouldn't maintain lots of UI code for
  it. It's simple enough to just open the Add-ons Manager and add
  `*currentdomain.com*` to the blacklist setting.

- The "blacklist" no longer supports the `!` wild card (that matched a single
  character) to keep things simple. The less to explain to the user the better.
  If users need more advanced wildcards than the simple `*` they can use the
  public API (see the Public API section) which allows to use all of
  JavaScript's power.

- The "blacklist" no longer supports the `##key1#key2` syntax to disable certain
  keys on certain sites. Instead a superior public API function is offered. This
  feature only existed in the develop branch for a while and was never released.
  Any users of it must manually move to the public API.

- The "prev/next patterns" no longer support the `*` and `!` wildcards. Instead
  they are treated as regexes (which allows to use `.*` and `.` instead). This
  is way simpler, and more powerful. Non-technical users can just keep adding
  simple patterns such as "next" translated into their language without being
  troubled by regex syntax, while advanced users can use the full power of regex
  if needed. The public API may of course also be used for unlimited power.

- The "blacklist" and "prev/next patterns" are no longer comma/space-separated.
  To keep things simple their just space-separated. Space is not a valid URL
  character, but a comma is, so this allows to match a URL which ends with a
  comma (but that is probably too rare to ever be useful). More importantly it
  makes the settings easier to read. Space could be part of a "prev/next
  pattern", though. Thanks to the above point one may use `\s` instead, which is
  also more robust. The prefs are automatically migrated to the new format.

- The "translations" pref in about:config is no longer used. Instead you have to
  use the public API. This is because it is an advanced feature and next to
  impossible to manage as a single line of JSON. This also keeps the code
  simpler. The pref only existed in the develop branch for a while and was never
  released. Any users of it must manually move to the public API.

- Most hard-coded constants have been moved into prefs, which can only be
  changed via about:config or the public API. For advanced users only. For
  example:

  - "prev/next patterns" attributes. #489
  - "target blank prevention". #452

- Pressing `aj` used to trigger the `j` shortcut, but doesn't any longer. Since
  there is no `aj` shortcut (by default) nothing happens. The reason that
  "feature" used to exist was because there used to be no concept of a timeout.
  For example if you pressed `a`, went from the computer for a while, came back
  and pressed `/` the `a/` shortcut would be invoked, which is a bit surprising.
  Now there is a timeout instead, which defaults to 2 seconds. So if you type
  `aj` with less than 2 seconds between the key presses, nothing will happen.
  Otherwise the `a` partial match will be cancelled and the `j` command will be
  invoked. This is more like vim works.

- The escape command used to be special-cased so that you could trigger it
  inside text boxes. Now this is done through the concept of "force keys"
  instead. If you add `<force>` at the beginning of a shortcut it will be
  available in text boxes as well. #194

Refactoring
===========

- All modes are know implemented the same way. Normal mode used to be
  special-cased and all other modes were rather limited.

- Commands and modes are now a lot more DRY.

- defaults.coffee now takes care of command categorization and ordering. It is
  essentially the text version of the help dialog. Changing order and/or
  categories there automatically affects the help dialog (and the settings UI)
  as well.

- The command matching algorithm is now much more simple and flexible.

- Because the help dialog was moved into browser chrome, there is no longer any
  need to insert the style sheet as an `AGENT_SHEET`, which made it difficult to
  override it with user CSS, for example to change the font size or color of
  hint markers. #465 #424 #233 #220

Public API
==========

Added a public API. This will be used by advanced users and by other extensions
that wish to extend VimFx. It allows to:

- Keep all VimFx configuration in a text file (instead of configuring it via
  VimFx’s GUI and storing it in Firefox’s prefs system). #245
- Add your own custom commands. #508 #490 #235
- Add site-specific options.
- Disable specific keys on some sites. #255
- Do things when entering pages, such as automatically entering insert mode
  (this can be used instead of the "blacklist" feature) or hints mode. #408
- Set some advanced settings that cannot be set any other way.
- Add new command categories.
- Add new modes.

8 years agoImprove error reporting in test runner
Simon Lydell [Sat, 20 Jun 2015 12:36:56 +0000 (14:36 +0200)]
Improve error reporting in test runner

8 years agoIntroduce a `VimFx` instance to hold global state
Simon Lydell [Sun, 24 May 2015 17:18:59 +0000 (19:18 +0200)]
Introduce a `VimFx` instance to hold global state

8 years agoImprove command order and categories
Simon Lydell [Sun, 24 May 2015 15:16:46 +0000 (17:16 +0200)]
Improve command order and categories

8 years agoRework custom shortcut prefs
Simon Lydell [Sun, 24 May 2015 14:07:33 +0000 (16:07 +0200)]
Rework custom shortcut prefs

- Defaults are now set for all prefs (including custom shortcuts and advanced
  options), not just the options that can be seen in the options UI.
- All command prefs are now named 'mode.<mode>.<command>'. So are the
  translation IDs for the commands. This helps to simplify the code.
- Migration from the 0.5.x format and the format used in the devlopment version
  up until this commit can now be done once, instead of at every startup and
  every shortcut change.
- All old custom shortcut prefs are migrated automatically, using a generalized
  migration facility that can be reused for other migrations in the future.
- Some command names were slightly renamed to improve consistency and to make
  the more descriptive. The latter is important since regular users are now
  expected to be able to read lib/defaults.coffee as documentation on all
  default shortcuts.

8 years agoSimplify compatible Firefox version management
Simon Lydell [Mon, 15 Jun 2015 19:29:26 +0000 (21:29 +0200)]
Simplify compatible Firefox version management

The only thing that matters is the minimum version, and it is only the major
number of it that matters.

Including a maximum version number is pretty pointless since most of the time
we've just set it to some version in the future without actually knowing if
VimFx works with that version or not. Firefox's release cycle is also so fast
that it is very hard to keep up with it. Finally, AMO automatically bumps the
maximum version if the addon passes their tests. So it is better to simply set
it to `*` and be done with it.

8 years agoFix error in install.rdf.tmpl
Simon Lydell [Mon, 15 Jun 2015 19:26:45 +0000 (21:26 +0200)]
Fix error in install.rdf.tmpl

9 years agoMerge pull request #498 from mozillazg/zh-CN
Simon Lydell [Wed, 3 Jun 2015 06:05:54 +0000 (08:05 +0200)]
Merge pull request #498 from mozillazg/zh-CN

Update zh-CN translation

9 years agoUpdate zh-CN translation
huangzg [Wed, 3 Jun 2015 02:14:06 +0000 (10:14 +0800)]
Update zh-CN translation

Imprint / Impressum