Manos Pitsidianakis
f8cef3290e
config_macros.rs: try rustfmt on generated module
2020-06-21 12:23:01 +03:00
Manos Pitsidianakis
0169025d50
build.rs: add proc-macro to generate Override structs for configuration
2020-06-20 23:58:53 +03:00
Manos Pitsidianakis
1db2c16f95
mbox: add support for multiple mbox mailboxes in config
...
Concerns #9
2020-06-20 14:49:02 +03:00
Manos Pitsidianakis
674073899d
mbox: Add different readers for mbox{o,rd,cl,cl2}
2020-06-20 13:14:40 +03:00
Manos Pitsidianakis
01d83d8088
email/parser: do not set has_colon newline
...
When parsing a field-name, and expecting a colon (:) if a newline is
first encountered do not set `has_colon` flag to true.
2020-06-20 13:14:40 +03:00
Manos Pitsidianakis
8bfdce6658
melib/error: do not discard old summary in set_summary
2020-06-20 13:14:40 +03:00
Manos Pitsidianakis
75f9256a50
email/parser: change Error type to include error location
...
Add ParsingError type that includes a string with the location and
possibly an explanation for the error.
2020-06-20 13:14:40 +03:00
Manos Pitsidianakis
02c881ac00
Add save-attachment option for entire message as eml
2020-06-15 01:07:50 +03:00
Manos Pitsidianakis
d7e4bd9379
conf: set default override value to None
2020-06-13 12:48:15 +03:00
Manos Pitsidianakis
cecd33eb5e
SVGScreenshotFilter: make svg smaller and fix grapheme cluster textLength inaccuracies
2020-06-13 01:15:24 +03:00
Manos Pitsidianakis
58ddfae9a7
execute.rs: fix missing space parsers
2020-06-12 01:46:21 +03:00
Manos Pitsidianakis
fe655e679c
Fix rustfmt suggestions
2020-06-12 01:42:06 +03:00
Manos Pitsidianakis
0618e62ab6
Add optional feature to save SVG screenshot
2020-06-12 01:37:57 +03:00
Manos Pitsidianakis
bc0189ffa1
Spawn workers on demand
2020-06-11 12:01:11 +03:00
Manos Pitsidianakis
40f66f3333
imap: modify connection timeouts
2020-06-11 12:00:07 +03:00
Manos Pitsidianakis
34d782f16f
imap: Remove panic from fetch_flags
2020-06-11 11:44:04 +03:00
Manos Pitsidianakis
c7fbc5cafb
imap: remove redundant passing of AccountHash
2020-06-11 11:43:18 +03:00
Manos Pitsidianakis
2d862e39f4
imap: off by one error in iteration
2020-06-11 11:42:02 +03:00
Manos Pitsidianakis
2d3f49d64d
imap: index by (MailboxHash, UID) instead of just UID
...
Mailboxes can share UIDs.
2020-06-11 11:41:08 +03:00
Manos Pitsidianakis
55948dd7c2
Use BTreeSet instead of HashSet in copy_area()
...
I kind of forgot about BTreeSets, and kept a separate HashSet and sorted
index of the set's keys.
2020-06-10 19:02:54 +03:00
Manos Pitsidianakis
e97cf98b3b
Add view
subcommand
...
Add subcommand to view standalone e-mail files in meli's pager without
instantiating any accounts.
2020-06-10 18:07:56 +03:00
Manos Pitsidianakis
7dc8a87a62
Prevent sub overflow in EnvelopeView
2020-06-10 18:07:56 +03:00
Manos Pitsidianakis
05c6c19889
src/conf.rs: Remove debug! prints
2020-06-09 17:20:30 +03:00
Manos Pitsidianakis
9f30cd6bbc
state.rs: send AccountStatusChange
2020-06-09 15:39:53 +03:00
Manos Pitsidianakis
1241b6073f
Clear tags before applying new ones in NewFlags
2020-06-09 15:39:01 +03:00
Manos Pitsidianakis
ca9d4fde58
Discard EnvelopeRename event if envelope is missing from Collection
2020-06-09 15:38:13 +03:00
Manos Pitsidianakis
f3d5edfe14
Add copy/move to other account operations
2020-06-08 22:11:43 +03:00
Manos Pitsidianakis
c07185a3aa
regexp: add priority field to regular expressions
2020-06-08 00:55:30 +03:00
Manos Pitsidianakis
465c78e903
Add Cell::keep_attrs() method
2020-06-08 00:55:29 +03:00
Manos Pitsidianakis
4bc8ff2ce9
Use structopt for command line parsing
2020-06-08 00:55:29 +03:00
Manos Pitsidianakis
a17f0b4fd4
listing: rework MailListingTrait
...
split redraw_list() to redraw_threads_list() and redraw_envelope_list()
2020-06-07 14:35:41 +03:00
Manos Pitsidianakis
9edef4ecd2
ui: add attachment_tree() func in MailView
...
Split ascii attachment tree generation into a function in MailView
2020-06-07 14:35:41 +03:00
Manos Pitsidianakis
5435a4615e
imap: don't try to connect in is_online()
...
Attempting to connect to the server when calling imap's is_online()
blocks the UI process, so don't.
2020-06-07 14:35:41 +03:00
Manos Pitsidianakis
b4dfc1f89d
imap: add experimental header caching with sqlite3
...
Add support for header caching. It is currently unstable and should not
be used. It can be turned on by specifying "X_header_caching" to true in
the IMAP account's configuration.
The header cache is saved in a sqlite3 database in your XDG_DATA_DIR,
for example:
/home/epilys/.local/share/meli/17328072387188469646_header_cache.db
Concerns #31 https://git.meli.delivery/meli/meli/issues/31
2020-06-07 14:35:20 +03:00
Manos Pitsidianakis
6458ccb860
meli: update nom dependency to 5.1.1
2020-06-06 23:22:26 +03:00
Manos Pitsidianakis
6ec249dd7f
melib: update nom dependency from 3.2.0 to 5.1.1
...
That was hecking exhausting
2020-06-06 23:19:07 +03:00
Manos Pitsidianakis
db4c401828
melib/error: add chain_err_summary() method
2020-06-06 12:27:02 +03:00
Manos Pitsidianakis
e4d4cd55d3
melib: skip mbox From
header if present
...
mbox messages might end up in the parser by mistake, for example by
being present in a Maildir store.
2020-06-06 12:24:39 +03:00
Manos Pitsidianakis
3e31c46a74
Add "regexp" feature, format text with regexps
...
`regexp` feature uses the pcre2 library to enable the user to define
regular expressions for matching text and applying text formatting to
the matches. An example from the theme configuration I used to test
this:
[terminal.themes.win95.text_format_regexps]
"listing.subject" = { "\\[[^\\]]*\\]" = { attrs = "Bold" } }
"listing.from" = { "\\<[^\\>]*\\>(?:(?:\\s*$)|(?=,))" = { attrs = "Italics" } }
[terminal.themes.win95.text_format_regexps."pager.envelope.body"]
"^>.*$" = { attrs = "Italics" }
"\\d+\\s?(?:(?:[KkMmTtGg]?[Bb])|(?:[KkMmTtGg][Bb]?)(?=\\s))" = { attrs = "Bold | Underline" }
2020-06-05 10:56:36 +03:00
Manos Pitsidianakis
ef0f269fbf
terminal: add FormatTag, text format tags
...
FormatTag describes a set of attributes, colors that exist in a
tag_table field of CellBuffer. The field of tag_associations contains
the hash of a tag and the {start,end} index of the cells that have this
attribute. A tag can thus be used many times.
An example of use is
let t = self.pager.insert_tag(FormatTag {
attrs: Attr::ITALICS,
..Default::default()
});
debug!("FormatTag hash = {}", t);
let (width, height) = self.pager.size();
for i in 0..height {
if self.pager.content[(0, i)].ch() == '>' {
self.pager.set_tag(t, (0, i), (width.saturating_sub(1), i));
}
}
This will set reply lines in text as italics.
This feature interface is not used anywhere yet.
2020-06-05 10:56:36 +03:00
Manos Pitsidianakis
8c1c628c2c
melib: fix non-unicode encode_header() char boundary issue
2020-06-05 10:56:35 +03:00
Manos Pitsidianakis
84976b1dc9
Update libloading dependency to 0.6.2
2020-06-05 10:56:35 +03:00
Manos Pitsidianakis
5366888dff
Add samples/ directory with config and themes
2020-06-02 18:31:07 +03:00
Manos Pitsidianakis
d2cdd26127
docs: update meli-themes.5
2020-06-02 18:31:07 +03:00
Manos Pitsidianakis
de03b106f3
themes: Add support for Color/Attribute aliases
...
Add aliases to avoid repetition of raw values when defining new themes.
Aliases are strings starting with "$" and must be defined in the
`color_aliases` and `attr_aliases` fields of a theme.
2020-06-02 18:31:07 +03:00
Manos Pitsidianakis
eca8a30c3f
themes: Add Theme struct
...
Wrap HashMap<Cow<'static, str>, ThemeAttributeInner> into a struct, in
order to add more fields in the future.
2020-06-02 18:31:07 +03:00
Manos Pitsidianakis
fa96a4e905
themes: add support for optional field theme value links
...
Theme attribute values can refer to another theme key instead of
defining a value. Add support for optionally defining the theme key's
field by appending a ".fg" or ".bg" suffix to the link's key.
2020-06-02 18:31:07 +03:00
Manos Pitsidianakis
9c0ee76ff4
themes: Rename Theme struct to Themes
2020-06-02 18:31:07 +03:00
Manos Pitsidianakis
5144fb6b6b
Add CHANGELOG.md file
2020-06-01 18:05:03 +03:00
Manos Pitsidianakis
049175e743
pager: fix filter invocation and ansi parsing
2020-05-31 22:37:06 +03:00