emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[nongnu] elpa/swift-mode c9c1271 089/496: Make flycheck work with multip


From: ELPA Syncer
Subject: [nongnu] elpa/swift-mode c9c1271 089/496: Make flycheck work with multiple sources
Date: Sun, 29 Aug 2021 11:33:13 -0400 (EDT)

branch: elpa/swift-mode
commit c9c12710e3211a71400f6b8df7d14c4d6856a226
Author: ap4y <lod@pisem.net>
Commit: ap4y <lod@pisem.net>

    Make flycheck work with multiple sources
---
 swift-mode.el | 23 ++++++++++++++++++++++-
 1 file changed, 22 insertions(+), 1 deletion(-)

diff --git a/swift-mode.el b/swift-mode.el
index ad48ca8..c191ce6 100644
--- a/swift-mode.el
+++ b/swift-mode.el
@@ -308,11 +308,32 @@ Returns the column number as an integer."
        :type '(repeat (directory :tag "iOS/MacOS SDK directory"))
        :safe #'flycheck-string-list-p)
 
+     (flycheck-def-option-var flycheck-swift-linked-sources nil swift
+       "Source files path to link against. Can be glob, i.e. *.swift"
+       :type '(choice (const :tag "Don't use linked sources" nil)
+                      (string :tag "Linked Sources"))
+       :safe #'stringp)
+
      (flycheck-define-checker swift
        "Flycheck plugin for for Apple's Swift programming language."
        :command ("swift"
+                 "-frontend" "-parse"
                  (option-list "-sdk" flycheck-swift-sdk-path)
-                 "-parse" source)
+                 ;; Swift compiler will complain about redeclaration
+                 ;; if we will include original file along with
+                 ;; temporary source file created by flycheck.
+                 ;; We also don't want a hidden emacs interlock files.
+                 (eval
+                  (let (source file)
+                    (setq source (flycheck-substitute-argument 'source 'swift))
+                    (setq file (file-name-nondirectory source))
+                    (remove-if-not
+                     #'(lambda (path)
+                         (and
+                          (eq (string-match ".#" path) nil)
+                          (eq (string-match file path) nil)))
+                     (file-expand-wildcards flycheck-swift-linked-sources))))
+                 "-primary-file" source)
        :error-patterns
        ((error line-start (file-name) ":" line ":" column ": "
                "error: " (message) line-end)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]