Skip to content

Commit 75bec45

Browse files
authored
Merge pull request #7 from JavaHello/v2
V2
2 parents 979855d + aa2ea0f commit 75bec45

29 files changed

+1729
-1547
lines changed

lua/java-deps.lua

Lines changed: 0 additions & 456 deletions
This file was deleted.

lua/java-deps/config.lua

Lines changed: 33 additions & 80 deletions
Original file line numberDiff line numberDiff line change
@@ -1,96 +1,49 @@
11
local M = {
2-
debug = false,
3-
jdtls_name = "jdtls",
4-
options = {
5-
show_guides = true,
6-
show_path_details = true,
7-
auto_close = false,
8-
width = 32,
9-
relative_width = true,
10-
show_numbers = false,
11-
show_relative_numbers = false,
12-
preview_bg_highlight = "Pmenu",
13-
winblend = 0,
14-
request_timeout = 3000,
15-
autofold_depth = 99,
16-
fold_markers = { "", "" },
17-
position = "right",
18-
wrap = false,
19-
hierarchical_view = true,
20-
keymaps = { -- These keymaps can be a string or a table for multiple keys
21-
open_file = "o",
22-
close = { "<Esc>", "q" },
23-
show_help = "?",
24-
toggle_preview = "K",
25-
fold = "h",
26-
unfold = "l",
27-
fold_all = "W",
28-
unfold_all = "E",
29-
fold_reset = "R",
30-
},
31-
symbols = {
32-
Workspace = { icon = "", hl = "@text.uri" },
33-
Project = { icon = "", hl = "@text.uri" },
34-
PackageRoot = { icon = "", hl = "@text.uri" },
35-
Package = { icon = "", hl = "@namespace" },
36-
PrimaryType = { icon = "󰠱", hl = "@type" },
37-
CompilationUnit = { icon = "", hl = "@text.uri" },
38-
ClassFile = { icon = "", hl = "@text.uri" },
39-
Container = { icon = "󰆧", hl = "@text.uri" },
40-
Folder = { icon = "󰉋", hl = "@method" },
41-
File = { icon = "󰈙", hl = "@method" },
42-
43-
CLASS = { icon = "󰠱", hl = "@class" },
44-
ENUM = { icon = "", hl = "@enum" },
45-
INTERFACE = { icon = "", hl = "@interface" },
46-
JAR = { icon = "", hl = "@conditional" },
47-
},
48-
symbol_blacklist = {},
49-
},
2+
jdtls_name = "jdtls",
3+
options = {
4+
show_guides = true,
5+
auto_close = false,
6+
width = 40,
7+
show_numbers = false,
8+
show_relative_numbers = false,
9+
preview_bg_highlight = "Pmenu",
10+
winblend = 0,
11+
fold_markers = { "", "" },
12+
position = "right",
13+
wrap = false,
14+
hierarchical_view = true,
15+
keymaps = {
16+
close = "q",
17+
toggle_fold = "o",
18+
},
19+
symbols = {
20+
icons = {},
21+
},
22+
},
5023
}
5124
M.setup = function(config)
52-
if config then
53-
M = vim.tbl_extend("force", M, config)
54-
end
25+
if config then
26+
M = vim.tbl_extend("force", M, config)
27+
end
5528
end
5629

5730
function M.has_numbers()
58-
return M.options.show_numbers or M.options.show_relative_numbers
59-
end
60-
local function has_value(tab, val)
61-
for _, value in ipairs(tab) do
62-
if value == val then
63-
return true
64-
end
65-
end
66-
67-
return false
68-
end
69-
70-
function M.is_symbol_blacklisted(kind)
71-
if kind == nil then
72-
return false
73-
end
74-
return has_value(M.options.symbol_blacklist, kind)
31+
return M.options.show_numbers or M.options.show_relative_numbers
7532
end
7633

7734
function M.show_help()
78-
print("Current keymaps:")
79-
print(vim.inspect(M.options.keymaps))
35+
print("Current keymaps:")
36+
print(vim.inspect(M.options.keymaps))
8037
end
8138

8239
function M.get_split_command()
83-
if M.options.position == "left" then
84-
return "topleft vs"
85-
else
86-
return "botright vs"
87-
end
40+
if M.options.position == "left" then
41+
return "topleft vs"
42+
else
43+
return "botright vs"
44+
end
8845
end
8946
function M.get_window_width()
90-
if M.options.relative_width then
91-
return math.ceil(vim.o.columns * (M.options.width / 100))
92-
else
93-
return M.options.width
94-
end
47+
return M.options.width
9548
end
9649
return M

lua/java-deps/context.lua

Lines changed: 0 additions & 33 deletions
This file was deleted.

lua/java-deps/folding.lua

Lines changed: 0 additions & 44 deletions
This file was deleted.

lua/java-deps/highlight.lua

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
local M = {
2+
items = {
3+
nsid = vim.api.nvim_create_namespace("java-deps-items"),
4+
highlights = {
5+
LineGuide = { link = "Comment" },
6+
},
7+
},
8+
}
9+
10+
M.init_hl = function()
11+
local ihlf = function(hls)
12+
for name, hl in pairs(hls.highlights) do
13+
if vim.fn.hlexists("JavaDeps" .. name) == 0 then
14+
vim.api.nvim_set_hl(0, "JavaDeps" .. name, { link = hl.link })
15+
end
16+
end
17+
end
18+
ihlf(M.items)
19+
end
20+
M.clear_all_ns = function(bufnr)
21+
vim.api.nvim_buf_clear_namespace(bufnr, -1, 0, -1)
22+
end
23+
24+
---@param bufnr number
25+
---@param hl_info table
26+
---@param nodes TreeItem[]
27+
function M.add_item_highlights(bufnr, hl_info, nodes)
28+
for _, line_hl in ipairs(hl_info) do
29+
local line, hl_start, hl_end, hl_type = unpack(line_hl)
30+
vim.api.nvim_buf_add_highlight(bufnr, M.items.nsid, hl_type, line - 1, hl_start, hl_end)
31+
end
32+
end
33+
34+
return M

lua/java-deps/init.lua

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
local config = require("java-deps.config")
2+
local View = require("java-deps.view")
3+
local highlight = require("java-deps.highlight")
4+
-- debug
5+
vim.g.java_deps = {
6+
debug = true,
7+
}
8+
9+
local M = {
10+
view = nil,
11+
state = {
12+
code_buf = nil,
13+
code_win = nil,
14+
},
15+
}
16+
17+
function M.toggle_outline()
18+
if M.view:is_open() then
19+
M.close_outline()
20+
else
21+
M.open_outline()
22+
end
23+
end
24+
25+
function M.open_outline()
26+
if not M.view:is_open() then
27+
M.view:open()
28+
M.view:revealPaths()
29+
end
30+
end
31+
32+
function M.close_outline()
33+
M.view:close()
34+
end
35+
36+
function M.setup(opts)
37+
config.setup(opts)
38+
M.view = View:new()
39+
highlight.init_hl()
40+
end
41+
42+
return M
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
local INodeData = require("java-deps.java.nodeData").INodeData
2+
local M = {}
3+
4+
---@enum ContainerEntryKind
5+
M.ContainerEntryKind = {
6+
CPE_LIBRARY = 1,
7+
CPE_PROJECT = 2,
8+
CPE_SOURCE = 3,
9+
CPE_VARIABLE = 4,
10+
CPE_CONTAINER = 5,
11+
}
12+
---@class IContainerNodeData: INodeData
13+
---@field entryKind ContainerEntryKind
14+
local IContainerNodeData = INodeData:new()
15+
IContainerNodeData.__index = IContainerNodeData
16+
17+
function IContainerNodeData:new()
18+
return setmetatable(INodeData:new(), self)
19+
end
20+
M.IContainerNodeData = IContainerNodeData
21+
22+
return M
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
local INodeData = require("java-deps.java.nodeData").INodeData
2+
local M = {}
3+
---@enum PackageRootKind
4+
M.PackageRootKind = {
5+
K_SOURCE = 1,
6+
K_BINARY = 2,
7+
}
8+
9+
---@class IPackageRootNodeData:INodeData
10+
---@field entryKind PackageRootKind
11+
---@field attributes table<string, string>
12+
local IPackageRootNodeData = INodeData:new()
13+
IPackageRootNodeData.__index = IPackageRootNodeData
14+
function IPackageRootNodeData:new()
15+
return setmetatable(INodeData:new(), self)
16+
end
17+
18+
---@param node INodeData
19+
---@return IPackageRootNodeData
20+
function IPackageRootNodeData:form(node)
21+
return setmetatable(node, self)
22+
end
23+
24+
function IPackageRootNodeData:getEntryKind()
25+
return self.entryKind
26+
end
27+
28+
function IPackageRootNodeData:getAttributes()
29+
return self.attributes
30+
end
31+
32+
M.IPackageRootNodeData = IPackageRootNodeData
33+
34+
return M

0 commit comments

Comments
 (0)