From 3718b7d58f027971a22e58eef608d28c79c71660 Mon Sep 17 00:00:00 2001 From: Christopher James Hayward Date: Thu, 28 Jul 2022 20:18:02 -0400 Subject: [PATCH] Add dart support --- README.org | 48 +++++++++++++++++++++++++++++++++++++++++++ docs/images/dart.png | Bin 0 -> 11441 bytes flake.nix | 1 + shells/dart.nix | 13 ++++++++++++ 4 files changed, 62 insertions(+) create mode 100644 docs/images/dart.png create mode 100644 shells/dart.nix diff --git a/README.org b/README.org index c0aa146..081e511 100644 --- a/README.org +++ b/README.org @@ -195,6 +195,7 @@ inputs.flake-utils.lib.eachDefaultSystem (system: default = import ./shell.nix { inherit pkgs; }; cc = import ./shells/cc.nix { inherit pkgs; }; go = import ./shells/go.nix { inherit pkgs; }; + dart = import ./shells/dart.nix { inherit pkgs; }; grpc = import ./shells/grpc.nix { inherit pkgs; }; java = import ./shells/java.nix { inherit pkgs; }; node = import ./shells/node.nix { inherit pkgs; }; @@ -279,6 +280,33 @@ mkShell { } #+END_SRC +** Dart + +#+ATTR_ORG: :width 400px +#+ATTR_HTML: :width 400px +#+ATTR_LATEX: :width 400px +[[./docs/images/dart.png]] + +[[https://dart.dev][Dart]] is a programming language designed for client development, such as for the web and mobile apps. It is developed by Google and can be used to build server and desktop applications. It is an object-oriented, class-based, garbage-collected language with C-style syntax. + +Import this shell with ~nix develop $DOTFILES#dart~ + +#+BEGIN_SRC nix :noweb yes :tangle shells/dart.nix +#<> +{ pkgs ? import { } }: + +with pkgs; +mkShell { + buildInputs = [ + dart + flutter + ]; + shellHook = '' + FLUTTER_SDK_DIR=${flutter}/bin/cache/dart-sdk/ + ''; +} +#+END_SRC + ** Rust #+ATTR_ORG: :width 400px @@ -2530,6 +2558,26 @@ epkgs.go-mode (add-hook 'go-mode-hook #'dotfiles/go-hook) #+END_SRC +*** Dart Mode + +#+NAME: emacs-dart-package +#+BEGIN_SRC nix +epkgs.dart-mode +epkgs.lsp-dart +epkgs.hover +#+END_SRC + +[[https://github.com/emacs-lsp/lsp-dart][Emacs Dart IDE]] using LSP Mode to connect to Dart Analysis Server. + +#+NAME: emacs-dart-elisp +#+BEGIN_SRC emacs-lisp +;; Configure `dart-mode' to work with `lsp-mode'. +(add-hook 'dart-mode-hook 'lsp) + +;; Help Emacs find Flutter packages. +(setq lsp-dart-sdk-dir (getenv "$FLUTTER_SDK_DIR")) +#+END_SRC + *** Rustic #+NAME: emacs-rustic-package diff --git a/docs/images/dart.png b/docs/images/dart.png new file mode 100644 index 0000000000000000000000000000000000000000..44b98c4061b8f26bbc3182252babd735b21124b7 GIT binary patch literal 11441 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 { } }: + +with pkgs; +mkShell { + buildInputs = [ + dart + flutter + ]; + shellHook = '' + FLUTTER_SDK_DIR=${flutter}/bin/cache/dart-sdk/ + ''; +}