plugins/flutter-tools: update options

This commit is contained in:
Gaetan Lepage 2025-01-15 00:12:04 +01:00 committed by nix-infra-bot
parent 4f2d78fcaf
commit cbf960e565
2 changed files with 120 additions and 78 deletions

View file

@ -3,57 +3,66 @@ let
inherit (lib) types; inherit (lib) types;
inherit (lib.nixvim) inherit (lib.nixvim)
defaultNullOpts defaultNullOpts
literalLua
mkNullOrOption' mkNullOrOption'
mkNullOrOption mkNullOrOption
literalLua
; ;
in in
{ {
ui = { ui = {
border = defaultNullOpts.mkNullable (with types; either str (listOf (maybeRaw str))) "rounded" '' border = defaultNullOpts.mkBorder' {
The border type to use for all floating windows, the same options/formats used for pluginDefault = "single";
`:h nvim_open_win` e.g. `"single"` | `"shadow"` | `[<list-of-eight-chars>]`. example = "rounded";
''; name = "all floating windows";
}; };
};
decorations = { decorations = {
statusline = { statusline = {
app_version = defaultNullOpts.mkBool false '' app_version = defaultNullOpts.mkBool false ''
Set to true to be able use the `flutter_tools_decorations.app_version` in your statusline. Set to true to be able use the `flutter_tools_decorations.app_version` in your statusline.
This will show the current version of the flutter app from the `pubspec.yaml` file. This will show the current version of the flutter app from the `pubspec.yaml` file.
''; '';
device = defaultNullOpts.mkBool false '' device = defaultNullOpts.mkBool false ''
Set to true to be able use the `flutter_tools_decorations.device` in your statusline. Set to true to be able use the `flutter_tools_decorations.device` in your statusline.
This will show the currently running device if an application was started with a specific This will show the currently running device if an application was started with a specific
device. device.
''; '';
project_config = defaultNullOpts.mkBool false '' project_config = defaultNullOpts.mkBool false ''
Set to true to be able use the `flutter_tools_decorations.project_config` in your Set to true to be able use the `flutter_tools_decorations.project_config` in your
statusline this will show the currently selected project configuration. statusline.
This will show the currently selected project configuration.
''; '';
}; };
}; };
debugger = { debugger = {
enabled = defaultNullOpts.mkBool false '' enabled = defaultNullOpts.mkBool false ''
Integrate with nvim `dap` + install dart code debugger. Enable `nvim-dap` integration.
''; '';
exception_breakpoints = defaultNullOpts.mkListOf types.anything [ ] '' exception_breakpoints = defaultNullOpts.mkListOf types.anything null ''
If empty `dap` will not stop on any exceptions, otherwise it will stop on those specified. If empty, dap will not stop on any exceptions.
See `|:help dap.set_exception_breakpoints()|` for more info. Otherwise it will stop on those specified.
See `|:help dap.set_exception_breakpoints()|` for more information.
''; '';
evaluate_to_string_in_debug_views = defaultNullOpts.mkBool true '' evaluate_to_string_in_debug_views = defaultNullOpts.mkBool true ''
Whether to call `toString()` on objects in debug views like hovers and the variables list. Whether to call `toString()` on objects in debug views like hovers and the variables list.
Invoking `toString()` has a performance cost and may introduce side-effects, although users Invoking `toString()` has a performance cost and may introduce side-effects, although users
may expected this functionality. may expect this functionality.
''; '';
register_configurations = register_configurations = defaultNullOpts.mkRaw' {
defaultNullOpts.mkRaw pluginDefault = null;
'' example = ''
function(paths) function(paths)
require("dap").configurations.dart = { require("dap").configurations.dart = {
--put here config that you would find in .vscode/launch.json --put here config that you would find in .vscode/launch.json
@ -61,23 +70,35 @@ in
-- If you want to load .vscode launch.json automatically run the following: -- If you want to load .vscode launch.json automatically run the following:
-- require("dap.ext.vscode").load_launchjs() -- require("dap.ext.vscode").load_launchjs()
end end
'' '';
'' description = ''
Function to register `dap` configurations. Function to register configurations.
'';
};
};
flutter_path = defaultNullOpts.mkStr' {
pluginDefault = null;
example = "<full/path/if/needed>";
description = ''
Absolute path to the `flutter` binary.
This takes priority over the `flutter_lookup_cmd`.
''; '';
}; };
flutter_path = defaultNullOpts.mkStr null '' flutter_lookup_cmd = defaultNullOpts.mkStr' {
Path to the `flutter` executable. pluginDefault = literalLua ''
This takes priority over the lookup function get_default_lookup()
local exepath = fn.exepath("flutter")
local is_snap_installation = exepath and exepath:match("snap") or false
return (path.is_linux and is_snap_installation) and "flutter sdk-path" or nil
end
''; '';
flutter_lookup_cmd = mkNullOrOption' {
example = "dirname $(which flutter)"; example = "dirname $(which flutter)";
description = '' description = ''
The command used to locate the flutter path. The command used to find the directory where flutter is installed.
''; '';
type = types.str;
}; };
root_patterns = defaultNullOpts.mkListOf types.str [ ".git" "pubspec.yaml" ] '' root_patterns = defaultNullOpts.mkListOf types.str [ ".git" "pubspec.yaml" ] ''
@ -95,22 +116,33 @@ in
}; };
closing_tags = { closing_tags = {
highlight = defaultNullOpts.mkStr "ErrorMsg" '' highlight = defaultNullOpts.mkStr' {
example = "ErrorMsg";
pluginDefault = "Comment";
description = ''
Highlight group for the closing tag. Highlight group for the closing tag.
''; '';
};
prefix = defaultNullOpts.mkStr ">" '' prefix = defaultNullOpts.mkStr' {
Haracter to use for close tag e.g. > Widget. pluginDefault = "// ";
example = ">";
description = ''
Character to use for close tag.
''; '';
};
priority = defaultNullOpts.mkUnsignedInt 10 '' priority = defaultNullOpts.mkUnsignedInt 10 ''
Priority of virtual text in current line. Priority of virtual text in current line.
Consider to configure this when there is a possibility of multiple virtual text items in one
line.
See `priority` option in `|:help nvim_buf_set_extmark|` for more information.
''; '';
enabled = defaultNullOpts.mkBool true '' enabled = defaultNullOpts.mkBool true ''
Consider to configure this when there is a possibility of multiple virtual text items in one Set to `false` to disable closing tags.
line.
See `priority` option in `|:help nvim_buf_set_extmark|` for more info.
''; '';
}; };
@ -121,37 +153,47 @@ in
filter = defaultNullOpts.mkRaw null '' filter = defaultNullOpts.mkRaw null ''
Optional callback to filter the log. Optional callback to filter the log.
Takes a `log_line` as string argument; returns a boolean or `nil`. Takes a `log_line` as string argument; returns a boolean or `nil`.
The `log_line` is only added to the output if the function returns `true`. The `log_line` is only added to the output if the function returns `true`.
''; '';
notify_errors = defaultNullOpts.mkBool false '' notify_errors = defaultNullOpts.mkBool false ''
If there is an error whilst running then notify the user. Whether notify the user when there is an error whilst running.
''; '';
open_cmd = defaultNullOpts.mkStr "15split" '' open_cmd = defaultNullOpts.mkStr' {
example = "15split";
pluginDefault = literalLua "('botright %dvnew'):format(math.max(vim.o.columns * 0.4, 50))";
description = ''
Command to use to open the log buffer. Command to use to open the log buffer.
''; '';
};
focus_on_open = defaultNullOpts.mkBool true '' focus_on_open = defaultNullOpts.mkBool true ''
Focus on the newly opened log window. Whether to focus on the newly opened log window.
''; '';
}; };
dev_tools = { dev_tools = {
autostart = defaultNullOpts.mkBool false '' autostart = defaultNullOpts.mkBool false ''
Autostart devtools server if not detected. Whether to autostart `devtools` server if not detected.
''; '';
auto_open_browser = defaultNullOpts.mkBool false '' auto_open_browser = defaultNullOpts.mkBool false ''
Automatically opens devtools in the browser. Automatically opens `devtools` in the browser.
''; '';
}; };
outline = { outline = {
open_cmd = defaultNullOpts.mkStr "30vnew" '' open_cmd = defaultNullOpts.mkStr' {
pluginDefault = literalLua "('botright %dvnew'):format(math.max(vim.o.columns * 0.3, 40))";
example = "30vnew";
description = ''
Command to use to open the outline buffer. Command to use to open the outline buffer.
''; '';
};
auto_open = defaultNullOpts.mkBool false '' auto_open = defaultNullOpts.mkBool false ''
If `true` this will open the outline automatically when it is first populated. If `true` this will open the outline automatically when it is first populated.
@ -161,15 +203,17 @@ in
lsp = { lsp = {
color = { color = {
enabled = defaultNullOpts.mkBool false '' enabled = defaultNullOpts.mkBool false ''
Whether or not to highlight color variables at all, only supported on flutter >= 2.10. Show the derived colors for dart variables.
Set this to `true` to enable color variables highlighting (only supported on
flutter >= 2.10).
''; '';
background = defaultNullOpts.mkBool false '' background = defaultNullOpts.mkBool false ''
Whether to highlight the background. Whether to highlight the background.
''; '';
background_color = defaultNullOpts.mkAttrsOf' { background_color = defaultNullOpts.mkNullable' {
type = types.ints.unsigned; type = with types; either str (attrsOf ints.unsigned);
pluginDefault = null; pluginDefault = null;
example = { example = {
r = 19; r = 19;
@ -177,7 +221,8 @@ in
b = 24; b = 24;
}; };
description = '' description = ''
Required when the background is transparent. Background color.
Required, when background is transparent.
''; '';
}; };
@ -195,11 +240,11 @@ in
}; };
on_attach = mkNullOrOption types.rawLua '' on_attach = mkNullOrOption types.rawLua ''
The function to call when attaching the language server. Provide a custom `on_attach` function.
''; '';
capabilities = mkNullOrOption' { capabilities = mkNullOrOption' {
type = with types; attrsOf anything; type = types.rawLua;
example = literalLua '' example = literalLua ''
function(config) function(config)
config.specificThingIDontWant = false config.specificThingIDontWant = false
@ -207,9 +252,8 @@ in
end end
''; '';
description = '' description = ''
LSP capabilities. Provide a custom value for `capabilities`.
You can use the ones of `lsp_status` or you can specify a function to deactivate or change Example: `lsp_status` capabilities.
or control how the config is created.
''; '';
}; };
@ -224,9 +268,9 @@ in
updateImportsOnRename = true; updateImportsOnRename = true;
}; };
description = '' description = ''
LSP settings. Settings for the dart language server.
See [here](https://github.com/dart-lang/sdk/blob/master/pkg/analysis_server/tool/lsp_spec/README.md#client-workspace-configuration) See [here](https://github.com/dart-lang/sdk/blob/master/pkg/analysis_server/tool/lsp_spec/README.md#client-workspace-configuration)
the link below for details on each option. for details on each option.
''; '';
}; };
}; };

View file

@ -9,7 +9,7 @@
settings = { settings = {
ui = { ui = {
border = "rounded"; border = "single";
}; };
decorations = { decorations = {
statusline = { statusline = {
@ -20,20 +20,18 @@
}; };
debugger = { debugger = {
enabled = false; enabled = false;
exception_breakpoints = [ ]; exception_breakpoints = null;
evaluate_to_string_in_debug_views = true; evaluate_to_string_in_debug_views = true;
register_configurations.__raw = '' register_configurations = null;
function(paths)
require("dap").configurations.dart = {
--put here config that you would find in .vscode/launch.json
}
-- If you want to load .vscode launch.json automatically run the following:
-- require("dap.ext.vscode").load_launchjs()
end
'';
}; };
flutter_path = null; flutter_path = null;
flutter_lookup_cmd = null; flutter_lookup_cmd.__raw = ''
(function()
local exepath = vim.fn.exepath("flutter")
local is_snap_installation = exepath and exepath:match("snap") or false
return (require'flutter-tools.utils.path'.is_linux and is_snap_installation) and "flutter sdk-path" or nil
end)()
'';
root_patterns = [ root_patterns = [
".git" ".git"
"pubspec.yaml" "pubspec.yaml"
@ -43,8 +41,8 @@
enabled = false; enabled = false;
}; };
closing_tags = { closing_tags = {
highlight = "ErrorMsg"; highlight = "Comment";
prefix = ">"; prefix = "// ";
priority = 10; priority = 10;
enabled = true; enabled = true;
}; };
@ -52,7 +50,7 @@
enabled = true; enabled = true;
filter = null; filter = null;
notify_errors = false; notify_errors = false;
open_cmd = "15split"; open_cmd.__raw = "('botright %dvnew'):format(math.max(vim.o.columns * 0.4, 50))";
focus_on_open = true; focus_on_open = true;
}; };
dev_tools = { dev_tools = {
@ -60,7 +58,7 @@
auto_open_browser = false; auto_open_browser = false;
}; };
outline = { outline = {
open_cmd = "30vnew"; open_cmd.__raw = "('botright %dvnew'):format(math.max(vim.o.columns * 0.3, 40))";
auto_open = false; auto_open = false;
}; };
lsp = { lsp = {
@ -74,7 +72,7 @@
}; };
on_attach = null; on_attach = null;
capabilities = null; capabilities = null;
settings = { }; settings = null;
}; };
}; };
}; };