Basic VSCode configuration for building and debugging (#2483)

* Basic VSCode configuration for building and debugging

* Fix building and debugging in Windows

* Move to contrib folder and add instructions
release/v1.15
Lauris BH 2017-09-12 15:27:44 +03:00 committed by Lunny Xiao
parent 8c3a2e817b
commit 4c2b1be3a4
6 changed files with 105 additions and 1 deletions

4
.gitignore vendored
View File

@ -10,6 +10,9 @@ _test
# IntelliJ # IntelliJ
.idea .idea
# MS VSCode
.vscode
# Architecture specific extensions/prefixes # Architecture specific extensions/prefixes
*.[568vq] *.[568vq]
[568vq].out [568vq].out
@ -36,6 +39,7 @@ _testmain.go
*.log *.log
/gitea /gitea
/debug
/integrations.test /integrations.test
/bin /bin

View File

@ -26,6 +26,8 @@ It assumes you have followed the
Sensitive security-related issues should be reported to Sensitive security-related issues should be reported to
[security@gitea.io](mailto:security@gitea.io). [security@gitea.io](mailto:security@gitea.io).
For configuring IDE or code editor to develop Gitea see [IDE and code editor configuration](contrib/ide/)
## Bug reports ## Bug reports
Please search the issues on the issue tracker with a variety of keywords Please search the issues on the issue tracker with a variety of keywords

12
contrib/ide/README.md Normal file
View File

@ -0,0 +1,12 @@
# IDE and code editor configuration
## Table of Contents
- [IDE and code editor configuration](#ide-and-code-editor-configuration)
- [Microsoft Visual Studio Code](#microsoft-visual-studio-code)
## Microsoft Visual Studio Code
Download Microsoft Visual Studio Code at https://code.visualstudio.com/ and follow instructions at https://code.visualstudio.com/docs/languages/go to setup Go extension for it.
Create new direcotry `.vscode` in Gitea root folder and copy contents of folder [contrib/ide/vscode](vscode/) to it. You can now use `Ctrl`+`Shift`+`B` to build gitea executable and `F5` to run it in debug mode.
Supported on Debian, Ubuntu, Red Hat, Fedora, SUSE Linux, MacOS and Microsoft Windows.

View File

@ -0,0 +1,31 @@
{
"version": "0.2.0",
"configurations": [
{
"name": "Launch",
"type": "go",
"request": "launch",
"mode": "debug",
"buildFlags": "",
"port": 2345,
"host": "127.0.0.1",
"program": "${workspaceRoot}/main.go",
"env": {},
"args": ["web"],
"showLog": true
},
{
"name": "Launch (with SQLite3)",
"type": "go",
"request": "launch",
"mode": "debug",
"buildFlags": "-tags=\"sqlite\"",
"port": 2345,
"host": "127.0.0.1",
"program": "${workspaceRoot}/main.go",
"env": {},
"args": ["web"],
"showLog": true
}
]
}

View File

@ -0,0 +1,51 @@
{
"version": "2.0.0",
"tasks": [
{
"taskName": "Build",
"type": "shell",
"command": "go",
"group": "build",
"presentation": {
"echo": true,
"reveal": "always",
"focus": false,
"panel": "shared"
},
"args": ["build"],
"linux": {
"args": [ "-o", "gitea", "${workspaceRoot}/main.go" ]
},
"osx": {
"args": [ "-o", "gitea", "${workspaceRoot}/main.go" ]
},
"windows": {
"args": [ "-o", "gitea.exe", "\"${workspaceRoot}\\main.go\""]
},
"problemMatcher": ["$go"]
},
{
"taskName": "Build (with SQLite3)",
"type": "shell",
"command": "go",
"group": "build",
"presentation": {
"echo": true,
"reveal": "always",
"focus": false,
"panel": "shared"
},
"args": ["build", "-tags=\"sqlite\""],
"linux": {
"args": ["-o", "gitea", "${workspaceRoot}/main.go"]
},
"osx": {
"args": ["-o", "gitea", "${workspaceRoot}/main.go"]
},
"windows": {
"args": ["-o", "gitea.exe", "\"${workspaceRoot}\\main.go\""]
},
"problemMatcher": ["$go"]
}
]
}

View File

@ -500,7 +500,11 @@ func DateLang(lang string) string {
// execPath returns the executable path. // execPath returns the executable path.
func execPath() (string, error) { func execPath() (string, error) {
file, err := exec.LookPath(os.Args[0]) execFile := os.Args[0]
if IsWindows && filepath.IsAbs(execFile) {
return filepath.Clean(execFile), nil
}
file, err := exec.LookPath(execFile)
if err != nil { if err != nil {
return "", err return "", err
} }