Commit Graph

465 Commits

Author SHA1 Message Date
Florian Bruhin
b7de287e7b Move CommandError to api.cmdutils 2018-11-29 14:18:11 +01:00
Florian Bruhin
19628d0ae9 Move cmdutils.cmd_dict to objects.commands 2018-11-29 14:18:11 +01:00
Ryan Roden-Corrent
bf10f483e1
Fix sql comment to match updated code. 2018-11-13 20:44:57 -05:00
Ryan Roden-Corrent
2e562a926b
Don't complete url and title from same search word.
Resolves #4411:

> When opening a webpage, the suggested results will include those whose
> URL ends with the beginning of the string you've typed and whose title
> begins with the rest of the string.

By joining the url and title with a space, we ensure that the last word
of the url and the first word of the title are treated as separate
words.
2018-11-06 08:05:17 -05:00
Florian Bruhin
cde94e7356 Merge remote-tracking branch 'origin/pr/4332' 2018-10-16 11:38:28 +02:00
Jay Kamat
87dffa5afc
Update docs and fix style 2018-10-12 21:02:52 -07:00
Jay Kamat
2403a0fd73
Cache hot config accesses in completion 2018-10-12 18:23:36 -07:00
Florian Bruhin
49850b61ed Don't show no_autoconfig settings for :config-add-(list|dict) 2018-10-11 14:07:57 +02:00
Florian Bruhin
6168622de3 Update docs 2018-10-07 17:12:01 +02:00
Florian Bruhin
7cea4e3262 Merge remote-tracking branch 'origin/pr/4283' 2018-10-07 17:00:12 +02:00
Florian Bruhin
587b11f60d Make completion highlighting case-insensitive again
Fixes #4297
2018-10-06 09:57:01 +02:00
Florian Bruhin
4b13609553 Fix lint 2018-10-05 18:50:14 +02:00
Florian Bruhin
81e5173c9c Fix getting searchengines in URL model 2018-10-05 17:51:04 +02:00
Florian Bruhin
42ef645cf1 Merge remote-tracking branch 'origin/pr/4004' 2018-10-05 17:46:49 +02:00
Milo Gertjejansen
7f0ae252cd New config: More powerful :config- commands: add #4283
Made requested changes:

- Separated list add and dict add commands.
- Separated list and dict completion models.
- Created tests for each command.
- Simplified the configmodel options by breaking them into a separate
function to do work that is similar.
- General simplification of both add commands.

Continues #2794
2018-10-04 18:42:33 -05:00
Florian Bruhin
923b726e38 Merge remote-tracking branch 'origin/pr/4220' 2018-10-04 19:28:01 +02:00
Florian Bruhin
d04b435ed2 Add coverage comment 2018-10-03 16:23:59 +02:00
Florian Bruhin
9ca6da485c Handle None values in lessThan 2018-10-03 15:15:25 +02:00
Milo Gertjejansen
876a2bdaa1 New config: More powerful :config- commands: add
Adds the config-add command.

Modifies #2794
2018-10-01 22:22:39 -05:00
Ryan Roden-Corrent
0fed563a02
Use QSyntaxHighlighter for completion.
This is a more "Qt" way of highlighting syntax, and works around the
problems of #4199 without resorting to complicated html escaping.

The tests are more straightforward with less mocking, but do involve
testing a private class.
2018-09-22 12:13:28 -04:00
Ryan Roden-Corrent
102c6b99dd
Don't highlight html escapes in completion.
Resolves #4199.

To avoid accidentally highlighting characters that were introduced by
html escaping the text before feeding it to setHtml, we can't just
escape the whole string before adding the highlighting. Instead, we need
to break the string up on the pattern, format and escape the individual
parts, then join them back together.

re.escape includes empty strings if there is a match at the start/end,
which ensures that matches always land on odd indices:

https://docs.python.org/3/library/re.html#re.split

> If there are capturing groups in the separator and it matches at the
> start of the string, the result will start with an empty string. The
> same holds for the end of the string
2018-09-15 14:06:28 -04:00
Ryan Roden-Corrent
4f99af5876
Don't escape quotes in completion text.
Resolves the example case in #4199, but not the larger problem. We don't
need to escape quotes as we don't put the string in an attribute value.
From the docs at
https://docs.python.org/3/library/html.html#html.escape:

> If the optional flag quote is true, the characters (") and (') are also
> translated; this helps for inclusion in an HTML attribute value
> delimited by quotes, as in <a href="...">.

Escaping quotes means we end up with a literal &#x27; in the completion
view wherever there is a quote in the source text.

However, problem in #4199, where unexpected parts of the text are
highlighted, can also happen with '<', '>', and '&', which still must be
escaped.
2018-09-15 13:39:49 -04:00
Philip Scheel
8d04f8cdc8 Fixed pylint complaints 2018-09-04 00:59:49 +02:00
Philip Scheel
cf13c31142 Resolved conflicts for merge, regenerated asciidoc, removed whitespace
Removed whitespace
2018-09-04 00:10:07 +02:00
Philip Scheel
35c2f95a58 Merged upstream, made requested modifications to the search engine code and added tests 2018-09-03 23:28:43 +02:00
Florian Bruhin
dbdeb6a9c7 Rename history.exclude to completion.web_history.exclude
If the blacklist is only valid for the completion, the setting should also be
under completion.

This also un-renames history.gap_interval and renames
completion.web_history_max_items.
2018-09-02 14:42:47 +02:00
Florian Bruhin
0e284944e7 Use composition instead of inheritance for sql.Query
This means we're more loosely coupled to Qt's QSqlQuery, and also can move some
logic for handling batch queries from the table to there.
2018-09-01 18:25:58 +02:00
Jimmy
b192164f2e Don't alphabetically sort tab completion.
`ListCategory` sorts its completion by default, we are already building
the categories in the right order so don't need that.

The test tests the case of where you have 11 tabs and if the model was
sorted the tabs with index 10 and 11 would be sorted before the one with
index 2.

The `random.sample` bit for the tab url and title is to also make sure
the model isn't being sorted on those columns, whithout haveng to write
and all ten lines.
2018-08-19 16:42:36 +12:00
Florian Bruhin
ad19833e34 Revert "Add workaround for PyQt 5.11 headerDataChanged bug"
PyQt 5.11.1 has already been released, with the bug fixed.

This reverts commit 291763a55643342a6f977ce2a12dcc6f4badbe8a.
2018-07-02 22:32:59 +02:00
Florian Bruhin
eca08f064b Add workaround for PyQt 5.11 headerDataChanged bug
https://www.riverbankcomputing.com/pipermail/pyqt/2018-June/040445.html
2018-07-02 22:32:59 +02:00
Philip
0a9806daf3 Fixed crash which could occur if user adds nonexistent category to url.open_categories_shown 2018-06-17 10:42:45 +02:00
Philip
a2b1e041d6 Implemented use of the order of url.open_categories_shown in the :open dialogue.
Reworded the description of this option to match.
2018-06-17 10:29:57 +02:00
Philip
a62aeb4abe Added support for searchengines listing in :open dialogue. Added settings for selecting what categories are shown in the :open dialogue. 2018-06-17 05:33:53 +02:00
Florian Bruhin
89a1c43b4c Merge remote-tracking branch 'origin/pr/3790' 2018-05-08 11:43:30 +02:00
Jay Kamat
3b2c0823af
Fix win_id 0 always being included in :tab-take completion 2018-04-02 20:34:34 -04:00
Ryan Roden-Corrent
707fc1176d
Regen completion if args change.
Allow completion functions to react dynamically to args as the user
inputs them. This allows config-cycle to filter out values that were
already provided.

Args provided after the maxsplit do not cause the completion to regen.
For example, successive words typed after `:open` just set the filter
pattern and do not spuriously regenerate the completion model.
2018-03-31 11:45:50 -04:00
Florian Bruhin
c590648077 Merge remote-tracking branch 'origin/pr/3613' 2018-03-13 08:39:36 +01:00
Florian Bruhin
34815f5cf8 Make bindings.default only settable in autoconfig.yml
Fixes #3131
2018-03-07 18:30:44 +01:00
Florian Bruhin
155a1901c0 Merge branch 'keys' 2018-03-04 22:50:41 +01:00
Florian Bruhin
880da2d143 Add missing default=True for configmodel.bind 2018-03-04 20:20:30 +01:00
Florian Bruhin
2ed480b40a Refactor configmodel.bind 2018-03-04 20:20:30 +01:00
Florian Bruhin
fb7fa0cb49 Merge remote-tracking branch 'origin/pr/3652' 2018-03-02 06:31:00 +01:00
Ryan Roden-Corrent
d5e30fd728 Don't crash first completion update with min_chars.
When min_chars is nonzero, if the first command that opens the
completion has < min_chars on the word under the cursor, it triggers a
check for a condition where last_cursor_pos is None.

By setting last_cursor_pos=-1 we ensure that the completer always
updates the first time it is opened, and that there is never a check
against None.

This adds a test for the min_chars feature.

Resolves #3635.
2018-03-01 22:07:53 -05:00
Ryan Roden-Corrent
2965f954ba Resolve empty completion.timestamp_format crash.
Resolves #3628.
2018-03-01 07:54:20 -05:00
Florian Bruhin
60f0175a36 Fix getting customized options
This was broken with per-domain settings
Fixes #3649
2018-02-27 15:39:57 +01:00
Florian Bruhin
7a27469ecd Handle unknown keys in :bind completion 2018-02-27 13:02:32 +01:00
Florian Bruhin
321d5c5d20 Merge branch 'master' into keys 2018-02-25 21:25:12 +01:00
bttner
e169e2165d Refactor TabbedBrowser from inheritance to composition 2018-02-19 14:29:05 +01:00
Florian Bruhin
6f028e9ad0 Update copyright years 2018-02-05 12:19:50 +01:00
Ryan Roden-Corrent
1e9a70855d Show '&' properly in completion widget.
When highlighting the matched part of the text, we need to html-escape
the pattern used to find the matching text so it will replace terms that
have been escaped in the text, like &amp;.

Resolves #3508.
2018-01-21 07:46:53 -05:00