diff --git a/.github/workflows/check-white-space.yml b/.github/workflows/check-white-space.yml
new file mode 100644
index 00000000..6b15c438
--- /dev/null
+++ b/.github/workflows/check-white-space.yml
@@ -0,0 +1,18 @@
+name: Check Whitespace and New Line
+
+on:
+ push:
+ branches: [ "master" ]
+ pull_request:
+ branches: [ "master" ]
+
+jobs:
+ check:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v1
+ - name: Check trailing space
+ run: if grep -rIn "[[:blank:]]$"; then exit 2; else echo OK; fi
+ - name: Check no new line at EOF
+ run: for f in $(grep -rIl ""); do if test $(tail -c 1 $f); then echo $f; fail=1; fi; done; if test $fail; then exit 1; fi
+
diff --git a/android/AndroidManifest.xml b/android/AndroidManifest.xml
index 535c1509..b85fc008 100644
--- a/android/AndroidManifest.xml
+++ b/android/AndroidManifest.xml
@@ -5,7 +5,7 @@
android:versionCode="1"
android:versionName="1.0">
-
+
0 then
+ if #self.phases > 0 then
table.remove(self.phases, 1)
end
diff --git a/packages/.gitignore b/packages/.gitignore
index fd123c66..9083b6c3 100644
--- a/packages/.gitignore
+++ b/packages/.gitignore
@@ -4,4 +4,4 @@
!test/
!manuvering/
!.gitignore
-!init.sql
\ No newline at end of file
+!init.sql
diff --git a/packages/standard/game_rule.lua b/packages/standard/game_rule.lua
index a9329851..ab47900d 100644
--- a/packages/standard/game_rule.lua
+++ b/packages/standard/game_rule.lua
@@ -77,7 +77,7 @@ GameRule = fk.CreateTriggerSkill{
move_to_notify.moveInfo = {}
move_to_notify.moveReason = fk.ReasonDraw
for _, id in ipairs(cardIds) do
- table.insert(move_to_notify.moveInfo,
+ table.insert(move_to_notify.moveInfo,
{ cardId = id, fromArea = Card.DrawPile })
end
room:notifyMoveCards(nil, {move_to_notify})
@@ -104,7 +104,7 @@ GameRule = fk.CreateTriggerSkill{
end
room:sendLog{ type = "$AppendSeparator" }
-
+
player:addMark("Global_TurnCount")
if not player.faceup then
player:setFlag("-Global_FirstRound")
@@ -119,10 +119,10 @@ GameRule = fk.CreateTriggerSkill{
error("You should never proceed PhaseNone")
end,
[Player.RoundStart] = function()
-
+
end,
[Player.Start] = function()
-
+
end,
[Player.Judge] = function()
local cards = player:getCardIds(Player.Judge)
@@ -173,10 +173,10 @@ GameRule = fk.CreateTriggerSkill{
end
end,
[Player.Finish] = function()
-
+
end,
[Player.NotActive] = function()
-
+
end,
})
end,
diff --git a/packages/standard/init.lua b/packages/standard/init.lua
index e2c700ec..8503c48c 100644
--- a/packages/standard/init.lua
+++ b/packages/standard/init.lua
@@ -669,7 +669,7 @@ local keji = fk.CreateTriggerSkill{
can_refresh = function(self, event, target, player, data)
if not (target == player and player:hasSkill(self.name)) then
return false
- end
+ end
if event == fk.CardResponding then
return data.card.name == "slash"
elseif event == fk.EventPhaseStart then
diff --git a/packages/standard_cards/init.lua b/packages/standard_cards/init.lua
index d4665ac5..beef5204 100644
--- a/packages/standard_cards/init.lua
+++ b/packages/standard_cards/init.lua
@@ -35,7 +35,7 @@ local slashSkill = fk.CreateActiveSkill{
on_effect = function(self, room, effect)
local to = effect.to
local from = effect.from
-
+
room:damage({
from = room:getPlayerById(from),
to = room:getPlayerById(to),
@@ -146,7 +146,7 @@ local peachSkill = fk.CreateActiveSkill{
on_effect = function(self, room, effect)
local to = effect.to
local from = effect.from
-
+
room:recover({
who = room:getPlayerById(to),
num = 1,
diff --git a/packages/test/qml/TestDialog.qml b/packages/test/qml/TestDialog.qml
index 62586577..a663bc53 100644
--- a/packages/test/qml/TestDialog.qml
+++ b/packages/test/qml/TestDialog.qml
@@ -17,7 +17,7 @@ GraphicsBox {
spacing: 10
Text {
- text: root.custom_string
+ text: root.custom_string
color: "#E4D5A0"
}
diff --git a/qml/Logic.js b/qml/Logic.js
index ed7366c9..f9f4ac7a 100644
--- a/qml/Logic.js
+++ b/qml/Logic.js
@@ -9,7 +9,7 @@ function createClientPages() {
mainWindow.generalsOverviewPage = generalsOverviewPage;
mainWindow.cardsOverviewPage = cardsOverviewPage;
- }
+ }
}
var callbacks = {};
diff --git a/qml/Pages/CardsOverview.qml b/qml/Pages/CardsOverview.qml
index 4021b5cc..c3ba067e 100644
--- a/qml/Pages/CardsOverview.qml
+++ b/qml/Pages/CardsOverview.qml
@@ -8,7 +8,7 @@ Item {
property bool loaded: false
- ListView {
+ ListView {
width: Math.floor(root.width / 98) * 98
height: parent.height
anchors.centerIn: parent
@@ -23,7 +23,7 @@ Item {
columns: root.width / 98
Repeater {
model: JSON.parse(Backend.callLuaFunction("GetCards", [name]))
- CardItem {
+ CardItem {
autoBack: false
Component.onCompleted: {
let data = JSON.parse(Backend.callLuaFunction("GetCardData", [modelData]));
diff --git a/qml/Pages/GeneralsOverview.qml b/qml/Pages/GeneralsOverview.qml
index 3c9a558d..a7da789c 100644
--- a/qml/Pages/GeneralsOverview.qml
+++ b/qml/Pages/GeneralsOverview.qml
@@ -23,7 +23,7 @@ Item {
columns: root.width / 98
Repeater {
model: JSON.parse(Backend.callLuaFunction("GetGenerals", [name]))
- GeneralCardItem {
+ GeneralCardItem {
autoBack: false
name: modelData
onClicked: {
diff --git a/qml/Pages/Init.qml b/qml/Pages/Init.qml
index 010eb7c2..d8c1a86a 100644
--- a/qml/Pages/Init.qml
+++ b/qml/Pages/Init.qml
@@ -12,7 +12,7 @@ Item {
color: "#88888888"
radius: 2
}
-
+
Column {
spacing: 8
ComboBox {
diff --git a/qml/Pages/PackageManage.qml b/qml/Pages/PackageManage.qml
index 4a08c93b..d251f1a3 100644
--- a/qml/Pages/PackageManage.qml
+++ b/qml/Pages/PackageManage.qml
@@ -79,7 +79,7 @@ Item {
ListView {
id: packageList
anchors.fill: parent
-
+
contentHeight: packageDelegate.height * count
ScrollBar.vertical: ScrollBar {}
header: RowLayout {
diff --git a/qml/Pages/Room.qml b/qml/Pages/Room.qml
index 98d5fb26..6d233031 100644
--- a/qml/Pages/Room.qml
+++ b/qml/Pages/Room.qml
@@ -40,7 +40,7 @@ Item {
MediaPlayer {
id: bgm
source: config.bgmFile
-
+
// loops: MediaPlayer.Infinite
onPlaybackStateChanged: {
if (playbackState == MediaPlayer.StoppedState && roomScene.isStarted)
@@ -104,7 +104,7 @@ Item {
if (popupBox.item != null) {
popupBox.item.finished();
- }
+ }
}
}
},
@@ -412,7 +412,7 @@ Item {
dragMargin: 0
scale: mainWindow.scale
transformOrigin: Item.TopLeft
-
+
ColumnLayout {
anchors.fill: parent
diff --git a/qml/Pages/RoomElement/Photo.qml b/qml/Pages/RoomElement/Photo.qml
index d9a3b02b..409e6018 100644
--- a/qml/Pages/RoomElement/Photo.qml
+++ b/qml/Pages/RoomElement/Photo.qml
@@ -351,7 +351,7 @@ Item {
duration: 100
}
}
-
+
function tremble() {
trembleAnimation.start()
}
diff --git a/qml/Pages/RoomLogic.js b/qml/Pages/RoomLogic.js
index d4ff18a5..c94253a2 100644
--- a/qml/Pages/RoomLogic.js
+++ b/qml/Pages/RoomLogic.js
@@ -72,7 +72,7 @@ function doOkButton() {
}
));
return;
- }
+ }
replyToServer("1");
}
@@ -91,7 +91,7 @@ function doCancelButton() {
replyToServer("__cancel");
return;
}
-
+
replyToServer("__cancel");
}
@@ -486,7 +486,7 @@ callbacks["ArrangeSeats"] = function(jsonData) {
dashboardModel.seatNumber = order.indexOf(Self.id) + 1;
dashboardModel.general = "";
roomScene.dashboardModelChanged();
-
+
// make Self to the first of list, then reorder photomodel
let selfIndex = order.indexOf(Self.id);
let after = order.splice(selfIndex);
@@ -497,7 +497,7 @@ callbacks["ArrangeSeats"] = function(jsonData) {
let item = photoModel.get(i);
item.index = photoOrder.indexOf(item.id);
}
-
+
arrangePhotos();
}
@@ -516,14 +516,14 @@ callbacks["MoveFocus"] = function(jsonData) {
let data = JSON.parse(jsonData);
let focuses = data[0];
let command = data[1];
-
+
let item, model;
for (let i = 0; i < playerNum - 1; i++) {
model = photoModel.get(i);
if (focuses.indexOf(model.id) != -1) {
item = photos.itemAt(i);
item.progressBar.visible = true;
- item.progressTip = Backend.translate(command)
+ item.progressTip = Backend.translate(command)
+ Backend.translate(" thinking...");
if (command === "PlayCard") {
diff --git a/qml/Pages/WebInit.qml b/qml/Pages/WebInit.qml
index 35883665..ee3188b3 100644
--- a/qml/Pages/WebInit.qml
+++ b/qml/Pages/WebInit.qml
@@ -15,7 +15,7 @@ Item {
color: "#88888888"
radius: 2
}
-
+
Column {
spacing: 8
TextField {
diff --git a/qml/ToastManager.qml b/qml/ToastManager.qml
index 14095e8f..f7f4c0a4 100644
--- a/qml/ToastManager.qml
+++ b/qml/ToastManager.qml
@@ -26,7 +26,7 @@ ListView {
easing.type: Easing.InOutQuad
}
}
-
+
delegate: Toast {
Component.onCompleted: {
show(text, duration);
diff --git a/qml/main.qml b/qml/main.qml
index 451498d8..32b4da05 100644
--- a/qml/main.qml
+++ b/qml/main.qml
@@ -90,16 +90,16 @@ Item {
property bool stateVisible: false
states: [
- State {
+ State {
when: globalPopupDim.stateVisible
PropertyChanges { target: globalPopupDim; opacity: 0.5 }
},
- State {
+ State {
when: !globalPopupDim.stateVisible
PropertyChanges { target: globalPopupDim; opacity: 0.0 }
}
]
-
+
transitions: Transition {
NumberAnimation { properties: "opacity"; easing.type: Easing.InOutQuad }
}
@@ -109,7 +109,7 @@ Item {
id: globalPopup
property string source: ""
modal: true
- dim: false // cannot animate the dim
+ dim: false // cannot animate the dim
focus: true
opacity: mainWindow.busy ? 0 : 1
closePolicy: Popup.CloseOnEscape
diff --git a/src/client/clientplayer.h b/src/client/clientplayer.h
index a55a4ed7..a4b13306 100644
--- a/src/client/clientplayer.h
+++ b/src/client/clientplayer.h
@@ -7,14 +7,14 @@ class ClientPlayer : public Player {
Q_OBJECT
Q_PROPERTY(int id READ getId CONSTANT)
- Q_PROPERTY(QString screenName
- READ getScreenName
- WRITE setScreenName
+ Q_PROPERTY(QString screenName
+ READ getScreenName
+ WRITE setScreenName
NOTIFY screenNameChanged
)
Q_PROPERTY(QString avatar
- READ getAvatar
- WRITE setAvatar
+ READ getAvatar
+ WRITE setAvatar
NOTIFY avatarChanged
)
diff --git a/src/main.cpp b/src/main.cpp
index df9a8265..8814e31e 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -182,14 +182,14 @@ int main(int argc, char *argv[])
QTranslator translator;
Q_UNUSED(translator.load("zh_CN.qm"));
QCoreApplication::installTranslator(&translator);
-
+
QmlBackend backend;
backend.setEngine(engine);
#ifndef Q_OS_WASM
Pacman = new PackMan;
#endif
-
+
engine->rootContext()->setContextProperty("Backend", &backend);
engine->rootContext()->setContextProperty("Pacman", Pacman);
diff --git a/src/server/room.h b/src/server/room.h
index 735aa863..39e7627e 100644
--- a/src/server/room.h
+++ b/src/server/room.h
@@ -61,7 +61,7 @@ public:
LuaFunction startGame;
QString fetchRequest();
- void pushRequest(const QString &req);
+ void pushRequest(const QString &req);
bool hasRequest() const;
signals:
diff --git a/src/server/serverplayer.h b/src/server/serverplayer.h
index 58b8d33c..626c0089 100644
--- a/src/server/serverplayer.h
+++ b/src/server/serverplayer.h
@@ -35,7 +35,7 @@ public:
signals:
void disconnected();
-
+
private:
ClientSocket *socket; // socket for communicating with client
Router *router;
diff --git a/src/server/shell.h b/src/server/shell.h
index 76000ced..229e81db 100644
--- a/src/server/shell.h
+++ b/src/server/shell.h
@@ -5,7 +5,7 @@ class Shell: public QThread {
Q_OBJECT
public:
Shell();
-
+
enum Color {
Black,
Red,
diff --git a/src/swig/qt.i b/src/swig/qt.i
index c6bcbbaa..7edd2726 100644
--- a/src/swig/qt.i
+++ b/src/swig/qt.i
@@ -47,7 +47,7 @@ static int GetMicroSecond(lua_State *L) {
long microsecond = tv.tv_sec * 1000000 + tv.tv_usec;
lua_pushnumber(L, microsecond);
return 1;
-}
+}
%}
void qDebug(const char *msg, ...);
diff --git a/src/swig/server.i b/src/swig/server.i
index 0e5ea122..e7519b3d 100644
--- a/src/swig/server.i
+++ b/src/swig/server.i
@@ -48,7 +48,7 @@ public:
const QString &command,
const QString &jsonData
);
-
+
void gameOver();
LuaFunction startGame;
@@ -91,7 +91,7 @@ void Room::roomStart() {
}
lua_pop(L, 1);
}
-
+
%}
%nodefaultctor ServerPlayer;
diff --git a/src/ui/qmlbackend.cpp b/src/ui/qmlbackend.cpp
index af9beedb..70ee2a20 100644
--- a/src/ui/qmlbackend.cpp
+++ b/src/ui/qmlbackend.cpp
@@ -234,7 +234,7 @@ void QmlBackend::playSound(const QString &name, int index) {
i++;
}
- index = i == 0 ? 0 : (QRandomGenerator::global()->generate()) % i + 1;
+ index = i == 0 ? 0 : (QRandomGenerator::global()->generate()) % i + 1;
}
if (index != 0)
fname = fname + QString::number(index) + ".mp3";
@@ -242,7 +242,7 @@ void QmlBackend::playSound(const QString &name, int index) {
fname = fname + ".mp3";
if (!QFile::exists(fname)) return;
-
+
auto player = new QMediaPlayer;
auto output = new QAudioOutput;
player->setAudioOutput(output);