#JavaScript (ES6), 139+1 bytes

(+1 is for `-p` flag with node in the console)

    t=(n,m)=>(m=2*n+1,Array.from(Array(m),(d,i)=>Array.from(Array(m),(e,j)=>i==j?j==n?"O":"\\":m-1==j+i?"/":i==n?"-":" ").join("")).join("\n"))
**usage:**

    t(3)
    /*
    \     /
     \   / 
      \ /  
    ---O---
      / \  
     /   \ 
    /     \
    */




**ungolfed:**

    var makeSun = function (n, m) {
        m = 2 * n + 1;    // there are 2*n+1 in each row/column
        return Array.from(Array(m), function (d, i) {
            return Array.from(Array(m), function (e, j) {
                // if i is j, we want to return a \
                // unless we're at the middle element
                // in which case we return the sun ("O")
                if (i == j) {
                    return j == n ? "O" : "\\";
                // the other diagonal is when m-1 is j+i
                // so return a forward slash, /
                } else if (m - 1 == j + i) {
                    return "/";
                // the middle row is all dashes
                } else if (i == n) {
                    return "-";
                // everything else is a space
                } else {
                    return " ";
                }
            }).join("");
        }).join("\n");
    }