Add base for CI/CD setup tasks and otherwise.
[SquirrelJME.git] / .codeclimate.yml
blob344d9e3d289d1b9565536f1eec3783638bcffee0
1 # ---------------------------------------------------------------------------
2 # SquirrelJME
3 #     Copyright (C) Stephanie Gawroriski <xer@multiphasicapps.net>
4 # ---------------------------------------------------------------------------
5 # SquirrelJME is under the Mozilla Public License Version 2.0.
6 # See license.mkd for licensing and copyright information.
7 # ---------------------------------------------------------------------------
8 # DESCRIPTION: Configuration for CodeClimate
9 # https://docs.codeclimate.com/docs/advanced-configuration
11 version: 2
12 checks:
13   # The number of arguments for methods and such tends to be on the larger
14   # size since more arguments need to be passed. There are also standard
15   # APIs that will need to be considered in this as well.
16   argument-count:
17     config:
18       threshold: 12
20   # Due to the nature of being a JVM, the number of lines in a file can be
21   # quite high. Introducing more classes and methods just to move stuff out
22   # of classes and otherwise will just result in more confusion. Additionally
23   # with the number of comments that exist, this increases the file line
24   # count much. It would be better to still keep the comments because otherwise
25   # maintaining a complex project such as this one will be difficult.
26   file-lines:
27     config:
28       threshold: 850
30   # This is called "Cognitive Complexity" in the UI, it has a default low
31   # number at 5 which is too much for even the most simplest methods. It seems
32   # that using Synchronized will inflate the amount.
33   method-complexity:
34     config:
35       threshold: 24
37   # The number of lines in methods in SquirrelJME is more than most other
38   # projects as there is more commenting and logic within them. It would
39   # degrade the quality and readability of the code if methods were split into
40   # even more places.
41   method-lines:
42     config:
43       threshold: 100
45   # The number of methods in a class tends to be on the higher side, especially
46   # with standardized classes.
47   method-count:
48     config:
49       threshold: 65
51   # There may be many return statements in methods that consist of large
52   # switches, the default here is 4 which is too small for most of the code.
53   return-statements:
54     config:
55       threshold: 32
57   # Code duplication (affects all languages)
58   # https://docs.codeclimate.com/docs/default-analysis-configuration
59   # Java defaults to 40
60   similar-code:
61     config:
62       threshold: 120
63   identical-code:
64     config:
65       threshold: 120
67 exclude_patterns:
68   # Ignore the Gradle plugin
69   - "buildSrc/"
71   # Ignore tests
72   - "**/test"
74   # Ignore OpenGL Interfaces
75   - "**/opengles/GL10.java"
76   - "**/opengles/GL11.java"
78   # Testing Framework (It does very specific things)
79   - "modules/tac/"
81   # Code that effectively is the same and is not possible to correct
82   - "modules/midp-lcdui/src/main/java/javax/microedition/lcdui/__CanvasDefaultKeyListener__.java"
83   - "modules/midp-lcdui/src/main/java/javax/microedition/lcdui/__CustomItemKeyListener__.java"