1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
|
# 🔧Startup.nvim
## WIP Don't Use
✨Features
--------
* Fully customizable
* Themes
* Easy Customization with building blocks
📦Installation
------------
Use your favourite package manager and call setup function.
For the default setup telescope.nvim is a dependency.
```lua
-- lua and packer.nvim
use {
"max397574/startup.nvim",
requires = {"nvim-telescope/telescope.nvim", "nvim-lua/plenary.nvim"}
config = function()
require"startup".setup()
end
}
```
⚙️Customization
-------------
<!-- NOTE: -->
<!-- ???See wiki -->
Call the setup function with your configurations
It is recommended to use a file in the setup function. This can be done like this:
```lua
-- lua and packer.nvim
use {
"max397574/startup.nvim",
requires = {"nvim-telescope/telescope.nvim", "nvim-lua/plenary.nvim"}
config = function()
require"starup".setup(require"configs.startup") -- recommended to use a file for this
end
}
```
Here the file would be located at `/lua/configs/startup.lua`.
The file has to return settings.
For one of the default themes this can be done like this: (startify theme)
```lua
local settings = require"startup.themes.startify"
return settings
```
<!-- NOTE: update this -->
These themes are currently available:
* Default
* Startify
* Evil-startup
### 🏗️The basic structure of the settings
```lua
-- General structure of the settings
settings = {
section_1 = <section> -- as much sections as you like
section_2 = <section>
options = {
mapping_keys = true/false, -- display mapping (e.g. <leader>ff)
empty_lines_between_mappings = true/false, -- add an empty line between mapping/commands
paddings = <paddings>,
}
colors = {
background = <color>, -- hex color code
}
parts = {"section_1", "section_2"} -- all sections in order
}
-- Structure of a section
section = {
type = <type>,
oldfiles_directory = true/false,
align = <alignment>,
fold = true/false, --whether wo fold or not
title = <title>,
margin = <margin>,
content = <content>,
highlight = <highlight>,
default_color = <color>,
command = <command>,
oldfiles_amount = <amount>,
}
-- table with all the paddings
paddings = {
<padding_before_section_1>, -- for as as many sections as you have
padding_before_section_2,
}
-- e.g. #FF000D
color = hex_color_string
-- text: content is a table of strings as content which will be displayed
-- mapping: content a table with commands/mapping which will be displayed
-- and can be used with <CR>
-- oldfiles: leave content empty
-- you can specify the amount of oldfiles and whether to display only one from the current directory
type = "text"/"mapping"/"oldfiles"
-- display only oldfiles of current directory
-- only relevant if type = "oldfiles"
oldfiles_directory = true/false
-- how to align the section
align = "left"/"center"/"right"
-- whether the section should be "folded" with a title
-- title must be set
fold = true/false
-- title of folded section
-- e.g. "Oldfiles"
title = title_string
-- only relevant if alignment is left or right
-- if < 0 fraction of screen width
-- if > 0 numbers of column
margin = margin_number
-- when type = "olfiles" -> leave empty
-- when type = "mapping" -> table with the format
{
[<displayed_command_name>] = {<command>, <mapping>}
}
e.g.
{
[" Find File"] = { "Telescope find_files", "<leader>ff" },
[" Find Word"] = { "Telescope live_grep", "<leader>lg" },
}
-- when type = "text" -> table with strings of text
-- those can be returned by a function
e.g.
{ "startup.nvim", "by max397574"}, -- example for a footer
content = <content>
-- the highlight group to highlight the section with
-- leave empty to use a color
highlight = highlight_group
-- color used if no highlight group is specified (highlight = "")
-- hex color code
default_color = <color>,
-- vim command to be executed, when section get set
-- for example to create mappings
command = <command>,
-- the amount of oldfiles to be displayed
oldfiles_amount = <amount>,
```
### Examples
<details>
<summary>
Content for type = "text", table
</summary>
<p>
```lua
content = {
"This is:",
"Startup.nvim",
"by max397574"
}
```
</p>
</details>
<details>
<summary>
Content for type = "text", function
</summary>
<p>
```lua
content = function()
local clock = " " .. os.date "%H:%M"
local date = " " .. os.date "%d-%m-%y"
return {clock,date}
end
```
</p>
</details>
|