Repository: napari/napari

Issue:
Test vectors
# Description
This PR adds tests for the vectors layer, improves the doc strings and cleans up the code a tiny bit, but doesn't change any functionality.

One question is - should the input parameters be 
`edge_width`, `edge_color`, and `length` for the width, color, and the multiplicative length factor for the vectors or should they be something else. They used to just be `width`, `color`, and `length` but I added `edge_` to make the parameters the same as for the `points` and `shapes` layer, though you could argue that for the `points` layer the parameters do different things and that in the vectors layer we don't have a `face` and an `edge` so it is just confusing. I'm open to suggestions - personally I like the consistency - but we can change it. Thoughts @bryantChhun @kevinyamauchi @jni?
 
## Type of change
<!-- Please delete options that are not relevant. -->
- [x] Bug-fix (non-breaking change which fixes an issue)

# How has this been tested?
<!-- Please describe the tests that you ran to verify your changes. -->
- [x] adds `napari/layers/vectors/tests/test_vectors.py`

## Final checklist:
- [x] My PR is the minimum possible work for the desired functionality
- [x] I have commented my code, particularly in hard-to-understand areas
- [x] I have made corresponding changes to the documentation
- [x] I have added tests that prove my fix is effective or that my feature works



Discussion:
I'm ok with "edge_".  It's clear enough to me that this shape isn't exactly like the others.

Resolving patch:
diff --git a/napari/_app_model/actions/_view_actions.py b/napari/_app_model/actions/_view_actions.py
deleted file mode 100644
--- a/napari/_app_model/actions/_view_actions.py
+++ /dev/null
@@ -1,64 +0,0 @@
-"""Actions related to the 'View' menu that do not require Qt.
-
-View actions that do require Qt should go in
-`napari/_qt/_qapp_model/qactions/_view.py`.
-"""
-
-from app_model.types import Action, ToggleRule
-
-from napari._app_model.actions._toggle_action import ViewerToggleAction
-from napari._app_model.constants import CommandId, MenuGroup, MenuId
-from napari.settings import get_settings
-
-VIEW_ACTIONS: list[Action] = []
-MENUID_DICT = {'axes': MenuId.VIEW_AXES, 'scale_bar': MenuId.VIEW_SCALEBAR}
-
-for cmd, viewer_attr, sub_attr in (
-    (CommandId.TOGGLE_VIEWER_AXES, 'axes', 'visible'),
-    (CommandId.TOGGLE_VIEWER_AXES_COLORED, 'axes', 'colored'),
-    (CommandId.TOGGLE_VIEWER_AXES_LABELS, 'axes', 'labels'),
-    (CommandId.TOGGLE_VIEWER_AXES_DASHED, 'axes', 'dashed'),
-    (CommandId.TOGGLE_VIEWER_AXES_ARROWS, 'axes', 'arrows'),
-    (CommandId.TOGGLE_VIEWER_SCALE_BAR, 'scale_bar', 'visible'),
-    (CommandId.TOGGLE_VIEWER_SCALE_BAR_COLORED, 'scale_bar', 'colored'),
-    (CommandId.TOGGLE_VIEWER_SCALE_BAR_TICKS, 'scale_bar', 'ticks'),
-):
-    VIEW_ACTIONS.append(
-        ViewerToggleAction(
-            id=cmd,
-            title=cmd.command_title,
-            viewer_attribute=viewer_attr,
-            sub_attribute=sub_attr,
-            menus=[{'id': MENUID_DICT[viewer_attr]}],
-        )
-    )
-
-
-def _tooltip_visibility_toggle() -> None:
-    settings = get_settings().appearance
-    settings.layer_tooltip_visibility = not settings.layer_tooltip_visibility
-
-
-def _get_current_tooltip_visibility() -> bool:
-    return get_settings().appearance.layer_tooltip_visibility
-
-
-VIEW_ACTIONS.extend(
-    [
-        # TODO: this could be made into a toggle setting Action subclass
-        # using a similar pattern to the above ViewerToggleAction classes
-        Action(
-            id=CommandId.TOGGLE_LAYER_TOOLTIPS,
-            title=CommandId.TOGGLE_LAYER_TOOLTIPS.command_title,
-            menus=[
-                {
-                    'id': MenuId.MENUBAR_VIEW,
-                    'group': MenuGroup.RENDER,
-                    'order': 10,
-                }
-            ],
-            callback=_tooltip_visibility_toggle,
-            toggled=ToggleRule(get_current=_get_current_tooltip_visibility),
-        ),
-    ]
-)


Test patch: