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
This commit is contained in:
		
							parent
							
								
									8c3a2e817b
								
							
						
					
					
						commit
						4c2b1be3a4
					
				
					 6 changed files with 105 additions and 1 deletions
				
			
		
							
								
								
									
										4
									
								
								.gitignore
									
										
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								.gitignore
									
										
									
									
										vendored
									
									
								
							| 
						 | 
				
			
			@ -10,6 +10,9 @@ _test
 | 
			
		|||
# IntelliJ
 | 
			
		||||
.idea
 | 
			
		||||
 | 
			
		||||
# MS VSCode
 | 
			
		||||
.vscode
 | 
			
		||||
 | 
			
		||||
# Architecture specific extensions/prefixes
 | 
			
		||||
*.[568vq]
 | 
			
		||||
[568vq].out
 | 
			
		||||
| 
						 | 
				
			
			@ -36,6 +39,7 @@ _testmain.go
 | 
			
		|||
*.log
 | 
			
		||||
 | 
			
		||||
/gitea
 | 
			
		||||
/debug
 | 
			
		||||
/integrations.test
 | 
			
		||||
 | 
			
		||||
/bin
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -26,6 +26,8 @@ It assumes you have followed the
 | 
			
		|||
Sensitive security-related issues should be reported to
 | 
			
		||||
[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
 | 
			
		||||
 | 
			
		||||
Please search the issues on the issue tracker with a variety of keywords
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										12
									
								
								contrib/ide/README.md
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								contrib/ide/README.md
									
										
									
									
									
										Normal 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.
 | 
			
		||||
							
								
								
									
										31
									
								
								contrib/ide/vscode/launch.json
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										31
									
								
								contrib/ide/vscode/launch.json
									
										
									
									
									
										Normal 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
 | 
			
		||||
    }
 | 
			
		||||
  ]
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										51
									
								
								contrib/ide/vscode/tasks.json
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										51
									
								
								contrib/ide/vscode/tasks.json
									
										
									
									
									
										Normal 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"]
 | 
			
		||||
    }
 | 
			
		||||
  ]
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -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
 | 
			
		||||
	}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue