180 lines
4.7 KiB
Plaintext
Executable File
180 lines
4.7 KiB
Plaintext
Executable File
# Copyright 2018-2024 New Vector Ltd.
|
|
#
|
|
# SPDX-License-Identifier: AGPL-3.0-only
|
|
# Please see LICENSE in the repository root for full details.
|
|
|
|
# This file list String which are not allowed in source code.
|
|
# Use Perl regex to write forbidden strings
|
|
# Note: line cannot start with a space. Use \s instead.
|
|
# It is possible to specify an authorized number of occurrence with === suffix. Default is 0
|
|
# Example:
|
|
# AuthorizedStringThreeTimes===3
|
|
|
|
# Extension:java
|
|
# Extension:kt
|
|
|
|
# Use new SecureLinearLayoutManager
|
|
# DISABLED
|
|
#new LinearLayoutManager
|
|
|
|
### No import static: use full class name
|
|
import static
|
|
|
|
### Rubbish from merge. Please delete those lines (sometimes in comment)
|
|
<<<<<<<
|
|
>>>>>>>
|
|
|
|
### carry return before "}". Please remove empty lines.
|
|
\n\s*\n\s*\}
|
|
|
|
### typo detected.
|
|
formated
|
|
abtract
|
|
Succes[^s]
|
|
succes[^s]
|
|
|
|
### Please insert line break. ex: .flatMap() not at new line
|
|
\}\)\.[\w]
|
|
|
|
### Use int instead of Integer
|
|
protected Integer
|
|
|
|
### Use the interface declaration. Example: use type "Map" instead of type "HashMap" to declare variable or parameter. For Kotlin, use mapOf, setOf, ...
|
|
(private|public|protected| ) (static )?(final )?(HashMap|HashSet|ArrayList)<
|
|
|
|
### Use int instead of short
|
|
Short\.parseShort
|
|
\(short\)
|
|
private short
|
|
final short
|
|
|
|
### Line length is limited to 160 chars. Please split long lines
|
|
#[^─]{161}
|
|
|
|
### "DO NOT COMMIT" has been committed
|
|
DO NOT COMMIT
|
|
|
|
### invalid formatting
|
|
\s{8}/\*\n \*
|
|
# Now checked by ktlint
|
|
# [^\w]if\(
|
|
# while\(
|
|
# for\(
|
|
|
|
# Add space after //
|
|
# DISABLED To re-enable when code will be formatted globally
|
|
#^\s*//[^\s]
|
|
|
|
# Not usable with unitary test. Use StringUtils
|
|
# DISABLED
|
|
#TextUtils\.isEmpty\(
|
|
|
|
### invalid formatting (too many space char)
|
|
^ /\*
|
|
|
|
# No ternary operator
|
|
# DISABLED
|
|
# \?
|
|
|
|
### unnecessary parenthesis around numbers, example: " (0)"
|
|
\(\d+\)
|
|
|
|
### Malformatted comment
|
|
^ \*
|
|
|
|
### import the package, do not use long class name with package
|
|
android\.os\.Build\.
|
|
|
|
### Tab char is forbidden. Use only spaces
|
|
\t
|
|
|
|
# Empty lines and trailing space
|
|
# DISABLED To re-enable when code will be formatted globally
|
|
#[ ]$
|
|
|
|
### Deprecated, use retrofit2.HttpException
|
|
import retrofit2\.adapter\.rxjava\.HttpException
|
|
|
|
### This is generally not necessary, no need to reset the padding if there is no drawable
|
|
setCompoundDrawablePadding\(0\)
|
|
|
|
# Change thread with Rx
|
|
# DISABLED
|
|
#runOnUiThread
|
|
|
|
### Bad formatting of chain (missing new line)
|
|
\w\.flatMap\(
|
|
|
|
### Bad formatting of Realm query chain. Insert new line
|
|
# DISABLED
|
|
# \)\.equalTo
|
|
|
|
# Use StandardCharsets.UTF_8.name()
|
|
# DISABLED (min API to low)
|
|
#\"UTF-
|
|
|
|
### Directly use getString() in a Fragment
|
|
getActivity\(\)\.getString\(
|
|
|
|
### In Kotlin, Void has to be null safe, i.e. use 'Void?' instead of 'Void'
|
|
\: Void\)
|
|
|
|
### Home menu click is managed in parent Activity, with one exception
|
|
android\.R\.id\.home===2
|
|
|
|
### Kotlin conversion tools introduce this, but is can be replace by trim()
|
|
trim \{ it \<\= \' \' \}
|
|
|
|
### Use MaterialAlertDialogBuilder
|
|
android\.app\.AlertDialog
|
|
androidx\.appcompat\.app\.AlertDialog===4
|
|
|
|
### Put the operator at the beginning of next line
|
|
==$
|
|
|
|
### Use JsonUtils.getBasicGson()
|
|
new Gson\(\)
|
|
|
|
### Use matrixOneTimeWorkRequestBuilder
|
|
import androidx.work.OneTimeWorkRequestBuilder===2
|
|
|
|
### Use TextUtils.formatFileSize
|
|
Formatter\.formatFileSize===1
|
|
|
|
### Use TextUtils.formatFileSize with short format param to true
|
|
Formatter\.formatShortFileSize===1
|
|
|
|
### Use kotlin stdlib to test or compare strings
|
|
# DISABLED
|
|
# android\.text\.TextUtils
|
|
|
|
### Do not import temporary legacy classes
|
|
import org.matrix.android.sdk.internal.legacy.riot===3
|
|
import org.matrix.androidsdk.crypto.data===2
|
|
|
|
### Use `Context#getSystemService` extension function provided by `core-ktx`
|
|
getSystemService\(Context
|
|
|
|
### Use DefaultSharedPreferences.getInstance() instead for better performance
|
|
PreferenceManager\.getDefaultSharedPreferences==2
|
|
|
|
### Use ViewBindings
|
|
# findViewById
|
|
|
|
### Do not use `template_` string. Please remove the prefix `template_` to use the generated resource instead.
|
|
R\.string\.template_
|
|
|
|
### Use the Clock interface, or use `measureTimeMillis`
|
|
System\.currentTimeMillis\(\)===2
|
|
|
|
### Remove extra space between the name and the description
|
|
\* @\w+ \w+ +
|
|
|
|
### Please use the MenuProvider interface now
|
|
onCreateOptionsMenu
|
|
onOptionsItemSelected
|
|
onPrepareOptionsMenu
|
|
|
|
### Suspicious String template. Please check that the string template will behave as expected, i.e. the class field and not the whole object will be used. For instance `Timber.d("$event.type")` is not correct, you should write `Timber.d("${event.type}")`. In the former the whole event content will be logged, since it's a data class. If this is expected (i.e. to fix false positive), please add explicit curly braces (`{` and `}`) around the variable, for instance `"elementLogs.${i}.txt"`
|
|
\$[a-zA-Z_]\w*\??\.[a-zA-Z_]
|