Commit graph

425 commits

Author SHA1 Message Date
011942e049
nvim: Update plugins 2024-07-02 13:08:19 +02:00
1514eca622
nvim: Update to new conform.nvim version
Update and fix small breaking change in new conform by specifically
setting lsp formatting as fallback. Move to explicit ruff format import
organizing and remove tailwind css lsp for the time being.
2024-07-02 13:08:07 +02:00
8aa845dcfb
nvim: Update otter and quarto
Fix small cmp completion source breaking change for new otter and quarto
versions.
2024-07-02 12:43:38 +02:00
444c378d89
nvim: Update ZK mappings 2024-06-27 17:26:02 +02:00
851bf58b21
nvim: Improve snippet jumping
Snippets can be jumped through more easily now since jumping between
snippets (with <tab> and <s-tab>) takes precedence over completions and
jumping through completions. That means when a snippet has been expanded
we can now cycle through its insertion points without worrying about
activating completion items instead.

Additionally, only jump through insertion points as long as we are
within the snippet boundaries with the cursor, so it doesn't surprise
jump later when pressing <tab> from somewhere else in the file.
2024-06-27 17:24:29 +02:00
894b7ff175
nvim: Disable marksman lsp in zk notebook directories
When a `.zk` directory is found in the current root directory of the
marksman project, the lsp is disabled.

This is because zk delivers its own lsp server with correct following of
note ids instead of full file names which marksman expects and fails to
find.
2024-06-27 17:22:03 +02:00
e6497a2241
nvim: Only start ltex LSP if spellchecking enabled
Since ltex-lsp eats quite a lot of resources and takes a while to start
up we don't always want it enabled for every prose file. This commit
ensures that it only starts up when spellchecking is enabled for a
buffer (through the custom user command `SpellToggle`).
2024-06-27 17:20:35 +02:00
9ded34f73c
nvim: Add custom spellcheck toggle with user events
Added a user command `SpellTogle` which toggles on or off spellchecking
in the current buffer. Can be invoked like that, or with one or multiple
language to spellcheck (e.g. `SpellToggle en_us en_gb`). Can also be
invoked with a bang to always enable instead of toggling.

Publishes a user event called `SpellEnable` or `SpellDisable` depending
on the aciton which autocommands can listen for.
2024-06-27 17:18:34 +02:00
7ff62840b7
nvim: Move core.autocmds to core.commands 2024-06-27 16:57:24 +02:00
fc5f267031
nvim: Update spellfile 2024-06-23 22:48:28 +02:00
56e14fdc2a
nvim: Enable ltex lsp for prose files 2024-06-23 10:07:46 +02:00
707cd30e67
nvim: Enable inlay hints for lua lsp 2024-06-23 10:07:23 +02:00
a5f0698ab0
nvim: Make molten not lazyload
For some reason molten-nvim fails sometimes when lazy loading. This
simply turns lazy load off for the time being but I should instead
investigate a little more what is actually causing it.
2024-06-20 17:44:34 +02:00
51145e740a
nvim: Ensure TS is always set up for image.nvim 2024-06-20 17:43:11 +02:00
87ce74de40
nvim: Show selection in lualine
Shows number of lines and characters selected in visual mode.
2024-06-17 15:39:53 +02:00
0f46dcad28
nvim: Fix molten statusline icon
Fixed issue when pynvim did not exist in the environment but we tried to
invoke a molten-nvim command. Now we first fire up python to check for
pynvim existence. This takes a moment so we do it asynchronously and
cache the result for the rest of the program runtime.

Also we only show the molten icon if we are actually connected to a
running kernel.
2024-06-17 15:39:25 +02:00
2d513ad74b
nvim: Remove vale linter
It does not work right. I tried to set up the lsp instead, and that also
is giving me more trouble than I can troubleshoot right now.
2024-06-17 14:32:24 +02:00
b4a9b5179f
nvim: Automatically install linters and formatters
Switch out mason-tool-installer for mason-conform.nvim and
mason-nvim-lint as respective wrappers for automatically installing
formatters and linters.

Follows the same principle as mason-lspconfig.nvim (in fact, the repos
are mostly based on the same code) and apply the concept to the other
tools: Whatever is enabled in the respective plugins (lspconfig,
nvim-lint and conform.nvim) will automatically be installed by mason.

This is really neat and basically takes care of me ever having to
interact much with Mason itself or manually set up the tools to be
installed. All I have to make sure is that they're updated once in a
while.
2024-06-17 14:00:00 +02:00
b2dfdfd5ff
nvim: Fix ruff lsp
We now make use of the ruff-inbuilt LSP offering since it just entered
beta.
We also disable all rules in pyright LSP that ruff takes care of, and in
turn disable hover capability in ruff since it's worse than pyright
(still).
More information here:
https://github.com/astral-sh/ruff/tree/main/crates/ruff_server#setup
and here:
https://github.com/astral-sh/ruff/blob/main/crates/ruff_server/docs/setup/NEOVIM.md
2024-06-17 13:34:02 +02:00
8dbfa2dd13
nvim: Extend snippet capability
Enabled snippet completion from the first letter (allowing single letter
snippet prefixes).
Extended the luasnip usage and added a telescope extension to show all
enabled snippets for the current buffer.
2024-06-17 13:34:02 +02:00
a7aca62a15
nvim: Extend lualine enabled extensions
Added more extensions for plugins that I use, all pre-defined.
2024-06-17 13:34:01 +02:00
c45d85922b
nvim: Fix wrong lazy.nvim plugin spec options
Some options were left over from old plugin managers, some were just
used wrong.
2024-06-17 13:34:00 +02:00
157fbc812c
nvim: Extraction completion setup into own module
As a first step to disentangle the ide.lua module into completion,
formatting, lsp (and maybe lint?), this separates the completion module
into its own file.
2024-06-17 10:42:12 +02:00
543a149da2
nvim: Update treesitter dependencies
Moved rainbow delimiters into dependencies so that it runs with TS
instead of loading TS on its own. Made TS itself more lazy (only loading
on VeryLazy by default).

Run TSUpdate on each run instead of only each build step.
2024-06-17 10:31:39 +02:00
1a2e83ccb6
nvim: Fix overlapping REPL key maps 2024-06-16 22:30:49 +02:00
fae2d85cca
nvim: Fix crash on no python venv available 2024-06-16 22:30:11 +02:00
fa1db974f0
nvim: Update plugins 2024-06-16 21:38:05 +02:00
ebee0042d8
nvim: Fix correct workspace propagation for python env 2024-06-16 21:36:58 +02:00
b2c64a0925
nvim: Allow pasting images into markup files
With the new `img-clip.nvim` extension we can copy any image anywhere
and simply paste it into a markdown/quarto/latex/typst/... document with
the right markup already.

Those can be from the web/locally. Also allows drag and drop from e.g.
web pages.

Mapped to `<leader>pp` currently, though we will have to find a better
mapping. Or invoked with `:ImagePaste`.
2024-06-16 21:36:57 +02:00
3b1a874883
nvim: Open ipynb files as quarto files
We can now open any ipynb file as if it were a quarto document by
leveraging the `jupytext.nvim` extension which works in the background
to convert everything. Will only work if `jupytext` program is actually
installed on the machine.

Allows normal editing of the file and will write any changes back to the
original notebook on save and exit!
2024-06-16 21:36:57 +02:00
4d8cc4d2af
nvim: Add FeMaco codecell edit mapping
Added mapping to quickly edit any code cell in FeMaco, an extra buffer
which brings lsp functionality and similar with it. Can be used as a
fallback if otter.nvim is not working for the buffer, or when working on
a buffer which otter.nvim does not understand.
2024-06-16 21:36:56 +02:00
0ec49583bd
nvim: Set up image.nvim image display
Finally got image.nvim fully working on wezterm with the kitty backend
and auto-installed rock dependencies.
2024-06-16 21:36:55 +02:00
e25aedd94b
nvim: Set up molten for interactive python repl
Set it up with extended options and keymaps. Will use an image provider
if it has been set externally (usually set by the 'image.nvim' setup
routine) or fall back to use the `wezterm.nvim` plugin to display it in
a wezterm pane. This display can be a little buggy so we should prefer
others.
2024-06-16 21:36:54 +02:00
63dc6fb888
nvim: Set up quarto for interactive python work 2024-06-16 21:36:53 +02:00
849489afd6
nvim: Move mini.bracketed comment to k suffix
Moved the mini bracketed comment following to use the ]k [k suffix. I am
not sure if this is completely taking since every now and again it seems
to still be overriding my own configured mapping.
2024-06-16 17:42:48 +02:00
9dcd2f3d48
nvim: Add direct python env set utility function
Added a simple 'set python environment' function to directly set the
correct python binary and update the PATH for python.
2024-06-16 17:41:18 +02:00
0bac43eb91
nvim: Split python venv fetching into multiple
Now we can either fetch the python venv basefolder
(`require('core.util').get_python_venv_basefolder()`) or specifically
the python binary contained within (`.get_python_bin()`).

Additionally, the venv result should be cached for the duration of using
nvim so that we only have to fetch it once, regardless of how many
modules require it.
2024-06-16 17:37:54 +02:00
4f5445cc0e
nvim: Add function to cleanly unmap keys
Removes them from being active in vim as well as removing them from
being displayed in which-key.

Unfortunately the which-key implementation still seems broken, sometimes
removing them sometimes leaving them as-is.
2024-06-16 16:40:10 +02:00
3e13941eae
nvim: Add mappings for inspecting treesitter
Simply invokes the `:Inspect` and `:InspectTree` commands, to have
quicker access, especially while tinkering with TS for the foreseeable
future.
2024-06-15 19:26:42 +02:00
a746e35d26
nvim: Fix vn note index opening sh alias
Since we do not make use of my own zettelkasten plugin anymore, this
commit is a quick fix to reinstate the functionality of the `vn` alias
in the shell opening the note index.
An issue is that there is now no dedicated function to show or open the
index, so we have to make do with a hardcoded path. Perhaps at some
point I will get around to fixing that issue but until then I am fine
with it just working again.
2024-06-14 22:48:53 +02:00
f05e2e11e1
nvim: Fix zk note creation mappings
Mappings to create a note with its content or title from the current
selection now work correctly.
2024-06-14 22:08:55 +02:00
dc465bb39a
nvim: Add mapping to show notification history
Added the `<leader>sh` (show history) mapping to display the recent
history of messages sent to notify. Uses fidget.nvim to accomplish this.
2024-06-14 22:08:12 +02:00
8f679d0b1a
nvim: Disable flash.nvim in search mode
Hopefully definitively disabled the search mode for the flash.nvim
plugin. Previously only disabled the key mapping but it would still run
every now and again.
2024-06-14 22:02:47 +02:00
a665648b1e
nvim: Update plugins and lazy loading events 2024-06-13 16:33:33 +02:00
6d82162f16
nvim: Switch basic file editor to mini.files
While we can still reach vifm through the `<leader>E` mapping, the basic
`<leader>e` file editor mapping has been switched over to the mini.files
browser.
It works somewhat like oil.nvim, in that you simply get a buffer to work
with that you can delete/move/copy/rename lines in and after doing a
synchronization (with `=`) all changes are actually applied to the
files.
Since I mostly need the quick file opening to do some quick renaming
operation or want to open an adjacent file this seems like the quickest
and most painless option to do so. For larger operations I still have
access to the full vifm experience.
2024-06-07 11:08:56 +02:00
4f67a6d3ca
nvim: Fix which-key conditional usage if not loaded
The only left-over which-key invocation which did not check for its
existence beforehand.
2024-06-07 09:56:55 +02:00
57f2fbd5fe
nvim: Replace vim-easy-align with mini module
Mini.nvim now also comes with an align module which perfectly mimics
the behavior of my beloved junegunn vim-easy-align plugin. It is almost
sad to see such an old friend go, but ultimately it removes a redundant
plugin and switches the setup ever so slightly more towards being lua
based.
The mini module also allows more advanced lua-based modifier pattern
shenanigans but so far I don't need any of the advanced stuff: I just
need a quick way to align markdown tables and similar, and this one does
exactly the same as before, only with a couple nice additional options
and previews. It still uses the same key chord `ga<where>` but also
offers `gA<where>` which apparently comes with a nicer preview. My
fingers will probably stick to the former for the time being.

One thing that changes is that, by default, it will align *all*
separators not just the first instance on each line. To mimic the old
behavior you can, in alignment mode, hit `f` to enter a filter and enter
`n==2` to get the same result as default vim-easy-align (the first pair
of delimiters are aligned).
Also it comes with some nice extra functionality like trimming
whitespace by just hitting `t` when in alignment mode
2024-06-07 09:50:26 +02:00
5c4afcb0b3
nvim: Update plugins 2024-06-06 22:36:16 +02:00
94c2d83c86
nvim: Fix trouble for major version update
Fixed for new invocation usage and removed deprecated commands.
Added telescope functionality (to push results into trouble) though I am
not quite happy with the close coupling yet. Have not found an easy way
to only have this mapping be created if trouble exists.
2024-06-06 22:32:27 +02:00
1771a61334
nvim: Use peek for markdown preview where possible
On machines that have deno installed, we use peek instead of
markdown-preview for html-based previews of md files. The preview is
more responsive and in a neater package, as well as just not relying on
any vim plugin stuff to the same degree.
We still fall back to the old markdown-preview if no deno executable is
available.

We also change the key maps slightly to prepare for future 'prose' or
'preview' based mappings: All mappings are registered under the
`<leader>p` layer, with md preview being `<leader>pp` and various
mindmap operations moved to `<leader>pm`.
2024-06-06 20:50:37 +02:00
b69548fa38
nvim: Load nvim-surround as VeryLazy
This fixes the somewhat confusing issue of trying to use any of the
surround operations before entering insert mode at least once in a file
(so, probably as the first operation). Before, the plugin would just
silently fail.
Now it simply loads very lazily, which does not affect load times
strongly.
2024-06-06 20:45:53 +02:00
8748b66344
nvim: Switch python lsp to basedpyright
Switched pyright to basedpyright as it adds a couple noteworthy
rules and some functions that are otherwise exlusive to pylance.

Especially useful for me are semantic highlighting as well as
inlay hints (now that nvim supports it from 0.10 onwards).
2024-06-06 16:23:44 +02:00
4697e09472
nvim: Ensure pythonPath setting always finds entry
LSP attachment would complain if it did not find an existing dict to
access in the `settings.python` section of the python lsp dictionaries.
This fixes that by creating an empty dict if nothing exists yet,
essentially functioning as null-check.
2024-06-06 16:23:43 +02:00
b37650ac03
nvim: Re-enable femaco plugin
Since it in fact works wonderfully now, we re-enable FeMaco, allowing to
edit codeblocks in markdown-like environments (but really anywhere) by
simply invoking `<localleader>ce` ('codeblock-edit').

The mapping is only active in markdown and quarto files for the time
being, though more can probably be added.
The command itself works anywhere (`:FeMaco`), so can be used in racket
or norg or whereever.
2024-06-06 16:23:42 +02:00
989081abfc
nvim: Only register markdown which-keys if available
Check for availability of which-key plugin before setting up layer
key descriptions.
2024-06-06 16:23:41 +02:00
405af0f020
nvim: Move util to core.util module
Moved all utility functions from their own directory into
the core functionality direcotyr as a single file.
2024-06-06 16:23:41 +02:00
e939305df3
nvim: Update plugins 2024-06-06 10:25:08 +02:00
7fd32f873a
nvim: Change cmp results order and icons
Made lsp and LaTeX icons a little less obnoxious,
and fixed order to better load more pertinent results.
2024-06-06 10:12:24 +02:00
434974284a
nvim: Fix flash for search and operator pending
flash.nvim was activating on searches which, while perhaps useful
for some people, was not for me. It stops the (incremental) search
as soon as no valid target exists which drops you back into normal
mode while still typing out the search and thus doing
who-knows-what.

The operator pending mode for the original jump mapping has been
removed to allow the 'surround' mappings from mini plugin to
always work correctly (`ysiw`, `csaw`, ...).
2024-06-06 09:58:25 +02:00
cb21789f3a
nvim: Add mapping for inlay hints
`<localleader>li` will show inlay hints if they are available
for the active LSP server.
2024-06-06 09:45:34 +02:00
c03b88c6cc
nvim: Formatting 2024-06-06 09:43:20 +02:00
418670790e
nvim: Update rainbow brackets for deprecated ts modules
Since treesitter is deprecating modules we switch to the new fork of the
plugin which works without any use of treesitter modules.
A painless switch since I only use the default settings of the plugin
anyway.
2024-05-28 18:31:43 +02:00
1e7e6f082d
nvim: Refactor linter and formatter loading
Put them into tables next to each other in preparation for more
dynamic module loading.
2024-03-01 10:37:25 +01:00
bbe972cfc2
nvim: Fix mini mapping descriptions 2024-03-01 10:36:35 +01:00
b0aabf719a
nvim: Add lsp references preview window
Add 'glances.nvim' plugin which shows the LSP references, definitions and
implementations in a very nice floating preview window. (Previously we
used Telescope which is still called if the glances plugin does not
exist.)

Can preview, scroll in the floating window, go to the destination, open
the destination in vert/horiz splits.
2024-03-01 10:36:16 +01:00
fcaaba9e8d
nvim: Improve auto spellfix mapping
If the cursor was on the very first letter of a word it would fix
the misspelled word instead - now it should stay and fix the
current word under cursor instead.
2024-03-01 10:33:36 +01:00
da8a9a02f9
nvim: Update spellfile 2024-02-24 09:13:39 +01:00
572f7b29a4
nvim: Switch lightspeed to flash
Flash.nvim provides a very tasty remote editing functionality which lightspeed
does not. Otherwise it behaves *mostly* the same. For now, I have the flash
search label functionality activated (default) but if it is annoying I will
turn it off (It injects labels into the normal neovim search. So if you search
a word and want to go directly there, you just press the label key as part
of the search and it jumps there. This might be problematic if I quickly type
something that does not exist but it picks up a non-existent letter as label
instead.)

Otherwise, the remote editing functionality is activated by
<operator>r<label><movement>, such as `yr<label>iw` to yank inside a word
somewhere else and stay at the current position. Similarly for example
`cr<label>$` to change from the label to the end of the line and then jump
back to the original position and so on.
2024-02-18 11:14:37 +01:00
4c5d18d7e4
nvim: Change lualine design
Slightly adapt lualine to not have arrow section/component dividers,
but simple slanted lines. Gets rid of a tiny bit of noise while still
clearly subdividing the sections for me which I need.

Also, removed displaying the hostname. I know which host I am on
generally, and rarely make use of it so it's just unnecessary info
for me.
2024-02-18 10:24:46 +01:00
0c7ad09789
nvim: Move mini configuration into core plugin file
Since I would like to keep my plugin configurations as modular as possible
I think it is a good first step to move the mini configuration directly
into the core plugin file where mini is loaded. Since this is the plugin
spec I want to take to basically any nvim installation I have, having it
in a single file makes it much easier to be portable.
2024-02-15 09:02:39 +01:00
7c37baa565
nvim: Move toggleterm out of core plugins
Toggleterm, as nice as it is, is not one of my core dependencies.
I do not 'need' toggleterm on every nvim installation I have. Instead,
it can go into ui-related plugins since that is what it does, extend
nvim's UI functionality with new terminal dropdowns/floats.
2024-02-15 08:53:55 +01:00
9fb1f958e6
nvim: Remove fixed term sigwinch timer 2024-02-15 08:52:14 +01:00
1d70d0c649
nvim: Switch starter screen recent files order
First show recent files of the current directory, then follow up with
general recent files.
2024-02-10 14:14:17 +01:00
89ea7e9cf2
nvim: Switch to mini operators plugin
Removed vim-exchange which, while an amazing functionality, is also
exactly replicated in mini.nvim (along with even more operators).

Uses slightly different mapping - not `cx<movement>` anymore but
`gx<movement>`. But this actually makes sense and fits in well with
my other g-prefixed operators (`gc` for comment and `ga` for align).

It is also the prefix for the other additional operators supplied
by mini.operators: `gs` for sorting text, `gm` for multiplying,
`gr` for replacing, `g=` for evaluating.
2024-02-10 14:07:07 +01:00
7e65c42001
nvim: Update plugins 2024-02-10 13:39:44 +01:00
683cd64b26
nvim: Lazy load editing plugins after entering insert 2024-02-10 13:37:14 +01:00
7e3377d60d
nvim: Update spellfile 2024-02-10 13:36:42 +01:00
cf153808a2
nvim: Switch to mini base16 plugin
Since we already have the mini library installed in our setup, we don't
need to make use of external base16 plugins. It provides the same exact
functionality, and seems slim and bug-free. Nothing changes for the
user, but we have 1 plugin less to take care of (and it was
mis-behaving in new versions anyway).

Also set lualine to be reloaded on theme switch so it takes on the
colorscheme as well.
2024-02-10 13:27:37 +01:00
fbceea242d
nvim: Fully switch to zk-nvim
Removed my own plugin in favor of zk-nvim integration.
2024-02-07 22:29:48 +01:00
8512bbf2cf
nvim: Add existing zettel link insertion mappings
Added mapping to insert a link to an existing Zettel with
`<localleader>ni` (note insert), either from normal mode which creates
the complete link, or from visual selection mode which surrounds the
current selection (as visible link text) with the link.

New zettel links still use my own implementation so I have full control
over their naming scheme.
2024-02-05 15:44:07 +01:00
22b70a0639
nvim: Enter notes dir when calling zettel index
When switching the current buffer to the Zettelkasten index page
(`<leader>ni`), we now also switch the working directory to the
corresponding notes directory.
2024-02-05 15:07:22 +01:00
32bf7d1f38
nvim: Update packages 2024-01-18 10:25:00 +01:00
ba56e6f546
nvim: Add ft detection for dvc files
Added ftdetect folder for files from dvc.
2024-01-11 17:59:46 +01:00
506b6cb2f6
nvim: Update plugins and spellfile 2023-12-30 21:33:21 +01:00
8e3ef257d3
nvim: Create global option to disable linting
Setting `vim.g.disable_autoformat` to true will disable automatic linting globally,
though I have not set up commands or mappings for manual linting. It is also
missing buffer-local linting which could be copied from buffer-local formatting.
2023-12-30 21:33:16 +01:00
c977bfea06
nvim: Simplify linter loading function 2023-12-30 21:33:15 +01:00
a5fee8959f
nvim: Move base16 functionality to plugin config
Moved loading and setting up file watching to the loading of the plugin itself.
Will make it a little more self-contained and not crash or complain if we are
missing the plugin.

HACK
At the same time, reverted back to pinned base16 commit since the new one did
not work again. Gotta figure it out at some point but no time now.
2023-12-30 21:33:14 +01:00
df10d40510
nvim: Remove reliance on lspconfig for python path
Localize the path joining function to the utility module.
2023-12-30 21:33:11 +01:00
49f6a0ef58
nvim: Refactor plugin mappings to loading code 2023-12-12 23:24:16 +01:00
ca7d43ba51
nvim: Update plugins and lazy loading 2023-12-12 15:43:44 +01:00
116cbe79be
nvim: Refactor lualine configuration
Configure in its lazy loading file to not have an extra file flying around.
2023-12-12 15:11:14 +01:00
0d017f7747
nvim: Unpin base16 plugin
Since the newer versions are working well on my system again, we can
unpint the pinned commit from base16.
2023-12-12 14:49:40 +01:00
0bdd406f56
nvim: Replace popup notifications with fidget
Since I am already using fidget.nvim for lsp notifications, might as well use it
for other, more explicit ones. Removed nvim-notify in favor of this since I like
how unobtrusive the notifications are (and let's be honest, most you don't need
to pay attention to, instead they just take you out of flow).
2023-12-12 14:40:58 +01:00
75334e9e87
nvim: Improve spellfile download messages 2023-12-12 14:08:17 +01:00
c27e697870
nvim: Refactor core setting loading into core module
Move everything pertinent from init.lua to the core module init file
itself. For now the only thing remaining in the init lua is requiring
the core.
2023-12-12 14:07:43 +01:00
d459d79de0
nvim: Update spellfile 2023-12-12 12:11:03 +01:00
1e47459801
nvim: Add endwise plugin to treesitter
Will automatically add function end tags for a bunch of languages, most importantly
for me to lua and bash.
2023-12-12 12:11:02 +01:00
ea7b2e632e
nvim: Configure image.nvim lazyness
Set up to load on the file types it affects.
2023-12-12 12:11:01 +01:00
c550a9d514
nvim: Move Molten info toggle to vim-meta key group
Moved mapping from `<localleader>cI` to `<leader>vn` (for molteN).
2023-12-12 12:11:00 +01:00
ea224ebbc1
nvim: Lazy load zen-mode, nvim-cmp
Correctly lazy load nvim-cmp as much as possible.
Loading it with certain events but also before lsp.
See here: https://github.com/hrsh7th/nvim-cmp/discussions/688#discussioncomment-1891544
2023-12-12 12:10:34 +01:00