Commit Graph

1100 Commits (1db2c16f95cf27d3599f7f021f68b3b2d549fda7)
 

Author SHA1 Message Date
Manos Pitsidianakis 1db2c16f95
mbox: add support for multiple mbox mailboxes in config
Concerns #9
4 years ago
Manos Pitsidianakis 674073899d
mbox: Add different readers for mbox{o,rd,cl,cl2} 4 years ago
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.
4 years ago
Manos Pitsidianakis 8bfdce6658
melib/error: do not discard old summary in set_summary 4 years ago
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.
4 years ago
Manos Pitsidianakis 02c881ac00
Add save-attachment option for entire message as eml 4 years ago
Manos Pitsidianakis d7e4bd9379
conf: set default override value to None 4 years ago
Manos Pitsidianakis cecd33eb5e
SVGScreenshotFilter: make svg smaller and fix grapheme cluster textLength inaccuracies 4 years ago
Manos Pitsidianakis 58ddfae9a7
execute.rs: fix missing space parsers 4 years ago
Manos Pitsidianakis fe655e679c
Fix rustfmt suggestions 4 years ago
Manos Pitsidianakis 0618e62ab6
Add optional feature to save SVG screenshot 4 years ago
Manos Pitsidianakis bc0189ffa1
Spawn workers on demand 4 years ago
Manos Pitsidianakis 40f66f3333
imap: modify connection timeouts 4 years ago
Manos Pitsidianakis 34d782f16f
imap: Remove panic from fetch_flags 4 years ago
Manos Pitsidianakis c7fbc5cafb
imap: remove redundant passing of AccountHash 4 years ago
Manos Pitsidianakis 2d862e39f4
imap: off by one error in iteration 4 years ago
Manos Pitsidianakis 2d3f49d64d
imap: index by (MailboxHash, UID) instead of just UID
Mailboxes can share UIDs.
4 years ago
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.
4 years ago
Manos Pitsidianakis e97cf98b3b
Add `view` subcommand
Add subcommand to view standalone e-mail files in meli's pager without
instantiating any accounts.
4 years ago
Manos Pitsidianakis 7dc8a87a62
Prevent sub overflow in EnvelopeView 4 years ago
Manos Pitsidianakis 05c6c19889
src/conf.rs: Remove debug! prints 4 years ago
Manos Pitsidianakis 9f30cd6bbc
state.rs: send AccountStatusChange 4 years ago
Manos Pitsidianakis 1241b6073f
Clear tags before applying new ones in NewFlags 4 years ago
Manos Pitsidianakis ca9d4fde58
Discard EnvelopeRename event if envelope is missing from Collection 4 years ago
Manos Pitsidianakis f3d5edfe14
Add copy/move to other account operations 4 years ago
Manos Pitsidianakis c07185a3aa
regexp: add priority field to regular expressions 4 years ago
Manos Pitsidianakis 465c78e903
Add Cell::keep_attrs() method 4 years ago
Manos Pitsidianakis 4bc8ff2ce9
Use structopt for command line parsing 4 years ago
Manos Pitsidianakis a17f0b4fd4
listing: rework MailListingTrait
split redraw_list() to redraw_threads_list() and redraw_envelope_list()
4 years ago
Manos Pitsidianakis 9edef4ecd2
ui: add attachment_tree() func in MailView
Split ascii attachment tree generation into a function in MailView
4 years ago
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.
4 years ago
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
4 years ago
Manos Pitsidianakis 6458ccb860
meli: update nom dependency to 5.1.1 4 years ago
Manos Pitsidianakis 6ec249dd7f
melib: update nom dependency from 3.2.0 to 5.1.1
That was hecking exhausting
4 years ago
Manos Pitsidianakis db4c401828
melib/error: add chain_err_summary() method 4 years ago
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.
4 years ago
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" }
4 years ago
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.
4 years ago
Manos Pitsidianakis 8c1c628c2c
melib: fix non-unicode encode_header() char boundary issue 4 years ago
Manos Pitsidianakis 84976b1dc9
Update libloading dependency to 0.6.2 4 years ago
Manos Pitsidianakis 5366888dff
Add samples/ directory with config and themes 4 years ago
Manos Pitsidianakis d2cdd26127
docs: update meli-themes.5 4 years ago
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.
4 years ago
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.
4 years ago
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.
4 years ago
Manos Pitsidianakis 9c0ee76ff4
themes: Rename Theme struct to Themes 4 years ago
Manos Pitsidianakis 5144fb6b6b
Add CHANGELOG.md file 4 years ago
Manos Pitsidianakis 049175e743
pager: fix filter invocation and ansi parsing 4 years ago
Manos Pitsidianakis bee1baedb2
themes: add indentation level color keys
Add theme keys for the indentation level colors in ThreadView
4 years ago
Manos Pitsidianakis b3b9563db0
LineBreakCandidateIter: make iter non-recursive
A line with lots of graphemes without any breaks can overflow the stack,
so make the recursion into a loop.
4 years ago