Skip to content

Commit

Permalink
Basic VSCode configuration for building and debugging (go-gitea#2483)
Browse files Browse the repository at this point in the history
* Basic VSCode configuration for building and debugging

* Fix building and debugging in Windows

* Move to contrib folder and add instructions
  • Loading branch information
lafriks authored and lunny committed Sep 12, 2017
1 parent 8c3a2e8 commit 4c2b1be
Show file tree
Hide file tree
Showing 6 changed files with 105 additions and 1 deletion.
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,9 @@ _test
# IntelliJ
.idea

# MS VSCode
.vscode

# Architecture specific extensions/prefixes
*.[568vq]
[568vq].out
Expand All @@ -36,6 +39,7 @@ _testmain.go
*.log

/gitea
/debug
/integrations.test

/bin
Expand Down
2 changes: 2 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,8 @@ It assumes you have followed the
Sensitive security-related issues should be reported to
[[email protected]](mailto:[email protected]).

For configuring IDE or code editor to develop Gitea see [IDE and code editor configuration](contrib/ide/)

## Bug reports

Please search the issues on the issue tracker with a variety of keywords
Expand Down
12 changes: 12 additions & 0 deletions contrib/ide/README.md
Original file line number Diff line number Diff line change
@@ -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.
31 changes: 31 additions & 0 deletions contrib/ide/vscode/launch.json
Original file line number Diff line number Diff line change
@@ -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
}
]
}
51 changes: 51 additions & 0 deletions contrib/ide/vscode/tasks.json
Original file line number Diff line number Diff line change
@@ -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"]
}
]
}
6 changes: 5 additions & 1 deletion modules/setting/setting.go
Original file line number Diff line number Diff line change
Expand Up @@ -500,7 +500,11 @@ func DateLang(lang string) string {

// execPath returns the executable path.
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 {
return "", err
}
Expand Down

0 comments on commit 4c2b1be

Please sign in to comment.