All of lore.kernel.org
 help / color / mirror / Atom feed
From: COGONI Guillaume <cogoni.guillaume@gmail.com>
To: gitster@pobox.com
Cc: Matthieu.Moy@univ-lyon1.fr, cogoni.guillaume@gmail.com,
	derrickstolee@github.com, git.jonathan.bressat@gmail.com,
	git@vger.kernel.org, guillaume.cogoni@gmail.com,
	shaoxuan.yuan02@gmail.com
Subject: [PATCH v2 1/1] Documentation/ToolsForGit.txt: Tools for developing Git
Date: Sun, 17 Apr 2022 11:35:49 +0200	[thread overview]
Message-ID: <20220417093549.101436-2-cogoni.guillaume@gmail.com> (raw)
In-Reply-To: <20220417093549.101436-1-cogoni.guillaume@gmail.com>

This document aims to gather tools that have a README and/or scripts in
the GIT project in order to simplify the search of information for a
particular tool.

Move the part about Emacs configuration from CodingGuidelines to
ToolsForGit.txt because it's the purpose of the new file centralize the
information about tools.

Signed-off-by: COGONI Guillaume <cogoni.guillaume@gmail.com>
---
 Documentation/CodingGuidelines | 11 -----
 Documentation/Makefile         |  1 +
 Documentation/ToolsForGit.txt  | 79 ++++++++++++++++++++++++++++++++++
 3 files changed, 80 insertions(+), 11 deletions(-)
 create mode 100644 Documentation/ToolsForGit.txt

diff --git a/Documentation/CodingGuidelines b/Documentation/CodingGuidelines
index b20b2f94f1..a7d21d6f6b 100644
--- a/Documentation/CodingGuidelines
+++ b/Documentation/CodingGuidelines
@@ -492,17 +492,6 @@ For Perl programs:
 
  - Learn and use Git.pm if you need that functionality.
 
- - For Emacs, it's useful to put the following in
-   GIT_CHECKOUT/.dir-locals.el, assuming you use cperl-mode:
-
-    ;; note the first part is useful for C editing, too
-    ((nil . ((indent-tabs-mode . t)
-                  (tab-width . 8)
-                  (fill-column . 80)))
-     (cperl-mode . ((cperl-indent-level . 8)
-                    (cperl-extra-newline-before-brace . nil)
-                    (cperl-merge-trailing-else . t))))
-
 For Python scripts:
 
  - We follow PEP-8 (http://www.python.org/dev/peps/pep-0008/).
diff --git a/Documentation/Makefile b/Documentation/Makefile
index 44c080e3e5..7058dd2185 100644
--- a/Documentation/Makefile
+++ b/Documentation/Makefile
@@ -93,6 +93,7 @@ SP_ARTICLES += $(API_DOCS)
 TECH_DOCS += MyFirstContribution
 TECH_DOCS += MyFirstObjectWalk
 TECH_DOCS += SubmittingPatches
+TECH_DOCS += ToolsForGit
 TECH_DOCS += technical/bundle-format
 TECH_DOCS += technical/hash-function-transition
 TECH_DOCS += technical/http-protocol
diff --git a/Documentation/ToolsForGit.txt b/Documentation/ToolsForGit.txt
new file mode 100644
index 0000000000..d96cadd09c
--- /dev/null
+++ b/Documentation/ToolsForGit.txt
@@ -0,0 +1,79 @@
+Tools for developing Git
+========================
+:sectanchors:
+
+[[summary]]
+== Summary
+
+This document aims to gather tools that have a README and/or scripts in
+the Git project.
+
+[[author]]
+=== Author
+
+The Git community.
+
+[[table_of_contents]]
+== Table of contents
+
+- <<vscode>>
+- <<emacs>>
+
+[[vscode]]
+=== Visual Studio Code (VS Code)
+
+The contrib/vscode/init.sh script creates configuration files that enable
+several valuable VS Code features. See contrib/vscode/README.md for more
+information on using the script.
+
+In particular, this script enables using the VS Code visual debugger, including
+setting breakpoints, logpoints, conditional breakpoints and more in the editor.
+
+[[emacs]]
+=== Emacs
+
+- To follow rules of the CodingGuideline, it's useful to put the following in
+GIT_CHECKOUT/.dir-locals.el, assuming you use cperl-mode:
+----
+;; note the first part is useful for C editing, too
+((nil . ((indent-tabs-mode . t)
+	 (tab-width . 8)
+	 (fill-column . 80)))
+	 (cperl-mode . ((cperl-indent-level . 8)
+			(cperl-extra-newline-before-brace . nil)
+			(cperl-merge-trailing-else . t))))
+----
+
+- The version for C:
+----
+(defun c-lineup-arglist-tabs-only (ignored)
+	"Line up argument lists by tabs, not spaces"
+	(let* ((anchor (c-langelem-pos c-syntactic-element))
+	       (column (c-langelem-2nd-pos c-syntactic-element))
+	       (offset (- (1+ column) anchor))
+	       (steps (floor offset c-basic-offset)))
+	 (* (max steps 1)
+	    c-basic-offset)))
+
+(add-hook 'c-mode-common-hook
+	(lambda ()
+		;; Add kernel style
+		(c-add-style
+		 "linux-tabs-only"
+		 '("linux" (c-offsets-alist
+			    (arglist-cont-nonempty
+			     c-lineup-gcc-asm-reg
+			     c-lineup-arglist-tabs-only))))))
+
+(add-hook 'c-mode-hook
+	(lambda ()
+		(let ((filename (buffer-file-name)))
+		 ;; Enable kernel mode for the appropriate files
+		 (when (and filename
+			(string-match (expand-file-name "~/src/linux-trees")
+				       filename))
+		 (setq indent-tabs-mode t)
+		 (setq show-trailing-whitespace t)
+		 (c-set-style "linux-tabs-only")))))
+----
+
-- 
2.25.1


  reply	other threads:[~2022-04-17  9:36 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-04-12 20:25 [PATCH 0/1] documentation: guide of best practices for GIT developer COGONI Guillaume
2022-04-12 20:25 ` [PATCH 1/1] " COGONI Guillaume
2022-04-13 14:36 ` [PATCH 0/1] " Shaoxuan Yuan
2022-04-13 16:36   ` Guillaume Cogoni
2022-04-16 12:34     ` [PATCH v1 0/1] Documentation/ToolsOnGit.txt: gather information about tools COGONI Guillaume
2022-04-16 12:34       ` [PATCH v1 1/1] " COGONI Guillaume
     [not found]       ` <63d7dc69656e47f7bc7bce4839711f32@SAMBXP02.univ-lyon1.fr>
2022-04-16 13:25         ` Matthieu Moy
2022-04-16 14:51           ` Philip Oakley
2022-04-16 17:11           ` Junio C Hamano
2022-04-17  9:35             ` [PATCH v2 0/1] Documentation/ToolsForGit.txt: Tools for developing Git COGONI Guillaume
2022-04-17  9:35               ` COGONI Guillaume [this message]
     [not found]             ` <33d2087c66e44037b03db818dae60fea@SAMBXP02.univ-lyon1.fr>
2022-04-17 12:25               ` Matthieu Moy
2022-04-20 13:06                 ` [PATCH v3 " COGONI Guillaume
2022-04-20 13:06                   ` [PATCH v3 1/1] " COGONI Guillaume
2022-04-20 21:23                     ` Junio C Hamano
2022-04-21  8:45                       ` [PATCH v4 0/1] " COGONI Guillaume
2022-04-21  8:45                         ` [PATCH v4 1/1] " COGONI Guillaume

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20220417093549.101436-2-cogoni.guillaume@gmail.com \
    --to=cogoni.guillaume@gmail.com \
    --cc=Matthieu.Moy@univ-lyon1.fr \
    --cc=derrickstolee@github.com \
    --cc=git.jonathan.bressat@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=guillaume.cogoni@gmail.com \
    --cc=shaoxuan.yuan02@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.